29 November 2009

61 Free Apps We're Most Thankful For - Thanksgiving - Lifehacker

Handbrake for buring DVDs

HandBrake Updates to 0.9.4 with Over 1,000 Changes, 64-Bit Support - Handbrake - Lifehacker
Windows/Mac/Linux: If you ever have to rip a DVD to your desktop or convert video, you know how awesome open-source encoder HandBrake is

Dilbert Capitalism


Architecting a system need a wide knowledge of technologies, COTS, projects, standards.... | Java.net

Architecting a system need a wide knowledge of technologies, COTS, projects, standards.... | Java.net
When we start working on a new project as an architect we are dealing basically with a set of requirement which our architecture should be able to act as a foundation for the design and implementation of those requirements in form of a software system. to let the customer fulfill its requirements in a better and more efficient way.

Preparing the architecture for a software system means not only the architect to be familiar with the domain but also he should well aware of new technologies, frameworks, COTS, and standards available not only for the domain he is working on but also for the development platform which will realize the architecture into a working piece of software.

Knowing a platform is the foundation for knowing the related technologies, standards and popular frameworks around that platform, but to know the COTS, or open source projects around the same domain we are going to work on we will need to have some experience in implementing some software in the similar fields or we should have some research in the similar domain.

Having enough experience in doing architecture, knowing the domain, the platform and the free or commercial enablers form the necessaries in creating a good architecture but it is not enough because of the advancement in deployment models which one can select to develop and deploy the system independent of the domain itself. Having knowledge and experience with component models, modularity frameworks, integration standards and solutions, and deployment model form the next set of necessities in creating a good architecture.

Finally, I think being passionate in doing something play a big role in being successful in it. So, being passionate is the most notable requirement for an architect and without it, the architect will not be able to achieve his goal which is nothing but preparing a good architecture and realizing it to a good software.

Testing Frameworks for Java with Code Samples | Javalobby

Example of parameterised JUnit tests

Data-driven tests with JUnit 4 and Excel | Java.net
Useful example of using parameterised JUnit tests, not sure I'd want to maintain test results in an Excel spreadsheet though, why not just export it to csv

Why do you run Centos

Why do you run CentOS ?
I've been running Centos for many years now and have been very happy with it. Its basically a copy of Redhat Enterprise Linux, provided for free. The benefits of this are having a stable OS environment that matches that used in most enterprises.

The Abuse of Utility Creational Methods | Javalobby

The Abuse of Utility Creational Methods | Javalobby
Here’s a quote from Martin Fowler’s Refactoring book: “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” I’m not saying that I’m a good (nor bad) programmer. All I am saying is that this phrase is in my mind whenever I write code. So, when I write code, I think about the person who will replace me some time in the future. A person that will probably be unfortunate to debug my code without me around to explain to him what’s going on.

Pingtest Assesses the Quality of Your Internet Connection - SpeedTest - Lifehacker

13 November 2009


Project of the day: YouDebug | Java.net
YouDebug is a debugger but it's not a debugger. Let's say you have the following program, which computes a String and then do substring.

public class SubStringTest {
public static void main(String[] args) {
String s = someLengthComputationOfString();

private static String someLengthComputationOfString() {

One of your user is reporting that it's failing with the StringIndexOutOfRangeException:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1949)
at java.lang.String.substring(String.java:1916)
at SubStringTest.main(SubStringTest.java:7)

So you know s.substring(5) isn't working, but you want to know the value of the variable 's'.

To do this, let's set the breakpoint at line 7 and see what 's' is:

breakpoint("com.acme.SubStringTest",7) {
println "s="+s;

Now, you send this script to the user and ask him to run the program as following:

$ java -agentlib:jdwp=transport=dt_socket,server=y,address=5005 SubStringTest
Listening for transport dt_socket at address: 5005

And then the user executes YouDebug on a separate terminal. YouDebug attaches to your program, and your script will eventually produce the value of 's':

$ java -jar youdebug.jar -socket 5005 SubStringMonitor.ydb

09 November 2009

The (Positive) Effect of Adding New People to Project Teams

Xtreamer replaces my XBMC

Bought an Xtreamer media player to finally replace my trustworthy XBMC which has been running on a first gen Xbox for many years now.  The interface isn't very nice but it plays all formats I might ever want to play and can deal with HD formats including AVCHD from my camcorder and its only about £100.