Saturday, May 19, 2007

Count to 10

Well I'm married, working at a new job, in a new state, new apartment, new dishes, new shoes, new haircut...

Life has been hectic in recent times for those around me and myself! I have been involved in all kinds of events lately, and I look forward to being a homebody for a day, maybe two. I just got back from the Maker Faire. Wholly fun time, attend if you can it will be going on tomorrow and also down in Texas (in a month?). They had a huge, human size Mouse Trap Rube Goldberg deal!!! If that does not get you there what will?

Interesting stuff going on at the jobby job

On the work side of things I have putting together some image manipulation code in the last week (my first back since the marriage/honeymoon). I am watermarking pngs, jpegs and pdfs. The pdfs are the hard ones. I am using this lib called iText. My hat is off to Bruno Lowagie and Paulo Soares, the men behind iText. If you need to generate pdfs in the Java language this will be the lib you use (I'm 95.7% sure).

Oh I also set up Continuum at work so that it sends email notifications when projects break, bam!

My boss has been playing with Derby. I have some experience with Derby, but mostly in using it for testing w/ Spring + Hibernate + Maven 2. We are using this XML database called Mark Logic. Pretty cool I haven't been let loose on it yet, being busy with many other things... So my boss he created some code which he embedded into Derby that allows him to get documents from the Mark Logic DB. He parses these documents and inserts data into relational db tables within Derby. That guy is a hacker pro! He is also creating an Atom server that can be embedded easily within Java code.

I love this because it will allow me to create integration tests for an Atom client I am developing (among other Atom based projects I am working on). These tests would not depend on network machines. To outline this; a test begins by starting the embedded server. The server can create a simple Atom workspace containing some feeds and entries in kind. Then I can have my client hit the server (in the test). The nice thing is that I can control the server 100%. Every time the test runs the server will be a fresh copy of the Atom workspace. This is very very useful.

My Javascript journey

I've been reading a bit. I read a bunch of David Flanagan's 5th edition of "Javascript: The Definitive Guide". The chapter on modules and namespaces was most interesting to me. I haven't used the technique he describes, using objects within Javascript to create a namespace. I see it as a must use technique for any collection of code that you would like to see reused. Unfortunately this technique was not employed in a pet project I have been working on. I will have to spend more time refactoring it so that different parts are packaged under namespaces. Oh well if I never get an actual product working I at least garnered some skills in the whole mess.

Becoming a better programmer

I'm on a kick to to enable myself to be a better Java programmer. To do this I will be looking at ways to extend my skills in general ways.
Dear readers (LOL): Any tips or stories of how you may have done this for yourself would be appreciated.
I have picked up the books "Jakarta Commons Cookbook" and "Java Generics and Collections". I think these should be helpful. I have sadly known about the Apache commons libs for a long time, and never mustered the energy to explore them. I can see now that was dumb. The commons-lang and commons-logging alone simplify lots of the Java cruft I dislike. Generics is a language feature that I do have some experience with. I have done little to really understand them though. I think the book will be a quick way to expand my language skills. I am also really interested in getting deep into the 1.5 concurrency stuff. Any good book suggestions?