一场比赛就给裁判毁了。不过车子也浪费了太多机会。
普拉蒂尼实在看不下去英超独霸欧冠,把宇宙队保送进了决赛。到决赛这种水平的他萨怎么打得过他魔。。。
Category: Uncategorized
老大爱上中午开会了
明天又是中午开部门例会,我的神啊,谁让中午才有大会议室呢。。。
又没办法好好吃午饭了,又要吃牛肉米粉了~盗用老闫同志的一句呐喊:给我加个荷包蛋我才开会!
乔迁之喜
某人一股脑的写了那么多文章,搞得我看了好半天~ 既然某人搬个博客都这么亢奋,那我,做为熟人,一定要发篇blog恭喜一下。
孔子曰:名不正则言不顺,言不顺则事不成。所以首先要正名。既然only的名字在marshall前面,小白在小黑前面,那就证明,我好歹。。算半个主人吧,哈哈。其实我是想低调点的,可某人写了长篇累牍的blog都没提到我。。我实在忍不住了,只能“跳警”了。
话说我这个懒人基本不写blog的,现在工作了,不知道可不可以稍微勤快一点。。。争取争取。。。大家监督。。
Hibernate里的重复记录
前几天APIS爆出了个奇怪的BUG:某个小组关闭任务后,任务自动被duplicate,然后子任务也丢失了。手工查看数据库,发现数据库里居然只有一条Task记录,Hibernate却返回两条。findById(id为主键)居然会返回两条记录,这就奇了怪了。
用Firebug看记录,发现抛出了异常。”More than one row with the given identifier was found”。可是数据库里明明只有一条记录啊。二话不说google发现了这个post,顿时想起来由于关联(association)而产生万恶的outer join。排查了几个关联(出问题的那个类偏偏是最heavily-associated),终于在一个与Part类<one-to-one>上发现了问题。虽然是<one-to-one>关联,却发现另外一方(Part)存在重复的记录,直接影响到Task类。找到原因,assign给Part类的责任人,问题解决。
打算写一个简单的数据库迁移工具
之前做项目一直被数据库schema改动折腾得不行,找了不少工具,比如migrate4j,dbmigrate和liquibase之类的,感觉都不是很满意。其实我的需求很简单,不需要数据库的DSL(比如migrate4j或者db:migrate的那种用Java/Ruby描述DDL),只需要纯的SQL(也就是db:migrate生成的SQL),只需要前向操纵(即不需要回滚),有Eclipse的插件。
现有的migration工具,都是使用分开的文件作为不同版本的内容,这带来了很大的灵活性。但是我的打算是对现有的开发模式有最小的影响。比如现在项目的开发方式是使用一个schema文件外加几个基础数据文件。于是我打算直接使用SVN作为数据库版本的保存工具,利用SVN的特性做版本化。最直接使用的就是SVN的版本号。不过这样的问题在于基本无法做rollback,除非使用两个文件,一个construction,一个destruction,但这要求两个文件一起提交,带来了不少复杂性。现有项目的schema不需要做rollback,正好这么做。工作的方式为:更新SVN,获得最新的schema文件和当前的版本做对比,把增加的部分(要求更新append在最后)执行一遍。就这么简单。
调查了一下午+半个晚上,基本把一些技术方案给调查清楚了。主要的难度在于和subclipse的集成。既然功能简单,就要做到易用。于是我打起了subclipse的主意,主要是subclipse保存的SVN用户名密码。发现subclipse还挺变态的,JavaHL的接口使用HOME目录保存,SVNKit接口使用Eclipse的keyrings文件。
这两天就动手,代码参考较为简单(或者说简陋)的dbmigrate。
投简历
几乎从来没做过网申,今天投了一份微软的暑期实习,足足花了我两个多小时。。。不过以后可以省时间了。呵呵
我的2008小结
为啥用小结,主要觉得这一年对我个人而言没啥改变学习工作生活的重大事件。
要说最上心的,估计就是老婆找工作吧。今天刚去签了一个保底的offer,先落袋为安吧。这个工作不是很理想,但毕竟光景不好,拿到手再说,而且公务员的成绩还没出来,3月份还有省考。2009老婆继续加油~~
生活上影响最大的事,显然就是搬来鼓楼住了,还是条件最好的一舍。住的一楼,进进出出很方便,不过手机信号很不好,常常收到短信呼。网络条件也很不错,生活比浦口方便多了,门口就是教超,哈哈。另外一个就是年初学车,拿到了驾照。
工作上辞掉了兼职的活,少了收入,有了空余时间。但腾出来的时间反而被老板这边的项目给吃掉了,唉,不过现在也可以积累一些运营的经验了。现在看来,这个系统的performance还是可以忍受的,reliability也比较靠谱,终于不当机了。
学习科研,完成了paper的发表任务,另外还多发了一篇会议论文,明年5月回厦门开会。会议是垃圾了点,不过就当回家吧,呵呵。
嗯,怎么感觉像自我鉴定啊?再加上一条思想上的进步,就可以当思想汇报用了吧。
接下去是2009,所有的工作都围绕着求职这个核心来开展。首先,寒假动动veryftp,也想尝试下python;第二季度着手开始看看一些面试题,算法书了,不然笔试挂掉,什么都是白搭;第三季度争取找一个实习混混,有实习好办事啊;最后三个月就是全力冲刺了,年前搞定最好,拖到年后,战线拉太长吃不消啊。上面这些是主线,老板的项目、毕业论文这些就先当副业和兼职吧,呵呵。
害怕衰老
今天头有点痛,晚上回宿舍不想干活,看了集美剧,"John Adams"的最后一集。看到剧中人物老了以后无所事事,然后一个个病逝,突然理解了一些老年人的悲凉,也突然害怕衰老起来。
科学松鼠会
使用mysqldump+cron定时备份mysql
在这里存个档吧,方法很简单:
首先写个备份的bash脚本
#!/bin/sh
date=`date +%y-%m-%d-%H`
mysqldump –host=localhost –user=root –password=sa –opt apis | bzip2 -c > /var/backup/apis-$date.sql.bz2
编辑cron脚本,使用crontab -e 直接编辑
这个编辑很简单,前面5个参数,分别表示分、时、日、月、星期,可以用*代替,后面一个就是执行的脚本名