Mar 18, 2008

08.3.18

在上海的一天。上午coding,下午和同事去SEMICOM展会骗了些小礼品;然后逛了迪卡侬和百安居,啥都没买,坐地铁回家。简单的一天。等车的时候,感觉着列车开来驶去的风儿,有点莫名地惆怅。我为什么不快乐。忽然间想到了一个无聊的问题,一个人傻笑。

到上海正好一个月,找工,回广州拿协议,开始实习。。这个月发生了很多事,喜怒哀乐搅在了一起,又渐渐地归于平淡。工作慢慢慢慢地进入正轨了吧,GSMC是一个让人感觉蛮舒服的地方,整天被人小小弟、小孩这么得叫着;发呆就看看同事养的小鱼和小小鱼,小虾和小小虾;呵呵,蛮有意思。

生活也渐渐习惯,其实是没有生活的生活,七点零五分,地铁---“张江高科站到了,请乘客们带好自己的行李物品,依次。。。。”,上公司班车,早饭,工作到十二点,午饭,工作,晚饭,班车,地铁--“中山公园站到了,请乘客们。。。”--六点四十五分。

好在我在意的东西不多,一个人过更是平淡,不看电视,不打游戏,偶尔去下超市、网上买些书,聊聊天,仅此而已。早上路边花五块钱买了两瓶莲花状的盆栽,把花盆擦干净,搁办公桌上,又多了两个伴儿,呵呵。我在意啥呢?自己问自己,暖色灯光,洁白的A4纸,粗粗的铅笔,绿茶咖啡,洗澡刷牙,让人舒服的细节。简单的生活,不开心,穷开心。

上财的分数线还没出来,不是高三分就是低两分吧,看人品,不过也无所谓了。过去的一年是人生的一段插曲,不管意义如何,我都会记住。

Mar 12, 2008

上海植物园

牡丹花开。

静寂的院落,很有些苏杭小院,闹中取静的味道。

在十年前,我也在这假山前留过影,如今故地重游,人还是一脸傻笑。

绣球花

Feb 17, 2008

Shanghai!!!FFFFFFighting!!!

上海,一个比广州更大、更挤的城市。

下个月该在不停地面试和奔波中度过吧。再下个月就该安定下来了。

这么一走出去,就再不是学生;回头看看,嘿,我的大学,8!上路!

不是学生还该上校内么?不知道。

去南方兜了一大圈,又回来了。

没什么目标,但有死磕的心。光脚的不怕穿鞋的,死猪不怕开水烫。呵呵,谁怕谁?

还记得站在海边,灌酒大喊,“努力,奋斗!”

磋了一年,i'm back,开心地,杀!

Holily sh*t!!!

兄弟姐妹们,加油啊!

新年快乐!

Jan 28, 2008

鱼丸++

今天做鱼丸了,从六点半到八点半共花了两个多小时,基本照着网上的说明做的,基本算成功。虽然有点累,不过蛮有成就感哦,比我老爸做的好吃呢!

第一步是去皮,把刀竖着切下,但不要切透鱼皮,然后贴着皮行刀,把肉分开。这是我爸教的,要想直接削皮是挺难的。
第二步是刮肉,我的理解就是把鱼骨鱼肉分开,先用刀背把肉打松了再刮,用刀锋的话会把鱼骨搞断,去起来麻烦。
第三步是剁泥,网上有的说要用刀背剁,试着觉得斩不透,还是用刀锋剁的,剁成泥状,有点粘刀。时不时用手拌下,有剩下的鱼刺筋络顺手去掉。
第四步就是搅拌了,先把盐、姜粉、料酒和水调和,今天我鱼和水差不多是一比一的比例,很嫩,但韧性不大足。不知道是打得不透还是水放多了的缘故。先打个蛋清,然后加水顺一个方向搅匀,觉得上劲了再些加水打。最后加一勺淀粉增加点粘度使之容易成形。
第五步挤丸和第六步水煮和下面的说明都一样了。我这次挤出的鱼丸放水里是浮的,而且一点都不相互粘连。

