首页 文章 精选 留言 我的

精选列表

搜索[权限与责任],共10000篇文章
优秀的个人博客,低调大师

Windows Azure Pack与VMware VRA 对比(二)安装VRA IaaS服务器

IaaS服务器主要提供web portal 的访问,工作流的处理等。这个服务要装在Windows server 2012 R2服务器上,前提条件比较多,安装过程中容易失败。首先通过访问https://vra.yueque.com:5480/installer/进行下载安装Management Agent。 输入vra的信息,如下图: 等待安装过程的完成 首次安装完成vRealize Automation Appliance, 访问https://vra.yueque.com,可以进行IaaS服务器的安装。 下图中输入time server ,这里输入AD IP,点击“下一步”。 这里输入vra的地址。 设置单点登录的密码。 填写IaaS服务器的信息。 填写IaaS SQL服务器信息。sql已经安装并有实例。 填写DEM的信息,设置密码。 填写Agent信息,这里的agent是连接vcenter时所用的,所以Endpoint名称一定要记下来。 填写证书信息。 填写web证书信息。 填写manager证书信息 点击“验证”时,会提示iaas服务器未满足前提条件。 这里我借助IaaS Installer进行安装前提条件。访问https://vra.yueque.com:5480/installer/下载并安装到iaas和sql服务器上,进行前提条件的检查安装。 在IaaS服务器上安装iaas installer完毕后,可以点击桌面“setup__10.10.106.200@5480”的图标进行配置。要确保安装成功,vRealize Automation 服务器和 Windows 服务器上的时钟必须同步。 输入vra用户名和密码。 选择“Complete Install” 完成红色错误的前提条件安装和配置。sql数据库只需要检查database的前提条件即可。 安装前提条件后,再重新验证通过即可。 创建好iaas服务器快照,确认无误后,点击“安装” 等待安装完成。最后可以登录appliance检查iaas是否安装同步成功: 至此,iaas服务器安装成功。

优秀的个人博客,低调大师

本人对《Docker——容器与容器云(第2版)》的读后感

首先,这本书讲述了Docker 底层实现的原理及细节,语言通俗易懂,对Kubernetes 也进行呢深入的讲解,最近用k8s, 从这本书里学到了很多知识,对k8s 的核心组件进行了深入分析,对实现原理进行了透彻讲解,内容丰富,堪称良心之作,本人也在做云计算,也拜读过第一版本,作为国内最早的Docker技术参考书,收获很大,对于最新技术的发展,在新版本中,有着很好的把握,体现着Docker技术的发展潮流,在保持了第一版架构的同时,对各个章节的内容又进行了大量的扩充,紧紧跟随着Docker以及k8s社区的发展步伐。相信不论是对于初涉容器领域的新人,还是希望深入理解Docker容器实现原理的开发人员,这都是一本不可多得的好书,这本书注重实践和理论的结合,既有Docker和k8s的基础操作和使用,也有其源码分析,代码版本选择也很好,现在最新的Docker加入了swarm,稳定性也是问题,以后大趋势可能就是OCI标准容器直接接入k8s了,然后镜像,存储,volume和网络都通过分模块和插件的方式进行接入,极大程度进行解耦,希望下一版可以着重对这方便进行论述和分析。非常适合大家学习,推荐!!

优秀的个人博客,低调大师

android socket 线程连接openwrt与arduino单片机串口双向通信

