Okay, so the pages aren’t pretty but all 4 URL’s should be working now.  I will spend some time over the next few days customizing them so they are less cookie cutter copies of each other with varying content.  Since this is a big change this is how the URL’s will work.

If you want to see my geeky blogs then go to http://www.vegangeek.info/

If you want to see my vegan blogs then go to http://www.veganmatt.info/

If you want to see personal stuff in my blog then go to http://www.fattymattyo.info/

If you want to see all my blogs go to http://www.mattolsen.info/

Sorry I don’t have an RSS feed for mattolsen.info yet, soon I promise.  Please check these new links now as I will no longer be bloging at this location.  I have a review queued up for veganmatt as soon as I get some spare time to type it up.  Let me know if you see any problems with the pages (unless you have constructive critisism I’m not counting the fact that they are ugly)


There seem to be three types of people that look at my blog, friends/family that want to know everything that is going on in my life, people who happen on my blog for my geeky posts and people that look at my vegan/animal rights posts. Most people don’t seem to have much interest in any of the other posts, beyond their key interest. Because of this I am planning on splitting my blog into multiple blogs:

I plan on having 4 URLs as follows:

http://fattymattyo.info/ (all personal blog stuff, vacations, camping, etc)
http://vegangeek.info/ (all things geeky)
http://veganmatt.info/ (my animal rights related posts)
http://mattolsen.info/ (The above three blogs aggregated together)

This migration may take a little while so you may see my posts slip off for a little while.  I will post more infomation as soon as I have anything interesting to say about it.

Let me know what you think about the blog breakout.

Blue Proximity

A friend of mine pointed me in the direction of a piece of software called BlueProximity. Basically it looks for your cellphone via bluetooth and if it can find it it checks to see how close you are. You can define a range that it accepts you as being at your computer and then it locks/unlocks your computer accordingly. The overall idea is that most people have their cellphone with them at all times so if your computer can see it then it should be able to tell if you are really there.

What should happen is that when you walk away from your computer it locks shortly after you left your desk. When you come back it unlocks before you sit down at your desk and you are ready to work again. After some playing around with the ranges this is pretty much what happens. I have two big problems: 1. My desk is right next to the door so I wind up triggering it if I walk by the door sometimes. 2. When sitting down at the disk my “range” varies anywhere from 10ft – 20ft.

I think the issue I have with the range may very well be the sensor I bluetooth adapter I choose. I wanted to have the smallest one I possibly could so I was less likely to break it off in the USB slot. In the end I can live with the range issue since I just added about 15 feet and the ranges seem reasonable. At this point I’m pretty happy with how it works… it seems to lock itself within a minute or so of my leaving and it will lock even if someone sits down at my computer that isn’t me. This means that if someone does sit down at my computer as soon as I leave they only have a few seconds to cause any damage… and having my computer come back to life when I sit down is just plain cool.

Thanks Henry and John for pointing this software out to me.

I went to the capital region veg expo yesterday and I wanted to stew on my experience for a little while before I wrote up my review. I went last year and had mixed feelings but an overall good experience from the expo. This year I left the expo feeling disappointed and discouraged. Part of the difference in my interpretation of the veg expo probably has to do with my own personal growth, and part of it is in changes in the expo itself. Lets just say it seems we are growing apart.

First of all lets just say that I’m not the only that I see a problem with the labelling of an expo as “vegetarian” rather than vegan. Almost all of the booth participants (AR related at least) and from what I could gather most of the presenters were themselves vegan. If that’s the case why not just call this thing what it is. This is a recurring theme in the animal rights movement were there is fear to use the term vegan because you might scare people off. Well as far as I’m concerned if you don’t ever use the term vegan than its just going to continue to be scary. The only way you will normalize a term is to start using it. In a sense we are our own worst enemies when it comes to this. In the grand scheme though, this wasn’t really the most upsetting thing.

This years expo and to a lesser degree last years had a heavy slant away from animal rights and towards “health food veg*ns”.  Every single presentation except for one (which was really about environmental issues) were about health issues and how veg*nism is good for your health.  The expo program talks about animal advocacy but, you wouldn’t know it by looking at the presenters.

