General update

Lately I've been spending a lot of time documenting formal processes at work. I am *really* excited about this. We have been given the opportunity to make big changes that will get everyone working the same way in all areas of development. For example, today I was working on a Subversion Processes document that explains how to lay our your repository, branching systems, best practices, and a step-by-step guide with screenshots on how to handle every conceivable scenario using Tortoise SVN. Right now everyone uses subversion a bit differently and this is causing challenges. Getting everyone working the same way will improve our productivity.

I also have to write a document on using CollabNet Enterprise Edition so that we all use it properly and consistently. Right now we have an other issue tracking system that is used in a different way by almost every programmer. Some have mastered it, some don't really get what kinds of things should be a ticket and which shouldn't, and some don't use it at all. Hopefully this will make it crystal clear and we can all benefit from what CollabNet has to offer.

JavaOne is coming up very soon (May 8-11) and today I received an email informing me that I need to use their online scheduling tool to decide which semniars I will be attending on each of the days. The other day I had a dream that I arrived at the conference and realized that I didn't have a plan. I didn't know which seminars were available, where they were, when they started, etc... it was awful. The dream ended with me in a cafeteria eyeing up at massive piles of giant pankakes and a mountain of eggs done the way I like them.

The shower in my basement apartment is leaking a bit and I've got potential new tenants calling to come for a viewing. Grandpa is coming over Saturday morning to have a look. He thinks we're going to be ripping it down and putting tiles up the wall. I hope it doesn't come to that. It's not the money, it's the time and effort. I've learned that I really do not enjoy home improvement.

I'm 100 pages away from finishing reading the first part of my Solaris 10 book. After I finish, I'll spend a couple of weeks practicing on my Solaris box and doing the practice exams before taking the test. Then I'll have to read an other 200 pages for the second exam. If I pass both, I will be a Sun Certified Solaris Administrator. This is the first book I've read almost entirely in front of my keyboard so I can try out everything. I've found that my nearly 10 years of Linux experience (on and off over the years) has made a big difference. Working in Solaris isn't as difficult as I thought it would be.

After I pass both exams I will have covered everything I need to know about how to set up almost every aspect of my home network. I won't have an excuse to not get my home network servers finalized anymore. I bought those dam servers almost a year ago! Next I'll buy a Sun Ray 2 thin client, and attach it to my 52" tv in the living room using a DVI cable. I'll have a performant Solaris 10 graphical desktop in my living room on a big screen :) I'm not going to do it just for fun, I see value in Sun Ray clients and want to get experience configuring the server and managing it. They are pretty cheap, $250 US each.

Today I received an email from Marco. He and his employer will be in Toronto in a couple weeks. Their company is merging with a similar company in Toronto and they need to align their IT? Marco said he could get me a job managing a small team of developers if I'd be willing to move to London England and work in an office with a close view of Big Ben :/ What an offer. I let him know how greatful I am for this opportunity but I had to turn it down. I am loyal to IJWS, almost 9 years now. I like the long term job security of IJWS. Also I prefer writing software to managing. That will probably change as I get older but not right now. This is the third job offer I've turned down in the last year. Crazy eh?! I'm not even looking for a job, it's through people I know.

A romantic evening with Solaris

After realizing that the J2ME book I was reading covered only MIDP/CLDC (cell phone development) and not CDC for PDAs, I decided to put the book down and start reading one of my other books that will have an immediate impact on things I'm doing with my servers.

As I started reading the first sentence of my Solaris book, the power went out! The power was out for 3 hours, so there was really nothing to do in the dark other than read a book. Solaris and I got acquainted under romantic candle light, and by the end of the first chapter I realized that this is a match made in Heaven. I will become a Solaris guru.

I need to get a life... :)

Finished a book

Tonight I finished an other one of my books. It covered the Agile Unified Process and Object Oriented Analysys & Design with UML. This is the book used by a course in Toronto I was going to take called "Business Systems Analyst". I now understand the importance of the BSA role on a project. It will take a lot of practice to get good at the UP, and to do the work of a BSA. Hopefully after a pilot project others will become interested.

Before starting my next book, I'll take a couple weeks off reading and will learn more about Collab.Net, Centric CRM and JRoller. That could take longer than a couple of weeks, but I would like to at least get them all installed on the same server and hopefully get my blog moved over to JRoller.

I haven't completely decided on which of my books I'll read next. The plan was to read the J2ME book for mobile app development. The other book was JUnit. I've read over half of it already, then lost it in the airport hehe. I think I get it, just need to put it into practice at work. What else? I had also planned to study the Sun Java Coding Conventions document, and the Sun JavaDoc Conventions. Combined it's over 100 pages. There's also my second book on design patterns. Geeze all of this reminds me of other books I wanted to read such as JavaScript, and advanced database programming. Well, at the moment I think I'll choose the J2ME book because it will be much more exciting than the last two I read, and it may be useful at work one day.

Java update

