As a software engineer sitting in front of computer continously for more than 3 hours is quite common for me. Usually it's until when I decide to stand up that I realize the problem: my legs are numb, moving around become very difficult. So when I saw workrave, I thought that's just what I need. Imedialtely I installed it. Seeing it runs in the system tray makes me feel much securer. I know every 10 minutes it reminds me to take a break. As a result I'll leave computer, walk around to relax my body. That's just how my problem will get solved, isn't it?

But things never happened as I'd wished. Each time the popup shows me that a break is needed, I choose to postpone -- I can't think of even one time when I choose "OK, I'll rest". When the times of postpone is so many that the program stop asking me and blocks my input directly, I kill it with Task Manager directly.

What's worse my boss doesn't seem like the program either.

I Googled and found many people are doing exactly as I do. Then it shoudn't be my fault, there must be some design defect of the software. Actually there're two of unreasonable design in the software.

1. The break notification is too intrusive. When people are busy working on something they hate being interrupted. No matter it's a kind rest reminder or a annoying salseman.

   We humans are strange, we hope we get reminds when we're planning to do things bad. But when it really happens we hate those who reminds us cause they are AGAINT us. We hate to be againt, no matter in which way. The problem of workrave is that when it noticed the user has been working for too many hours it act against the user to FORCE him to stop and then get killed easily by Task Manager.

   But should we blame the user on this? Let's be clear that it's the user who installed workrave, he liked workrave. But when he's busy and workrave is againt him he killed it. I guess 60+% of workrave users do this so if we complain them we complain the human nature and let's not do it.

   Then the suggestion for workrave is to notify the user in a more gentle way. No, never force the user to stop, instead, display a non-intrusive message box showing how many hours he has worked. Put the message in a place where the user can see but never affect his work --- maybe a 50% transparent window. Don't block input... just show the increasing level of injury to his body when the user keeps working in despite of the reminder. He'll stop cause he realizes the injury brought by continous work.

2. Make the UI unobtrusive
   Cause otherwise my BOSS see it. I'm not very sure he likes it.
 
It's my honor to have found this from microsoft.com. It helped me learn what a support I might get from Microsoft.

http://social.technet.microsoft.com/Forums/cs-CZ/ocsclients/thread/8aa8b260-3228-4d94-b37c-4aec7462a253

If you're not patient enough to read the post, then listen to me. It's like this, a poor guy used Microsoft Communicator to share his desktop to his colleagues. Then he found his cursor keeps blinking during the desktop sharing session. To stop the blinking he tried many ways but none of them worked. Finally he thought post a question on Microsoft's forum would help so he did it.

Then there came the cool Microsoft staff explained the reason why this happens with a very big paragraph. The poor customer never figured out what happened in world, just he saw many new words such as GDI, SRCCOPY, CAPTUREBLT, remote desktop protocol...

What he understood from the reply is:
   1. This is by design (cool!)
   2. He should buy Windows 7 and a better graphics card, then try again(see the last paragraph in the reply)
 
Java doesn't have reference, as a result its map implementations pretty ugly, and low efficient:

Map<String, Integer> m = new TreeMap<String, Integer>();
// ...
m.put("John", m.get("John") + 1); // i hate this

Reasons why I hate this:
1. Too long, too complicated for a so simple operation
2. Object boxing and unboxing
3. The binary tree is searched twice, one for set and one for get

In C++:

map<string, int> m;
// ....
m["John"]++; // cool

How to do the similar in Java:

.... First listen to me, eclipse is really a good IDE with many cool features. Amoung all these cool features I like CTRL+T most. I always discover something new when I press CTRL+T when some interface or abstract class is selected. And the class MutableInt was found when I pressed CTRL+T on Number.

So how do we do the similar thing in Java with MutableInt.

Map<String, MutableInt> m = new TreeMap<String, MutableInt>();
// ...
m.get("John").increment();
 
惹毛房东了。昨晚对话:

——佟阿姨啊,现在又得麻烦您一件事情
——说吧
——咱合同不还没签吗?今天咱能不能签一下?
——明天晚上吧
——能早点不,我找合租人家要看的
——[大发雷霆,狂轰滥炸直至我手机停机]


现在看看我蠢在哪里?

——佟阿姨啊,现在又得麻烦您一件事情

点评:这根本不是麻烦他,说了麻烦反而给他开一个情绪不良的头
结论:有事说事,不要故意摆姿态

——说吧
——咱合同不还没签吗?今天咱能不能签一下?


正常

——明天晚上吧
——能早点不,我找合租人家要看的


