Archive for October, 2006
Communicating with the team and keeping abreast of what is happening with the project from each member in the team is very important as it can definitely avoid some last minute surprises and gaps. To make sure this happens, the team has to adopt one of the agile techniques of stand up meeting. Stand up meetings are held every day. The meeting is a quick one and the agenda is simple, each and every team member brings out what he/she has done, what he/she is doing and what has to be done yet and also any concerns that is hindering his/her progress. But there is lot more to making the stand up meeting effective and keep the team motivated doing it rather than making it a ritual. How? Read this white paper “It’s Not Just Standing Up: Patterns for Daily Stand-up Meetings” by Jason Yip of ThoughtWorks.
The evian mineral water film ad won Epica - Europe’s premier creative awards in 2004. The advertisement is really cool and creative. Water Rocks!
Can a wrong data entry create a huge loss? Yes it can if the system does not allow one to rollback or alter once the information is submitted. Here is a reality from the recent news article in BBC “Tokyo error triggers huge lawsuit“. This reminds me of the recent newsletter “My Unexpected Reward from Best Buy” in Javalobby by Rick Ross. It is apparent from the above news that systems should be built to be more adaptive and should have some intelligence in such cases. Even a re verification and confirmation feature in the system would have reduced the possibility of such a erroneous transaction.
A recent article on java.net had this interesting question “Why Do Pointless if Statements Even Compile?“. I went through the article as well as the comments made by readers. It is a good one, made me think and the question seems to be really valid and not at all a stupid question. I think it would be all the more costly to do a check in the compiler rather than just allow it as it is syntactically right. The only time this would produce a side effect is when the if condition does not have an else. Otherwise putting an else would throw a compilation error “else without if”. Following a coding standard and using code check utilities like checkstyle can also help. Nevertheless it is an interesting question.
File signatures are useful to identify a file type. This approach had been there for a quite long time. For example when a JVM has to load a java class file the first thing it would check is if it is a Java class file. In order to do that there is a magic code that identifies if the file is really a Java class file. What is this magic code and how do we see it? Keep reading.
In order to check the signature of the java class file we need to have a tool that can help us view its initial bytes in the form of hexadecimal codes. Interestingly if you are using a Windows system there is an easy way without the need to go for a tool. DOS had a tool called debug which allowed developers to look at assembly code of an executable. This tool loads an executable COM file (like command.com) and users can view every byte of the file in binary and hex. Debug is still packaged with Windows and we can use it to look at the class file in binary and hex.
But there are two constraints to use debug. The debug command still thinks that it is running under DOS and will load only a COM executable. Next thing is the DOS 8.3 file naming limitation; if you have a file that has the prefix more than 8 characters and suffix more than 3 characters, debug will not understand it. So here is how we are going to cheat debug thinking that it is loading a COM executable by simply renaming the class file extension to a com extension and also confirming to a DOS 8.3 file naming convention.
I created a screen cast that will show you how to view the signature of the java class file using debug tool.
Why CAFE BABE? Maybe James Gosling and the team thought it sounded sexy and also Cafe went good with Java. But up till now to my knowledge the real reason behind this magic code is not known.
With the above technique you can try out the magic codes for other file types.
Automated build scripts are like any other code that will require some maintenance and enhancements then and there. The scripts could be reused and altered to different projects or for the same project but how easy it is to do depend upon how clean and maintainable the script is. Here is a good article from IBM developerWorks “Automation for the people: Remove the smell from your build scripts” that gives few tips on writing a cleaner maintainable automated build scripts.
If you are new to build automation read my series of posts on Build Automation.
If you have joined an organization as a developer after passing out from college, it is most likely that you will undergo some training sessions initially in the organization. You will be taught on different topics. It might be an overload trying to teach everything in one stretch. The basic thing one needs to understand here is that just by attending the training in one stretch does not make you a programmer. A training is just to kick start you. The organization will try to teach you everything in a month to three months timeframe. The topics will be varied and once the topic switch happens it is going to be difficult to keep in mind what was taught previously. You cannot blame the organization either as it would be looking for you to become productive quickly rather than just attend training. Here are a couple of suggestions in such a situation.
- Practice - Practice on whatever has been taught whenever you get a time. Only practically trying to apply what has been taught registers the concepts and basics in your mind. It will also help you to go beyond what has been taught in the training. Look out for more and dont expect everything to be taught in the training. And the can be easily done with the internet in hand and some practice.
- Mind Maps - Create a Mind Map of what has been taught. Creating a Mind Map whenever you learn something can help very much in the long run. A Mind Map is a reference material for you to always refer and get back to the day when you were taught that topic because it just not helps you refer back the concepts but also captures those day’s moments of the training session as Mind Map works by association. If you are new to Mind Maps please refer my series of posts on Mind Maps.