Monday, 28 July 2008

QotD - How to lose stupid

Too funny... quoted from an AC on /.
"You can stop eating to lose weight, but you'd have to stop breathing to lose stupid"

Another quote, totally unrelated...
"You'll wish that you had done some of the hard things when they were easier to do."

Maven repo on a thumb drive

When working at home on maven stuff, to make your life easy for you you can take your local repo with you on a thumb drive. I used rsync to move the files to the drive, but I don't necessarily want to pull them off like that.



With maven you can simply put in a new entry into your settings.xml file to pull from your thumb drive like this:


<mirrors>
<mirror>
<mirrorOf>central</mirrorOf>
<name>thumb</name>
<url>file:///path/to/thumb/repository</url>
<id>my-thumb</id>
</mirror>
</mirrors>



And that's it. This is also useful when you're "cleaning up" your local repo. Instead of deleting it and redownloading it all from a corp repo, you can copy your existing repo to something like ~/old_repo/ and point to that as your first repo. I have not *actually* tried it. That's a post for another day. :-D



Update: One downside of this is that it appears that snapshots are not pulled in. It might be better to just up some repositories that point to the thumb drive rather than using the mirror.

Friday, 25 July 2008

Frickn' cars...

On my way to work today I was biking along on the paint like normal. The only problem was that a car decided to turn right... right into me. Luckily they noticed as I was yelling louder and louder and had my body / bike pressed up against the side of their car.

I'm happy that they didn't turn quickly or that I wasn't going too fast. I'm still not sure what exactly went wrong or who was at fault. I'm just happy that no one got hurt... especially me.

*sigh* I'd love wide bike lanes with a curb separating cars from bikes.

Wednesday, 23 July 2008

Over thinking the problem

I was trying to figure out how I'd detect changes to cvs within a given period. This is because we're looking for projects that need to be built by the CI server. So I was at first playing around with cvs command, sed, and other commands. Then it occurred to me that I was over thinking this problem. When you check something in, the files change in cvs.

The actual solution was a lot simpler than I was making it out to be at first. It was essentially this:
find /our/cvs/location -mtime -32 | grep -v -f projects_already_tracked.txt

Now, I put in a script that has variables, emails me if it finds anything and I call that in a cron, but that one liner is pretty much it. The only draw back is that this solution doesn't work for branches (if the project is on the "already tracked" list), but I think that's 95% there.

Saturday, 19 July 2008

Poster child for the foot fetish crowd

Having pictures up on flickr is a great way to share snapshots (literally) of our life with friends, family, and occasionally people we don't know. It's been interesting because sometimes people will comment on or favourite a picture. This rarely happens, but it's usually interesting when it does.

Sometimes it just gets weird.

Laura took a picture of me about a year or 2 ago with my feet towards the camera. It was one of those silly moments. After about a year of the picture being up someone favourited it. Someone who didn't really have any of their own pictures up, but had favourited a lot of pictures of people's feet. Okay, that's a bit weird. Then someone else did. And another and another. A that point it just starts to feel creepy. So we changed the visibility of the image to just friends and family.

I like sharing. Just don't go all creepy.

Thursday, 17 July 2008

Don't build sql with string concatenation

How freaking hard is it to understand that you don't freaking build sql with string concatenation. Use a prepared statement. Is this concept really hard to understand? It's a simple way of preventing an attack by writing safe code.

It's not like this is a java specific attack. Sanitize inputs and don't be a shit head. If you get burned, it will be no one's fault but your own.

Frick.

Squeaky floors

It's very hard to sneak around in a house that has squeaky floors. I try be quiet when I get up because I can't sleep, tired but with my brain is running 1000 km / minute. Usually in a circle.

Sometimes I play scenarios in my head. Negotiations, bluffs, half-truths. All scenarios usually end badly. I don't think that I can bluff. Hell, I probably suck at getting my ideas across. I think that is my only technique is the truth. It's only a bluff if you're not prepared to act on it. Otherwise it's just you laying all your cards on the table.

I wish when my head hits a pillow I could just fall asleep... *sigh*

Wednesday, 16 July 2008

Montreal