点评:人都讨厌被Push的感觉,我前几次和房东打交道已经吃了这样的亏,一致房东明确指出我做事要“懂得为别人考虑”。现在却依旧不知悔改。
结论:

   1. 不要Push别人。
   2. 要与人打好交道,不是话甜嘴贱就可以的。要让别人满意,就得体谅别人的难处,包容别人身上的人人都有的缺点。同时自己理清思路,使别人要做的事情能少则少。
   3. 什么事情最终会怎么样,自己心里要有一个现实的谱。比如说,一昨晚的时间,房东基本是不会和我去签合同了。但我一厢情愿“逼迫”人家,不仅达不到目的,反而搞了个张租挨骂的下场。

——[大发雷霆,狂轰滥炸直至我手机停机,而且还直接将房租涨至2400]

房东说我这人罗嗦,“脑子唔清爽”,没错。
不过这次积累的经验,应该会有点重复利用的可能。
这种生活上的事情会有些烦人,但是我没办法逃避。
生活需要浪漫的想象,和脚踏实地的折腾。

理想台词:

——佟阿姨你好,我们房子的合同不还没签吗?您看什么时候方便咱签一下?
——明天晚上吧!
——嗯,好的!那明天见!
——行!
 
I've experienced several depressed days because two or three days ago I lost a bag, in which there was my diploma  and other important certificates. It'll cost a huge much time and energy to make all these up.

I ask Google for help on everything but this time seems Google doesn't help. However  because of it's huge power there are two helpful things that Google might do. They are:

1. Google Lost And Found
 Google has Google Map, whenever something lost was found, it can be reported on Google Lost And Found, with location. People who loose something can search in the area and if be him luck enough, find his lost back.
Picture
This is not true.
2. Google Stuff Tracker
 It's said that Google has launched a satellite. Then I think Google can produce some signal generating devices. People who want to track his stuffs can buy the devices, put them on his important stuffs. When something is lost, he can go to stuffs.google.com to see a full path that the stuff has traveled. Find it back wont be a big issue.

Dear Google, could you please do it ASAP? Even be it a paid service still there'll be many people benefiting from that.
 
早上起来的时候还以为今天会是个明媚的日子。前天刚搬的家,早上四处翻翻,检阅了一下昨天辛苦整理的成功。检阅着检阅着却总觉得缺了点什么。什么 呢?啊!!原来是我的——装学位证和毕业证和户口本和...的那个小黑包!

我的心咯噔一下。先翻箱倒柜的找——没有,绞尽 脑汁的回忆搬家的各个细节——没印象,于是追溯到去年从上海搬到北京的那次,细细一想,自那后真是没有用过学位证/毕业证/户口本中的任意一件。最后打电 话给冉登元,让他帮忙问问我屋现任房客有没有看到什么落下来的东西。
Picture
好吧,剩下的时间只好等了。当我打定主意开始“等”的 时候,心里忽然有种压抑的落寞。我讨厌麻烦,我不想丢什么东西。但丢东西总是偶尔发生,丢饭卡,丢钥匙,丢钱包,丢手机.... 每次丢了东西总是希望自己得某种强迫症以便不会再丢。但事实是人永远会丢点什么,现在会丢,以后必然也会丢。现在会丢100块钱,以后也有可能丢 10000块。丢东西时那种“我以后一定要小心点”的誓言,很快会烟消云散。如果很不幸的没有烟消云散而是刻骨铭心,自然是因为丢的东西太贵重而得了强迫 症,那将是一个比“丢”本身大得多的悲剧。

通常一个做事有条理的人比马大哈少丢东西。所以为预防丢,每个人都希望自己的一 切能有条不紊。但有条不紊这种优秀素质并没有广为发扬。为什么?
我就像一条迷糊的泥鳅,和其他的泥鳅一起,活在一个混乱迷 茫的大沼泽里,无数由欲望和麻烦组成的大棍子在里面搅来搅去。我恪守着单纯愚昧的本性,追逐欲望,躲避麻烦。

在这种无聊的 游戏中,会获得索然寡味的成功,也会忍受已经流不出鲜红血液的伤口。于是我自作聪明的总结着经验教训。可惜,快节奏的现代生活让这些烂没用的真理积累的太 快,以至于我一条都没记住。

我不可能在做多小的一件事情前,都翻出180条checklist一一对照。
我 也懒得重复那些靠写书吃饭的成功学家所鼓吹的所谓“简化生活”。

所以我只好说:FML!
 
Picture
I'm complaining, because I'm totally exhausted. And it's flash player that made me so exhausted.

I've been doing a server side RTMP implementation with Java for months. Although Adobe opened its SPEC, there are still many details missing. I had spent around 2 weeks debugging access violation in flash player (as a programmer you know a access violation sounds fatal but is likely to be of the easiest bugs), another two weeks were waste on fixing wrongly ordered video packets.

