十六进制的加法HDU2057

http://acm.hdu.edu.cn/showproblem.php?pid=2057 题目链接 借鉴了别人的 题目求的是十六进制的加法。刚开始想的是把十六进制转化为十进制,进行加法运算后,再转化为十六进制。 1.其实C中存在十六进制的输入输出(%X,%x)。所以这题可以直接用十六进制输入,然后进行十六进制的运算(其实不管是什么进制,在计算机中都是以二进制来计算的,只是按输入输出的格式不同,而强制转化为其它的进制),就像十进制的加法一样。这里要注意的是输入小于15位,结果超过了二进制中的32位而小于64位。所以这里用__int64的类型。输入输入出格式就是(%I64x,%I64X)。由于%I64X,不能输出负数,所以负数的输出要做处理。 在这里 你要明白的是 计算机存入的数据是二进制 0 1 所以scanf("%d",&a);就是你输入的一个十进制 比如 你输入10(这边是十进制数) 他也代表10(十六进制) 计算机存储是 10000scanf("%x",&a);就是你输入的一个十六进制 比如 你输入10(是这边是十六进制数) 他也代表8(十进制) 计算机存储是 1000而在计算b=a/15-273 的时候 计算机是用它们各自表示的二进制来计算的 因此事实上得到的b存在计算机里是以二进制存在的 ,只是当你输出时候利用强制转换输出才变成我们想要的十进制或者十六进制 比如: 在b输出时候用十六进制输出 也就是printf("%x",b); 2.Int64是有符号 64 位整数数据类型,相当于C++中的long long、 C# 中的 long 和 SQL Server 中的 bigint,表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数。 #include<stdio.h> int main() { __int64 j; scanf("%I64d",&j); printf("%I64d",j); } %x与%I64x的区别? %x是按小写输出,既10-15输出是a-f %X是按大写输出,既10-15输出是A-F #include<stdio.h> int main() { __int64 a,b,sum; while(scanf("%I64x%I64x",&a,&b)!=EOF) { sum=a+b; if(sum >= 0){ printf("

物理机迁移到虚拟机(ESXi)

远程连接到物理服务器10.1.1.34 如上图,打开文件目录中有两个工具,分别是深信服和vmware的迁移工具 深信服的迁移方式,在另外一篇文档中有描述,物理机迁移和虚拟机迁移的方式是一样的,本篇着重讲解vmware下的物理服务器迁移到Esxi的过程 安装vmware converter 6.0,由于我们用的esxi,vcenter都是6.0版本的,所以迁移工具也对应使用6.0版 安装完成,打开vmware converter 点击Convert machine按钮 选择源系统类型,由于我要是迁移本机,自然选择Power-on machine,该工具还支持其它的虚拟机,根据实际情况进行选择 填写源系统的具体参数,可以是本地主机或者远程主机,远程主机需要填写ip地址,用户名,密码以及操作系统类型,操作系统只有windows和linux可选,本次操作选择本地主机,"This Local machine" 选择本地主机之后如图所示 点击"View source details..."可以看到物理体服务器的详细信息,如操作系统,内存,硬盘网络等信息 配置好要迁移的主机参数,点击下一步 选择目标机器 连接上vcenter 选择本地机器要迁移到的目标物理主机及硬盘,虚拟机版本 虚拟机参数确认 如果有需要修改的参数,点击对应的"Edit"即可,如修改内存 完成前确认虚拟机的信息,点击"finish",开始进行迁移 结束,此时物理机会重新启动 迁移结束 计算一下,从开始到结束用时33分钟,迁移时间具体还是要根据迁移的主机实际情况来的。 验证迁移结果 使用vsphere client登录vcenter 已经能看到新的虚拟机了,进一步查看该虚拟机的属性 虚拟机开机运行 成功进入系统了 查看虚拟机的状态 网络和磁盘以及文件都和迁移前一致,至此,服务器迁移工作已经完成。