We just got back from a weekend in Montreal. We didn't plan anything specific, just to hang out and wander around. Some highlights that we ended up going to: the biodome and seeing some lemurs among others; the planetarium which could use some updated seating, but fun otherwise; Mount Royal which is always good for a climb; les 3 brasseurs; just for laughs on St. Denis. I thought that this would be more shows than just a kick ass street party.

I love Montreal.

Saturday, 12 July 2008

Folding bikes...

I've got a couple of folding bikes. They're at my folks place, but I've got to bring them to the house. Now I just saw a strida online... cool! The 800 $ price means I can't see myself getting one, but cool none the less.

So close to Metric

Tonight I saw Metric and we were so close to the stage, you could measure it in feet. *ba dum bump* Compared to any other concert that I have been to, there was no crush of people or (much) body surfing which usually ends up with me taking a foot to the back of the head and seeing stars for a while.

There is something to be said to be close to the stage. The last show we went to the NAC we were in the top balcony and it was hard for me to make out the peoples faces properly. The NHL game that I remember most was were we were sitting first row, second level and you could hear the players yelling at each other. They yell? Wow.

You loose something when you're too far back. We had purchased other tickets for NAC shows that were in the top level. I took them back and exchanged. It sucks paying more, but sometimes it is very much worth it.

Friday, 11 July 2008

I wouldn't have thought of that...

One really good thing about working on older code written by someone else (or many other people) is that you see all kinds of new things. Some are tricks, some are hacks, some are just... "different". I find myself going over code sometimes, trying to figure it out, and coming to a realization of what it does.

The really interesting ones are the ones where I say to myself "I would have never thought of that!". That can be a good thing, a bad thing, or just different. The one that I came across the other day was a method for deep cloning an object using serialization. The method serialized the object into byte buffer, and then wrote it right back into a new object.

I usually hate clone methods to start with, using a copy constructor instead in the rare cases I need to make a copy of something. One disadvantage I've found doing this is that you have to be very careful that you clone all the attributes of that class properly. That way you don't get 2 objects pointing to the same list for example.

One advantage of the serialization clone method is that you're not going to run into this problem and it's somewhat "future proof". Interesting. Hugely expensive and tricky, but interesting.

Tuesday, 1 July 2008

Appliance Hunter

We've just got a couple of new appliances. A new stove (GE Profile PGB916SEMSS) (note: this link was working... I'll check it later since the GE site is having "issues" right now) and a washer dryer pair. Our current stove broke, so we used the excuse to get a gas one (and make me really happy) and we've been pretty unhappy with our current washer and dryer.

After a bunch of shopping for a range (ie stove) these are the features that became important to us:
  1. continuous grills so it's easier to move pots around
  2. glass control panel (vs plastic that some have)
  3. cast iron grills. I probably won't be super delicate on it, so if it's got the coated ones I'm assuming that I'd wreck them
  4. convection. ya.
  5. high btu burners. We were looking a kitchenaid range at first but 2/4 burners were 6000 btu which sound pretty useless
  6. control lockouts
  7. stainless steel look. ;-)
  8. black / dark top so it won't show the dirt / wear like something with a light colour top


We found consumer reports pretty helpful. I didn't agree with their ratings all the time, but the user reviews were pretty helpful. For like 6$ for a month of website use, that's something that I can deal with.

For front loading washer and dryers there are lots of complaints about mold. Most of the problems sound like they could be solved by RTFM (keeping the door open, wiping the rubber gasket down after use, ...). I don't have sympathy for the people that refuse to follow the instructions and then have problems.

We found it frustrating and confusing dealing with all the sales people. It was pretty much guaranteed that if you talked to one sales man they'd tell you something like "Apples are much better than oranges. I've got apples at home and have not ever had a problem. Oranges... not so much. But that's my experience. Lots of people aren't happy with oranges", and the next guy would tell you the exact opposite. No joke. That went for features, brands, how to use it, everything.

The most laid back people we dealt with were at home depot. Like most times there you get one person who really knows there stuff and then a bunch of people who just take up space. I enjoyed dealing with the guy at universal appliances the most because of what he knew and how he dealt with us. However, we ended up going corbeil because they were able to give us the best price (with a sale on).

I'm glad that the shopping is done. Now we just have to get it installed and running.