All these bugs, if flash player has an open source implementation, cost even no more than 1 hour. To fix the bugs I have to guess what flash player might do.

Now I need to be back to continue guessing what might be inside flash player.
 
Picture
Well first please be aware that I'm not talking to any specific person, I'm talking to YOU, the guy who is reading this article, that your current job is good.

"But you even don't know what a situation I'm in!", you argued. True, I DO know little about you. What I know is things that are common to all of us, and those things are enough to prove that, your job is good. And the reasons are:

1. You chose this job.
   It was around years ago, or months ago, when you got 2~4 offers. You carefully compared them and realized the fact that there's no perfect job. Finally you decided to go to the one you think best. At the time you were still romantic about careers so you started to plan about it. You thought you could do A, B, C and D and you would get E, F and G. They were so wonderful and you were so excited, you couldn't wait for the second morning.

   Now several years has passed. You never do A and B, to say nothing of C and D. Think about your current situation, is it still possible to do them? If it is, you still have chance, your job is good.

2. Your boss pay you.
   And less than what you contribute to the company. It's always like this. Never expect the opposite.

   Remember that if things are fair, everything will cost more.

3. You get money.

   You are complaining about loosing balance of life and work, aren't you? Then you should be reminded of the truth that you need money to live, and you work for money.

4. Your colleague/customer/boss is not the worst one in the world

   Think about the past, it's common that we hate someone. But the bad idea is that the world will be much better as long as you don't see this annoying guy. Even with the guy you like most you know clearly some quite bad habit of him.

5. There are many ways to make a change

  Are you just bored by repeating the same job everyday? Or you think there must be some change on you? First think back to the plan you made when you just joined this company, are they still possible? Learn from a colleague in your company that's happy and successful, be open mind because his success is likely to be copied by you.

Finally be clear that just your job is good doesn't mean you should stick to it all through your life.
 
Step 1
***Find a Place to Live***

If you haven't done so before your move, you should first try to find a place to live. Using websites like Craigslist.com or Roommates.com can help you find shared housing and apartments in your area.
Step 2
***Join Online Social Networking Communities***

Online communities like Meetup.com often sponsor events and outings such a hosting happy hours during the week or group activities on the weekends for people in your age group.
Step 3
***Subscribe to the Local Newspaper***

The local newspaper will help keep you up-to-date with events and news going on in your area.
Step 4
***Find a Neighborhood Hangout Spot***

Find a coffee shop or cafe and go there frequently to get to know other regulars. Getting to know regulars and patrons of neighborhood hangout spots will help you get to know the immediate neighborhood that you live in. They can give you advice and tips about living in that particular neighborhood.
Step 5
***Join a Sports League***

Larger cities and towns often have sports leagues like soccer or kickball teams that you can join in on friendly and competitive games. Sports leagues are often comprised of other people in your age range.
Step 6
***Attend Events at Museums or Art Galleries***

Museums and art galleries often hold free events such as book signings or discussions.
Step 7
***Volunteer in the Community***

Check out the library in the area, or the local soup kitchen to see if they are taking volunteers. Volunteering in the community can be a very rewarding experience and can help you get to know other like-minded individuals.
 
tactoth的眼睛已经超负荷工作很多年了。白天盯着屏幕写代码,晚上盯着屏幕看网页,终于,它们发现自己吃不消了。tactoth于是打算叫双耳去分担他们的部分工作量。

广播

最初tactoth尝试了听广播。但广播上内容实在单薄的可怜。音乐台是无休止的音乐,故事台是无休止的长篇联播,新闻台无休止的建设和谐社会,综合台则是无休止的专治不孕不育。广播看样子真的是堕落了。

有声小说

其实有声小说很多也都是录制的广播里面的长篇联播。网络上有声小说的资源挺丰富的,大多数常见的经典小说都可以找到有声版。土豆网有声小说很多并且大都制作成了“豆单”,可以连续播放,是个在线听小说的好地方。VeryCD上也有一些不错的有声读物资源。

Podcast

Podcast在国内远没有在国外流行。相对于有声小说,Podcast会给你带来新鲜感,因为每天你都会全新的内容。中文资源虽然缺乏,也还有一些听得下去。但要尽享Podcasting的乐趣,则应该订阅英文源

Podcast软件推荐Winamp,首先winamp是个老牌的播放器,用户众多,扩展丰富,小惊喜连连。其次Winamp功能明确,体积小本职工作又干的漂亮,不像iTunes,怎么都像是专门为AppStore而开发。