loadrunner11 12002错误

“Winlnet replay instead of Sockets(Windows only)” 这个选项什么时候改选,什么时候不该选,默认是未勾选状态 1、错误详情:Httpsendrequest failed,Windows error code=12002........ web_custom_request("ajaxService_2")highest serverity level was error,0body bytes,0 header bytes 解决方案:run-time setting(F4) --- Internet Protocol ----Preference --- Advanced ,取消勾选“Winlnet replay instead of Sockets” 2、错误详情:connect to host "XXX" failed:[10054] Connection resdt by peer 此时需要勾选该选项

关于py-faster-rcnn编译时cudnn版本报错的问题

引言 在cudnn5以上,直接使用github上py-faster-rcnn的代码进行编译的时候会报很多关于cudnn的错误,这是因为随着cudnn的更新,原来fast rcnn的cu代码已经不再适应。需要将py-faster-rcnn中的cudnn代码进行更新。 具体涉及到: 1)将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp. 2)将./include/caffe/layers里的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp。 都替换成最新版的caffe里的相应的同名文件。 3)将./src/caffe/layer里的,所有以cudnn开头的文件,例如cudnn_lrn_layer.cu 都替换成最新版的caffe里的相应的同名文件。 但是这样操作费时费力还容易出错,最安全的方法就是使用git直接进行合并。 修改方法 cd caffe-fast-rcnn git remote add caffe https://github.com/BVLC/caffe.git git fetch caffe git merge -X theirs caffe/master

GPS 经纬度转换 百度、高德经纬度

