- 博客(32)
- 收藏
- 关注
原创 对字符编码的一些理解
记住: Unicode是一个字符集,不是具体的编码方案,而UTF-8、UTF-16才是编码。Unicode字符集和ASCII是一个类型的概念。 字符集可以说是一个抽象的概念,就是所有文字的集合,然后每个字都有一个独一无二的编号。而到具体的实现:就是这个编号到底是用几个字节去存放,就是UTF-X们要干的事儿了。 编码是一个实际的概念,就是字符集中的字符在计算机中如何用字节表示出来。
2017-05-27 19:07:18
916
原创 Virtuabox中Centos 7.3安装devstack后记
折腾了几天devstack,终于把这货装上了,期间真是曲折万千哪!闲话不说,扯正题,说说我在安装devstack过程中遇过的坑吧。为了加速安装过程,采用了trystack的git源和镜像源,在此先附上我的local.conf的配置(借鉴了陈沙克日志的分享的github上配置: https://github.com/shake/devstack):[[local|localrc]]# use TryS
2017-04-06 23:03:11
2958
原创 Virtualbox 与VMWare中网络模式区别
之前一直在VMWare上玩儿虚拟机,对其上的网络模式还算熟悉,可是这几天切换到virtualbox上之后,发现不是那么回事儿了,查了资料才发现这两个虚拟在某些模式上还是有区别的。我们先来看Virtualbox,它支持5种网络模式:NATNAT NetworkInternalHost-OnlyBridged而VMWare呢,则支持3种:NAT Host-Only BridgedHo
2017-04-05 23:25:41
5244
1
翻译 Docker Machine是什么
Docker Engine在说Docker Machine之前,我们先说说Docker Engine,也就是人们嘴里边常说的“docker”。Docker我们一般理解的,都是C/S模型,用户通过docker client向docker daemon发送REST 请求。于是Docker Engine包括这么几个部分:Docker Daemon — docker 的守护进程,属于C/S中的serv
2017-04-03 16:30:19
7481
原创 Centos7 中 python 开发环境准备
需要安装的工具有setuptools、pip、ipython、virtuanenv、virtualenvwrapper等
2017-04-02 11:20:54
2486
原创 python REST API 客户端的 URI 生成器
进行python web开发的时候,我们往往关注的是到后端 REST API 的url路由分发:一个uri是如何映射到某个controller的。比如openstack中常用的轻量级web框架pecan,就是基于对象的路由分发。同样的,在进行openstack开发的时候,我们通常会需要针对运行在后端的WSGI Server上的REST API,写一个python版本的客户端lib,这个客户端封装了对
2017-04-01 23:56:19
1463
原创 遇坑小记之Mariadb
最近搞xxx管理平台的部署,遇到这样一个问题:一开始使用mariadb安装完成之后使用默认的配置,没有改动过/etc/my.cnf中任何参数。结果有一天同事告诉我说数据库一直提示一个错误:ERROR 1040 (HY000): Too many connections原因的话,字面上看嘛,很简单,就是连接数太多了,数据库默认的数据连接数设置的太小了。那么,问题来了,现在系统占用的连接数是多少呢,数据
2017-03-30 17:41:04
1546
原创 关于SSH公钥验证中错误认知的纠正
今天浏览了一些网站上关于SSH公钥验证的文章,其中关于公钥验证的具体过程,讲的不够到位,容易受其误导,需要纠正一下。首先有一个前提是:远程服务器上已经留存了本地用户的公钥。本地用户的公钥,一般的会留存在服务器的该用户家目录下的.ssh/authorized_keysw下文件中,至于怎么留存到服务器上,你可以通过ssh-keygen生成密钥对之后手动拷贝过去等等,这都不是重点,我们关心的只是验证的交互
2017-03-26 18:21:02
2010
原创 前端无框架式剪切板--clipboardjs
分享一个非常好用的前端剪切板工具 – clipboard: 官网:https://clipboardjs.com/源码的github地址是:https://github.com/zenorocha/clipboard.js/这个是在浏览vagrant的box下载列表时,无意中“偷看”到的,感觉和github上的剪切板如出一辙,就拿来借用一下咯。 看起来非常强大,各个浏览器的兼容性不错:这么好用的
2017-03-25 16:02:47
706
原创 Shell 代码调试之PS4
PS1~4原是shell中内置的环境变量,我们来查看一下:node2:~ # echo $PS4+node2:~ # set | grep PS4PS4='+ 'node2:~ # 因此我们就可以增加一些内置变量来重新定义$PS4的值,增强-x选项的输出信息。例如在我们的代码内部可以这样写:set -x xtrace_ps4=$PS4export PS4='+{\$LINENO:${FU
2017-03-10 13:36:24
2270
1
原创 RAID中VD—虚拟驱动器的理解
百度知道上有一个关于RAID概念的提问,答案很清晰明了。问题是关于RAID中的虚拟驱动器的: raid 的 虚拟磁盘的 含义 为什么 做raid 要建立 raid 磁盘组 ? 在 raid 下 还有 再建立 虚拟磁盘 ? 为什么 做raid 之前 要设置 虚拟磁盘 呢? 磁盘组 和 虚拟磁盘 的 意义是什么 啊?回答的挺好: 不是做raid前设置虚拟磁盘。设置虚
2016-10-09 17:21:53
11729
3
原创 git add 和 git reset
git add 和 git reset牵扯到很多对.git目录下文件的修改和操作,从大体上讲,这两个操作是互逆的。想要搞懂它们之间的关系和互逆性,就先要搞懂这两个操作的底层操作。使用$ git add –help查看git的具体含义。git-add - Add file contents to the index ----意为将文件内容添加到索引。如果这个文件已经有索引了,add还有一层意思,如果
2016-09-26 17:12:20
2876
原创 Hibernate的bug之别名
今天早上又出现了类似的问题,最后找到问题的所在是在hiberna上时,真是气炸了!! 尼玛好好的一句sql,在数据库中执行,没有一点儿问题,在hibernate中一直报错:hibernate (JDBCExceptionReporter.java:234) - Column 'id' not found.解决办法也是很简单,在数据源连接url后边加一句配置:?useOldAliasMetadata
2016-09-08 11:22:49
1232
原创 Mac OSX上虚拟机Centos7安装virtualbox guest addtions
安装virtuabox之后,如果想在宿主机和virtualbox中虚拟机Centos共享文件夹,就需要安装Guest addtions。 如何安装,虚拟机启动之后,点击虚拟机上边的菜单 Device > Insert Guest Addtions CD image… ,默认情况下,会在虚拟机centos中添加一个磁盘。使用df查看,返现没有这样的磁盘,再使用lsblk查看,会发现多出一个名字叫
2016-09-04 23:53:47
4053
原创 Java类路径之getResource 和 getResourceAsStream
类签名:java.lang.Classpublic java.net.URL getResource(String name)找到指定名称的资源。使用用相关类去搜索资源的规则由这个类的类加载器实现。这个方法是这个类(类对象,不是类实例)的类加载器的代理。如果当前类对象是由bootstrap 类加载器加载的,这个方法代理的是ClassLoader.getSystemResource方法。在代理之前,
2016-09-03 10:06:52
1699
原创 java concurrent 包中的Sync类
先看一个这个类的签名:package java.util.concurrent.lockspublic abstract class AbstractQueuedSynchronizerextends java.util.concurrent.locks.AbstractOwnableSynchronizerimplements java.io.Serializable提供一个阻塞锁和相关同步
2016-08-31 10:15:18
2940
原创 CountDownLatch认知——同步协调器
java.util.concurrent.CountDownLatch是JDK1.5引入的并法包中的一个工具类,用来做并发线程间的同步。我们来看一下它的类说明信息:一个同步辅助,它允许一个或者多个线程等待——直到一系列在其他线程中的操作完成之后才进行。一个CountDownLatch 由一个给定的count总数初始化。await方法会一直阻塞直到当前count值通过调用countDown方法减为零,
2016-08-29 09:55:48
836
原创 gRPC Java代码生成
本文讲述protocol buffer编译器会由协议定义文件生成什么样的代码。proto2和proto3的区别将被高亮——注意,本文说的是存在于生成代码中的区别,不是基本的消息类/接口——它们在这两个版本中是一样的。在开始本文之前,你应该先看一下proto2的语言指南和proto3语言指南。编译器调用Protocol buffer 编译器在遇到 –java_out= 命令行标识时会产生Java输出。
2016-08-24 14:30:20
8875
原创 gRPC proto3语法指南
本文将描述如何使用protocol buffer 语言构造你的protocol buffer数据,包括.proto文件语法规则,以及如何由.proto文件生成数据访问类。本文涵盖了proto3版本的协议语言:想了解proto2的语法,查看 Proto2 语言指南.这是一个参考指南——给出了一步一步的操作的示例,示例使用了本文中描述的很多特性,这里有适合你所选语言的教程:定义一个消息类型首先让我们来看
2016-08-24 10:39:53
18022
原创 git操作概念理解
远程仓库管理1、如何列出远程仓库的名称:git remote:只简单列出远程跟踪仓库的名字git remote -v:在远程跟踪仓库名字后边显示仓库的地址URL2、添加远程仓库git remote add xxxx https://xxxx/yyyy/zzz添加完成之后,可以在 .git 目录下的config文件中看到,新添加的配置:分支1、查看分支git branch或者git bran
2016-08-23 10:04:17
485
原创 Maven插件的编写
Eclipse上如果想要开发Maven的插件,首先保证该eclipse已经安装了m2e插件。IDEA则自带了Maven的插件,可以直接进行开发。Eclipse新建一个Maven工程 2 选择由archetype生成3 选择archetype在filter选项中输入plugin进行过滤,选择筛选出来的第一个archetype:maven-archetype-plugin。4 填写坐标信息5
2016-08-21 17:24:41
4852
原创 Maven官方指南
安装过程略~ 参见:Maven安装Maven的配置Maven安装完成之后,需要进行一些自定义的配置,以后用起来也更方便。 官方文档给出的配置方式有三个级别:1、环境变量级别:MAVEN_OPTS这个变量包含了运行Maven的JVM的启动参数,同时可以为Maven提供额外的全局选项,例如JVM的内存设置:-Xms256和-Xmx512m。这种配置一般出现在build一些大型项目的时候,比如运行m
2016-08-20 16:17:00
1750
原创 gRPC-java的编译
从github上克隆到本地$ git clone https://github.com/grpc/grpc-java.git2.切换分支想尝试0.15.0版本的,可以切换到v0.15.x分支上$ git branch -a ——显示分支列表* master remotes/origin/HEAD -> origin/master remotes/origin/android r
2016-08-19 18:45:24
4910
原创 gRPC动手实践
创建Maven项目使用IDEA作为gRPC的开发IDE,新建一个空的maven工程(不从archetype原型生成)。创建完成之后,修改pom.xml,向其中添加gRPC-java的依赖和protoc插件项:gRPC-java的依赖: <dependencies> <dependency> <groupId>io.grpc</groupId>
2016-08-18 10:15:17
21076
3
原创 gRPC初探
概览在gRPC的官方文档中这样描述grpc的特点:第一点:强大的接口描述语言(Powerful IDL) Protocol Buffers是一个强大的二进制序列化工具集和语言,你可以使用Protocol Buffers定义你的接口。 第二点:支持十种语言的类库 为各种语言编写的服务自动生成相应语言的客户端和服务端存根(也就是接口) 第三点:基于HTTP2协议 基于HTTP2标准设计,带了许
2016-08-17 10:08:37
16279
原创 Spark 启动脚本分析
一般的启动集群途径是执行位于SPARK_HOME/sbin目录下的start-all.sh脚本文件,我们来看一下这里边都有些什么猫腻(强烈建议,查看本文之前先去学习一下shell的编程基础)。start-all.sh: 这个文件是一个总控脚本,它会调用其他的脚本来完成整个集群的启动。#!/usr/bin/env bash# Licensed to ... --省略授权信息# Start all sp
2016-08-12 14:49:42
1804
原创 spark源码编译后记
最近准备动手实践一下spark的源码编译安装,折腾了好久,最后也被折磨了好久,在此记录一下并安抚一下一连几天来郁闷的心情。先陈述一下背景:之前,我从spark官方的github网页上下载下来了一个最新的master分支的源码包(不是git clone),版本是1.6.2的zip。编译之前也各种百度,按照网上资料的步骤一步一步走。经过了漫长蛋疼的等待时间之后,报错了,提示找不到jar依赖,只好又去翻个
2016-08-11 16:14:49
2157
原创 Mysql 远程访问控制--10038问题的解决
帮朋友维护一个php的网站,用Navicat连接ECS虚拟机的Mysql服务一直失败,出现`Can't connect to mysql server on xxx.xxx.xxx.xxx(10038)`的问题,加上之前对Mysql的配置一直不是很熟悉,碰到过很多的坑,就记一下,免得以后还得各种查。虽然Mysql也是Oracle的,但是Mysql的权限管理和Oracle还不一样,之前在创建Mysql
2016-08-04 13:16:50
16267
原创 Angularjs中的路由Trick
Angularjs 提供了一套自动路由的机制,对前端人员来说真是开发利器,使得我们不需要刷新页面,也可以进行页面跳转。但是在使用过程中会有很多让人觉得混乱的地方。其实是URI构成的理解还不到位。借助于OData官网的文档,我们可以看看URI的组成。明白了这些结构,我们就可以理解angular提供的一些方法的含义,比如说我们进行一个路由跳转的时候,用的最多的是 $location.path(“/xxx
2016-08-04 12:56:03
752
原创 查看java class文件的编译版本号
用maven做项目依赖管理,依赖了一个其他组开发的一个基础包。结果,在使用maven进行编译打包的时候,报了错: Unsupported major.minor version 51.0。 注:我本机上目前只安装了 jdk 1.8使用Eclispse自带的工具,即使看不到源码,也还可以看到该class当时编译器的版本。如果没有eclipse,也可以使用java自带的工具,查看 cla...
2016-08-03 14:04:46
30533
原创 当java碰到防火墙
最近又碰到一个蛋疼的问题,项目中使用maven-jetty-plugin启动嵌入的jetty作为app server,设置了监听端口号为8080,启动也没有问题,可以看到成功提示:使用netstat查看端口占用情况我本机使用127.0.0.0::8080/xxxx 和 localhost:8080/xxxx 以及使用本机的ip地址10.101.211.37:8080/xxxx 访问都没有问题。 但
2016-08-02 13:09:11
7880
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