Saturday 26 May 2007

Eclipse Mylar ... Wow!

So, Subclipse is installed. I noticed (well was forced to notice) that Subclipse required Mylar before it would install. Okay .. dependency yicky, but, quickly sorted out by installing Mylar.

But, as Always, I MUST know what something is (which is a painful character trait as it does get me distracted often) and Mylar quickly became on top of my list. (Talk about being distracted, at 9:50am today (Saturday) I was starting the day for prototyping an idea I had last night at 2am using GWT, and now I am blogging, not yet into my prototype).

So, where was I.. Mylar, Mylar after it installed in Eclipse actually prompted me to look at the Getting Started Webinar, which was good because I was just about to minimise eclipse and go looking myself.

Mylar loaded a browser in Eclipse, without hassle, and on the Mac (love it when things work).. so I went along for the journey. It's a 40 minute presentation by Mik Kersten. All I can say is wow. It truely is something to be seen, even for small shops you should be using this stuff.

What is it ? Well you really need to see the webinar, but in summary it helps you do your work by showing you the things you are working on (automatically) and not involving you in the stuff you don't need to see right now. Eclipse has excellent integration hooks into the whole environment for controlling stuff (views and issues and notes etc), and Mylar has just gone one step further and controls all of this for you based on issue or tasks that you are working on (which you choose). So what you see, is only what you NEED to see, and it has the quick flick buttons to show all if you know you need to see something, and then, once you looked at that item, its now in your "filtered" view (if that's an ugly term for it).

It is far more than just filtering too, because integration into the Issue Tracking software is built in for Bugzilla, Jira and Trac which means team collaboration and project deadlines are at your fingre tips to make you more productive.

Really, watch the webinar (link is at the bottom) and you will see what I mean.

Here is (Ramon's dodgey list) the QUICKEST way to get the most out of Mylar.
  1. Install Trac (Bug tracking software) somewhere in your org (or use Jira if you can it's GREAT!)
  2. Install Eclipse 3.2.2
  3. Setup Subversion
  4. Install Mylar then Subclipse (the Subversion plugin for Eclipse)
  5. .. and watch this webinar
In my previous employment, issue tracking was managed by Tracker (Merant) and now the newer version TeamTrack. The benefits for Java Developers using Eclipse with integrated source repository and issue tracking software is just brilliant, and it's complete dark ages if you aren't. (now that I have said that I will have to practice what I preach hey).

Seriously, watch that Webinar and you will see why I have just become so excited. If anyone has worked on a project that is big, and you have to collaborate, it, Mylar, MUST be a MUST. If you aren't on a big project, then use it anyway because
  1. You are probably WANTING to make it big and you might as well start with a good foundation; and
  2. A good practice of coding ONLY leads to good quality code which relates to more time with your family and THAT is important.
Netbeans users, I see that there is something called ALM (Application Lifecycle Management). Sorry NB peoples, I MUST not get distracted, I might look at it another day. Someone can surely comment on the differences between Mylar and ALM. Not being a big Netbeans user it's lower on my priority list, sorry.

Back to Mylar, what's the name deal ..

Mylar is a term oft heard around the spacey dudes that watch the sun.

and Mik explains in his webinar

Mylar for the Sun - Aluminised film used to avoid blindness when staring at an eclipse.
Mylar for Eclipse - Task focused UI to avoid information blindness when staring at Eclipse.

So in closing

To the Mylar Team

Brilliant tool guys and what an idea. A product feature like this deserves an award and it shows that you have thought long and hard about what you wanted it to be.

And .. oh, what a fantastic name for your project .. I absolutely loved the definition.

Good Job!

I wish there was something like mylar for my web browsing which would have removed the crud I waft through daily so that I would have seen Mylar earlier (like 7 months ago) :-) Excellent job Mylar Team.. just brilliant.


References
The Mylar Webinar - https://admin.adobe.acrobat.com/_a300965365/p46246963
A Podcast from EclipseCon 2007 - http://www.eclipse.org/resources/resource.php?id=366
Netbeans ALM - http://www.intland.com/products/cb-download.html
Trac Issue tracking - http://trac.edgewall.org/
Jira Issue Tracking - http://www.atlassian.com/software/jira/
Subversion - http://subversion.tigris.org/
Subclipse - http://subclipse.tigris.org/
The Mylar Homepage - http://www.eclipse.org/mylar/index.php

Can I just say again .. Mik and the team, this deserves the biggest pat on the back of your careers. Fantastic!!! A Killer Plugin for an Already Brilliant IDE. You have made me love Eclipse even more... good work.

Friday 25 May 2007

My old avatar, and my iPod


So, following on from the previous post, I have "reposted" all the OLD blog entries 03 - 04 (not lots, but you know, something for the kiddies).

Anyway, I also found my old avatar. Not so much an avatar as it is me back 3 years ago. :-)

