Thursday, August 13, 2009

A Special Crash Report

I've never seen something like this, but this one is really cute. (At least to me...)


'import site' failed; use -v for traceback
Sorry, command-not-found has crashed! Please file a bug report at:
https://bugs.launchpad.net/ubuntu/+source/command-not-found
Please include the following information with the report:
No module named CommandNotFound
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 10, in
from CommandNotFound import CommandNotFound
ImportError: No module named CommandNotFound
Python version: 2.5.2 final 0

Monday, June 15, 2009

Windows XP Event ID 4191

I met this error today that states my NDISWANIP can not be accessed. The situation was weird that my network interface cards were actually brought up. But when I use IPCONFIG to view them, nothing was shown. I checked the event log and found event 4191.

I tried the solution provided by MS knowledge base but the problem persists. Then I cross compared the registry of a working computer with my non-functional one. I found a registry directory is missing on my non-functional computer, which I guess it went broken due to the enable/disable/setting of Virtual Box.

I was just about to give up but I found a way to solve it: uninstall the network devices and refresh the hardware manager. It starts to reinstall the driver and it is back to normal. I created the missing registry before I uninstall the drivers. I am not sure whether this will cause a difference, but I am happy for now and do not have plan to try it.

Product:Windows Operating System
Event ID:4191
Source:Tcpip
Version:5.0
Component:System Event Log
Symbolic Name:EVENT_TCPIP_ADAPTER_REG_FAILURE
Message:IP could not open the registry key for adapter %2. Interfaces on this adapter will not be initialized.

Friday, June 12, 2009

Good Luck, Google


I think Google is transferring from a do-no-evil (I believed it meant good-the-right-thing) company to a do-no-evil (I believe it is now: it is okay if it is not evil). It is the sign of going to its downturn.

At the very beginning, the founders wanted to create a real good search engine, that was what differs Google from its competitors. They could tell whether a feature is what user wants or not. But now it seems closer to what Google wants.

I am not sure how many people have seen the image above. But to me, it is the sign of collapse.

A big ad for Chrome on search engine homepage? A no brainer can tell Google is never google again. It is doing things against its principle. Even some internal Googler may claim this is also a test that can show the response of users, whether people feel annoyed, such as me, Google is still acrossing the line.

It is a pity that we shall start finding a good Internet service provider.

Thursday, May 28, 2009

How Autopsy Helps?

There is no new technology about pathology in this post, instead, it is about its usage.

United States Army is performing autopsies (and virtual autopsy, called CT)  on dead bodies from war to find out the cause of death. In the end, the results can help reduce the rate of death in future combats.

For example, a collapsed lung can kill one easily. The typical immediate response to it on the field is to stick a needle into the chest and relief the pressure. However, autopsies and following research showed the 5 centimeters needle with medics is not long enough for 50% of the army. So you are 50% likely to be killed if one of your lungs collapses. Replacing a longer needle can effectively save 99% lung collapses (if other injuries are not lethal). So did US Army.

Maybe I should autopsy each day of my life and help improve tomorrow, too.

The Trend of Emulation/Virtualization

The trend of virtualization is so non-stoppable that we are now surrounded by news with it and we are becoming numb with them. But this one is itchy (to me):  Ubuntu has a working prototype of running Android applications on Ubuntu platform.

Android is generally considered an ecosystem itself (it has its own JVM, API, and its own app store.) However, as it is a piece of software, we always can port its Dalvik JVM to other platforms. With the binder IPC been ported properly and its *compacted* system libraries been handled.

The porting of Android ecosystem to Ubuntu is an indicator of the virtual applications that you can buy easily or download freely.

I once wondered the difference to native Java applications, why would we need Android development environment? The answer lies in Java itself. Sun claimed it would develop a CPU for Java years ago and finally dropped the plan. I am not sure why it ended ungracefully: is it only a marketing thing or there is technical difficulties? But one thing for sure, Java is never fast enough for ubiquitous devices, even JavaME. Although it is possible to run Java applications on your cell phone, the loading time of them is always pain-in-the-ass.

