新浪微博
- 是啊,有段时间他回家爱说,“你们说够了没有?”,“再说就把你扔下去!”。一定是学幼儿园老师的。李先静_ABSURD : 早餐后儿子对我说,爸爸,我们一边看书一边大便便好吗?我说好,他就拉我一起看书,他拉大便。偶尔还来一句,爸爸,动动你的小脑筋想一想,。。。[抓狂][汗]
- 儿子一天要问几百个“这是什么?”,昨天在游乐场,他指着一个小女孩说,爸爸,这是什么?搞得我哭笑不得。
- 早餐后儿子对我说,爸爸,我们一边看书一边大便便好吗?我说好,他就拉我一起看书,他拉大便。偶尔还来一句,爸爸,动动你的小脑筋想一想,。。。[抓狂][汗]
- 儿子今天居然考我,指着书上的文字说,爸爸,这是什么?我读了一遍,不小心读错了一个字。他马上说,不对不对,再试试。我很小心的再读了一遍。他来了一句,答对了,爸爸你真棒!
- 两个月不见,李路加变得太可爱了,不但不发脾气,而且非常贴心。经常对我和老婆说,爸爸妈妈,你们辛苦了,我帮你们捶捶背好吗?爸爸,我讲个故事给你听好吗?爸爸,我们一起看报纸好吗?天呐,一下真不习惯!感谢上帝,感谢岳父岳母
- 是啊,有段时间他回家爱说,“你们说够了没有?”,“再说就把你扔下去!”。一定是学幼儿园老师的。
Monthly Archives: November 2008
系统程序员成长计划-写得又快又好的秘诀(一)
“快”是指开发效率高,“好”是指软件质量高。呵呵,写得又快又好的人就是高手了。记得这是林锐博士下的定义,读他那篇著名的《C/C++高质量编程》时,我还是个初学者,印象特别深。我现在仍然赞同他的观点,不过这里标题改为成为高手的秘诀,感觉就有点像标题党了,所以还是用比较通俗的说法吧。废话少说,请读者回顾一下这段时间的编程经验,回答下面两个问题:
大内高手—栈/堆
o 栈 栈作为一种基本数据结构,我并不感到惊讶,用来实现函数调用,这也司空见惯的作法。直到我试图找到另外一种方式实现递归操作时,我才感叹于它的巧妙。要实现递归操作,不用栈不是不可能,而是找不出比它更优雅的方式。 尽管大多数编译器在优化时,会把常用的参数或者局部变量放入寄存器中。但用栈来管理函数调用时的临时变量(局部变量和参数)是通用做法,前者只是辅助手段,且只在当前函数中使用,一旦调用下一层函数,这些值仍然要存入栈中才行。
Posted in Programming
1 Comment
大内高手—内存模型
了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉。坐火车外出旅行时,即时你对沿途的地方一无所知,仍然可以到达目标地。但是你对整个路途都很比较清楚的话,每到一个站都知道自己在哪里,知道当地的风土人情,对比一下所见所想,旅程可能更有趣一些。
Posted in Programming
Leave a comment
大内高手—序
我一直认为作为一个在linux下工作的C程序员,若对内存有深刻的认识,不但程序的性能会更高,运行更稳定,编程速度也会更快。反之亦有相反的效果,有时一些内存错误让你摸不着头脑,不但大大降低开发速度,开发出来的软件稳定性也值得怀疑。
Posted in Programming
Leave a comment
KJAVA虚拟机Hack笔记-实现MIDP的SLAVE事件模型
MIDP有两种事件模型,一种称为MASTER模型,在这种模型中,以虚拟机为主GUI为从,事件的主循环在虚拟机中实现。另外一种称为SLAVE,在这种模型中,以GUI为主虚拟机为从,主循环在GUI中实现,目前只有QTE使用这种方式。我想GTK+和QTE的事件处理很类似,猜测GTK+也应该采用SLAVE模型。
Posted in KVM hack notes
Leave a comment
gdbserver调试共享库
在开发嵌入式系统时,调试往往是一大难题。面试过不少嵌入式linux工程师,当问及调试手段时,他们的调试手段一般是两种:首先是在PC上的模拟环境中运行,若有问题,可以很方便的调试。其次,若在板子上运行时才出错,就用printf输出log信息,根据log信息定位错误。有少部分人用gdbserver调试板子上的程序,但问到如何在共享库里设置断点时,都说没有办法。
Posted in Linux Mobile
1 Comment
KJava虚拟机hack笔记-基于GTK的移植
CLDC只依赖于硬件平台和操作系统,不依赖于GUI,在移植到GTK+上时不需要做任何修改。MIDP则与GUI密切相关,在移植到GTK+上时主要修改这部分内容。因为MIDP没有基于GTK+的实现,不是简单的编译一下就行的,而是要动手写上万行的代码。这里面我们从总体介绍一下移植Phoneme_Feature到GTK上的方法:
Posted in KVM hack notes
Leave a comment
答复:我不会OOO,仍然可以XXX
按照《审死官》里的读法,标题可以读着:答复:我不会圈圈圈,仍然可以叉叉叉。圈圈叉叉并不特指某个东西,而是一个通配符。代表诸如:我不懂COM原理,仍然调用COM组件。我不懂数据结构,仍然可以写程序。我记不得常用API,仍然照样用IDE。如此等等。
Posted in 沉思录
6 Comments
几则开发技巧
o 使用gtk_idle_add实现异步signal。 最近开发桌面模块时,遇到一个棘手的问题:向DirectFB的窗口管理器注册了顶层窗口改变的事件。当前顶层窗口切换时,窗口管理器回调我设置的回调函数,在回调函数中又要调用窗口管理器的函数,以获取顶层窗口的信息。整个过程是同步调用的,即直接调用函数,这会重入一个窗口管理器函数,造成死锁。
Posted in GTK+
Leave a comment
在linux终端下运行X Window程序
作为Linux程序员,在大多数情况,在终端下干活(编程),可能更方便一点。服务器在机房里,大家都连接到同一台服务器上,而本机在Windows下运行一个终端(如SecureCRT),这是典型的配置。
Posted in X Windows
Leave a comment