It took a while to repost. iPod is still trying to find it's bad sectors... the long story is that I spent $160 on a 60G iPod Harddriver from the US.. and it doesn't work .. ARGH.. THAT really frustrates me. I might just go out and buy an iPod and be done with tinkering I think.

The WayBackMachine (internet archive)

Having recently moved my blog over to blogspot, I have wanting to "retrieve" all my old blog posts. Some are just historical and one is just funny.

In irony of a good IT professional, I was unable to find my blog backups, so instead, a waking (6:55am) thought prompted me to look on the Internet Archive (aka The Wayback Machine).

Of course, the posts were there. (this story has a good ending). So I am now proceeding to copy my old posts over to "here". For those bored, you can take a look at the RSS feeds and see which "old" posts have "modified" dates of 2007. (told you it's for the bored).

One post in particular that I didn't want to copy verbatim in is the following..

Wed, 9th Apr 2003

web load testing tools - @ 09:09:11
Here is a list of Web Testing tools that I have found
Comments on the ones I have used:

Siege
Open Source

OpenSTA
Open Source

MS Web Appplication Stress Tool (MS WAST)
Free for Download, Usage Persuant to EULA

Load (by PushToTest) - No longer Maintained

TestMaker (by PushToTest)



So I have copied it in because, technically (or chronologically) it is my first public blog posting. Bit boring, but just hilighting it's contents, testing has well moved on from here now.

Two items when it comes to GUI Unit and load testing comes to mind (actually 3).
First is that with (Google Web Toolkit) GWT, the unit testing framework is built in. (A plus of course).
Second is the mozilla initiative to provide a Java testing framework for web pages. I have not yet had the pleasure (possibly) of using it, but suffice to say it looks great.

Of course, the third is really just a note, that since this 2003 posting, I have hammered grinder, weighed jmeter even more and, .. the browsers are finally starting to behave like you want them to .. THANK you FireFox!!)

(as I type this I hear the horrid sound of
mke2fs -c -v /dev/sda

clicking away on my iPod because the HDD has completely died. .. Im scanning for the bad blocks on Linux so that I can recreate the partition map skipping the majority (with buffers) of the bad sectors. Let' see what I come up with .. (there is a MUCH bigger story to this, one which I hope has a happy ending).



Wednesday 23 May 2007

MacOSX and .. and ..

So it's been 2 days now that I have been using the Mac for my primary machine.
I have used Mac's for a while in the past, but primarily as test machines, or in my earlier days as a network admin, supporting users on them.

Now having officially switched, I can say I like it, certainly as much as I thought I would.

So, how odd is this, I have switched from, now Windows but from Linux. Now .. it's not Linux that I don't like. In fact I love it, but it's that as a development platform, the mac powerbook is just right.

I installed eclipse on monday and used it for about 5 hours today. I had some odd problems trying to install subclipse, and also the spring ide plugin.

I had downloaded 3.2.2 and Eclipse was saying that a particular version of some package was not installed. The odd thing was that it was the stable version of the plugin(s).

Because people all around me have been talking netbeans, I figured I would give it a good try.
I have never liked the concept that ant is at it's heart, especially since I have been a maven advocate for the past 2 years. Anyways, I'll see how it goes.

So far, I have followed the setup for a maven project in netbeans, and have seen how they hook goal execution into the ant subsystem. Not a bad way of doing it.

I created a fairly comprehensive domain model today (30+ classes) and I want to now see this as a model, so I couldn't install the Eclipse UML modelling (see above) .. which is why I am trying netbeans. Perhaps I will have better luck.

In theory the install for the UML Modelling went well, but poor old netbeans didn't register that the plugin was installed.

All is not fair in war. Some things are not as they seem (as they are described) .. but never get disheartened, there will be a way around or through this.

Thursday 17 May 2007

Desire vs Need - Part 2

In building a proof of concept, a sound architecture is abstract from it's infrastricture. In this view, the project 014 (my codename) will be put on to an ODBMS and an RDBMS.

Now, being the good timesheeting developer that I am. I will break up my development time into framework, and then also time the effort for the data access layer, and then the time for implementing the datastore.

For this datastore, I will choose one for the prototype (RDBMS or ODBMS) and then as a research (non-official) will choose the other.

I will literally ask my magic 8-ball which one to start with.

I do expect that the ODBMS will come out trumps, but lets see.

So .. the need vs desire is simply that the I know RDBMS systems extremely well which is the "need" for time to market (prototype) a time thing) and the "desire" (see previous posts)
to use an ODBMS instead.

