2012年11月9日

H2 database研究

摘要: 最近自己一直在优化组里的一个java written的daemon。比较有意思的一件事情是,之前开发的哥们用了一个叫H2的open source in-memory database,负责存储程序运行时的数据并且提供快速查询的可行性,可惜当数据量相当大的时候(10个左右的字段,10左右的索引,大约1million数据行),H2的插入性能就变得很糟糕,考虑到之前都没有接触过这种小巧的in-memory database,多点深入的理解总是好的。H2的总特点:open source, written in Java(有空可以去看看source code), in-memory, two modes 阅读全文

posted @ 2012-11-09 16:34 梁霄 阅读(1329) 评论(0) 推荐(0)

2012年11月5日

读书笔记: clean code

摘要: 1. 什么是clean code?C++的发明者认为clean code是优雅而高效的,并且not tempt people to mess with code for unprincipled optimization. Dave Thomas认为good code应该可以容易的被其他开发者使用和维护,有完整的unit划分和unit test。用最少的依赖,提供唯一的方式实现某种目的,代码读起来清晰易懂。 阅读全文

posted @ 2012-11-05 03:28 梁霄 阅读(196) 评论(0) 推荐(0)

2012年10月2日

C++ 中的throw和throw new

摘要: 今天看组里面的老测试代码,很多地方用的是throw new std::exception(),没多想就抄了过来,然后在client端用catch(const std::exception& e)的方式捕获异常。可是在测试案例中触发抛出异常之后,client的catch总是无法捕获,最终程序以未捕获异常退出,十分奇怪。去stackoverflow上搜了下相关话题,原来throw new exception的时候是抛出一个异常的指针,client端需要捕获指针(catch exception* e),而且要负责清理指针指向的资源。而相对的,如果抛出时使用throw exception(不用 阅读全文

posted @ 2012-10-02 01:56 梁霄 阅读(2541) 评论(0) 推荐(2)

2012年9月21日

C++ friend class与namespace冲突引起的思考

摘要: 在C++中,friend class作为一种特殊的机制可以达到访问外部类私有成员的目的,因为这在某种程度上破坏了面向对象的封装性,所以friend class的应用场景非常有限。在组里的代码中,由于测试类(we call it TestSuite.cpp)需要访问被测试类的私有方法或者私有成员,而by default私有成员和函数对外是不可见的,那使用friend class也就是顺利成章的事情。以下为一个具体实例:classManager{public:Manager*getInstance();friendclassManagerTesterSuite;//declarationoffri 阅读全文

posted @ 2012-09-21 03:03 梁霄 阅读(2476) 评论(0) 推荐(1)

2012年9月16日

工作总结及思考 2011/07/11- 2012/07/11

摘要: 工作一年,时间为轴回忆并总结下工作内容以及自己的思考若干。七月,我带着毕业的小伤感以及对于新生活的期待开始在亚马逊的路程。一个月的时间, 熟悉团队,公司内部的各种基础设施,基础编程工具,花费了我大量的时间。作为非计算机专业毕业的学生,我对于很多计算机应用方面的知识了解非常有限,比如如何管理不同版本的软件,如何将自己的代码发布到生产环境中,如何处理软件间的依赖关系等。很多东西不明白,所以经常有挫败感,尤其是看到身边的同事游刃有余的处理团队内外的工作,自己羡慕,也着急去追赶。记得有一天在公交车上,和一个在公司干了半年多的中国员工闲聊,当时就觉得什么时候我也能赶快有六个月的经验,能像他一样真正自如的 阅读全文

posted @ 2012-09-16 08:13 梁霄 阅读(163) 评论(0) 推荐(0)

2012年8月24日

Python拾零

摘要: 经过公司组织的一次hackathon比赛,深切的体会到自己实践性的编码能力不足,搞一个database里的data转到json格式文件的任务都折腾半天, 还要使用高级语言各种类库,实在是非常的丑陋和别扭。之后静下心来看看Hacker大师的文章,觉得学习一门script的language还是很有必要的,于是就考虑入手python,之前就听说google的主流script language是python, 因为设计简洁而且干净,以前内容主要是在读python cookbook和自己跑一些python程序中的拾零。字符串操作, string类型的reference: 单双引号都可以用来引字符串,然后 阅读全文

posted @ 2012-08-24 23:54 梁霄 阅读(206) 评论(0) 推荐(0)

2012年8月17日

玩转mac的terminal以及zsh

摘要: Shell是一个连接OS和用户输入之间的中间层,从本质上讲,它获取用户输入,然后调用相应的命令,输出结果或者将结果pipe到下一个命令的输入,依此循环直至输出最后的结果。王垠这篇文章的一部分探讨了shell的运行机制以及使用字符流作为shell pipe中转媒介的弊端,可以一读。zsh是shell的一个变种,由于自己的第一个shell工具就是zsh,所有基本上没有办法体会到它独特于其他shell的优势,只能尽量把它设置的更好看,更好用。首当其冲的就是配置颜色,经过调试和不断的google,最后终于可以不再对着白屏黑字的terminal码代码了。调整的方法就是选择terminal的Prefere 阅读全文

posted @ 2012-08-17 13:28 梁霄 阅读(1530) 评论(0) 推荐(0)

2012年8月14日

配置Vim,让咱们的Vim更好用。

摘要: Vim是个神奇的编辑器,它是属于那种慢慢让人着迷而且爱不释手的东西。算起来用Vim的时间已经不短了,大约一年有余。从刚上班时无比别扭的死记硬背,到现在算是非常自如的使用它,这种独特的体验绝对是另外一种收获。而且更可贵的是,除了目前工作中长打交道的C++文件,任何类型的文本文件都在vim的适用范围之内,上次参加公司的hackathon比赛,做可视化设计的时候需要接HTML和JS的脚本,vim一样给力,感觉甚好。考虑到将来需要主用mac作为我的编辑工具,配置好vim也成为了当务之急,这也是我长久以来需要解决的一个问题:know how to use it, but also know why it 阅读全文

posted @ 2012-08-14 15:39 梁霄 阅读(224) 评论(0) 推荐(0)

2012年8月5日

linux/Unix系统管理command杂记

摘要: cat:1. to read content of a file: cat /etc/filename2. because cat will send file content to screen, so it can be used to copy file. cat /etc/filepath > newfilepath3. concatenate multiple files into the output: cat file1 file2 file3 > tmpfile44. to number non-blank lines in output, use -b optio 阅读全文

posted @ 2012-08-05 06:36 梁霄 阅读(226) 评论(0) 推荐(0)

2012年7月28日

读书笔记:Sed & Awk

摘要: 1. Where awk departs from sed is in discarding the line-editor command set, it offers in its place a programming language modeled on the C language.2. one common option of sed and awk is that "-f" , used as sed -f scriptfile inputfile. The way it works is that firstly copy the input file a 阅读全文

posted @ 2012-07-28 13:37 梁霄 阅读(369) 评论(0) 推荐(0)

导航