- 博客(9)
- 资源 (30)
- 收藏
- 关注
原创 技术债务终于还得差不多了
这周把License授权给改了,由8个文件变成了3个,由2个工具变成1个,1515行觥筹交错的代码变成了1175行秩序井然的代码,维护难度由没有维护的无穷大变成很容易看得懂,支持的license长度由117字节变成无限,支持的授权方式由文件变成文件和网络。这标志着我们技术债务还得差不多了,很快都是容易维护的社会主义产物了。无债一身轻啊!无债一身轻啊!无债一身轻啊!重要的事情说三遍,重要的事情说三遍,
2016-01-29 13:02:13 2879
原创 C代码对比,走心和不走心的程序猴
C估计是最普及的,几乎写代码都会抡两行出来,一听说写C写了240个月,那就得当面磕头,我还真见过时间越长代码越烂的(这个和英语4级是一样,大一过4级最容易,大四几乎很难过,因为从高中毕业就开始退化),所以我要说,好的代码和年纪没有关系,有些人就是好,有些人就是差,而且永远都不会长进。对比下一个程序,从RSA的公钥里面取出公钥来,打印出来,这个其实就没啥功能,也能看出来水平高低?是的。#include
2016-01-27 17:49:33 2944 2
原创 RaspberryPi和Arduino温室恒温改进
前一篇文章使用RaspberryPi和Arduino控制温室的温度,发现树莓派读取温度是总会出错,原因在于DHT11的控制协议是微秒级别的,但是树莓派达不到,因此改成传感器都有Arduino控制,树莓派和Arduino之间使用串口通信。Arduino上运行的程序如下:Arduino Commander,这个程序用到了SimpleSerial和SimpleDHT这两个库。树莓派上运行的程序是:Rasp
2016-01-24 00:34:33 2723
原创 RaspberryPi和Arduino控制温室温度
树莓派给Aruduino供电,通过PL2303芯片USB转TTL串口通信。Arduino的代码如下:void setup() { pinMode(3, OUTPUT); Serial.begin(115200);}char v;void loop() { // read from serial, // when got nothing, delay 1s and retry, w
2016-01-22 00:23:00 4049 1
原创 RaspberryPi2树莓派USB转串口连接Arduino
PI通过USB转串口连接Arduino我用树莓派2连接Arduino,然后通过Arduino控制继电器和其他设备。 树莓派连接Arduino大致有几种方法:TTL串口直接连接,有人说需要转电平,我没有试。I2C或SPI连接,我没有试。USB转TTL后,TTL连接Arduino,我用的这种方法。下面是用到的各种物件:树莓派2:http://item.jd.com/1646034971.ht
2016-01-20 00:09:04 11071
原创 RaspberryPi+Raspivid+FFMPEG软件编码数据
RaspberryPi+FFMEPGRaspberryPi的摄像头模块是500万像素,加载驱动后可以用ffmpeg编码设备/dev/video0输出流。FFMEPG摄像头的驱动是在树莓派的内核中的,不用下载和重新编译,直接加载:sudo modprobe bcm2835_v4l2可以看到设备就存在了:winlin@raspberrypi:~$ ll /dev/video0 crw-rw----+
2016-01-15 13:25:19 8491 1
原创 RaspberryPi自动连接多个无线,并且自动汇报IP
如何让树莓派自动连接Wifi,并且将自己的IP汇报给公网(或者内网)服务器呢?每次都连接显示器,或者串口TTL去查IP,觉得太麻烦了。自动连接Wifi我写了个程序raspi-wlan,可以自动连接Wifi,测试可以和EDUP N8508GS直接使用。买了这个无线网卡,然后插上USB后,需要将raspi-wlan下载到树莓派,并添加到自动启动。第一步,安装GIT:sudo apt-get instal
2016-01-12 21:55:17 3340 2
原创 [MarkDown]还是使用tcmalloc检查内存错误
Google的tcmalloc可以做内存越界检查,也就是查野指针。野指针是应用程序最难查的崩溃的问题。google真的很强大,赞!基本原理就是在分配时分配到页的底部,这样越界时就会报错了。也就是PAGE_FENCE,这个选项是可以通过环境变量设置的,代码在:src/debugallocation.cc: 101DEFINE_bool(malloc_page_fence, EnvToBool
2016-01-05 12:31:03 5456 2
原创 golang的bufio用于内容解析
golang提供了io.Reader,也就是读内容,可以从很多地方读,譬如:// from string.var r io.Reader = strings.NewReader(string("hello, world"))// from bytes.var r io.Reader = bytes.NewReader([]byte("hello, world!"))// from bytes
2016-01-03 14:10:01 7569
Pattern.Oriented.Software.Architecture.Volume.2
2012-11-29
mp4 file format引用文档
2012-11-04
The.Cpp.Programming.Language.Special.Edition
2012-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人