关键所在是去骨剁泥和搅拌,挺花时间。有人也说要加肥肉,加这个那个的,我觉得都不是关键,关键是要舍得花功夫。我们有时候太注重方法了,认为事情没有做好是方法不对,其实很多情况下是功夫没有下足。就像学英语,方法就一个字,背。

总之,我们要做好鱼丸一定要做到调制鱼茸六不伤、六不缺(水、盐、油、蛋、粉、味);搅打好的鱼糁色白、滋润、细嫩、光滑、无杂质;氽煮时掌握好火候,就一定能做出高质量的鱼丸来

Jan 27, 2008

踏雪



好久没见过这么大的雪了。

下午带着相机出去拍些雪景。还是前年夏天了,那时老带着相机出去拍拍风景,一人五点多就起了,骑车到森林公园,宜园,拍完一圈回家吃早饭。那时蛮自在的,不过今天走出来总觉得有些冷清的。心境不同了吧。有人在堆雪人,我看看,走过。

绵绵的雪,踏着和昨天的触感明显不同,雪薄薄的时候踏着比较结实硬朗,厚厚的就松绵绵的了。踩着不着力。分析了下,可能是刚下的时候雪落在地表上,边化边结,比较密实。后来下的呢,直接堆雪上,一点没化自然就松了。呵呵,学工科的,就是没情调。

拍了十来张吧,雪地里挺亮的,也拍不出啥质感,就是白白的一片。走到水杉林里,好美,完完整整的雪,不忍心踏。时不时积在树梢的雪唰地落下,打在绵绵的雪地里,一片静寂。打开相机,没电。懊恼。前面平常的风景拍了十来张,到真正美的地方却拍不了。发了会呆。继续走。除了白,只有墨绿,深褐。如果能发现一点红色,该会很惊喜吧,环顾,还是一片洁白。

雪,不像雨那般粘粘的让人不舒服,蛮大气。况且雪和血同音,白与红,冷与热,多美的巧合。步步谨慎,还是滑了下,一点都不疼。爬起来,看看印在雪地的人形,嘻嘻,蛮有意思。回家。

Jan 21, 2008

The C Puzzle Book (C语言解惑)读书笔记

每年在火车回家坐火车都是一种折磨,不过这次运气不错,一来认识了两个聊得来的朋友,二来带了一本《The C Puzzle Book》,翻翻看看,隔了一年多没碰C,有些问题是实实在在地不会,有些问题是自己粗心得挺搞笑。