I actually expect that developing with the RDBMS will take longer than with the ODBMS, as quite simply, it looks simpler.

So what should I choose ?
Well .. you have to compare like fruits, so
db4objects embedded has to be compared with Hibernate+Derby
db4objects client/server has to be compared with Hibernate+MySQL.

I am NOT comparing speed, I will just compare effort. I will do that afterwards.


One of the many reasons some people jump to Ruby on Rails and other "X" fancy platforms is because of all this "crap" we have to put up with. (Ruby and ActiveRecords apparently does away with the Hibernate Crud..) it just still feels wrong. So, if we like Java as much as we say we do, we MUST do something about it. Sun will, but it will probably take them about 2 years longer than 6 months it would take "us" to make change happen. After all, we are the users who "sell" this stuff.

Monday 14 May 2007

Desire vs Need .. ODBMS vs RDBMS

I have been on the think track of not using SQL for sometime now and have completely come to th conclusion that it is entirely possible. Possible in the sense that a decent well founded ODBMS will suit my need.

I mentioned a few things that needed to be investigated in order for the switch to be solid.

1. Administration - So presumably, the chosen ODBMS (Server, Platform) will provide a level of administration, such as object browsing, log, db maintenence etc What evere the underlying "architecture" is, there has to be tools to see it, so it is not a black hole. One of the nicesties of an RDBMS is it is not a black hole in as much as SQL from any compliant tool gets you to your data, a plus.

2. Monitoring - How can we monitor this beast. I put this here because in my line of work, there are clear distinctions between those who build and those whome maintain and the maintainers want a system, that, well, can be maintained. So it's important.

SO, where is this desire and need. The desire, I want to switch, the need. The project I am embarking on does not have the funds to splash around and this puts it squarley into the hands of OSS for the chosen ODBMS. If you look around, it leaves only a few choices. After you weed the crappy and incompatible ones out, the clear winner is db4objects. But ahh, Here is my catch, db4o is GPL based, and you HAVE to code with it, ie, embed it. Which means that I can't use it, unless you buy their commercial license.

What is lacking is a non-viral license ODBMS to the quality of db4objects (Apache 2, Mozilla, LGPL) such that it suits the needs of this "commercial" yet cost constrained project.

So, there is my desire (ODBMS) and need (RDBMS). I must (need) have a running architecture with which to start.

I must make sure that this "platform" chosen (Hybernate, MySQL (PostgreSQL)) is "removeable" for the day (if) when a compatible ODBMS comes available, or the project at hand makes some money to warrant a change.

Hrmm, certainly has you thinking. I will look further into the db4o world. Here is a thought: if db4o were running as a server, in the SAME way that MySQL runs as a server, then there is no impact to your licenses. db4o is well within it's platform, wrapped in server code, .. hrmm .. cheeky. Let me take look at that.

So, the server code could be GPL'd next to db4o.

Saturday 12 May 2007

KISS - RDBMS and ODBMS

Well, you can guess the title right there (Keep it Simple Stupid). Another title could have been (for controversey). Why the heck are we still dealing with RDBMS platforms and architectures ?
So living in the Object world of Java I have come in contact with many databases. Sybase, MSSQL, PostgreSQL, MySQL and some Oracle (in that order of exposure).

In each case I have had to deal with the RDBMS and the Relational Mapping layer (RM).

Experience has whispered to me that .. "there has to be a better way", but certainly until about a year ago, shy on stating that there has to be a better way. I have known about ODBMS's for as long as I have known RDBMS's but have never worked with one.

Certainly, legacy (and I mean that in the "ODBMS to RDBMS sense") platforms have to stay RDBMS and that is where OR mapping stays, but .. I want a simpler system.

