Archive for November 2008
First 5 Favourite computer books
These books helps me a lot when i face difficulties in my projects and improves my solving skills as well which i will like to share with anyone.
Book 1 : The algorithm Design Manual by Steven S. Skiena.
Very good book to learn more details to tackle algorithm problems. It is very technical but after re-read many times, i came to understand at least 70% of it’s contents. When i was in computer science major, i suffer a lot to understand most part of the algorithms, which i was wondering why at that time none of my lecturers or tutors ever suggest this book to learm algorithms. What a shame!
Book 2 : Design Pattern, Elements of Reusable Object-Oriented Software by the Famour four gang.
Well, another important and must have for every software engineer. I once found it difficult to learn, because lack of object-oriented design experienced. Instead, I started reading this book first : Book 3 : Head First : Design Pattern and then come back to previous book. Head First : Design pattern are so easy and fun to read. I understand a lot of design pattern and how to use it in my projects after reading combination of these two books.
Book 4 : Don’t make me think! A common sense approach to Web Usability by Steven Krug.
If you’re web designer, developer or software developer, and you don’t have this book, you should really really get this book immediately. This book change the way i think when designing the graphical user interface for every projects that i had worked on. When we tend to design any sort of GUI, we tend to perceived and imagined how this or that GUI should work based on our mental model, and forgot who is the real person using the GUI. But, we never though about the user side mental model. This book give me a lot of ideas and hints of do and don’t when comes to usability.
For example, my last project was to design and mobile application for vision-impaired users. I actually had to understand how vision-impaired person use their mobile devices using Text-to speech software such as Nuance Talks. Indeed, it was very hard for me even i am the person and my team who design the software. We actually had to shift our’s mental model to vision-impaired ones’ and of course frequent communication and user acceptance testing help us a lot dealing with those difficulties.
Book 5 : Beautiful Code, Leading programmers explain how their think by Andy Oram (Editor) and Greg Wilson (Editor.
I love to re-factoring my code every times i had finish the main coding. I tend to make it clean, efficient and readable to any users as much as possible. This book teach and guide us, way to produce good quality and maintainable code. Most of the sections, are very useful except chapter 10, 16, and 23 because these chapters more on low level and very technical stuff such as Linux Kernel and Google Reduce Maps.
For my own opinion, to become a good software developer, not only you need excellent solving skills, communications, written, technicals, and more which i can go long for the whole days;however be able to write something that can let people impress like “Wow”, is quite hard.
There are another 5 more books which i will post on the next post. These book includes (Oreilly Regular Expression, Code Complete, Writing Secure Code 2nd, Oreilly Algorithm in a Nutshell, and Think Recursively).
Java TimeZone
Recently, i was working with J2ME apps to get current time system. I faced several confusion when i tried to execute the code below :
long time = System.currentTimeMillis(); did not return the current hours on my computer, instead it return the hours based on Standard Time +0000 UTC. That means, no matter which machine or device you try to retrieve the current time, it always give you the time based on UTC. You can check the current UTC time on this link.
Since, i am in Melbourne/Australia, where my current timezone is UTC+11 and begin of the day light savings. One way to workaround to get the current time is using Calendar and Date in Java:
Calendar myCal= Calendar.getInstance (TimeZone.getTimeZone ("UTC"));
//The point here is to calculate the minutes based on UTC+11
Date date = new Date (myCal.getTime().getTime() + (11*60*60*1000));
long time = date.getTime();
int milliseconds = (int) (time % 1000);
int seconds = (int) ((time / 1000) % 60);
int minutes = (int) ((time / 60000) % 60);
int hours = (int) ((time / 3600000) % 24);
The above result will return in milliseconds when you use date.getTime() to get the value.
Result : 01:10:22 (based on the time i complie and run the code)
Useful Link. The world Clock.
Tips : If it is the end of Day Light Savings, you should -1, that means, UTC 10 instead of UTC 11.

Spread Firefox