package zcd.netanything; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import android.app.Fragment; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Toast; public class MyCar extends Fragment implements OnClickListener{ private static String wifiurl; private static String wificom; private static String wificamera; private Thread mThreadClient = null; private Socket mSocketClient = null; //视频线程 private Thread mThreadvideo = null; private String recvMessageClient ; //MySurfaceView r; private boolean isConnect=false; //指令发出 数据缓存 static PrintWriter mPrintWriterClient = null; static BufferedReader mBufferedReaderClient = null; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.mycar,container, false); view.findViewById(R.id.button1).setOnClickListener(this); view.findViewById(R.id.button2).setOnClickListener(this); view.findViewById(R.id.button3).setOnClickListener(this); view.findViewById(R.id.button4).setOnClickListener(this); view.findViewById(R.id.button5).setOnClickListener(this); return view; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } //内部类 广播接收 public static class myReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub wifiurl = intent.getStringExtra("wifiurl"); wificom = intent.getStringExtra("wificom"); wificamera = intent.getStringExtra("wificamera"); Toast.makeText(context, "广播已经接收", Toast.LENGTH_SHORT).show(); } } //来源 http://www.cnblogs.com/xiaobo-Linux/ 赵存档 QQ463431476 //线程mRunnable启动 private Runnable mRunnable = new Runnable() { public void run() { try { //连接服务器 mSocketClient = new Socket(wifiurl,Integer.parseInt(wificom)); //取得输入、输出流 mBufferedReaderClient = new BufferedReader(new InputStreamReader(mSocketClient.getInputStream())); mPrintWriterClient = new PrintWriter(mSocketClient.getOutputStream(), true); recvMessageClient = "wifi成功连接";//消息换行 Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); } catch (Exception e) { recvMessageClient = "连接错误!";//消息换行 Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); return; } setRecvMessage(); } }; public void setRecvMessage(){ char[] buffer = new char[256]; int count = 0; while (true) { try { if((count = mBufferedReaderClient.read(buffer))>0) { recvMessageClient = getInfoBuff(buffer, count);//消息换行 //Thread.sleep(500); Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); //Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show(); } } catch (Exception e) { recvMessageClient = "接收异常:" + e.getMessage() + "\n";//消息换行 Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } } } Handler mHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == 0) { Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show();//刷新消息机制 } else if(msg.what == 1) { try { String result = recvMessageClient; Toast.makeText(getActivity(),result,Toast.LENGTH_SHORT).show(); }catch(Exception e) { //Toast.makeText(getActivity(),"无法获取数据,检查网络是否连接!",Toast.LENGTH_SHORT).show();//刷新消息机制 } } } }; //接收处理 private String getInfoBuff(char[] buff, int count) { char[] temp = new char[count]; for(int i=0; i<count; i++) { temp[i] = buff[i]; } return new String(temp); } /*public void onDestroy() { super.onDestroy(); if (isConnect) { isConnect = false; try { if(mSocketClient!=null) { mSocketClient.close(); mSocketClient = null; //mThreadvideo.destroy(); mPrintWriterClient.close(); mPrintWriterClient = null; recvMessageClient = "网络端口成功";//消息换行 Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } } catch (IOException e) { e.printStackTrace(); } mThreadClient.interrupt(); } } */ public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ case R.id.button1: mPrintWriterClient.print("f"); mPrintWriterClient.flush();//清空 Toast.makeText(getActivity(),"前进",Toast.LENGTH_SHORT).show(); break; case R.id.button2: mPrintWriterClient.print("b"); mPrintWriterClient.flush(); Toast.makeText(getActivity(),"后退",Toast.LENGTH_SHORT).show(); break; case R.id.button3: mPrintWriterClient.print("l"); mPrintWriterClient.flush(); Toast.makeText(getActivity(),"向左",Toast.LENGTH_SHORT).show(); break; case R.id.button4: mPrintWriterClient.print("r"); mPrintWriterClient.flush(); Toast.makeText(getActivity(),"向右",Toast.LENGTH_SHORT).show(); break; case R.id.button5: if(!isConnect) { //开启mThreadClient线程 mThreadClient = new Thread(mRunnable); mThreadClient.start(); Toast.makeText(getActivity(),"尝试连接网络",500).show(); } else { onDestroy(); isConnect=false; // Btn_openwifi.setBackgroundResource(R.drawable.disconnect); } //开启mThreadvideo线程 //mThreadvideo = new Thread(mRunvideo); //mThreadvideo.start();//开启视频监听 break; //case R.id.button6: //关闭wifi /* if (isConnect) { isConnect = false; try { if(mSocketClient!=null) { mSocketClient.close(); mSocketClient = null; //mThreadvideo.destroy(); mPrintWriterClient.close(); mPrintWriterClient = null; recvMessageClient = "网络端口成功";//消息换行 Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } } catch (IOException e) { e.printStackTrace(); } mThreadClient.interrupt(); } */ // break; } } }

优秀的个人博客,低调大师

Html5的局:WebGL跨平台的取与舍

紧接上文 在阅读WebKit源码中,讨论了Canvas在iOS平台使用的CoreGraphics框架作为渲染的工具,它运行在CPU上。WebGL是直接运行在GPU上的API,因此优化空间更大,对程序员要求更高。这次我们看看,WebGL如何对格式转换的,为我们后续three.js导入数据模型做铺设。 常见的纹理格式 OpenGL ES2.0在多终端的差异 在WebKit中,默认支持纹理格式,主要有: 现实却是很残酷,iOS设备以上格式都是支持的,Android设备差异化就不同了,简单的说,要想确认Android是否支持某种纹理,只需要在glext.h文件中查找宏定义即可.比如,在Android的glext.h中,却无此定义,而在iOS的OpenGL ES2.0库中,我们可以找到 #define GL_RGB16F_EXT

优秀的个人博客,低调大师

[iOS]深入理解__bridge - OC对象与C++对象的引用转换

0x0 crash 昨天在iOS Geekers钉钉群里聊到一个问题, 下面的代码会crash: void* a = new char; id ext = (__bridge id)a; crash现场如图: 看看挂的地方: 挂在objc_retain里面: objc_retain的作用是对oc对象做retain用的, 我们对指令做一下简单的解析: libobjc.A.dylib`objc_retain: 0x1810d00a0 <+0>: cbz x0, 0x1810d00c8 ; <+40> // 判断x0也就是传进来的第一个参数是不是nil, 在这里x0是变量a, 也就是char类型的指针 0x1810d00a4 <+4>: tbnz

优秀的个人博客,低调大师

Docker与Web自动化测试:一键创建Selenium Grid集群

Docker的容器技术的优秀特性,例如秒级启动、应用隔离、良好的可移植性等,可以在DevOps中大显身手,并推动持续集成,持续交付等理念落地。今天我们就将结合Selenium Grid来介绍Docker在自动化测试中的使用场景。 Selenium Grid 简介 Selenium 是针对Web应用的自动化测试框架和工具集合,支持多种浏览器和编程语言。Selenium的测试用例直接运行在浏览器中,并模拟用户的操作。 Selenium Grid是一个分布式Web测试工具,可以将测试透明地分发到多个主机上,并行地执行。Selenium Grid架构中包含两个主要角色:Hub是中心点控制节点,而Node是Selenium的工作节点,它们注册到Hub上,并会操作浏览器执行由Hub下发的自动测试用例。 以传统的方式部署分布式Selenium Grid

优秀的个人博客,低调大师

mahout运行测试与数据挖掘算法之聚类分析(一)kmeans算法解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/44984327 在使用mahout之前要安装并启动hadoop集群 将mahout的包上传至linux中并解压即可 mahout下载地址: 点击打开链接 mahout中的算法大致可以分为三大类: 聚类,协同过滤和分类 其中 常用聚类算法有:canopy聚类,k均值算法(kmeans),模糊k均值,层次聚类,LDA聚类等 常用分类算法有:贝叶斯,逻辑回归,支持向量机,感知器,神经网络等 下面将运行mahout中自带的example例子jar包来查看mahou是否能正确运行 练习数据下载地址: 点击打开链接 上面的练习数据是用来检测kmeans聚类算法的数据 使用hadoop命令运行mahout的例子程序(确保hadoop集群已开启) 在例子代码中写死了输入的路径是/user/hadoop/testdata 将练习数据上传到hdfs中对应的testdata目录下即可 写死的输出路径是/user/hadoop/output 执行命令: hadoop jar ~/mahout/mahout-examples-0.9-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job 开始执行任务 由于聚类算法是一种迭代的过程(之后会讲解) 所欲他会一直重复的执行mr任务到符合要求(这其中的过程可能有点久。。。) 运行结果如下: mahout无异常 执行完这个kmeans算法之后产生的文件按普通方式是查看不了的,看到的只是一堆莫名其妙的数据 需要用mahout的seqdumper命令来下载到本地linux上才能查看正常结果 查看聚类分析的结果: ./mahout seqdumper -s /user/hadoop/output/data/part-m-0000 /home/hadoop/res 之后使用cat命令即可查看 cat res | more 现在来说说什么是kmeans聚类算法 所谓聚类算法就是将一份数据,按照我们想要的或者这份数据中的规律来将数据分类的算法 例如: 现有一份杂乱的样本数据,我们希望数据最后按照某些类别来划分(红豆分为红豆,绿豆分为绿豆等意思) 聚类算法会从n个类的初始中心开始(如果没有人为设置,其会按照随机的初始中心开始) 什么意思呢?来看一张图 上图中,左一的圆圈表示原始数据在随机的初始中心划分后的的分布 但是可以看出很明显cluster1中有很多是靠近cluster2的数据点 所以kmeans会根据规则再次计算出更加合适的中心点来进行划分 这个规则就是: 计算每个数据点,到原始中心cluster1和cluster2的距离 离谁比较近就划分到谁那边去(形如中间的圆圈) 然后将cluster1和cluster2中的数据分别求平均值,得到的两个平均值成为新的cluster1和cluster2中心点 但是很明显这样划分还是不够合理 所以kmeans会继续迭代计算每个数据到新的中心点的距离 离谁比较近就划分给谁 然后在分别求平均值得到新的中心点 直到cluster1和cluster2中的数据平均值不在发生变化时认为此时是最理想的划分方式(也可以进行人工的干预) 该算法的最大优势在于简介快速。算法的关键在于初始中心的选择和计算距离的公式 最后在调用一个mahout的一个算法来测试mahout 调用fpg算法(实现计数频繁项集的算法) 测试数据下载(电商购物车数据) 点击打开链接 在mahout的bin目录下 ./mahout fpg -i /user/hadoop/testdata/tail.txt -o /user/hadoop/output -method mapreduce -s 1000 -regex '[]' 各个参数的意义: -i:指定输入数据的路径 -o:指定输出结果的路径 -method:指定使用mapreduce方法 -s:最小支持度 -regex:使用指定的正则来匹配过滤数据 同样的,运行结果的数据要通过seqdumper来查看

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册