Our dog, Marley, is one of the most spoiled dogs I know. I work from home, so he has free reign of the house all day long. He sleeps in my office, outside of my office or on the couch. Some days I even let him roam the backyard for awhile. When we leave, he still can roam the house (we close off a few rooms). He always wants attention and when he doesn’t get it, lately, he has decided to pull the blankets off the couches that we’re using to try to protect them from him. He knows he’s done something wrong when we scold him, but he keeps on doing it.
GPS for Running
One of my goals is to eventually run a marathon (not sure if this will ever happen). In my reading today, I came across a press release from Garmin announcing Mac OS X support for their products. This is pretty cool and as I was reading about their support for the Forerunner 305 training GPS, I said to myself, I have to have one of those. It’s pricing ($350 on Amazon), but combined with their web site, you can overlay maps, elevation data, heart rate information, etc. Once they have OS X software, this will be killer. However, in the meantime I think it will be a decent device even if I have to hook it to my Windows box.
Metal Spork
I think that a spork is one of the neatest utensils ever invented. There are lots of times that I need both a spoon and a fork such as eating pasta like macaroni or shells; sometimes you need to scoop them, sometimes you need to stab it. However, the patent for the spork is for a plastic utensil. I really want one that is metal and acceptable to use for everyday eating. In my search, I’ve found indications that metal sporks exist, but I still haven’t been able to find one. If you know where I can get one, please leave me a comment.
Religious radicals
I’m amazed at how some people interpret religion in such a way that they believe that others should die. No, I’m not talking about conservative Christians, I’m talking about Islamic fundamentalists. I’m just not sure how being a suicide bomber helps your cause or gets you to a higher place. It is my hope that all religions value life; it is just that some extremists think that others need to die in order for them to be better people. The recent win of the Hamas party is extremely frightening as they believe in the destruction of Israel where Israel is trying to make peace and is giving up land to that end. Everyone has the right, in my opinion, to practice their own religion, but I think that this can be accomplished without others having to be killed. In the words of the great Rodney King, “Can’t we all just get along?”
(On a related note, don’t the Hamas people know that when they shoot guns into the air to celebrate their win that the bullets have to come down somewhere and possibly on someone? They must not be the brightest people in the world.)
Nickel and dimed by Sprint
I got my latest Sprint bill today and noticed it was a little higher than normal. Turns out that Sprint charged me $18 to switch handsets; this is after I paid them $350 for the new handset! Do they not get it? On other carriers such as T-Mobile and Cingular, you can pull the SIM out of one phone and put it in another…you don’t even have to tell them. They don’t even have to know about the change as you do it yourself. Since Sprint and Verizon don’t use SIMs (or the CDMA equivalent which didn’t take off), I am forced to talk to a human to change phones; Sprint used to have the ability to do it online, but they scrapped that probably so that they could try to sell you something else while you’re switching handsets. Cingular is looking better and better everyday.
Stupid Patents (including software patents)
Today I read that Cingular has patented a way of generating an Emoticon (smilies, etc.). This seems insane that a patent be granted on something that has been in use for years. Cingular may have put a slight spin on it, but the Patent and Trademark Office doesn’t seem to have a clue about what constitutes a new idea. Speaking of patents, I’m not a fan of software patents as a simple idea that a developer codes up one day thinking that he is clever only to find out that he has violated a patent. If I patented every idea I came up with when writing code, I would never have time to actually write code as I solve problems and it really doesn’t matter how I do it in code, so I use lots of different techniques in order to get the job done. Hopefully the Patent and Trademark Office will learn to only patent really clever ideas and not stuff made up to extort money from others.
Cocoa NSAutoreleasePool
Autorelease pools are extremely convenient for not having to worry about memory allocation and freeing the allocated memory, similar to the Newton days with its garbage collection. A problem that I’ve been aware of with autorelease pools, but promptly forget all the time is that if you are in a tight loop and keep creating autoreleased items, you’re going to run out of memory and crash. For instance, in the following block of code, without even realizing it, a new autoreleased NSDate is being created once every tenth of a second. If you are processing data for say 3 minutes, you have created 1800 of these that aren’t being released.
while (running) { [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.10]]; }
Now that I’ve thought about this, 1800 doesn’t sound all that bad, however, if you keep doing this without giving the OS a chance to do the autorelease cleanup, you’ll run out of memory. A better way of doing this is:
while (running) { NSDate *newDate = [[NSDate alloc] initWithTimeIntervalSinceNow:0.10]; [NSThread sleepUntilDate:newDate]; [newDate release]; }
This way you won’t have anything lying around. Hopefully this will save a crash or two and lots of time scratching my head figuring out why it is crashing when I can’t reproduce the problem.
Bluetooth and the Intel iMac
After I setup the new iMac, I started testing it. One of the things I did was try to send a file from a Palm to the iMac via Bluetooth. Hmmm…didn’t work. Start thinking about this and turn off the Bluetooth keyboard and mouse. Presto, the file transferred without problems. Turned keyboard and mouse back on and it stopped working. This doesn’t bode well for our software; people already blame us for every problem on their machine, now I’m sure someone will say they can’t sync with a Bluetooth keyboard and mouse even though it is quite possibly not our problem. Lovely.
Other People’s Code – Open Source
I think that open source software (with license agreements that let me use it in commercial applications even if it means contributing my changes back) is great. We use it extensively in my work and have contributed back our changes as required in one component. Another component we use has proven to be a constant thorn in my side that I’m almost at the point that I’m going to scrap the code and write it myself; however, it does stuff that I don’t know how to do. I’ve had to fix this particular bunch of code twice in the last week. On a positive note, it keeps me employed.
New iMac
I picked up a new 17″ iMac running the Intel Core Duo today to do testing and development. I didn’t realize until I got home that I had the wireless keyboard/mouse model which wasn’t a big deal as it was only $60 more (the box doesn’t indicate this…not even the label, unless you can decode part numbers). Setting it up took a few minutes, but the wireless keyboard and mouse was kind of weird as it took awhile for the Mac to discover the keyboard and mouse after I figured out how to put in the batteries.
As I always use disc images for development so that I can wipe down a hard drive and start over, I plugged in my external 120 GB FireWire drive, partitioned it, booted from the CD and attempted to install the software. It failed. Turns out I had to switch from the Apple Partition Scheme to the GUID Partition Scheme. Yeah, that was an easy one to figure out.
I haven’t played much with the machine, yet, but will do so later after I finish imaging the drive.