Apple MacBook Pro Hard Drive Upgrade

Posted in: System Administration

In a previous post (Apple MacBook Pro Memory Upgrade) I detailed the reasoning behind choosing to perform some upgrades on the MacBook Pros in my family instead of buying new ones. In this post I will go over the process needed to upgrade the hard drives to give us a little more room to move for the next couple of years and hopefully some performance improvements as well.
Continue reading »

Apple MacBook Pro Memory Upgrade

Posted in: System Administration

When I buy a tech gadget, whether it be a cell phone or a laptop for example, it always costs me twice as much as everyone else. No matter how good a deal I try to find, it always ends up costing me exactly twice as much as everyone else. Does this happen to you?

It is caused by Geek Wife Gadget Purchasing Syndrome, wherein I cannot buy any cool technology without also getting the same thing for my wife because she also covets cool gadgets.

We had planned to update to the latest MacBook Pro this coming January, as that would mark 3 years since we purchased our current identical in every way MacBook Pros. However, in these turbulent economic times and because of the syndrome mentioned previously, we decided to explore alternatives.

In the end we decided the laptops were not too bad and we could probably squeeze another couple of years out of them, but we had to do something about hard drive space and RAM. So this post details the RAM upgrade and I will detail the hard drive upgrade in another post.
Continue reading »

Success Guide For Sun Certified Enterprise Architect Exam

Posted in: Enterprise Java

After upgrading my SCEA certification recently (see this post), I have summarized some key pieces of information and the resources I used to pass the exam below. I hope this helps others pass as well.