I blogged some time back that my goal for the next project is to make it sans-SQL. Now why on earth would I want to do that ? Well for one, I want to reduce complexity. It's that simple really (Keep It Simple Stupid).

This is such a "hot" topic (many people have an opinion) that I am going out on a little (hopefully stong) limb and stating that RDBMS platforms are just simply getting long in the tooth and now is certainly a best time to move away from the RDBMS.

Why (why are you being so nuts, why move away from proven technology, why ?)
I have just finished listening to a very good talk by Ted Neward on TheServerSide
The Webcast Talk - Object/Relational Mapping and the Vietnam of Computer Science - Expert Webcast


This talk centres around the idea that when working in the Object space, we should just not use RDBMS's. For background reading, the comment of OR Mapping being the "Vietnam of Computer Science" is found here at his blog.

One of the good quotes, which aligns with my previous post is this.
Ted was talking about the "lure" of OR Mapping

"[OR Mapping has a]... selling point that says, I don't have to think about SQL, I don't have to think about tables, I don't have to think about manually unwrapping this stuff myself.. phew .. I don't have to worry about these issues anymore, and then to get bit by them .. at the 11th hour"

So true, with Hibernate, OJB, and JPA (etc etc), SQL is still there when you have to do complex stuff. It is still there when Crystal Reports or JReports or platform X comes into it.

I remember many a time sitting at night trying to tune that sproc that was mapped to my business service pouring over SQL, just to get my data right and quick. That HAS to Cost something.

There has to be an extraordinary TCO attached to using OO and an RDBMS, one which could be lost if we remove the RDBMS altogether.

Of course, there are problems, how to we make sure the ODBMS is quick, and efficient, and what do we do when we want reports ? (These answers I am going to find out)

Ted mentioned, rightly, that it all depends what is on top of the paltform, is it Objects, or relational Data. What is the priority of the platform ?

Back to the TCO. So If I have no DBA (only Operations looking after the "service" and "data" tier) and I have no need for SQL developers (if there are sprocs involved) and I don't have to worry about OR layers .. It has to mean that I have less to worry about, surely, which means that "time" to market, TCO etc is lower. It just has to .. It has to mean a simpler system.

This KISS principle, A very interesting WebCast that.

So where to from here ? I have decided that my projects will not use *SQL. So that means I have to choose an ODBMS platform.

Two issues that were rasied in the Webcast which are VERY real are the following.

- How do you administer the chosen ODBMS ?
- How do you monitor the chosen ODBMS ?

Very true, kind of a worry (possibly). We'll see.


Thursday 10 May 2007

So glad things have moved on...

Having always been in IT for most of my (post age 13) life. I take notes, and lots of them.

Here is a snippet of some notes I took about 5 - 6 years ago. It's like my Own personal "change control" sheet. Before I even really knew what the heck a change control "form" was.

Oh, the icemaster is my "server" almost always. I have a gorgeous old 60's chrome that belongs on the back of a car, which is script says icemaster. Funny thing is I found it in the inside of the freezer box of a 60's fridge. It is
fantatic and has moved with me to all my servers over the years...

Why do I say things have moved on. Well now Ubuntu (and other distros just make this stuff so much easier). I don't need to worry about installing stuff to any great detail like you used to have to.

I remember sitting down for 6 hours with Adam Spann (Druss) and working on Slackware with was running kernel 1.2.28 in 1994. Gosh those were the days of 2 hour kernel compiles !!!

I don't think I have even compile a kernel for Linux in the last 18 months. whoa.. is that even happening, wait till I have kids, I might forget XML.

soo .. here you are .. snippet of 6 years ago

icemaster - P120 32M RAM .. lots of disk space to play with as well

2001 07 12
After much fluffing around and installing Debian 2.2r3
I have a working systems
To do .. install SCSI modules for the SCSI cards
Configure the snd card it's conflicting on IRQ10
so I need to get it off there at some stage.

2001 07 12
Install Xvnc (vncserver) .. gives us X windows vnc Access .. Neato!
tar it out
xmkmf
make World
...
cd Xvnc
make World

make install and make install.man
Edit the /etc/vnc.conf file and uncomment the fontPath settings ..
All is well .. now let's get some X interface happening

2001 07 12
Installed samba 2.2.1a with default options into /usr/local/samba and /etc/samba/conf
/var/log/samba/%m.log

