Thursday, 29 November 2007

Clean off your cars!

One thing that really pisses me off is seeing people drive around in cars where they have not bothered to clear the snow off. They just jump in, crack the heat, turn on the wipers to clean some snow and then drive off. As their driving, the snow on their car is obstructing their view, blowing off their car and obstructing other peoples view, making the road wet so more salt gets dumped on the road, ...

It just pisses me off. Just take 1 minute to make your own life, and the lives around you a little safer. It's really not that hard.

Wednesday, 28 November 2007

People never stop amazing me...

This clip is awesome. Just when you think that people can't get dumber, they surprise you.

Wow. I don't feel so bad about my poor spelling now...

Monday, 26 November 2007

A man cold

This man cold video perhaps is a little too close to home. I'm posting it anyways. :-P

Friday, 23 November 2007

Finding the big files in unix

I'm blogging this because I never remember...

report on disk space usage (in unix)
df

figure out where all that usage goes
du -sk * | sort -n

Wednesday, 21 November 2007

Nomenclature of developer types

Let's go through a few types of developers to distract myself from the (literal) pain in my neck.

The Cowboy

This is pretty self descriptive. This is the type of person that doesn't "need" a test suite, documentation, or user testing. They *know* everything and if you just leave them alone they'll be able to do everything. They are also the type of people that break the build, don't implement features properly, and leave the system in a poor state because of lack of documentation. Typically this is the type of developer that you need to just put out to pasture.

The True Believer

This don't imply that they are all for TDD or agile processes. You can have RUP true believer (TB) working in an XP shop. All that it means is that they know and are more comfortable with doing things a certain way and no matter how you ask them to do things, they'll end up doing (or half doing) the way they believe things to be "right". If you have TB's, they had all better subscribe to the same belief.

The Saboteur

Like in the 6th sense, saboteur's don't always know they are saboteur's. They could be this way because of their skill level or because they are trying to change things from the inside, but are doing it poorly. Most often this is because you have a mix of TB's with different beliefs. Saboteur's some times sabotage code, sometimes process, sometimes moral and sometimes meetings.

The Hero

"Save the project, save the world." These types will do whatever it takes to make the project a success. These often are TB's that are picking their battles carefully. It's a fine line between a saboteur and a hero and these can walk it carefully. Process changes come from these people. They are usually "big picture" type of people.

The Code Monkey

These will work on whatever you want, and will work however you want. They're great because they will just implement what you give them. Don't look for process improvement from these people though because they are not the type to rock the boat in any way.

The Heartless

Often these are TB's that have lost too many battles. They've been beaten down so much they've totally given up. They'll do the work, but they just don't care. All they are looking for is the paycheque and for the clock to strike "home time".

Can you think of any?

Tuesday, 20 November 2007

Dev tools out of the box

It's kind of cool all of the tools that leopard comes with, including maven. It looks like they release an older version of maven though (2.0.6) and to use a newer one that doesn't get blown away with an mac update you have to install a parallel one. That sort of defeats the purpose of bundling it with the OS doesn't it?

It would be better if they either:
1) pushed the latest stable version
2) allowed you to configure what version you want
3) didn't blow away any install you put on the box

Update: it looks like they are going to roll maven into eclipse. Pretty soon I won't even had to install it locally... but where's the fun in that? :-P

Ottawa Barcamp 4

I went to Ottawa Barcamp 4 this last weekend. I felt pretty out-nerded at some points. I felt that I should turn in my geek card at the door on the way out. I'm not sure what I expected since it was my first unconference. Overall it was pretty interesting. The most interesting conversations that I was involved in happened outside any of the booked talks.

One of the things that really made me pause was something that Ryan said. He compared where things are with java now wrt to rails and how that's like C++ vs java discussions of memory management. I like java because I don't have to be concerned with the details of memory management. Rails gets rid of like (estimated) 90% of the code I have to write.

So here is the sobering / scary question for myself: have I become "stuck" in my ways after only being out of school for like 5 years? Am I no longer one of the people who "get it"?

Wednesday, 14 November 2007

Silver bullet for code metrics

Yes, I know there is no such thing as a "one true metric" for assessing quality on a (java) project. There is no way that we can generate a score for a project or assign it a quantitative grade like "B". This isn't school.

But what if we wanted it to be?

It's always dangerous to create a metric that you judge code on because the interested parties will just work to maximize that metric, regardless of anything else. I was thinking of this on the bus home today (yes, I took the bus. :-( ) with the phrase "this isn't school" in my head. Well, let's freaking make it like school!

* Code coverage is worth 10 points. So, 75% coverage would give you 7.5 points.
* % of passed builds is worth 10 points.
* 10 points minus 1 point for every major FindBugs bug
* etc.

It would be a great idea to work in checkstyle and complexity analysis tools as well... just don't know how you'd do that right now.

Add up the points, figure out the percent, and give it a grade. Just like in school where it doesn't really mean anything, but it's a good indicator of quality. The only thing is that management would have to care about those metrics.