The Basics
The place to start is the main SCEA exam page on the Sun site (http://www.sun.com/training/certification/java/scea.xml). You will find a description of the exam objectives as well as plenty of plugs for Sun’s own training courses to help you pass the exam (I have never taken any training directly from Sun, so I cannot speak to their value).

Certification Structure
Remember, the certification is made up of 3 parts.

The first part is an exam and is the hardest part, this is the part you are really doing all of the study for. The exam is a computer administered multiple-choice style exam (the same as the SCJP exam if you have done that one).

The second part is a take home assignment. This part will take the longest and involves presenting a solution (via UML and other documentation) to a business problem. There is no coding involved.

The third part is another computer based exam, but is made up of long answer questions this time. You should plan to do the 3rd part ASAP after you have submitted and passed the 2nd part. The questions in this part will ask about certain design considerations and other decision points from the assignment and why you chose the solution option that you did.

Obviously it will depend on your level of proficiency as an architect and specifically with the JavaEE technologies, but I think you should plan on 3-6 months in prep for the first part, 1-3 months to complete the assignment and then you should be able to do the 3rd part within a month of submitting your assignment depending on how long it takes Sun to review your assignment and you to get scheduled in to take the exam.

Websites
Below is a list of some websites that contain relevant information.

Books
I have read all of the following books at one point or another. They are all mentioned as recommended reading at various places in the official Sun documentation for the exam.

Some Notes on Upgrading
If you have previously passed the SCEA for an earlier version of the JavaE/J2EE specification, then you can complete a modified version of the SCEA certification to upgrade to the latest version (currently JavaEE 5). The upgrade certification process only requires you to sit and pass the first part of the normal certification – the multiple choice exam. You do not need to re-do the assignment or the long-answer exam.

When I sat the upgrade exam, I noticed that a significant proportion of the questions were related to web services. I suspect that this is because the first time I sat the exam, web services were not officially part of the JavaEE stack and so perhaps the upgrade exam is tailored to cover only the newer parts of the specifications – but I cannot guarantee that this is the case.

Do you have other resources that you would recommend? Let me know in the comments.

Upgraded My SCEA Certification

Posted in: Enterprise Java, Software Development Best Practices

I am happy to announce that yesterday afternoon I passed the exam necessary to upgrade my Sun Certified Enterprise Architect certification to the JavaEE 5 standard. I was previously certified for the J2EE 1.2 standard.

I have been working with a study group, but I am the only one who was upgrading, everyone else is working towards passing it for the first time. So I am the first one that is done.

Good luck to my study pals!

Upgrades, upgrades, upgrades everywhere

Posted in: Enterprise Java

We are bombarded with hype about new versions of tools (like IDEs), or new libraries (like a new JDK), or a new software package (like a new object-relational mapper) all day long. But do we even need them? Can’t we basically create what we need to complete these mundane everyday tasks with the tools we already have? Aren’t most of these new releases just a way to sell new software licenses? Even when it comes to opensource software, upgrading to a new release has an inherent cost that needs to be weighed.

Here is a real world example. I am currently invovled in a project that involves upgrading the code base from JDK 1.4 to JDK 5 as part of the scope. My Engineer brain says that this upgrade is not only necessary, but just a plain good idea. There are some new language features in JDK 5 that we can take advantage of, so there is a benefit. But what are the costs? There is definitely a cost involved in doing an audit of the existing code and seeing if there is any code that is incompatible with the new JDK and putting together a plan and effort estimate to address those issues. There is also a optional cost of retrofitting the existing code to take advantage of the new language features (like enums for example). There is a learning curve cost. Perhaps there is a confusion cost for some junior engineers (I am thinking of the autoboxing feature). There is a cascading cost that we now also have to consider upgrading our application server environment to support the JDK 5 code.

So is all of this cost worth it? Will the benefits outweigh the risk and give the company some kind of ROI? I think in most cases, the answer is actually a defiinite yes.

Take the Java 5 upgrade example. Apart from the obvious technical benefits, there are a whole host of trickle down posiitve benefits. For starters, I think many companies underestimate the importance of keeping the geeks happy. Engineers like to use new tools and stay on the cutting edge. They like to be able to read articles in the latest journals and be able to apply the lessons learned straight away. Happy Engineers are good employees. They are more productive. They are more collaborative. They tend to not be looking quite so hard for that next dream job. They tend to be more forgiving of working conditions that might not be ideal. Engineers are creatures who like to learn and keep learning. Working on the same code and project and tools for year after year will be the death of an Engineer and you will end up with just mediocre Coders left on your team as the Engineers will be long gone.

So before you decide on your next upgrade, think about all of the costs involved, there are many hidden ones you may overlook at first glance. But then make sure you also think about all of the benefits (both short and long term). Not every upgrade will make sense, but I bet that a majority of them will.

Are our tools built for problems most people don’t need to solve?

Posted in: Enterprise Java

Not everyone is working on projects for the Defense Department where milliseconds could mean the loss of thousands of lives.

And not everyone is working on the backend for the stock exchange.

And most people are not writing their own application servers from scratch.

What are most people working on? Well that is a little hard to quantify, but it is a pretty safe bet that it is not a sexy application that they are bragging to their friends about. If you believe the 80/20 rule (and I do), most people are actually working on maintenance activities more than inventing something new from the ground up. Those who are inventing things from the ground up are more likely to be building a .com site for their company to show off their wares – it might even have an element of ecommerce to it, but then again, probably not.

So we are bombarded with hype about new versions of tools (like IDEs), or new libraries (like a new JDK), or a new software package (like a new object-relational mapper). But do we even need them? Can’t we basically create what we need to complete these mundane everyday tasks with the tools we already have? Aren’t most of these new releases just a way to sell new software licenses? Even when it comes to open-source software, upgrading to a new release has an inherent cost that needs to be weighed.

Here is a real world example. I am currently invovled in a project that involves upgrading the code base from JDK 1.4 to JDK 5 as part of the scope. My engineer brain says that this upgrade is not only necessary, but just a plain good idea. There are some new language features in JDK 5 that we can take advantage of, so there is a benefit. But what are the costs? There is definitely a cost involved in doing an audit of the existing code and seeing if there is any code that is incompatible for the new JDK and putting together a plan and effort estimate to address those issues. There is also a optional cost of retrofitting the existing code to take advantage of the new language features (like enums for example). There is a learning curve cost. Perhaps there is a confusion cost for some junior engineers (I am thinking of the autoboxing feature). There is a cascading cost that we now also have to consider upgrading our application server environment to support the JDK 5 code.

So is all of this cost worth it? Will the benefits outweigh the risk and give the company some kind of ROI? I think in most cases, the answer is actually a defiinite yes.

Take the Java 5 upgrade example. Apart from the obvious technical benefits, there are a whole host of trickle down positive benefits. For starters, I think many companies underestimate the importance of keeping the geeks happy. Engineers like to use new tools and stay on the cutting edge. They like to be able to read articles in the latest journals and be able to apply the lessons learned straight away. Happy engineers are good employees. They are more productive. They are more collaborative. They tend to not be looking quite so hard for that next dream job. They tend to be more forgiving of working conditions that might not be ideal. Engineers are creatures who like to learn and keep learning. Working on the same code and project and tools for year after year will be the death of an engineer and you will end up with just mediocre hackers left on your team as the engineers will be long gone.

So before you decide on your next upgrade, think about all of the costs involved, there are many hidden ones you may overlook at first glance. But then make sure you also think about all of the benefits (both short and long term). Not every upgrade will make sense, but I bet that a majority of them will.