Web Analytics

Go defer的C实现

Go语言中引入了一个新的关键字defer,个人认为这个语法关键字让异常处理也变得得心应手许多,对改善代码的可读性和可维护性大有裨益,是典型的语法棒棒糖^_^。 像下面这种代码(伪代码): void foo() { apply resource1; retv = action1; if not success release resource1 apply resource2; retv = action2; if not success release resource1 release resource2 } 有了defer后,代码就变得优美多了。 void foo_with_defer() { apply resource1; defer (release_resource1) retv = action1; if not success return ...

February 3, 2013 · 6 min · Tony Bai

关于Python Package下的Module import方式

2012年有一个目标我没有达成,那就是深入学习和使用Python语言。这个目标被其他学习任务和工作无情的抢占了,当然最主要的原因还是我重视不够^_^。 近期恰逢有一些Python工程的开发工作要做,就顺便略微深入地学习了一下Python:看了几本Python的英文大部头,比如《Learning Python 4th Edition》、《Python Essential Reference 4th Edition》、《Programming Python 4th Edition》、《Expert Python Programming》以及《The Python standard library by example》,看得我有些要吐了^_^。虽然之前用Python开发过buildc,但自我感觉依旧还是一个Python的绝对beginner,这 次通过这几本书的学习算是对Python有了个较为系统的了解了。 ...

January 24, 2013 · 5 min · Tony Bai

buildc 0.2.2版本发布

随着buildc在项目中的深入使用,开发和测试人员都提出了不少良好意见,让我们有些应接不暇了,这次的版本更新也是为了满足这些意见和建议。 由于忙于应对这些眼前的需求,原本0.3.0的改进计划也被推迟了一些。 buildc 0.2.2版本包含了两个主要修正。 * 增加了–ignore-error命令行选项 ...

January 15, 2013 · 3 min · Tony Bai

buildc 0.2.1版本发布

buildc 0.2.1版本是一个bugfix版本,修正了两个重要问题。 * 修正执行buildc pack –cmode=32-bit时无法创建32位安装包的问题 之前的buildc pack命令在打包安装程序时忽略了–cmode这个选项,这样即便传入32-bit这个参数,打出的安装包中的应用程序依旧是64位编译的。这次修正了这个问题,让buildc真正支持打32位程序的安装包。 ...

December 6, 2012 · 3 min · Tony Bai

将Unity换成Gnome3

Ubuntu 12.04已经体验一天多了,Unity还是用的不大习惯,左侧的程序启动栏感觉还是别扭,以前用windows的时候就不喜欢将任务栏放在左侧或右侧; 应用窗口的菜单栏融合到桌面顶端也没给我太多惊喜;总而言之,给自己找几个换回Gome的理由还是很容易的^_^。况且Gnome也发生了巨变, 由传统的Gnome2更新到了全新的Gnome3,正好我也想体验一下Gnome3,于是继续折腾。 ...

December 6, 2012 · 3 min · Tony Bai

升级到Ubuntu 12.04LTS

Ubuntu 10.04 LTS已经伴随我两年了,经过我这么长时间的折腾,Ubuntu早已不堪重负^_^。在未升级前,Ubuntu 10.04已经表现出诸多问题: - 在家中连接无线路由器时间漫长,且经常掉线; - 在公司用有线网络经常掉线; - 由于反复安装软件,系统中残留较多垃圾数据; - Ubuntu 10.04官方源中的软件版本都有些低,很多软件手工安装高版本比较费力; ...

December 4, 2012 · 5 min · Tony Bai

使用squid搭建http代理

近期在做一些基础设施搭建的过程中,又遭遇到了公司http代理的问题。主要是很多主机上的工具只支持不带身份鉴权信息的http_proxy设置,如只 支持诸如:export http_proxy=‘http://10.10.1.1:8090’,而不支持export http_proxy=‘http://tonybai:passwd@10.10.1.1:8090’这种形式的配置。 ...

November 21, 2012 · 5 min · Tony Bai

buildc 0.2.0版本发布

buildc的演进先后经历了构建管理和安装包工程管理两个阶段。其中buildc的构建管理功能在项目中应用较早,目前相对稳定可靠。但其支持的安装包工程是直到最近才被大家所正式使用的。不出意料,大家在使用过程发现了一些问题,于是我们也是边用边改。 目前一个setup工程一般具有类似如下源码组织结构: distributions/ setup.cfg src/ – README – app/ – conf/ – deps/ – layout.cfg – others/ – scripts/ – setup.py 按照最初的设计,deps目录下会存放一些目标程序运行时依赖的库、工具等。但就一些细节并未考虑清楚,比如如果一个程序需要在两个平台(linux和solaris)上运行,那deps下的依赖库应该如何存放? ...

November 6, 2012 · 2 min · Tony Bai

辩证地看待“重新发明轮子”

C程序员骨子里都有一种“重新发明轮子(Reinventing the Wheel)”的特质。在面向对象、组件化流行以及崇尚复用的今天,这种特质似乎总是被认为是反面教材。但伟大的毛主席教导我们:要辩证地看待一切事物, 凡事无绝对。事物都是有两面性的,有好就有坏,有坏就有好。拿“重新发明轮子”这事而言,我们除了看到其弊端外,还要充分领会到其好的一面,不能一棒子打 死,这样才能在特定的场景下作出正确合理地判断。 ...

November 2, 2012 · 2 min · Tony Bai

关于团队经营的若干体会

在近两年的持续不断的投入和努力下,近期我在团队经营方面看到了一些成果,但这却引来了同僚们的“羡慕嫉妒恨”^_^,他们希望了解到我是“如何将0变成 1的”。关于团队运营方面,我始终认为自己只是个初级选手,充其量就是个实践者而已。以前我也只是按照我的思路和直觉在做,并未有过什么细致的考量,也没 有人给我这方面系统的指导。这几天闲暇时回顾了一下这两年的经营历程,形成了些许体会,这里也和大家分享一下。 ...

November 1, 2012 · 7 min · Tony Bai