Chapter 1 操作符
a. z+=-x ++ + ++y ==> z+=-(x++) + (++y)
but, x+++++y ==> x++ ++ +y 无意义
b.~01 == 1…10 != 10 ^_^
c. ~x|x == 111.. 1 恒等于 -1
d.y = -8; y >>= 3 y并不一定为-1,有些计算机右移时不保留操作数的符号位
e. z += x z+= (xf. z>=y>=z ^_^
简简单单的符号优先级问题本来以为背熟了表就差不多,可还是错了上面几个,蛮郁闷。

Chapter2 基本类型
a. define PRINT(format,x) Printf(#x " = %" #format "\n", x)
PRINT (d,"5") ?
显然打印的是指针地址,不过刚看时笨得没发现
int x= -2, unsigned int ux = -2 PRINT(o,x) PRINT(o,ux) ?
无论带符号还是无符号,-2都是那串01
b. 3.(注意后面那个.) …………
c. c语言中,即使运算发生了溢出,结果仍将是合法的数值。
主要是向上向下转型的问题,结合运算符优先级,挺容易搞混的。细节,细节!

Chapter3 头文件
#define PR (fmt, val) printf(#val " = %" #fmt "\t", (val))
#define NL putchat('\n')
#define PRINT1 (f,x1) PR(f,x1), NL
#define PEINR2 (f,x1,x2) PR(f,x1), PRINT1(f,x2), NL
... ...
一层一层往下套吧。。

Chapter4 控制流
a.if也能短路的哦
b.if( x=y ); x=3 看见那个分号了没?呵呵
c.while( y<10 ){x=y++; z=++y;} y++了两次哦,大意大意。

Chapter5 编程风格

半年黑白

半年,不快不慢地过去了。

走出考场,木木的,说不上啥感觉。

反正是考得不好。想打电话,试了一个电话机,坏了;又试了一个,也坏了。

回宿舍,泡面,开机。

找工,大概花了八个钟,中英文简历都搞好了。

态度决定一切。

踏踏实实找工,就像我考研前想的那样,技术上虽然荒废了大半年,但精神上,已够韧了。考研不管结果如何,认了,不会去试第二次。

认真做技术,认真找工,认真待人,认真待己。

我没有败,也不会败。拐了个弯,又到了原来的路上。

我还是我,只是更看清了自己。必须要踏实,踏实!

目标:每天锻炼,每天学习,每周写周记,看书做笔记。

Aug 13, 2007

南京之行


总得来说,南京还是个不错的地方。历史感很强,但过于压抑,承载了太多的沧桑。
可能也是这个原因,南京更显出了一种久经沧桑后的平淡。

Jul 19, 2007

考研

开始准备考研了,蒸发一段时间。
选择考研对我而言机会成本高了些,不算是理智行为。特别又跨专业挤了个大热门--金融工程,风险太大,收益又不大确定,准备得也晚了些。
计算机我也很喜欢,但我不是一个努力的人,没啥钻研的决心,在一个领域呆久了滋长的只是惰性。就算我本科就读的金融,到现在还是会转专业的。
文科比较浮躁,我是个浮躁的人,所以想学下文科体验生活。我算不上是个风险厌恶的人,觉得风险犹如生活的调剂,生活中的选择就像是投骰子,我有时像一个纯粹的赌徒。
一月前差不多还在编程、赶作业、准备考试,现在却彻彻底底地把计算机扔了,扔得毫不心疼。因为计算机已经给了我很多,至少它可以让我放心地全力以赴地做出高风险的决定,选个不错的金融专业,如果失败,继续做计算机至少还能生活下去。我不会进行第二次尝试。
没有什么能算是毕生的事业,人只能选择当前看似比较好走,有趣的路。因为没有地图,你不会知道这条或那天路通往何处,所以永远不可能有最佳选择,即使走的是最佳的路径,你也无法确认它的确是最佳的。
一连串偶然事件使我觉得考研是老天的安排,很多细微的因素似乎在暗暗驱使我向着一个目的地前行。成功也好,失败也罢,听天由命,生活指引着我走上了考研的路,结果也已经注定,现在要做的不过是去发现这个结果。

Jun 7, 2007

基于socket的简单语音聊天软件

基于socket的简单语音聊天软件是分布式的作业之一。下文摘抄了概要设计和详细设计的开头部分。

背景
软件名称:Xchat
开发者:04 双语 许一尊 200433099266
开发平台:JDK 1.5 + Eclipse3.3M6
本软件只采用了基本的Java sound API,即javax.sound中的内容,没有使用JMF和开源代码。

参考资料
《分布式计算原理与应用》
Java API
Java Sound Resources http://www.jsresources.org/apps/am.html

需求
1. 基于基本的Client/Server模式,实现一个text画板,提供一个多人的chat空间。在此模式下,每个人发出的message都通过server的中心控制,由server组播(multicast)给一个chat组的其他会话人。
2. 语音的录取、打包、传输、播放,从而将text chat空间变成了voice chat空间。
3. 通过server的中心控制实现会话的记录和交互式回放。

设计思路
客户端设计参考MVC模式,由一个核心控制模块处理语音发送接收、聊天信息和控制信号的发送接收、音频点播及界面的显示更新。
文本消息和控制信息合二为一,格式为:用户名>>>命令>>>参数
语聊信号通过建立音频管线截取语音包,直接广播到所以客户端,由客户端各自播放。客户端接收到控制信息时,提取出其中的用户名、命令和参数,如果该命令针对所有客户端,则执行该命令;如该命令针对特定用户,只有当用户检测到控制信息中的用户名项为其自身时才发生相应。
音频点播实现是由客户端通过有连接socket发送请求,服务器受到后发送确认信号,将文件以流的方式发送至客户端播放。

特殊性说明
由于只使用基本Java sound API,Java音频的一下局限性觉得了本系统一些特殊的设计:
首先,java平台的音频播放性能有限,当一次写入的数据过小是,声音容易出现断续的现象,而一次截取的包过大时,又会导致较大的延时。所以,必须在音频质量和声音延时上做出选择。最终的权衡结果是以1/4秒为单位截取声音,总的延时为0.5秒+网络延时,在局域网中,网络延时可以忽略不计,所以总的延时在0.5秒左右,可以接受。
其次,Java音频由于其性能问题,不能提供良好的混音效果,所以如两人同时发言,接收到声音的断续现象较为严重,如果多人同时发言,网络条件下4个音源的混音效果根本不能接受,所以本软件设定同一时间只能由一人发言,由一系列控制信号来达到所以客户端的同步。
其三,java保存音频文件方法较为单一,虽然可以通过InputStream保存成音频文件,但要预先制定音频文件的大小,这显然是不可实现的;所以唯一的办法就是在音频采集是直接保存成音频文件,在一次发言结束后上传到服务器,由于java本身没有音频合并的方法,所以音频文件的保存是以发言为单位的,点播时自然也只能以发言为单位。

系统结构
客户端


客户端设计参考MVC模式,由一个核心控制模块处理语音发送接收、聊天信息和控制信号的发送接收、音频点播及界面的显示更新。

服务器端

服务器端以一个控制中心为核心,处理客户端传来的消息和控制信号,执行相应操作并返回控制信号。

类图
客户端

a. 客户端以ClientAction为中心,该类处理界面相应并调用相应模块。由于ClientFram(界面类)的类中元素过于繁杂,在此图中已删除此类。
b. SocketMessageManager是文本消息处理的中心,建立messageSendThread和PacketReceivingThread处理消息包的发送和接收,受到消息包并提取其中信息后,将其交与ClientAction处理。
c. SoundCapture处理音频的截取和广播;SoundPlayer负责接收音频包并播放。
d. SoundRecoder负责讲语音保存在临时文件中,SoundSendThread负责发送该音频文件。
e. SoundRequestHelper与SoundRequest负责音频点播。

服务器端

a.服务器端以ChatServer为中心,处理客户端传来的消息和控制信号,并执行相应操作。
b.MessageServerThread负责调用RecervingThread,RecervingThread接收文本消息包并分离出其中的控制信号,交由ChatServer处理。
c.MulticastSendingThread负责相客户端广播聊天消息和控制信号。
d.SoundSaveServerThread负责处理客户端的保存聊天音频文件的请求,建立AudioSaveThread保存文件。
e.SoundRequestServerThread负责监听客户端的聊天记录点播请求,受到请求后,新建AudioPlayThread处理相应请求。

Mar 31, 2007

清明

今天党团活动去了黄花岗。很多墓碑,有无名无姓的烈士也有声势显赫的将军,他们都长眠于此。公园绿草茵茵,很多老年人舞着扇子,小孩嬉笑,很和谐。烈士们想看到的也许就是这场景吧。
民国时期的建筑,朴素,并不高大,但在肃穆中透着大气。看看中山纪念堂,中山陵,也都是这感觉。再看看各地的大学,也是喜欢年代旧些的建筑。觉得新的一些大楼,虽然精巧,却流于浮华。再过个一百年,那些新建的大楼也应该陈旧了吧,那时他们剩下的,也许只有陈旧和年代,而没有历史和沧桑。国家还没有真正富强,年青一代需要努力。社会风气浮华,有些人只追求着感官的快乐或沉溺与小资情怀;不该这样的,我今年已大三,可还常常浪费时间。虽然个人是卑微的,多一个少一个对这社会好像并没什么影响,但这不是沉默的借口。身边有很多努力的同学,应该向他们学习。虽然不是每个人都能成为精英,但每个人都应该负责任。古人所说“修身、齐家、治国、平天下”,很有道理,心中要装着亲人,装着天下,努力,尽管卑微,对这个社会也还是有用的。