Wednesday, November 12, 2008

I'm converted

For quite a while now, I have been hearing a lot about how cool distributed version control systems are and then a few months ago, Brad Fish posted about git and gave it a glowing endorsement, so I finally got around to doing a little detailed research and trying one out for myself.

While I can't stand Linus personality, I have to admit that the DVCS idea is just plain AMAZING. I personally like Mercurial over git since it uses the same interface as CVS/SVN whenever possible and it seems to be a little simpler than git without giving up any of the advantages (I'm still new to both of them, so that may not necessarily be true). One of Linus' big knocks on Mercurial was that it couldn't scale and that it couldn't perform as well as git, but in the benchmarks/timing studies that I could find they seemed to be in the same ballpark, so maybe that claim was earlier in the development cycle or something.

But at any rate, I think that the ease of merging branches is a HUGE gain and I have already cleaned up some of the ugly brances and odd copies that I had hanging around on my computer. I'm definitely converted to the DVCS revolution.

I would also just like to add that to get WinMerge to work with TortoiseHg 0.5 I added the following lines to my mercurial.ini file:
[extensions]
hgext.extdiff=

[extdiff]
cmd.vdiff = C:\Program Files\WinMerge\WinMergeU.exe
They have a wiki page describing how to setup merge tools, but I couldn't get it to work for some reason, but the above worked.

Thursday, November 6, 2008

Foreign Keys in SQLite

As a followup to my previous post on foreign keys in SQLite, I just wanted to point out that code to generate the triggers to emulate foreign keys has been official added to SQLite in version 3.6.4.

sqlite-manager

Maybe everyone already know about this, but I just stumbled across sqlite-manager. It's a Firefox add-on that can also be run with XULRunner which allows you admin an SQL database using a GUI. It's still somewhat early on in development, but it's functional and VERY useful. So go check it out for yourself.

Saturday, May 17, 2008

Stupid Facebook

I had been wondering why there wasn't a "Facebook Reader" application that allowed me to browse through all of the actions of my friends on Facebook like I do with items in RSS feeds in Google Reader, so after waking up and feeding Charlie this morning, I decided that I would start playing around with making my own. I started reading the Facebook API and playing with PopFly (which is actually kind of cool), but I couldn't figure out how to get access to the mini-feed data. I did some more searching and I finally realized that Facebook doesn't make the mini-feed data available, and I know understand why so many people complain about Facebooks death grip on your data. I joined the group that's trying to petition for this to change, but there's just over 40 members, so I'm not keeping my fingers crossed.

Tuesday, April 22, 2008

My Old Code

So I'm out sick today and I decided to put all of my old code up on a Google Code Project. It's probably not that exciting, but if anyone is ever interested they can check it out here.

Wednesday, February 20, 2008

A question of ethics?

One thing that I have always struggled with regarding my current job is being part of the "war machine". Obviously, I know that war is a horrible and deeply saddening affair, but I also realize that it's a necessary evil and that if we don't maintain our military might that someone else will. So it's kind of a bittersweet type of thing, and I also take comfort in the fact that I work on a defense missile (so in a certain aspect you can say I'm stopping war, or at least part of it).

But on to the real purpose of this post. I just saw an article on Slashdot, and it really struck a cord with me. The article basically talks about the dangers of being careless and how all engineering/programming should be deliberate, but a lot of the comments just point the finger at management/capitalism/other "invisible hands". I agree with the principle and have even experienced it myself, but I believe that trying to point the finger at someone else without taking some personal responsibility is just plain dumb. There's always pressure to get things done in any job, but I believe that the biggest responsibility of any job (not just engineering/programming) is to make the judgment about how crucial any potential problem is and take the appropriate action.