It's all well and good to be pro-active and provide metrics that you think are valuable, but if no one else does, it's useless. It might be better to just keep this in mind in case someone asks for it. :-/

Wow... grid unit testing...

Something about parallelizing unit tests and running them as a distributed task strikes me as somewhat overkill. I'm sure that for some massive projects this would be a great gain.

But wow...

Monday, 12 November 2007

To P.Eng or not to P.Eng

The other day I figured out that I was coming up on 4 years of being out of school. Nothing too remarkable about that until I noticed that for about 2.5 years of working with P.Eng's. I used to tell myself that it would be great to get that designation so that I could sign passports, but with the Laura's job, that would be redundant. So why would I try for it now? So I can call myself a "professional person"? That would be a crock.

I used to think that I'd never really work with P.Eng's at all so I thought that it would be too difficult to get the required 4 years of experience. Do I think that it would change how much value my opinion carried at work? God no.

I've talked to someone who's been a P.Eng. for a long, long time and he told me that he keeps on thinking of letting his license lapse so he doesn't pay the fees anymore since he doesn't feel he uses it. Again, do I see myself actually using a professional designation? Not really.

But for some reason it has an appeal that I keep coming back to. I'm not sure what I'm going to do. :-/

Expensive but tasty...

The other night we went out to a place that I had never heard of before: allium. It had the general feeling of "less is more" with the clean lines and right size. God, I love good food.

Wonderful, wonderful tasting food. Only downsides are:
1) you must make reservations. We tried to make a table for 6 and it was a no-go. I saw them turn away a couple (2 people!) because they didn't have room - even though they still had empty tables.
2) It's expensive. I'm cheap, so that's always an issue. But god it was tasty...

Like all food I enjoy, I tried to study / remember what I ate so that I would be able to reproduce it when I get home (ya right!). I had:
Surf and Turf - grilled bison with garlic polenta, onion ragout, herb salad -roasted salmon with roasted tomato, red pepper salsa, raspberry and lime dressing


The thing that I like about good food is that they not only blend tasty and contrasting flavours together, but contrasting textures as well. Cruchy and soft, smooth and sharp. It really gives an interesting dance.

Saturday, 10 November 2007

God, I'm glad work isn't that bad...

This is too funny... If They Come, How Will They Build It?. (Nerd Humour)

What would you get people to read?

One thing that is always helpful is for people in a profession to read some "core" books so that people can all be on the same page. I'm not talking about those "learn [some tech] in 24 hours!!" books. It means that when people have said that they've read them, but if they don't follow the books then you have a whole library to hit them upside the head!

For software development, I'd recomend a couple:
- Java - Effective Java by Joshua Bloch
- UI design - Don't Make Me Think by Steve Krug
- general project management - The Mythical Man-Month by Fred Brooks (a summary would be enough...)
- software dev - just about anything by Martin Fowler
- working in the government - Cat Herding and You

That's just a couple off the top of my head. What would you get people to read?

Update: added link for UI design

Thursday, 8 November 2007

Calling mvn clean on all projects

One thing that I was wondering on how to do is "clean" all of my maven projects in my workspace. Here's what I found works for me:
find . -name 'pom.xml' -exec mvn clean -f {} \;

Gmail 2.0

It looks like I now have the new gmail 2.0 version. With my 30 seconds of playing around with it, it seems to be much faster switching around to labels that you have already viewed. It looks like it'd doing more client side caching.

One issue: by clicking around quickly I ended up freezing the interface. Not sure what I did to mess it up since I can't reproduce it. Ah well.

Update: Okay, I'm not liking this new version too much... as above it's already frozen my browser, now it's crashed it as well. :-(

Update: it looks like there it's having troubles while I'm running gmail through https. Humm....

Wednesday, 7 November 2007

Why not anything for me?

We went to wally-mart last night to score some drugs (I was jonesing for some cold and sinus advil) and I felt really left out. They have parking spots close to the front doors for people who can't walk far (wheel chairs and the like), and they have places for expectant mothers, but nothing for people who have the sniffles? What the hell's with that???

Then I looked around at the other stores and no one has special parking spots close to the doors for the people who sniffle, or as I like to call them: nasally challenged. It's crazy that in this day and age we can't protect and help the people that can't smell.

Sometimes I don't know what we've come to.

Monday, 5 November 2007

Luckiest Person Ever

It doesn't matter how many hours Laura is working. It doesn't matter how busy she is. When I'm sick, she takes care of me.

I really am the luckiest person ever.

Thursday, 1 November 2007

Don't check in binaries!!!

How difficult is source control to understand??? I can understand keeping libs in source control (I don't agree with that anymore), but why the hell do people check in binaries of the project they are working on? You don't check in the /bin or /target directories (or whatever it is in your project).

Is this a difficult thing to understand? When you're doing a commit and (in the case of java), you see that you are checking in .class files, doesn't that cause you to pause and stop?

Agghhrrrhggh!!!