People come to vegetarianism for a number of different reasons ranging from religion, to health, environmental, to ethics. Veganism on the other hand always seems to involve ethics. How can I make this broad sweeping statement? Veganism is about the abolition of using animals for our own uses. It is the complete abolition of animal products and and animal testing in your day to day life to the greatest extent possible. If you are “vegan” for health reasons, you probably aren’t going to have a problem wearing leather shoes or using a leather belt… and in my opinion you are strict vegetarian not vegan.

Okay Mr High N’Mighty but why do you care?

I care for two reasons, firstly if you succeed in convincing someone that veganism is a good idea for their health it was a missed opportunity. Someone who stops eating meat, eggs, and cheese because they don’t want to die a premature death is missing the point. Your efforts are better spent on helping to educate people about the cruelty to which, most people continue to bury their head.  Health food vegans are also more likely to “cheat” when its not going to affect their health “that much”.  A health food vegan isn’t likely to care if there is some gelatin (ground bones and cartilage) in their food, or carmine (ground up bugs for coloring), and they definetly aren’t going to think twice about weather a rabbit was tortured so they could feel more beautiful when they put on their make-up in the morning.

Secondly, calling yourself vegan and then eating animal products (cheating) or wearing animal products sends out confusing messages to the masses about vegans.  How can we get upset with people who prepare food and use soy cheese with casein in it when they have seen other “vegans” eat the same cheese.  Call yourself what you are or better yet stop the nonsense and go vegan.

It was also a little mind boggling to see some completely non-veg*n vendors there.  I’m not even talking about your middle of the road kind of, sort of, if you looked at them sideways could be seen as maybe veg related… I’m looking at you on this one hannaford.   I’m talking about booths that had flat out nothing what-so-ever to do with animal rights or even “health food vegans”.  We had an architect, curtis lumber and a psychic reading boot at the expo.  Seriously WTF.

There was good news at the expo though, I met a number of people (some old some new) who look like they really want to try and make a difference.  There seem to be a lot of people in the capital region who really want to help in the animal rights movement they just don’t know who to contact or wht to do.  That to me is a really positive sign, its at least a start.  A number of these booths shared a lot of my concerns and I hope that we will start to see a real change in the capital region.

Its funny how you just get used to some things. I’ve been using either Windows or Linux as my primary desktops for quite a while now. Both operating systems treat the home and end keys pretty much the same way. The first time I was in a terminal on my mac though and clicked home to type sudo before a command I got a good smack in the face.

You see, on a mac the home key and end key are roughly equivalent to page up and page down. Its been driving me and one of my co-workers absolutely bonkers since we started working more with macs. Now I recognize that most people probably never use the home or end key, but I realized that I probably use it 50+ times a day during usual use. I have been putting up with it for a while now but I finally had some down time and decided to try and figure out a way to “fix” it.

DoubleCommand to the rescue, technically I suppose I could have edited the keybinding file by hand but, double command did the heavy (all right not that heavy) lifting for me. Now when I click home I don’t want to bang my head up against the wall anymore…


Like most geeks out there I know I have quite a few machines out there and there are some applications that I use to try and keep my sanity and sync everything. Most recently I have added dropbox and spider oak to a growing web of applications that gradually bring me closer to syncing nirvana. I have been following Conduit quite closely and have been using it for the past few months. While I like conduit it has some significant deficiencies (and bugs) that frustrate me to no end. Before the flame starts, I know its written in python and I know I could scratch my own itch… maybe at some point, to crazy right now.

