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.