Android successfully solved the issues by optimized many parts of the Java environment to its own design. Yet the nature of Java is kept: portable application binary.

I am wondering whether one day we will have our desktop environment replaced by Android? Can anyone tell me a reason that Android will not be able to make it?
Cisco settles with FSF after filching free software


I think. It is always our best option to be honest and face any problem we have on hand. Not escaping it because it does not work. Even it works, you need to worry about the backfire that may come to you at any moment.

Sunday, May 24, 2009

SVN -> GIT

Recently, I start to touch Linux kernel, as an integrator and developer. I am in need to learn some basics of its source management to keep myself up with the rapid development of Linux
kernel and development repositories spreaded everywhere on the Internet.

As an SVN user, I am comfortable with canonical type of SCM (source code management) and have no idea about the rest of the world of SCM.

Git is the SCM used by Linux kernel and getting more projects using it. I am totally clueless with it and need some help despite I've compiled git on some Linux box and cloned some repository before. I am doing some simple study and found the following web page written by git guys really useful to an SVN guy like me.


Enjoy if you are having same problems I have.

Sunday, May 03, 2009

Golden Week

Golden Week is a national holiday in Japan that lasts for one week. It sounds great, most of us will envy it a lot, but I never knew it actually has great impact to us.

I took a HSR train today to southern part of Taiwan today. When I was on the shuttle bus to the metro, I found there are three Japanese girls sitting nearby. After ten minutes, I realized that some one in Japan notified me they are having Golden Week since yesterday and he will not be able to reply emails.

Also, on the 2008-2009 calendar I brought back from MIT, Golden Week is listed on it, too!

I think Japan has successfully marketted its national holiday. And the best thing is, because it takes only 4 hours flight to reach Taiwan (roughly two movies), many Japanese visit here for sightseeing.

That helps our economy.

Maybe, I should learn Japanese, too.
Code Refactoring

We used to call it "code clean up", which is something rarely done in our company due to always "tight schedule" and "higher priority" tasks.

Despite the fact that after refactoring the maintainability is much improved, our managers typically do not want to give us a slice of time doing it. The reason behind probably would never be known.

I have a heuristic theory that they are not aware of the importance of software engineering. "Ya, I know that, but ..." is a typical scene you will see when a software engineering advocate proposes something about software engineering to higher ranked staff.

Another good reason is: most of our managers have hardware background instead of software. They wrote some 8051, hello world stuff in their colleages or universities and that is "the software" in their mind. The only difference is we are dealing with more lines of code.

I will stop pouring my complaint for now. This is the short definition of code refactoring:

Code refactoring is the process of changing a computer program's internal structure without modifying its external functional behavior or existing functionality, in order to improve internal non-functional properties of the software, for example to improve code readability, to simplify code structure, to change code to adhere to a given programming paradigm, to improve maintainability, or to improve extensibility.

Wednesday, March 04, 2009

A Nice Poem

I got this from Mrbig a few minutes ago. It makes perfect sense to me. Hope it does to you, too.

五言詠麻雀 曹興誠          

東南西北風 玩過人人瘋 方城無歲月 喧笑不知冬
峰迴出意表 拙能勝智巧 名利追逐苦 何如吃碰胡 
貪求把把贏 必然頻放銃 心快手要慢 盯張不可鬆
聽熟不聽生 聽邊不聽中 牌背要能守 牌順要敢衝 
贏時莫輕狂 輸時忌燥動 出牌要果敢 慢磨惹人煩
不可禁如廁 牌規應寬容 輸若贏友誼 似敗實成功 
有云玩喪志 我問志何用 人生如牌局 無欲更從容
世道多炎涼 幸有牌熱烘 局散何妨去 笑看月當空