Have 'make'd apache 1.3.20 .. it isn't installed yet.


2001 07 16
Installed apache 1.3.20
Attempted to connect .. no go ..
after a few mins ..
Did an netstat -an
Ahh there the bugger is .. port 8080 ,Must have been because I was compiling as a user
Ahh well .. fixed now.

2001 07 16
Setup swat
/etc/services ---> swat 901/tcp
/etc/inetd.conf ---> swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat

Now .. killall -HUP inetd
DOH! .. bad username/password ..
Looked aorund using google.. possible that it needs PAM configs to auth root
Seems to need:
icemaster:/home/rbuckland/software/samba-2.2.1a/source/pam_smbpass# less /etc/pam.d/samba
auth required /lib/security/pam_pwdb.so nullok shadow
account required /lib/security/pam_pwdb.so

Couldn't find pam_pwdb.so... Try net for 2 mins
Nope .. use dselect .. Ahh there it is. ** NOPE STILL NOT WORKING **

-- Recompiling samba
~/software/samba-2.2.1a/src/
./configure --with-pam
cd src
make
make install
... YESS!

2001 07 16
Setting up jakarta-tomcat (compiling it)
+ Installed j2sdk 1.3.1

2001 07 17
Setup a symlink from /etc/samba/smb.conf --> /usr/local/samba/lib/smb.conf
so that swat can use the same file (quick fix)



... and it went on, but I have snipped it

A close friend .. replaces Rod Johnson

Was just chatting with Vishal Puri, a very close friend and colleague of mine.
He said the following ..
--------------------------
Vishal: hehe all the best!
me going to india
on 29th may
me: Way ! When did this happen
Vishal: yeahh yesterday
confirmed only today
me: did u tell me and I wasn't listening ?
Vishal: speaking in place of Rod Johnson [smile]
--------------------------


I like the casual statement .. speaking "in place of" Rod. Now who gets a chance like that. :-) He left working with me to go and work for I21. Ish pish.

Good job Vishal, you'll do well.

http://www.sda-india.com/conferences/jax-india/speakers.php

Vendor lock in

Big Appservers annoy me. Websphere, WebLogic .. even JBoss sometimes. But, you know what. They are good. Now .. there's a revoke of statements.

I have used JBoss from early V2 days and now use V4. If I could everything would just run on Tomcat but in banking circles this is just not a goer (wish it could be).

Brands, and branding sells.

A Colleague made a (un)true statement today. .. spoken from the client view ..

"It doesn't matter, we want Websphere because it scales".

Now the statement is not the (un)true part, but he said it tonque in cheek.

WAS scales, it does and that's why our clients will use it, want it.. think they want it. But what about when you have a standalone (runs on a JVM (thanks Spring)) app and then you run it in Websphere and it has a 300% degradation. ie, 1s response becomes 3s.

I suspect that the app is not "plugged" well into WAS 6.1. It's ServiceMix that we are talking here..

I mean where do you start, we can tune our code, but obviously the code runs well stand alone, so it's off to WAS to see what's going on.

I'm not acually the dev doing the performance testing. That is another one of our merry men. It's a hard task and it is only solved by starting at the top.

Back to Application Servers. I hate vendor lock in. It's a necessary evil though, I make no quarms about using a product when it's good. Weblogic 9 was great to dev with. Websphere 5.1 was clunky. 6 seems better. But any appserver, Java is meant to be portable and when you have a "from the start" idea that you use one, you might as well go MicroSoft and get far better "rubbing shoulders" experience than you will with Java.

A few things leae a bad taste in my mouth, one of them is the jboss-*.xml files that have to be in wars, ears etc .. That's just annoying. :-) (Maven solves that but so I don't have to worry about it, so did ant to think of it)

So , I am a technologist who chooses product or library X because it works.
I hate something that doesn't work.

Stuff I found works, absolutely brilliantly I might add is, Spring and Maven 2.
These two products alone have changed the way I view Java Development.

So How do I avoid vendor lockin there ?
Well, Maven doesn't go near my code, it sits on the edge, ie Ant and Maven co-exist for sure.

Spring, (some, not many) people have this conception that Spring is through your code. to me, if spring is in your code it's because you either found something there that really helps, or you have not thought well about how to keep it out.

Can't wait to see how Java Dev'ing on the Mac goes. Vishal says it's brilliant. My brother swears by it (but he's a designery type so he would ;-).

