Thursday, April 28, 2005

Re-evaluating SCM at my current project

Started to evaluate if the SCM used at my current is really the best tool for us. Since the last analyze of the underlying storage (and subsequent attempts to fix it) only results in "Potentially dangerous inconsistencies bla bla bla" I'm convinced it isn't. I'm personally biased towards Subversion (or Perforce if the customer wants a commercial product) but I'll try not to limit myself to these two systems.

Thursday, April 14, 2005

New experiences in VB.Net

Try
...
If condition Then
Exit Try
End If
Catch
...
Finally
...
End Try

For more details (especially if you're universe is PRE VS.Net 2003) read this post.

Tuesday, April 12, 2005

Why squeeze an elephant through the keyhole

Why not just open the darn door? Why provide a gazillion of different language implementations for DotNet? Because you can? Beacuse it's fun to see if it'll work? Sure, but the problem is there might be people that'll use the darn thing. Which may be fine as long as I don't have to see, or deal with, their code.

If DotNet is your platform, use C#

Tuesday, April 05, 2005

The Horror

Stored procedure. About 500 lines of SQL containing 21 calls to other stored procedures that calls, you got it; other stored procedures. SQL Debugger doesn't seem to play across the multiple windows domain borders and messing around with DCOM and/or installing the client tools on the development server isn't an alternative today. Can't help reading A little horror story over and over again, just to keep my sanity. Oh, at least the sun is shining oustide. Spring is on its way here in Sweden. Happy, happy, joy, joy...

Monday, April 04, 2005

Legacy, oh legacy

Just got started with Working Effectively with Legacy Code (Michael Feathers, Prentice Hall) since there's a lot of legacy on my current project. Actually since I also (as do Feathers in the first couple of pages) specify legacy code as code withouht tests my current project is 99.8% legacy. A tiny little bit of code that was developed during last year actually have unit tests. But there's no automated acceptance tests, which right now seems like the biggest problem. I'm quite sure that acceptance tests will gives us the most bang for the buck in the beginning, mostly due to lack of (disciplined) testing from the client. Currently it looks like we're going to go with Selenium which I relly like, but I still think that some kind of recording functionality would be good (more efficient?). I wonder if there's some nifty way to do recording use javascript so that one could enhance Selenium... dum di dum di dum.

Sunday, April 03, 2005

Too much

Thought I'd play around with Spring and Middlegen. Ended up installing the Middlegen Eclipse plugin which refused to talk to MySQL and made HSQL crash and burn. Ended up throwing out MySQL and HSQL (since I don't like 'em anyway) to install PostgreSQL (which I do like). Since I'm quite a rookie on OS X I decided to find a tutorial covering PostgreSQL on OS X just in case there's some little quirk that's needed. Found an excellent one at Apple. It starts by installing readline using Fink. I like readline. I like the concept of Fink but I was to lazy (or was it eager) when I received my Mac to install it then. Ended up installing Fink, to install readline, to install PostgreSQL to be able to play around with a decent RDBMS while playing around with Middlegen and Spring.

Not that I think this is a pure Java syndrome, DotNet is probably going to get its share of the to-use-this-cool-tool-you-need-these-four-hundred-and-fifty-other-nifty-little-packages mayhem.


By the way, I'm also considering throwing out my keyboard since I've now typed this entry three times just to hit cmd+right arrow which causes Firefox to go back, loosing the entire text. Rich (and fat) clients have autosave. Jroller is web, it doesn't. Maybe I'll just throw out the Internet as well and roll my own universe where everythings works the way it's supposed to. Damn it.

Friday, April 01, 2005

Strict and explicit

Strict and explicit feels like a good way to write code. For me, it's quite natural to do that in Java and C#, but not in VB.Net so fortunately the drunken monkeys gave us the two, optional, options:
Option Strict On
Option Explicit On

Thanks guys. But couldn't you just have skipped inventing the darn language in the first place.

Update: Lovely things that show up when turning the above options on
If (Len(strRowFilter.Trim.Length > 0)) Then

DDD and relational database design

While reading Domain Driven Design (Eric Evans, Addison-Wesley) I've come to think of how DDD compares to relational database design (RDBD). I started working with RDBMS at the same I started programming and during my first two years in the industry I really dove in to RDBD.

The interesting thing is that I've always done RDBD based on the domains/clients point of view. And I imagine that it's quite normal when working with RDBD to ask yourself and the customer questions like "can a user have more than two accounts?", "do we really need to query for specific order rows, won't they always be returned (using outer join) when we query an order?" and so on to find out how what the customers perception of reality is, business rules etc. From my point of view this isn't at all much different from DDD. Designing the system/database as the domain/client/business sees it.

I may be way out of my league here but if this isn't totaly wrong then it at least helps me to learn and employ DDD faster, easier and more efficient.