As far as syncing is concerned I have a few concerns that I’ll lay out below. I’ll try and explain what other programs I’ve found that fit my needs to some degree or another.

  • Platform Independent
    Conduit right now is not platform independent… unless you only care about UNIX(s) that run
    gnome. It does however have the potential. Its written in python and I’ve even seen screenshots
    of people who have run it on windows (my guess with little usability still intact), but as it stands
    right now… not so much. Here are some applications I have found that are more or less platform,
    although they are really only for syncing files with other PC’s, not 3rd party web services

    • Dropbox
    • SpiderOak
    • Wua.la
  • Just work
    Unfortunately conduit is a pretty new program and has quite a few growing pains. I have quite a
    few syncs that I have simply not been able to get to work, and when they fail it simply segfaults with
    no useful message to determine what went wrong.
    For example…Folder -> Evolution Contacts
    Folder -> VFS (SSH folder)

    Also if you try and do a sync which is not valid it simply fails with little useful information in the conflicts section.
    For example:

    • Syncing with flickr, facebook, or other picture service when files are to large (ideally you should be able to set an option to resize or something equally useful.)
    • Syncing with flickr, facebook, or other picture service when the files are of an invalid type (ideally these should be converted)
    • Syncing from Evolution Contacts to Google Contacts does not bring any information other than email even though Google supports these other fields.
  • Sync with web services
    This is where conduit really shines. The reason this is so important is that I often work behind a bunch of firewalls. That means I can’t easily have inbound connections. Syncing with web services lets me sidestep this issue pretty easily. If Conduit can solve my other concerns this feature alone makes it worth while. This is why I currently use conduit, as it makes syncing pictures on my machines easy.
  • Encrypt my data please and thank you very much
    Especially if I’m going to be syncing data with web services that may be publicly accessible I really want an option to encrypt all my data. The only software I have found that does this is spider oak. Spider oak will act as an online backup utility and gives you 2GB of space. Thankfully the whole thing is encrypted and spider oak never sees your data. The downside to the software is that it is anything but seemless… but it does work for more sensitive data.
  • Intuitive interface
    I buy into the less is more in interface pretty heavily but there is a balance. Unfortunately there are some things about conduit that are either frustrating or confusing.

    • Unclear options
      Sometimes its difficult to tell what the groups you are creating will actually do.. for example what does GConf Settings -> Network do? Does it find another machine and sync your settings… if so how? Does it dump them somewhere as a file on a network drive… if so how does it choose it. Does it simply throw the data on the network for and watch it blow away like a fart in the breeze.
    • Lack of settings
      Ignoring the complete lack of encryption options, most of the sync groups are missing settings. Almost all of these features have a host of other options you are presented with when using the web service but are ignored by conduit. For example tags in flickr, fields in contacts, etc. Also in syncing options you should be able to set how frequently keep up to date polls and set dependencies on syncing rules. For example I should be able to say…
      Facebook -> folder; Folder -> backup
  • Seemless
    Basically once I set up my syncing rules I dont’ want to have to think about them. I want to go from my work computer to my laptop, to my home PC and have the same basic setup. Conduit has this down pretty well, when it works. Dropbox is also seemless and so far I haven’t run into any glitches yet. Spider oak and wua.la are not seemless (boo!)
  • Native Remote Connections
    Using gnome vfs is cheating since thats not platform independent, besides it seems to crash on my computer with conduit. If I have the option to connect directly to a server I should be able to connect via SSH, FTP (I know bad no enctyption…), etc. In conduit speak these should all be providers under a heading similar to Network Services.

Okay now that my grumble fest is over, the good news is that we are a lot better off today than we were a year ago. I can now use dropbox to sync up files that aren’t sensitve up to 2gb, spideroak for sensitive files and I’m hoping that conduit will soon get over its growing pains. In the meantime I’m going to keep using it to sync with picture services and the like. My highest hopes rest on conduit since it is closest to what I’m looking for. It has a few quirky behaviors but it has the potential to do everything I want to sync my computers seemlessly.

For those of you who are completely unaware of what unit testing is here is a brief description.

In computer programming, unit testing is a method of testing that verifies the individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class.
Taken from wikipedia [http://en.wikipedia.org/wiki/Unit_testing]

I have been reading about unit testing a bit recently and trying to work out how I would use unit testing in my own code. Its really an interesting approach which I am frustrated I did not learn in school. Most of my truly useful programming knowledge has come outside of my school curriculum, which is unfortunate. What I like the most about unit testing is that it really allows me to change my algorithm for speed, efficiency, underlying data structure, etc and have some degree of confidence I didn’t break anything.

Any time you make a substantial change to your code there is always going to be the nagging sensation that you may have just royally messed something up. While unit testing doesn’t take the place of traditional testing it looks like it could significantly speed up making sure code is at least of moderate quality… it should improve code quality before it gets to testing and just help me sleep better.

For those of you who are familiar with unit testing you know that it is not without limitations. Unit tests are designed to be run by themselves which means you have to try and predict input and output. Unfortunately this is just not a reasonable expectation. As a result you will need to have real people test your code still.

That being said, I am going to try and work unit testing into my regular coding practices. I am hoping it will make for less sloppy code.