Bottom of the food chain

Free Stuff websites. That's the bottom of the food chain.. and now I landed there.

Partly because my iPod was stolen many a year ago. But let me tell you more..

These websites work by offering a "free" price in exchange (there, it's no longer free) of you completing an "offer" from an advertiser and then referring X number of friends to the site, X being based on the gift you choose.

These sites do work, simply. The offer might cost me, anywhere between $1 - $20 or more, and if I sign up for a "subscription" to the advertiser, then more of course.

The pinch is that the "gift wanter" may just take up an offer. I'm sure there are kickbacks.
Now why am I blogging this in the tech side ?
Well .. I got lured, I have chosen an iPod as my free gift, I have to have 8 "friends" do the same thing, they go to the site and accept an offer. Then I get my iPod.

(Shameless link to "my" referral) http://gifts.freepay.com/?r=38178588

So here's the tech bit.

I chose the "advertiser" that had the most non-boring thing, which was a subscription $10/wk to mobile phone games. I made sure there was an opt out option .. (scoured the advertisers website first) .. and then went through the "sign up" phase.

I entered my mobile #, it sends an SMS asking me to confirm, I confirmed with OK.

The website, in the mean time is "waiting for" my OK SMS. The SMS obviously gets picked up because it moves to stage 2 which is "success" and sends me a "welcome SMS".

Now I go back to the gifts.freepay website and refresh my "you have not completed the offer" stage. ... No change.

Well .. I refreshed once or twice and then I went to help, help says to wait 1 - 15 days to see acknowledgement from the "advertiser" that accepted the offer. ... bummer...

Then, sure enough, an email arrives in my inbox which says my offer has been confirmed. There's the technology bit. I shouldn't be too surprised, but interestingly enough, it was server to server communication. ie, the mobile phone company notified the freepay website that my offer was accepted.

Anyways, click on my link, sign up. I get an iPod. ;-)

And this the title of this post.

Monday 7 May 2007

OJB, Hibernate and the Cage

I have been working for one company for the past 2.5 years and back about 3-4 years a go. The ORM platform chosen was OJB. Now Apache OJB (from the DB Project) had quite a potential lead in the ORM world.

It was logical in it's design, goals for JDO compatibility etc. (it made them all).

Over time, users waned and moved over, or took up hibernate. Hibernate having the market share takes the cake now for
  1. Performance
  2. Configuration Ease
  3. Options
  4. Assistance
  5. Stability
and last and NOT least

6. Plugability

This is OJB's main killer.
In my 2.5 years working with it I can honestly say that it is the worst Java library I have ever used, ever had problems with, and more than ever passionately wanted to move off.

Now this is not a diss to the authors of OJB. By all means, they did a great job. But some things just died in there and before you know it, the project is like a car running on rims with no tyres trying to drive the nullabor. Just ill equipped for a big task.

My main pet peaves for OJB are the following

1. Class loading issues


Deep in the bowels of OJB it all starts with an OJB.properties file. This is the beginning of a painful end. OJB locates this from the classpath and then inside this properties file, locates youre repository.xml file (akin to *.hbm.xml).

Now, the repository.xml has all the settings for the mappings, but it also requires you to declare you datasource (can be a JNDI) but also transaction demarcationb (the OJB way) and a few other nasties.

Coding MUST be done such that infrastcuture is a side concern. ? What do I mean. Write your code, but write it like it;s on an island. Don't include code, logicthat binds you to a database, or a way of communicating across the wire.

This classloading issues gets ugly in many ways. It I wanted to merge repository files together, I have to do this by either, writing an adaptor class to join them all up or .. just hand (or ant,maven) hack them together.

But .. remember, a repository file is for one database.. how do you do two databases ? (seperate schemas) ..

Know, that we worked it out .. how, by ensuring that one OJB for one schema was in a sibling or seperate classloader.

2. Inconsistencies between versions (minor versions)

The Apache Portable Runtime project has a very nice succint way to describe versions. http://apr.apache.org/versioning.htmlLink
OJB certainy did not follow any of these guidlines.

The library is still stuck on 1.0.4, 1.0.2 is about 3 years old and 1.0.3 was just skipped because it was full of bugs (for us).

OJB 1.0.4 seems stable enough, this was after a massive code change that occured to our base product to make it work.. oh the pain.