This weekend I finished my EJB 3.0 book, which has made the books I read on Hibernate and Spring obsolete. Oh well, I'm glad to have found what I think is the right path to be taking. The books on Hibernate and Spring were exploratory as I knew there was a lot of talk about them but had no clue what they were. I counted the number of books I have read (cover to cover) over the past year. Nine!! Core Java Server Faces, Hibernate In Action, Spring In Action, Core J2EE Patterns, Java in a nutshell, Eclipse, XML in a nutshell, EJB 3.0, and at some point I also read Designing with web standards - a complete waste of time and money. That wasn't part of the title, it was my opinion. The whole book was marketing to sell me on the idea rather than showing me how.

People often ask if the information in the books stick since I have read so many. Yes, it sticks in two ways. 1) The information that I put into practice on my java project at work is burned into memory. 2) I don't remember the fine details about the information I have not put into practice, but more importantly I do remember the concepts and the big picture. It helps me know what's out there, what I can and can't do, and helps make design decisions. When it comes time to put one of these skills to use I refer to my books and the Internet.

I still have a few books I have purchased but not read yet: 1) JUnit in Action (very important to get this read ASAP) 2) Sun Certified Java Programmer for Java 5 Study Guide (reading it now), 3) Design Patterns in Java (the original GOF patterns using code examples in Java), and 4) Beginning J2ME (cell phone and PDA programming).

My unguided journey to Java enlightenment is taking a long time, but I knew it would. It takes a lot of time and effort, and in the end the payoff will be well worth it. After my Sun Certified Java Programmer certification, I'll be getting the certified developer, and Enterprise Architect. I want to master all the skills related to the paperwork done for software projects such as the requirements document, functional specification, etc... and eventually move into a senior position. Actually, my ultimate dream is to be involved in the paperwork and design of the system, then manage a team of talented programmers to write the code according to spec and ensuring high quality usign well known techniques. Realistically I think I'm at least a few years away from that. I need to feel that I have mastered every aspect of what I'm doing (planning, programming and management skills), which only comes from study and experience. The Java EE world is a very large one.

Anyway.. back to the present. I think this study guide will take me all of September and October to get through before I take the exam in November.

Java

I mentioned earlier that starting in August I started reading lots of Java related books.. not to learn everything but to get an understanding of what the different frameworks and pieces are, how they fit together, and what I can and can't do. I've read a book on JSF, Hibernate, J2EE Patterns and Spring. Hibernate and Spring are two well known frameworks that replace some functionality of EJB and make it a lot faster and easier to program. They also let you work with POJO's so your code is loosely coupled. Nice, but I've now realized that for some things I can't get away from needing EJB's. For example, if I want to make a web service that is connected to an other system communicating with a proprietary protocol and need to keep the connection alive forever, and need to alert other components when the connection is lost then we're not talking web/presentation tier programming. We're talking about a real program running in the background that exposes an application service.

Basically I've got another book to read. But I'm glad I've read what I've read because I feel I have a good understanding of what I know so far and will be able to model a large J2EE system the proper way when I'm finished. I've also got a book on JUnit to read.

Last week I found out about a seminar in Toronto about J2EE development. It was to get you to sign up to take their course. I went hoping to blend in with the crowd, see what they're teaching and to use this information to guide my own studies. Unfortunately nobody but me showed up so I got one-on-one with their salesman and instructor who wanted to know everything about me and my money. A prerequisit is Java experience, something I've got next to none of. It was very akward, especially because I knew I wasn't going to take their course anyway. I spoke with the instructor for an hour. He's the J2EE senior programmer/analyst for Rogers Communications, the big cable tv/internet/cell phone company in Canada. The classes are 11 weeks, Mondays and Wednesdays from 6PM - 10PM, 3-10 people per class, they provide you with a laptop to borrow that has everything installed including IBM WebSphere and DB2. He seemed quite knowledgeable and teaches exactly what I want to learn and get practical experience with. I left wondering if I should take the course. I've been thinking about it all week and really think it would be good for me. One on one with that kind of experience would be great, and I'm forced into a minimum of 8 hours per week at a keyboard programming the course project.

I had a few issues to overcome: 1) My dog Bandit is in his crate all day while I'm at work (except when I come home for lunch). I'd have to leave work early twice a week to go to this course and wouldn't be back until midnight. Then I'd go to work all day the next day. That's almost 2 days of solitude, twice per week. 2) I'd be driving 1.5 hours each way in the dark, during winter. 3) With my java experience, am I setting myself up to fail?

The answers I've come up with so far are: 1) My friend's girlfriend works from home and can watch bandit for me on those days, and keep him overnight. 2) My friend took a course in Toronto as well and did the commute in winter. He says the roads are kept clean, and at the times I'll be driving traffic will be good. 3) I've got between now and January to brush up on basic java skills.

I still don't know if I'm going to take the course or not.. but I really think I should. One on one with Rogers' senior J2EE programmer/analyst, and the amount of material they cover in 11 weeks is great. The large number of topics covered is everything I've wanted to learn about but don't have enough time to read 15 books on.