为什么80%的码农都做不了架构师?>>> package com.ldygo.gw.gpsobd.utils; public class ECGeoCoordinateTransformUtil { static double x_pi = 3.14159265358979324 * 3000.0 / 180.0; // π static double pi = 3.1415926535897932384626; // 长半轴 static double a = 6378245.0; // 扁率 static double ee = 0.00669342162296594323; /** * 百度坐标系(BD-09)转WGS坐标 * * @param lng * 百度坐标纬度 * @param lat * 百度坐标经度 * @return WGS84坐标数组 */ public static double[] bd09towgs84(double lng, double lat) { double[] gcj = bd09togcj02(lng, lat); double[] wgs84 = gcj02towgs84(gcj[0], gcj[1]); return wgs84; } /** * WGS坐标转百度坐标系(BD-09) * * @param lng * WGS84坐标系的经度 * @param lat * WGS84坐标系的纬度 * @return 百度坐标数组 */ public static double[] wgs84tobd09(double lng, double lat) { double[] gcj = wgs84togcj02(lng, lat); double[] bd09 = gcj02tobd09(gcj[0], gcj[1]); return bd09; } /** * 火星坐标系(GCJ-02)转百度坐标系(BD-09) * * @see 谷歌、高德——>百度 * @param lng * 火星坐标经度 * @param lat * 火星坐标纬度 * @return 百度坐标数组 */ public static double[] gcj02tobd09(double lng, double lat) { double z = Math.

springboot线程池的使用和扩展

我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,帮助我们更方便的将业务逻辑提交到线程池中异步执行,今天我们就来实战体验这个线程池服务; 本文地址:http://blog.csdn.net/boling_cavalry/article/details/79120268 实战环境 windowns10;jdk1.8;springboot 1.5.9.RELEASE;开发工具:IntelliJ IDEA; 实战源码 本次实战的源码可以在我的GitHub下载,地址:git@github.com:zq2599/blog_demos.git,项目主页:https://github.com/zq2599/blog_demos 这里面有多个工程,本次用到的工程为threadpooldemoserver,如下图红框所示: 实战步骤梳理 本次实战的步骤如下: 创建springboot工程;创建Service层的接口和实现;创建controller,开发一个http服务接口,里面会调用service层的服务;创建线程池的配置;将Service层的服务异步化,这样每次调用都会都被提交到线程池异步执行;扩展ThreadPoolTaskExecutor,在提交任务到线程池的时候可以观察到当前线程池的情况; 创建springboot工程 用IntelliJ IDEA创建一个springboot的web工程threadpooldemoserver,pom.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bolingcavalry</groupId> <artifactId>threadpooldemoserver</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>threadpooldemoserver</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 创建Service层的接口和实现 创建一个service层的接口AsyncService,如下: public interface AsyncService { /** * 执行异步任务 */ void executeAsync(); } 对应的AsyncServiceImpl,实现如下:

实战:向GitHub提交代码时触发Jenkins自动构建

当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建; 原文地址:http://blog.csdn.net/boling_cavalry/article/details/78943061 前期准备工作 进行本章的实战前,推荐您参照《docker下的Jenkins安装和体验》做安装和体验的实战,以便对Jenkins服务有初步了解; 重要前提 GitHub收到提交的代码后要主动通知Jenkins,所以Jenkins所在服务器一定要有外网IP,否则GitHub无法访问,我的Jenkins服务器是部署在腾讯云的云主机上,带有外网IP;本次实战要提交源码到GitHub,所以您需要有一个GitHub号,并在上面创建工程; demo工程源码 本次用来在Jenkins上构建的工程是个springboot的web工程,地址是:git@github.com:zq2599/jenkinsdemo.git,用浏览器访问的地址是:https://github.com/zq2599/jenkinsdemo.git; 代码很简单,只有一个controller,接收http请求返回一个字符串,如下所示: @RestController public class Hello { @RequestMapping("/") public String sayHello(){ return "3. Hello jenkins, " + new Date(); } } 您需要在自己的GitHub创建一个项目,源码可以参照上述demo工程的源码; 实战步骤梳理 本次整个实战过程依次为如下步骤: GitHub上准备一个spring boot的web工程;GitHub上配置Jenkins的webhook地址;在GitHub上创建一个access token,Jenkins做一些需要权限的操作的时候就用这个access token去鉴权;Jenkins安装GitHub Plugin插件;Jenkins配置GitHub访问权限;Jenkins上创建一个构建项目,对应的源码是步骤1中的web工程;修改web工程的源码,并提交到GitHub上;检查Jenkins的构建项目是否被触发自动构建,构建成功后,下载工程运行,看是不是基于最新的代码构建的; webhook地址 webhook是通知Jenkins时的请求地址,用来填写到GitHub上,这样GitHub就能通过该地址通知到Jenkins; 假设Jenkins所在服务器的地址是:192.168.0.1,端口为8080,那么webhook地址就是http://192.168.0.1:8080/github-webhook 再次提醒,上述地址必须是外网也能访问的,否则GitHub无法访问到Jenkins; 配置GitHub 登录GitHub,进入要本次构建用到的工程;在工程主页面点击右上角的"Settings",再点击左侧"Webhooks",然后点击“Add webhook”,如下图: 如下图,在"Payload URL"位置填入webhook地址,再点击底部的"Add webhook按钮",这样就完成webhook配置了,今后当前工程有代码提交,GitHub就会向此webhook地址发请求,通知Jenkins构建: 生成Personal access tokens Jenkins访问GitHub工程的时候,有的操作是需要授权的,所以我们要在GitHub上生成授权的token给Jenkins使用,这就是Personal access tokens,生成步骤如下: 登录GitHub,进入"Settings"页面,点击左下角的"Developer settings",如下图: 跳转到"Developer settings"页面后,点击左下角的“Personal access tokens”,如下图: 跳转到"Personal access tokens"页面后,点击右上角的"Generate new token"按钮,如下图: 可能会提示输入GitHub密码,输入后跳转到创建token的页面,如下图所示,输入title,再勾选"repo"和"admin:repo_hook",再点击底部的"Generate token"按钮,就能产生一个新的access token,将此字符串复制下来,后面jenkins任务中会用到: Jenkins配置 GitHub Plugin插件,在"系统管理->管理插件"位置检查此插件是否已经安装,没有的话请先安装;配置GitHub,点击“系统管理->系统设置”,如下图:

HDU 5314 Happy King (点分治)

Happy King Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1077 Accepted Submission(s): 265 Problem Description There are n cities and n−1 roads in Byteland, and they form a tree. The cities are numbered 1 through n. The population in i-th city is pi. Soda, the king of Byteland, wants to travel from a city u to another city v along the shortest path. Soda would be happy if the difference between the maximum and minimum population among the cities passed is **no larger than** D.

Anconda环境下Vscode安装Python

这里使用的操作系统为win7/10,安装环境是使用Anconda搭建Python环境,然后在Vscode编辑器中安装Python插件,最终能够在Vscode环境下使用Python。 一、Anconda软件的安装 Anaconda is a completely free Python distribution (including for commercial use and redistribution). It includes over 195 of the most popularPython packagesfor science, math, engineering, data analysis. anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,比如ipython、ipython notebook、numpy等一些数据分析包,这样我们不必单独的安装各种工具包,简单有效! 官网下载地址为:https://www.anaconda.com/download/ 自己根据需要选择Python版本及32/64位环境,这里我选择的是Python 3.6版本,64位环境:Anaconda3-5.0.1-Windows-x86_64.exe。 和普通的软件安装一样,主要是要确保Anaconda的环境变量被添加到系统变量Path中。 安装完成后,win+R然后cmd看看是不是装好了,可以试试pip list看看装了哪些包。 检查安装路径为:D:\Program Files\Anaconda3,后面会使用的到。 二、Vscode下配置Python开发环境 VS Code下载地址为: https://code.visualstudio.com/Download 这里假定读者已在Windows环境下安装好了Vscode。 基本配置vscode环境 Python扩展插件安装 如下图,点击左侧边栏红色选中框,在输入框输入Python扩展插件的安装,安装完成后重新加载即可在已安装侧边栏中看到Python vscode基本配置 vscode的基本配置是通过json文件管理的,通过自定义配置覆盖默认配置。你可以在文件->首选项->设置,打开一个setting.json 上图是我的基本配置,右边红色选中框是我自己的用户自定义配置,包括字体设定、是否滚动鼠标,是否启动默认更新等。 // 以像素为单位控制字号。 "editor.fontSize": 17, "window.zoomLevel": 1, // 通过使用鼠标滚轮同时按住 Ctrl 可缩放编辑器的字体 "editor.mouseWheelZoom": true, // 配置是否从更新通道接收自动更新。更改后需要重启。default "update.channel": "none" 添加Python编译配置 我们在上文右边添加关于Python编译器的配置命令(注意配置中最后一行不需要逗号),读者需要修改自己Python的安装路径(在上文中Anconda的安装路径下) //配置python的路径 "

'numpy.int64' object has no attribute 'startswith'解决办法

想要通过遍历数据中的给出的几个列,匹配某些字符开头的字符串,如果有,则新建的last列的数值加2 Python原始代码如下: import pandas as pd import numpy as np patient=pd.read_csv(r'C:\Users\Administrator\full_cohort_data2.csv') last = np.zeros(patient.shape[0]) alist=['Fri','Sa','Th'] colum=['day_icu_intime','service_num','service_unit'] def charlson(day): for i in range(1776): for j in range(len(alist)): if patient[day][i].startswith(alist[j]): last[i]+=2 for k in range(len(colum)): charlson(colum[k])一直出现'numpy.int64' object has no attribute 'startswith',主要是因为'service_num'这列为数字,'service_unit'这一列有空值,无法使用pandas的内置的str函数 解决的办法就是在函数中直接将所有要遍历的列类型转换成str,函数修改成这个样子就可以了: def charlson(day): patient[day]=patient[day].astype(str)#将该列类型转换为str,列中的空值会被填补为nan for i in range(1776): for j in range(len(alist)): if patient[day][i].startswith(alist[j]): last[i]+=2

android自定义Toast——让你应用别具一格

简化Toast 简化为两参简化为一参 自定义toast 改变字的大小和背景样式自定义布局增加不同颜色标识不同的toast 总结 实际上,在github上层看到这种toast,但我的感觉是:用起来太麻烦了!我需要的要求是越简单越好! 简化Toast 原toast形式: Toast.makeText(this,”t”,Toast.LENGTH_LONG).show();或Toast.makeText(this,”t”,Toast.LENGTH_SHORT).show(); - 简化后: ToastUtil.shorts(“t”); ToastUtil.longs(“t”); 这样才方便简单。 1.简化为两参 这一步很简单,只需要这样: public class ToastUtil{ public static void shorts(Context context,String msg){ Toast.makeText(context,msg,Toast.LENGTH_SHORT).show(); } public static void longs(Context context,String msg){ Toast.makeText(context,msg,Toast.LENGTH_LONG).show(); } } 2.简化为一参 自定义Application 这个需要自定义application,假设为MyApp: manifest中设置: <application android:name=".MyApp" > </application> 在项目根目录创建类: public class MyApp extends Application{ private static MyApp mApp; @Override public void onCreate() { super.onCreate(); mApp = this; } public static void getApp(){ return mApp; } } 更改ToastUtil public class ToastUtil{ public static void shorts(String msg){ Toast.

next.js、nuxt.js等服务端渲染框架构建的项目部署到服务器,并用PM2守护程序

前端渲染: vue、react等单页面项目应该这样子部署到服务器 貌似从前几年,前后端分离逐渐就开始流行起来,把一些渲染计算的工作抛向前端以便减轻服务端的压力,但为啥现在又开始流行在服务端渲染了呢?如vue全家桶或者react全家桶,都推荐通过服务端渲染来实现路由。搞得我们慌得不行,不禁让我想起一句话:从来没有任何一门语言的技术栈像Javascript一样,学习者拼尽全力也不让精通。没办法,流行,咱们就得学! 前断时间写了一篇vue、react等单页面项目应该这样子部署到服务器,结果反响不错!最近好多朋友私信或邀请问很多关于next.js和nuxt.js的问题,比如关于nextjs 和 nuxtjs如何部署?,pm2如何配合?...在这里我们就一起讨论下在服务器上使用PM2守护next.js、nuxt.js等服务端渲染框架构建的项目!该篇我们只讨论服务端渲染应用部署,静态应用部署就是我前段时间写的vue、react等单页面项目应该这样子部署到服务器。 Nginx配置 既然是应用,我们就应该有域名,在这里我们以 nginx配置 为例,简单配置如下: Next域名:http://next.sosout.com/ Nuxt域名:http://nuxt.sosout.com/ http { .... # 省略其他配置 server { listen 80; server_name *.sosout.com; if ($host ~* "^(.*?)\.sosout\.com$") { set $domain $1; } location / { if ($domain ~* "next") { root /mnt/html/next; } if ($domain ~* "nuxt") { root /mnt/html/nuxt; } proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } access_log /mnt/logs/nginx/access.log main; } #tcp_nopush on; include /etc/nginx/conf.

codeforces 913C Party Lemonade

http://www.elijahqi.win/2018/01/09/codeforces-913c-party-lemonade/ ‎ C. Party Lemonade time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A New Year party is not a New Year party without lemonade! As usual, you are expecting a lot of guests, and buying lemonade has already become a pleasant necessity. Your favorite store sells lemonade in bottles of n different volumes at different costs. A single bottle of type i has volume 2i - 1 liters and costs ci roubles.

Android性能优化(一)App启动原理分析及启动时间优化

一、启动原理解析 Android是基于Linux内核的,当手机启动,加载完Linux内核后,会由Linux系统的init祖先进程fork出Zygote进程,所有的Android应用程序进程以及系统服务进程都是这个Zygote的子进程(由它fork出来的)。其中最重要的一个就是SystemServer,在ZygoteInit类的main方法中,会调用startSystemServer方法开启系统里面重要的服务,包括ActivityManagerService(Activity管理器,简称AMS,可以理解为一个服务进程,负责Activity的生命周期管理)、PackageManagerService(包管理器)、WindowManagerService(窗口管理器)、PowerManagerService(电量管理器)等等,这个过程中还会创建系统上下文。 public final class SystemServer { //zygote的主入口 public static void main(String[] args) { new SystemServer().run(); } public SystemServer() { // Check for factory test mode. mFactoryTestMode = FactoryTest.getMode(); } private void run() { ...ignore some code... //加载本地系统服务库,并进行初始化 System.loadLibrary("android_servers"); nativeInit(); // 创建系统上下文 createSystemContext(); //初始化SystemServiceManager对象,下面的系统服务开启都需要调用SystemServiceManager.startService(Class<T>),这个方法通过反射来启动对应的服务 mSystemServiceManager = new SystemServiceManager(mSystemContext); //开启服务 try { startBootstrapServices(); startCoreServices(); startOtherServices(); } catch (Throwable ex) { Slog.e("System", "******************************************"); Slog.e("System", "************ Failure starting system services", ex); throw ex; } .

在VMware中配置CentOS 7.2网络

这里虚拟机网络适配器使用NAT模式 1.打开VMware,点击编辑,点击虚拟网络编辑器(如果不能打开,请先关闭当前打开的虚拟机以后再进行尝试) 2.点击更改配置,在弹出提示时点击“是”即可 3.选中图中第一步的内容,即NAT模式,然后点击NAT设置(这里还可以在下方更改子网IP,子网掩码等) 4.记住网关,用于之后配置网络 5.在命令行输入ifconfig,查看网卡名称 6.输入vi /etc/sysconfig/network-scripts/ifcfg-ens33,进行网络配置 7.点击i键,当屏幕出现insert时可以进行插入/修改操作,将以下内容进行修改 BOOTPROTO=static #指定ip为静态ip ONBOOT=yes #开机自动加载配置文件 IPADDR=192.168.148.4 #ip地址改为192.168.148.4 (应在虚拟网络编辑器中NAT模式的网段内) NETMASK=255.255.255.0 #配置子网掩码 GATEWAY=192.168.148.2 #刚才在步骤4中记下来的网关 DNS1=192.168.148.2 #配置DNS为网关即可 8.编辑完成后点击q键,insert消失后点击shift和冒号":"组合键,屏幕下方出现":"时,输入wq(保存并退出,一定是小写,Linux与windows不同,对大小写敏感),然后点击回车,正常退出即保存成功 9.输入service network restart重启网络 10.日常ping百度,能够ping通就证明网络已经配置完成了

Centos7 下Kubernetes集群安装部署

操作环境 网络拓扑图 、 操作环境: k8s-master: OS: [root@k8s-master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) etcd: [root@k8s-master ~]# etcd --version etcd Version: 3.2.9 Git SHA: f1d7dd8 Go Version: go1.8.3 Go OS/Arch: linux/amd64 Kubernetes: [root@k8s-master ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"269f928217957e7126dc87e6adfa82242bfe5b1e", GitTreeState:"clean", BuildDate:"2017-07-03T15:31:10Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} k8s-node1&k8s-node2: OS: [root@k8s-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) etcd: [root@k8s-node1 ~]# etcd --version etcd Version: 3.

win10系统安装mscomm32.ocx控件

最近在用vs2010做一个串口通信的MFC,但是发现没有找到通信控件,以为是安装的vs2010出了问题,于是重新安装了一个vs2013尝尝新,但是安装完后还是没有找到这个通信控件。百度一翻后才知道电脑上没安装这个控件,要自己安装,于是又开始各种百度去装控件,在安装mscomm32.ocx控件过程中出现了一些问题,最后通过下面这种方式安装好了。自己做个笔记同时分享给大家。 1、首先下载mscomm32.ocx,解压复制放在C:\Windows\SysWOW64\ 目录下。网上一个前辈提供的下载地址:http://download.csdn.net/download/mylovepwy/9341111 2、在C:\Windows\SysWOW64\ 目录下找到cmd.exe文件,右键单击,“以管理员身份运行”,打开cmd; 3、输入regsvr32 %windir%\SysWOW64\mscomm32.ocx会出现安装成功提示。

Caused by: java.lang.SecurityException

01-02 03:56:52.751 6767 7344 E SurfaceFlinger: Permission Denial: can't access SurfaceFlinger pid=30533, uid=1000 01-02 03:56:52.753 30533 30533 D AndroidRuntime: Shutting down VM 01-02 03:56:52.757 30533 30533 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main 01-02 03:56:52.757 30533 30533 E AndroidRuntime: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.USER_SWITCHED flg=0x50000010 (has extras) } in com.android.server.accessibility.AccessibilityManagerService$2@5f50865 01-02 03:56:52.757 30533 30533 E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1172) 01-02 03:56:52.757 30533 30533 E AndroidRuntime: at android.

安卓使用友盟推送问题总结

最近用了一下友盟的推送,遇到一些问题,做了一下总结. 总结 总结一 如何在未点击推送通知时处理一些操作.友盟文档中只给出了自定义消息和自定义通知栏动作的代码示例.其实在UmengMessageHandler回调中还有一个回调方法dealWithNotificationMessage用于处理这种情况,当然可以通过自定义消息来完成这个功能,手动去创建一个推送通知,但是这里偷个懒.代码如下: // 友盟消息处理 UmengMessageHandler messageHandler = new UmengMessageHandler() { @Override public void dealWithCustomMessage(final Context context, final UMessage msg) { // 自定义消息 } @Override public void dealWithNotificationMessage(Context context, UMessage uMessage) { super.dealWithNotificationMessage(context, uMessage); // 收到消息时的回调方法(不点击通知也会走),自定义消息和通知都会走这个回调,可以在这个回调方法中做一些预处理 } }; // 自定义通知栏动作 UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() { @Override public void dealWithCustomAction(Context context, UMessage msg) { } }; 总结二 如何清除掉推送消息.因为项目中带有用户体系,所有当用户退出登录或者被顶号,需要去清除掉之前收到的通知,为用户隐私做考虑.友盟文档中并没有提到这块,而且大概看了一下友盟封装的Notification(UmengMessageHandler类中),发送通知时的ID是随机数,代码如下: // 随机数 this.f = (new Random(System.nanoTime())).nextInt(); ... // 发送通知 int var6 = this.

Ubuntu下使用Python开发Spark程序

1、安装配置好Spark环境,确认执行Spark目录下的/bin/pyspark能够成功进入。 Spark 集群搭建从零开始之1 Scala的安装与配置 Spark 集群搭建从零开始之2 Spark单机伪分布式安装与配置 Spark 集群搭建从零开始之3 Spark Standalone集群安装、配置与测试 2、安装anaconda2 https://www.anaconda.com/download/#linux bash Anaconda2-5.0.1-Linux-x86_64.sh 3、sudo pip install pyspark 4、进入jupyter notebook,编写程序测试 基本上SparkContext那句不报错就说明已经能够启动Spark 附上环境变量: # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). export JAVA_HOME=/usr/lib/jvm/java-8-oracle export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH export HADOOP_HOME=/home/chenjie/hadoop-2.6.5 #export HADOOP_HOME=/home/chenjie/hadoop-2.6.5-net export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_ROOT_LOGGER=INFO,console export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="