July 17th, 2016

Linux下的静态库、动态库和动态加载库

库的存在极大的提高了C/C++程序的复用性,但是库对于初学者来说有些难以驾驭,本文从Linux的角度浅谈Linux下的静态库、动态库和动态加载库。

May 16th, 2016

Golang服务器的网络层实现

由于最近有接触到一些长连接的服务器实现,对网络模型有所学习。对基于C/C++的网络模型实现和基于GoLang的实现对比下来,发现Golang的网络模型编程难度大大降低,这得益于Golang的goroutine,可以在编程的时候肆无忌惮的创建并发”线程”,当服务器能为每一个客户端都开启若干”线程”的话,编程变的简单很多。

February 29th, 2016

I/O多路复用和Socket

由于IO操作涉及到系统调用,涉及到用户空间和内核空间的切换,所以理解系统的IO模型,对于需要进入到系统调用层面进行编程来说是很重要的。

December 14th, 2015

漫谈iOS程序的证书和签名机制

接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜。于是,花了一点时间去研究了一下iOS这套证书和签名机制,并撰文分享给需要的朋友。由于本人才疏学浅,多有遗漏或错误之处,还请大神多多指教。

December 2nd, 2015

开始vim练级

在编辑器界流传着一个神话:vim是编辑器之神,emacs是神用的编辑器。听上去就那么高大上,好像遥不可及一般。笔者曾经使用的最多的编辑器是visual studio,作为一款IDE,vs可以说是相当出色的,伴随.net开发那段时间。后来,随着使用.net逐渐变少,慢慢开始做一些前端和php的东西,逐渐将编辑器定位于sublime,因为追求是小巧和速度。然而,这些基于GUI的编辑器秉承了视窗系统的传统,大量的依赖鼠标、快捷键、菜单…一个功能是一个全新的菜单项或者快捷键。然而,linux的哲学不是这样的。记得在某本书中提到,linux的哲学好比瑞士军刀,用现有的东西组合来创造新的东西来满足需求,而不是反复的创造新的工具。当然这仅限于基于文本的处理。linux中的管道便是这一哲学和价值观最好的体现。再看编辑器也是如此,慢慢你会发现,“组合”是vim的精髓。当然,要达到那样的状态需要大量的练习和高度的思维集中,对于锻炼大脑,也是很有利的。而emacs似乎真的是神用的编辑器,有人说emacs其实是个操作系统…好吧,我不是神,就先考虑编辑器之神吧。

November 16th, 2015

FastCGI+lighttpd开发之介绍和环境搭建

由于需要做一些简单的基于FastCGI的Web开发,开始学习和调研,本篇介绍CGI和FastCGI的概念以及基于FastCGI官方的devkit,以及lighttpd搭建起简单的开发环境,以作备忘。

November 14th, 2015

githook+rsync简单实现web部署

最近想实现利用githook发布php程序,本来对githook已经是有所了解了,在hook里面用scp实现复制,但是发现每次发布耗时太长,于是考虑用rsync来同步代码,因为rsync是基于增量同步的,应该能极大缩减发布时间。当然现在有不少现成的持续集成系统,之所以不选择这些集成方案,一来是规模小,并没有达到那个必要性,二来也是进一步锻炼对linux的理解。

November 1st, 2015

SSH隧道翻墙的原理和实现

跟朋友闲聊说到翻墙和SSH隧道,刚开始我对SSH的理解就是远程连接,然而SSH隧道并非那么简单,利用SSH隧道可以干很多事,翻墙就是其中之一。

August 22nd, 2015

IOS状态栏和导航栏的控制问题

IOS的项目多数会遇到控制状态栏和导航栏的问题,比如隐藏状态栏、控制状态栏的文字颜色等,导航栏也有同样需求。本文总结一下操作方法。