- 博客(33)
- 收藏
- 关注
原创 rebar3 简单使用
下载下载编译好的版本$ wget https://s3.amazonaws.com/rebar3/rebar3 $ chmod +x rebar3设置path,方便使用$ pwd$ /data/bin/rebar3$ export PATH=$PATH:/data/bin/rebar3新建项目rebar3 定义了几种类型的项目,app cmake escrip
2017-04-25 16:14:20 5443
原创 信息的表示和处理
信息存储字节与字节的寻找字节,一个字节是8位,计算机使用字节作为最小的可寻址的存储器单位,并不是在存储器里寻找单独的位。 程序将存储器看成一个非常大的字节数组,这个非常大的字节数组就是虚拟存储器(virtual memory)。存储器上的每个字节都能用具体的地址来寻找,这些地址的集合就是虚拟存储空间。 虚拟存储空间是在程序角度上来看,对计算机存储器的抽象。字和字长字和字长这两个概念是描述计算机硬
2017-02-15 17:46:04 456
原创 统计某进程到mysql的连接数
1、 netstat是有权限的限制的,如果不是使用root用户执行,很可能无法看到全部的结果,如下 netstat -tnp | grep 3306(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
2017-02-14 17:42:34 1902
原创 erlang rpc 远程调用
rpc启动rpc模块的启动过程很简单,并没有初始化做太多事情,以{local,rex}的名称启动了一个gen_server进程,然后以gb_trees的数据结构来存储gen_server的state。业务进程调用rpc:callrpc模块中比较常用的就是rpc:call和rpc:castcall/4 和 call/5 这个两个接口的区别,只是在timeout时间是自定义还是infinity而已。
2016-11-28 15:19:22 6155
原创 Linux格式化硬盘
格式化硬盘是指初始化硬盘的文件系统。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。 linux上的常见的文件系统 ext2 ext3 ext4。1 inode每个文件对应一个inode,文件属性信息存储在inode中,文件本身的数据存储在block里面。文件系统的又分为inode区域和block区域,inode数量的多少限制能最多创建
2016-11-28 10:55:45 10275
原创 CentOS7配置samba4.2到Win8
samba服务在配置的时候老是出错,让我非常郁闷,今天临睡前突然想到一个问题,我在securecrt上登录的是root账号,而samba上配置的是另一账号,结果导致权限不足。 因为是用root登录的所以对权限不足一直没考虑到用户去,只是一直在考虑配置问题,想到这点后,我有测试下,果然可以了。samba配置的主要工具 vim /etc/samba/smb.conf 配置文件太容易出错了,网上
2016-07-05 11:29:54 3025
原创 emysql 源码阅读
emysql 也是一个常用的erlang mysql数据库驱动。相比较erlang_mysql_driver,emysql的代码结构更加清晰。emysql的使用非常方便,先执行emysql:start、emysql:add_pool,然后调用emysql:fetch/execute就可以开始执行sql语句了。1 emysql的启动 emysql:start 以监督树进程的形式,启动了两个
2016-07-01 14:43:53 2690
原创 erlang_mysql_driver 源码分析4
其实本来是要讲tcp粘包问题的,刚好erlang_mysql_driver里面就有关于这个问题的一种解决方式,所以干脆就以erlang_mysql_driver的源码为例吧。tcp 粘包问题mysql的协议包是建立在tcp的基础上的,而tcp协议是流协议,也就是在使用的时候可以保证按顺序收到,但是并不是对方发送多少次,我们就能接收多少次。这就是tcp粘包问题了, 网上关于tcp粘包问题的
2016-06-23 17:59:44 1154
原创 prim_inet:async_accept
gen_tcp:acceptAccepts an incoming connection request on a listen socket. Socket must be a socket returned from listen/2. Timeout specifies a timeout value in ms, defaults to infinity. gen_tcp模块提供的a
2016-06-21 12:58:30 4271 1
原创 erlang_mysql_driver 源码分析3
mysql_conn和mysql_recv 前面我们讲了,mysql_conn与mysql_dispatcher的关系,mysql_dispatcher维护多个连接池,每个连接池里有多个mysl_conn进程。我们查询sql时,由mysql_dispathcer选择合适的mysql_conn执行sql。 接下来,关心的是mysql_conn是如何执行sql的?mysql_recvmysql_c
2016-06-17 16:03:56 1005
原创 erlang_mysql_driver 源码分析1
erlang_mysql_driver 是个mysql的数据库驱动 源码主要包含 mysql mysql_conn mysql_recv mysql_auth 这几个模块 mysql模块提供给外部调用的接口,包括启动、添加连接、执行sql语句。 mysql模块的另一主要功能是维护mysql_conn连接池,在执行sql语句时,选择合适的mysql_conn进程进行sql处理。 mysql_c
2016-06-17 12:58:36 1275
原创 erlang_mysql_driver 源码分析2
pool模型mysql:fetch 和 mysql_conn今天想起网络上的一片文章,说erlang_mysql_driver的连接池实际上是没有意义的。 大概意思是,我们使用mysql:fetch去执行sql语句,mysql:fetch会call一条消息到mysql_dispatcher进程中。而当我们同一时刻大量调用mysql:fetch的时候,mysql_dispatcher中就会有多条ca
2016-06-16 23:02:13 1624 9
原创 erlang 取整数的位或设置整数的位
经常会用到使用一个32位或64位的数来存储有两种状态的列表,(列表长度=比如使用2,二进制10,来表示第一位为0,第二位为1最终我们存储的时候,只需要存储一个32位的数就可以完成这个列表状态的存储了。当我们决定使用这种实现的时候,就需要经常使用到两个接口,get_pos_state(Pos, Num) -> 得出Num的Pos位的状态,返回0或1set_pos_state(Po
2016-02-21 21:18:03 1837
原创 看到一句话,感受良多
以为自由就是想做啥做啥。后来才发现自律者才会有自由。当一个人缺乏自律的时候,他做的事情总是在受习惯和即时诱惑的影响,要么就是被他人的思想观念所扰,几乎永远不可能去做内心真正渴望的事。
2014-09-29 01:24:23 687 2
原创 IA__gdk_gc_new: assertion 'drawable != NULL' failed
在睡意朦胧之际,记录下晚上的一个小错误。
2014-09-08 00:52:26 1505 1
原创 const string为函数参数的警告
今天编程遇到的一个 testpasv.c: In function ‘string_ctl’:testpasv.c:7:3: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default] p=str;
2014-09-04 11:20:32 1303 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人