Now the observant among you would say that you shouldn't have to change code if you change your ORM tool. Sadly we had to because of the legacy Java Code, but even still. There was horrid work to be done just trying to work with the incompatibilities.

Why upgrade then ? Well we found some things didn't work in 1.0.2 (something with key Sequences and Sybase (yes another groan, see my Sans SQL Post) and 1.0.4 supported it.

From the site itself (on the news section)

12/2005 - OJB 1.0.4 released

Contains bug fixes and new features. For more details see release-notes.


Argh ..

3. It's just plain dead

The site is tumble weed city. Everywhere you look on OJB it just smells of a house that is falling.
Where I work(ed soon) we have a large application that relies, depends, is hard coded to, OJB, it is an inherited platform and we now know what not and what to do with OJB.

Some initial analysis has gone into the replacing it with Hibernate, but a lot of the other code is going to be shelved so it is almost not worth it now.

All the new work has a clear separation of ORM and Domain so that way it can easily be shifted in or out as you see fit. (thanks Spring).

I think the project (OJB) is dead, or should be left alone.
The mailing lists are a dieing world.
http://mail-archives.apache.org/mod_mbox/db-ojb-user/Link
Summary

Why did I mention hibernate in the title ? Well, Im never using OJB again that is why.

OJB users now and future, your mileage may vary, because you might now how to make OJB work sanely. The thing is, it was not obvious to me or about 6 other developers I worked with who also have a bad taste in their mouth from this seemingly harmless library.


Have fun, and keep the code away from the hardware :-)

Thursday 3 May 2007

More Thoughts .. Moving from that proverbial database

I posted back in November my desire to move away from the database, somehow.

Well .. my chance has come .. I will still use it, but let's not have any SQL shall we. I am moving work-house.

So, Starting this new company in a few weeks time, I have the opportunity to not rely on a Database. Let's read that anotherway. I won't (want) have to write another piece of SQL.

Now, I actually have a great fondness of SQL. I actually becomes quite a proficient Sybase Tuner (knowing the profiler better than the walk home) back in 2002 - 2004. So I actually like the stuff and SQL is certainly a way to shift sheer lare amounts of data.

But why another language, I will already have CSS, XHTML, JavaScript, Java and a hack of XML for Maven, config, oh and Im sure my favourite XSLT language will land somewhere in the next big app I write.. so .. where does that leave SQL.

Well I am going to go dry .. I will look for all options, (logical), where I don't have to have any SQL. It is just another language, that when I am hiring or training or handing over, that I don't want to be the only one in the team that knows it so well that I get scared looking at others working on it ..
(told you it was a rambling).

So what are the options ?
How can you develop an enterprise app, that HAS a database but has no SQL (ie auto-gen'd SQL).

Here are some avenues to pursue.
- ODBMS (most likely)
- Auto Gen of OR Mappings
- Direct cache storage of Objects (eww!)

What happens when my objects grow, what about the old data etc ? That will be fun. I don't want to have to write "update" SQL (remember, sansSQL

Shoot em down, clear em out, get them bugs !

Listening to #115 of the Java Posse in traffic this morning (taking the car to the mechanics), the boys have mentioned it many times before, the findBugs plugin.

I finally remembered again to go back to the podcast listing http://javaposse.com and take a look.

FindBugs looks great, I quickly ran it across two projects I had open in Eclipse and it certainly picked up a 3 in one and about 28 in the other.

Going by class (I should go by LOC) the 28 bugs on 60 classes is a bad.

The other is 20 classes and 3 bugs .. good thing this second project is recent :-) and the other 3 years active.

Good job for that plugin I say.

Wednesday 2 May 2007

JEE and Spring

I was in discussion with a colleague the other day who had not used Spring before. He was describing to me how Spring is not needed now because of JEE5.
It suddenly occured to me that, anyone who hasn't used Spring doesn't really understand how it works.

Se we were on the discussion of View handlers.. so the bit that finally renders (X)HTML in the browser.

Here is my theory : Spring has become well known for a lightweight IOC Container and famous for it. But people seem to miss the point that this is one area of Spring. I can take the Spring Portlet code and pop it right next to the JEE stack and it's all good.

This is akin to saying let's run struts in a JEE stack.
Same as me saying, let's run SpringMVC in a JEE stack

Interesting.. Anyways.

Current 5 booksmarks @ del.icio.us/pefdus