24 Oct 2006
The following may not be of interest to you unless you were an avid computer gamer in the early 1990’s.
For those that don’t know CGW is short for Computer Gaming World, a popular gaming mag from an era where games meant something to the consumer aka. me.
Ok ok, don’t get me wrong, games still mean something nowadays, but in my opinion you just can’t relate the Red Barons, Wing Commanders or even Battle of Britians to today’s current generation of games. They weren’t necessarily the greatest games but they did define my childhood and because of that the early 90’s will always be remembered fondly. Likewise, I was an avid CGW reader and for many years I relgiously bought (or more correctly, my dad bought) and read the magazine. Infact, I bet there’s still shoeboxes upon shoeboxes full of copies sitting in closet somewhere.
It’s those childhood memories that make the announcement that the entire CGW archive from 1981 thru 2006 is being made available online in PDf format pretty damn sweet! Infact I’ve just spent the past short while skimming through covers looking for ones I recognize.
Alright, excitement has died down. Time for some shut eye, have plenty of coding to do in the morning.
23 Oct 2006
Last week the IT guy at work (whom I’ve helped out previously and have a good relationship with) asked me if I’d be interested in being a guinea pig for some new laptops.
Being the technology-inclined person that I am, I agreed. Don’t get me wrong, my previous laptop wasn’t too bad, Dell d610 w/ 2gb ram and a 2ghz centrino but after using it for a year it was probably time for an upgrade. Hey! I benefit a lot more from a faster laptop than a sales guy would…. right?!?
Turns out that Dell doesn’t make the d610 anymore and has since replaced it with the d620 and it’s bigger cousin the d520 (I say bigger b/c in order to get a SXGA+ decent resolution you have to go with a 15″ model). Unfortunately for me, Dell also decided to go wide-screen with the d620 which isn’t quite as ideal for coding as the 4×3 ratio’d d610 was. The resolution is still decent at 1440×900, and on a 14.1″ display, I wouldn’t want to go much higher.
All in all, I’ve been using the laptop for a few days now and I’m happy without much in the way of complaint. The 2.16ghz Core Duo is noticably faster. Despite the 14″ display, I suspect it should also game fairly well as well (sshhh it’s work-related of course).
The other half of this post regards my switch from Bloglines to the latest incarnation of the Google Reader. Although I’ve been a Bloglines user for a few years now, I’m particularly fond of its Google IG integration and what I consider to be an improved navigation scheme. For example, In Bloglines whenever I loaded a feed, it was flagged as read… with the Google Reader only the posts that I click on are marked as read with the added ability to easily mark all posts as read. This became a pain as I switched back and forth between PCs or browser windows.
It was an easy migration from Bloglines, opml export/import, and I find it a more powerful offering. That being said, I’ve only been using it for a week or so and I haven’t exactly taken the blinders off yet. I’m sure a migration back to Bloglines would be just as easy.
I also took the pluge and re-installed the Google Desktop suite on the new laptop. I ran a few of the initial betas but have been in the dark since. Needless to say I’m pretty pleased with it as well. The ability to hit CTRL twice and have a semi-transparent search box pop-up is worth the price of admission itself.
That’s enough for now…
04 Oct 2006
The last week or so I’ve spent doing some performance optimizations on our application in preparation for a data-intensive demo.
Everything was going well, caught some of the low hanging fruit (running things on the EDT, not batching requests, retrieving too much data, etc) but ran into a brick wall when trying to do a contains (%VALUE%) query on a table with 100k records joined to a table with 75million records.
ie) SELECT tableA.* from TableA tableA join TableB tableB on tableA.fk = tableB.pk WHERE tableB.sequence LIKE ‘%VALUE%';
The explain plan (the DB in this instance was Oracle) didn’t look bad when doing the query on TableB, but when joining to TableA it absolutely blew up.
To cut to the chase here, I ended up creating a contextual index on the column using the Oracle Text package that was installed along with the DB. The explain plan complexity droped like a stone and things were good again.
In the end, a rather simple solution to a problem that was quite significant in our books. I don’t know enough about the Oracle Text package to say whether its a good thing or not. We’re doing context-based searches on long strings of characters, not the documents for which it appears to have been defined. Already I’ve found that a search for 3 characters takes magnitudes amount of time longer than a search for 4 characters (although this makes sense).
What I didn’t try was creating a straight index on the column but from people I talked to and what I read that wouldn’t have helped in the case of the %%. We had another case where an UPPER() function call was causing it to miss an index, but I believe in that case I should be able to create a index on the UPPER’d result or perhaps another column in the table and a trigger that always UPPER()’s the result in it.
Back to my regularly scheduled life as a developer, too much DB work for one day.