Lately I’ve noticed that when there are lots of treadmills open at the gym, someone is bound to get on the one next to me. Normally this isn’t a huge issue, but the last few times I’ve been at the gym, women who dipped themselves in perfume have decided to stand next to me. It could be my stunning good looks that made them stand next to me, but I doubt it. So, today after about 10 minutes of having to inhale perfume, I stopped the treadmill, made a mental note of my progress, got off, and moved down about 6 treadmills (only 4 of about 12 treadmills were in use). The old lady wearing the perfume kept looking at me funny kind of questioning why I moved. Uggh; at the last gym I went to, there were signs up telling people not to wear perfume or cologne as a courtesy to other users. I guess people just aren’t courteous.
Sample code is great (when it works)
I think that it’s great that companies like Apple put out sample code to help developers write code without having to resort to figuring it out themselves or doing something in a way that will break. Several years ago I wanted to add my application (NotifyMail) to the login items/startup items for a user under OS X when OS X was new. There was no documented way to do this, but a DTS engineer at Apple posted on a mailing list that if people wanted code, to send him email. So I sent him email and have been using the code ever since in a bunch of projects. It had a major limitation in that if System Preferences was open and you used the code to modify login items, the user wouldn’t see the change which could be confusing. I had added an awkwardly worded alert indicating this and no one complained.
As I was changing some setup stuff on one of my machines, I added an item to the login items by using the contextual menu item in the dock. I then opened up system preferences and began adding and removing it via the menu again. To my surprise (and delight) system preferences immediately indicated the change. After a bit of searching, I found some sample code called LoginItemsAE which was first created last October. I download the code, added it to my project and attempted to compile. Hmmm…it relied on stuff in Mac OS X 10.4, but I was targeting 10.3 (and 10.4.), so it didn’t compile. I double checked the sample code and it says it goes back to 10.2. After a lot of research, it turns out that in order to get the code to compile, even if targeting 10.3, I had to set the SDK to the 10.4 SDK. I didn’t want to do this as I have 50+ targets in one project that all use one configuration file that sets the SDK to 10.3.9; this kind of change could be bad as it would allow me to use functions only found in newer OS versions and then crash on older systems. So if I’m not careful, I’ll get a crash. By setting the SDK, if it doesn’t compile, it won’t run on the older OS version which makes life easier. It would be nice if there was a way to warn you about which functions aren’t available on newer OS versions.
To make a long story a little shorter, I had to whip up some stub code to get it to compile which was a whole lot more work than I had expected.
Tracking down bugs
One of the hardest aspects of writing code is debugging it when it doesn’t want what you expect. In one of my past jobs, I was given the task of making a server stable which meant finding a bug buried in thousands of lines of code that I really didn’t understand. No one gave me a timetable on doing this, so I worked at it for over 4 months if I recall correctly. Turns out the problem was a bug in a driver that we didn’t even control; I put in a workaround and moved on.
Today I spent over 4 hours working with an excellent QA engineer to track down a bug; he did everything I asked him to do, sent me logs, reinstalled software, tried on a second machine, etc. Turns out that if I had read the log a little closer, I would have been able to fix the bug in minutes instead of hours. Having a QA resource like this makes it so much easier to find stupid bugs.
Are expiration dates real?
Just about every consumable product we buy has an expiration date. from the obvious ones like milk, eggs, and cheese, to the less obvious, but increasingly common ones such as batteries and beer. Yesterday while I was going through my first aid kit to replenish the supplies, I found some hand warmers that expired in 2001. Could these really expire? They have some iron and some other stuff in them when exposed to air heat up to about 100 degrees Fahrenheit for about 6 hours. These weren’t exposed to air and were still completely sealed. I decided to test one, opened it up and in about 20 minutes, the hand warmer was cold. So I guess the expiration date on this particular product actually meant something (maybe it would have lasted another 2 years, but I’m still a few years out).
Yet another Sony memory format
It seems that Sony is up to their own tricks again and have come up with Memory Stick Micro, another proprietary flash storage format. There was the Memory Stick, Memory Stick Pro, Memory Stick Duo, Memory Stick Duo Pro, and now this. While it is great that Sony thinks that people will only products that Sony makes. This is completely ridiculous. I had thought that Sony had abandoned shoving their flash formats in our face (the Sony Reader takes other cards in addition to Memory Sticks). Personally I’m quite happy with SD cards as they’re used in most of the handhelds I have, my digital camera and my desktop card reader reads them. Come on Sony!
Excess packaging
It seems like many things I buy come in boxes that have bags and bags in them along with manuals, CDs, etc. I usually keep boxes and packaging for stuff I buy for 6 months to a year depending on what it is in case I have to return it or have it repaired under warranty. Yesterday, as I periodically do, I tossed a bunch of packaging that I no longer needed. As I was going through it, I realized that there is a lot that isn’t needed. First off, blister packs are just awful to recycle as you really can’t; cardboard boxes are much easier to recycle. However, marketers like people being able to see the contents. Second, I find the documentation in plastic bags. Is it really needed when there is scant documentation anyway? Then there is the CD. Is it really needed? Most times I download newer versions anyway. For those that can’t download, how about a number they call to request the CD; these days there can’t be that many people with that problem. In my process of tossing stuff, I separate out the paper/cardboard and plastic stuff. I recycle the paper/cardboard. How many people really do that? If the packaging were reduced and people were as conscientious as I, we could have a huge reduction in the amount of waste we send to the landfill.
Reliable Internet Access
It seems that people I work with have Internet problems a whole lot more often than I. I feel quite lucky that my cable modem provider, Time Warner Cable, has been pretty rock solid for the last 6+ years that I’ve had them. There have been a few issues in that time, but nothing that I can really remember. I did have a problem with their DNS servers that drove me crazy, so I started running my own. I handle my own email, so I don’t have to worry about that either. The “pipe” that Time Warner provides is fast and reliable. What more can I ask for in a provider?
Does money grow on trees?
The news reports today say that the Bush administration is asking for more money to fund the war in Iraq bringing the total to over $400 billion. Where does this money come from? Our tax dollars surely can’t pay for all this. Then to top it off, officials are asking for more money to rebuild from Hurricane Katrina bringing the total for that over $100 billion. This is an excellent way to increase the national debt and make sure that many generations to come are saddled with this burden. Cutting a few billion here and there on programs is nothing compared to this whopper. I’m sure Bush will ask Congress for more money for the war that will never end.
The Joys of Working at home and being self employed
I’ve been working at home for about 6.5 years and have been self employed for almost 3. When I tell people I work at home, they usually respond that it must be nice. Well, it takes a certain kind of person and attitude to work at home. My first experience working at home was when I lived in Portland, OR and the company I worked for had basically shut its doors, but kept me on board for a few months. As I was relatively new to Portland and the weather was just awful (it was in the winter) I absolutely hated the experience. After I left Portland and moved back to San Diego, I chose to work at home, while still working for a company in Portland. Since it was now my choice to work at home, things were much better. Working at home gives me the flexibility to goto the gym when I want, run errands when I want, and work when I want. With all this flexibility comes a few downsides. The biggest being that I can work all the time; now that I’m self employed, the more I work, the more I get paid, so it sort of makes me want to work more. Some days I like working at home, occasionally the silence and lack of interaction gets to me.
As for being self employed…I’m not sure that I could work for anyone again. The ability to take off when I want without permission is great. The tax breaks are definitely worth being self employed. The big downsides are that if I don’t work, I don’t get paid which causes me to work a lot more than if I had an employer and if I’m sick, I don’t work and don’t get paid. This, of course, can lead to a lot of stress.
Overall, being self employed and working at home agrees with me.
Why do I blog?
Why do I blog? That’s an interesting question. I’ve been blogging for almost 5 months now and sometimes ask myself, why? There are several answers to that question. First off, it gives me an opportunity to get stuff off my chest and synthesize my thoughts. Second, it is a record of what has been going on in my life that I can look back sometime in the future. Third, it is a way for me to write wacky stuff without having to bug my wife with some useless stuff.
Do I expect anyone to read this blog? Not really. It is mainly for me. If others read it, great, but unlike some other blogs I read daily, this is not meant to attract an audience.