Piracy in the Mac App Store

A number of web sites are reporting that apps in the Mac App Store can be pirated. While this seems to be news, it really isn’t in my opinion. As long as I can remember, software has been pirated no matter what developers have done to protect the software. Many applications use a simple user name and registration code for registering; some send a request to a web server to verify the request. In all cases, the software can be cracked by people that are unscrupulous and aren’t buying the software. Isn’t there other news to report on besides something that really doesn’t affect the average user that isn’t going to user pirated software?

Why oh why? or What was I thinking?

I was profiling some code today and saw a blip when a startup window closes. For some reason that I have yet to explain, I struggled with the code. What I ended up putting in was something like this:

[self performSelectorInBackground:@selector(closeStartupWindowInBackground)
                       withObject:nil];

with closeStartupWindowInBackground defined as:

- (void) closeStartupWindowInBackground
{
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
	[NSThread sleepForTimeInterval:1.5];
	[self performSelector:@selector(closeStartupWindow)];
	[pool drain];
}

Now, anyone that has done Objective-C for awhile knows that this is utter crap. Why spawn a new thread to simply do something after a delay? The correct way to do this is:

[NSTimer scheduledTimerWithTimeInterval:1.5
                                 target:self
                               selector:@selector(closeStartupWindow)
                               userInfo:nil
                                repeats:NO];

or

[self performSelector:@selector(closeStartupWindow)
           withObject:nil
           afterDelay:1.5]

In addition to spawning the thread, the original code closed the window on a background thread. Many parts of AppKit are not thread safe, so doing that could potentially crash.

Does anyone know why I’d do something so stupid as write that original code?

[Update: this gets worse, going back 9 months to my original code before I touched it, I had the performSelector code in there to begin with, but for some reason though that it would block the main thread. Granted it does block the main thread briefly while executing the close method, but that’s fine.]

I’m a (weather) wimp

I’ve lived in Southern California for about the last 19 years with a short stint in Portland, OR. Before that I lived outside of Boston and a few other places, so I’ve had the opportunity to experience various types of weather including cold, rain and snow. The weather in San Diego has been quite chilly lately with day time highs in the upper 50’s. The other morning, my neighbors had frost on their lawns (since I no longer have a front lawn and my back lawn is synthetic, I didn’t have frost). To me, that is beyond cold.

I can’t remember when in my life that I’ve been so consistently cold! I’ve heard people say that your blood thins (which obviously isn’t the case), but the consistently moderate weather here in San Diego has spoiled me to the point that anything below 65 is getting cold. I’m still trying to run, but if the temperature outside is below about 60, it takes me about half my run to warm up and that just isn’t fun. 65-70 is my ideal temperature for running; any colder and I feel like I’m going to get frost bite!

By now, people are probably laughing at me as they’re digging out from another snowstorm or scraping ice off of the windshield in order to get to work. A few weeks ago I was in Portland, OR for work and I was wearing a long sleeved shirt, a sweatshirt, a jacket, and then a light rain coat on top of that. My co-workers were just about laughing at me. I decided to suck it up and stop complaining; when one of my co-workers suggested eating lunch outside, I kept my mouth shut and went with the flow. OK, it was quite cold out, but with the sun shining, it wasn’t that bad. I’m sure I could get used to the cold again, but why should I?

Mmmm, those words are tasty

This past year has brought some big changes to my career and I’ve written in the past that I didn’t want to work for a large company again and that I really enjoyed being self employed. A few weeks ago, my main client, Critical Path Software, was acquired by eBay. As part of the acquisition, I was offered a full time, employee position at eBay. After a little bit of weighing some options, I decided to accept the position. So not only will I no longer be self employed, but I’ll be working for a very large company! I still get to work from home, so that’s great news.

My attitude has changed a lot since I worked for a large company, so I think that this will be a good move.

A year ago I would never have imagined quitting my job, being happily self-employed and then being happy about accepting a job with a large company!

Facebook as a news source

My wife is so addicted to Facebook that I always ask her what is happening in the world after she checks Facebook. She actually does find out stuff on Facebook about the world which I have also learned from more reputable sources. Last night when we were watching the local news, they had a story on the Mountain High Ski Resort where the newscaster said that the Mountain High Facebook page said that people started lining up at 6 a.m. That struck me as odd to use Facebook as a source for a news story. I would have expected them to at least call Mountain High and either get a quote or verify the information, but relying on a post on a Facebook page seems like poor journalism.

Maybe this is what journalism is in the future; get facts from potentially unreliable sources, don’t verify them, and then report them. Then the game of telephone starts where the unverified facts get distorted on and on. I think I’m living in the past where I trusted journalists.

Review: Radio Thermostat CT-30 (3M Filtrete 50)

My wife has been complaining that the temperature on our thermostat is always wrong, reading too high. So, I’ve looked a few times at getting a replacement thermostat. However, since they cost $60-$70 for a regular programmable one, I’ve put it off until I did my research to find one that I liked. My biggest complaint about the thermostat was that programming it was a pain; we’re currently on the same routine 7 days a week as our son wakes up at the same time and goes to bed at the same time, so if I want to change the temperature or time, I need to copy the program across all 7 days. While not complicated, I don’t like the interface for doing it.

A friend of mine said he got a Radio Thermostat CT30 WiFi enabled thermostat. It sounded quite gimicky as who really needs to control the temperature sitting on the couch? I saw that the price was $99, so it was almost a no brainer to get it. For only $30-$40 more, I could get a new toy! This device is the same as the 3M Filtrete 50 which Home Depot apparently sells. I went to my local Home Depot and it had a spot on the shelf, but no units. A stock check showed no units in the county and none on order. Very strange. Anyway, I ordered it on a Saturday and it arrived the following Thursday.

Before installing it, I read all the instructions online and it looked like I was good to go; I just had to hook up an extra wire at my furnace and connect it to the thermostat for power (the C wire). After finally figuring out which circuit my furnace was on, I turned off the power, hooked up the thermostat, fought with it to mount it (the wire in the wall wasn’t moving back into the wall for me to mount it flush), and turned the circuit breaker back on. A few minutes later, I was able to control the thermostat with my iPhone. That was very, very cool.

One thing that concerned me, however, was that the A/C compressor was making a clicking noise. I shut the power off again and was about to yank out the thermostat when I decided to try wiring the C wire different; this time I wired it to an unused lead on the furnace, not the C lead. It still provided 24 V AC, but wasn’t touching the compressor’s wires. This seemed to have solved the issue for me. Hopefully I didn’t blow up the relay for the compressor.

First thing I noticed is that the temperature read 3-4 degrees cooler than our old thermostat, so the new one actually did solve one problem. After poking around at the Radio Thermostat account page, I found out that I could quickly and easily program the thermostat from a web page. Another win! The thermostat pings a server every minute to update status and get new commands. This, of course, brings up the question of what happens when the company goes out of business. I have no idea, but the thermostat does have an internal web server so I could likely control it locally if needed.

Besides being able to set the current temperature while sitting on the couch, another win for the thermostat is being able to set the temperature when I’m not home. If I forget to hold the temperature so it doesn’t come on when we’re not home, I can use my iPhone and do that. In addition, I can change the temperature before I get home.

 

I haven’t even mentioned the touch screen display. The display is huge and quite easy to use. I gave my wife the 10 second tour of it (just enough to change the temperature) and it passed the “wife test” for ease of use. (She doesn’t like change, so introducing new tech in the house can sometimes be difficult; once she uses some of it, she likes it, but it’s the initial stage which is tough.)

Pros

  • Nice iPhone/iPad application to control temperature.
  • Programming can be done on a web site.
  • Temperature can be set remotely.
  • Large, easy to read touchscreen LCD.
  • Accurate temperature reading.

Cons

  • Price is a little more than a regular, programmable thermostat.
  • Relies on external server for communications. (If company goes under, the WiFi part may become useless.)
  • Installation can be quite tricky.

Summary

I’m not sure why I am so excited about a thermostat, but this is just too cool. Being able to control the temperature when I’m not home is very neat and being able to do the programming in seconds without having to consult the manual is very handy. If you know how to install a thermostat and know how to work with WiFi access points, this thermostat is a must get! Will there be better devices that do more coming soon? Of course, but if you are looking to replace your current thermostat, this is a no brainer.

Install this device at your own risk; I take no responsibility for any issues that may arise from installing this device.

LEGOLAND is no DisneyLand

My wife scored some free tickets to LEGOLAND that were going to expire yesterday, so since we had nothing else to do, we spent a few hours there. It cost us $12 to park so even spending a few hours there was worth it.

I’ve been a LEGO fanatic for a long time so I had expectations about the park. (We went about 6 months ago when someone else gave us free tickets.) The first thing I noticed when walking up was that the signs made out of LEGO bricks were faded and broken. The models in the park are made out of regular LEGO bricks put together with some type of acetone and then coated with a UV protectant. This kind of fading was seen all over the park. In addition I saw paint chipping in various areas along railings.

We saw some new models at the entrances to the other companion parks and they were bright and clean. While the park wasn’t dirty, it just seemed a bit run down. For a park that opened in 1999, I expected more. Last month we had free tickets to DisneyLand and the experience was completely different. The much older park was in tip top shape and everything operated smoothly.

We had lunch at LEGOLAND and even the concessions were not up to par. While the food was not bad, the chaos ordering is something you’d never see at a Disney park. If the operators of the park had a clue, they would take some hints from others attractions.

After a little research, I found that the majority owner of the park is the Blackstone Group which also owns SeaWorld, a park we visit often because my son loves Shamu (please no comments about whales in captivity or making money off these animals). SeaWorld is not quite on par with DisneyLand, but the park is well kept and for the most part is a great place to visit (they changed the Pets Rule show for Christmas and it was a disaster).

If LEGOLAND ever wants us to pay the $69 per person extortion fee to get in the gate, they’ll need to do some major refurbishing and possibly rebuild a lot of the models to make everything nice and shiny. I was amazed at how many people were there; I wonder how many return visitors they get. Maybe I’m just too picky, but if I’m going to spend my hard earned money I want to get value. Now if the park cost say $30 to get in, maybe it would be a different story. However at that cost I’d have to compare it to the San Diego Zoo and call the zoo a much better value.

Putting the Ark back into storage

I’ve written about rain in San Diego before and every year, we hear the same thing on the news about flooding. Why is this news? It happens EVERY year in the same places. Yes, it rained a lot. Now the sun is out, move along.

I almost felt like I was back living in Portland with the amount of rain we got! I figured that I brought the rain back as I was up there on business last week.

Oh well, I’ll have to run as much as possible before I have to pull the ark out of storage again.

Money isn’t everything

“Money isn’t everything” is typically a line I hear people say when they don’t have money and think that money wouldn’t help them. After many years of working like crazy, I’ve come to some realizations and it really starts with that line. I think that it’s taken me a long time to come to this realization, others would say that I’ve been lucky in coming to this realization quickly!

I’ve been a workaholic and when I’ve been self-employed, I have gotten paid on the number of hours I work. So, there was always an incentive for me to work more as I got paid more. Over the course of the last 7 months, I’ve done a lot of thinking and have come to the conclusion that the extra work is only bringing me extra money and nothing more. I kind of dread doing the extra work now that I have had a very enjoyable contract for the last 7 months.

My wife commented to me today that I’m much more relaxed. I’m really liking my new attitude; this, of course, doesn’t change my work ethic, but gives me a better balance between work and life.

Review: Brother 7840W Multifunction Printer

I’ve been a huge opponent of consumer grade all-in-one devices (printer, scanner, copy, fax), so when I was talking to some friends at lunch and they recommended Brother devices, I had to see for myself. My biggest complaint on these devices is that the drivers are just awful and perform poorly. I picked up a Brother MFC-7840W from Office Depot that was on sale for $229 (which is apparently now the regular price). I read Apple’s support article on which devices had support built into Mac OS X 10.6; a few years back at WWDC, Apple said that Snow Leopard would have much better scanner support, so having drivers included in the OS meant that at least I could blame Apple if it didn’t work well.

When I installed Snow Leopard, I didn’t install the Brother drivers, so I thought there would be a problem. However, I plugged an Ethernet cable into the device, powered it on and then configured it in Print & Fax. The device was recognized, but said that it would use a generic driver. No problem as Apple’s support article said that just do a software update after that and it would download the correct drivers. That’s precisely what happened. A few minutes later and it was all setup and I did a test print. Now that printing worked flawlessly, it was time to check out the scanning (I don’t have a phone jack on the side of the room where the device is, so I ignored the whole fax stuff and fax is something I never use).

I fired up Image Capture (Apple’s scanning/camera utility), selected the device and was easily scanning. I was pleasantly surprised as everything worked on the first try and scanning from the document feeder worked equally as well. So far, so good. The next step was to see how easily I could integrate scanning into an application using Snow Leopard’s ImageKit and if the Brother device worked with it. I’ve done worked with TWAIN and Image Capture and both were a nightmare. Apple has sample code called ImageKit Demo which is basically the Image Capture application. Code worked and I was scanning from within an app; there is minimal code to do this, so again I was pleased.

The Brother device also has the ability to scan directly to FTP. While I would have liked Scan to Email, Brother only put in email functionality to report status on the printer and even in that case, didn’t bother supporting SSL, so it doesn’t work with Gmail as an SMTP server. After a few minutes of thinking, I figured out a clever way to use Scan To FTP. I have a Mac Mini setup as a media center that is on all the time, so I turned FTP on (I dislike FTP as it is an ancient, insecure and hard to use protocol due to how it uses 2 TCP ports). I setup a profile using the Brother web interface to scan to a folder I setup on Dropbox. So after the scan comes in, it goes to the Dropbox folder and then transfers to my Mac pretty quickly.

BrotherDropbox.png

The downside of this is that it doesn’t like mediacenter.local as a host name, so I had to give it a static IP address (not a problem as I used my Time Capsule base station to assign a static address to my media center). Note that the Brother broadcasts itself via Bonjour, so the engineers at Brother clearly know about Bonjour and using Bonjour addresses. Turns out that this setup came in handy as I was in Portland the other day and needed something scanned, so I just asked my wife to put the item on the scanner, choose Scan to FTP from the front panel and a few minutes later, I had the file, all without my wife having to install drivers or learn how to use Image Capture (the drivers are on her computer as I setup the printer on her machine as well).

The printer is very fast compared to the HP LaserJet 2100 TN that I’ve had for 8 years (I bought it used off eBay), is quiet, and the scanning is a dream. The document feeder doesn’t do double sided scanning (at least not that I’ve found) and isn’t as fast as my Fujitsu ScanSnap, but it sure is convenient to scan directly from the front panel.

Pros

  • Easy setup.
  • Drivers are distributed with Snow Leopard.
  • No junky scanning application.
  • Web based interface for setup.
  • Networkable.
  • Convenient scanning.
  • Fast printing.
  • Decent price.
  • Quiet when it goes to sleep.

Cons

  • No scan to email from front panel.
  • Email settings for reports don’t handle SSL (no Gmail support).
  • Scan to FTP doesn’t recognize Bonjour addresses.
  • Not as fast as a dedicated scanner.

Summary

So far, this device has completely changed my mind on all-in-one devices. The easy to use scanning interface without a dedicated scanning application makes scanning a breeze. The printer is fast and produces decent output. When the device goes to sleep, it is virtually silent; I always turned my old printer off after using it as the buzzing drove me crazy. The sticker price isn’t that bad and overall this device is the machine I would like to have seen years ago. I had an HP and EPSON all-in-one device (both inkjet instead of laser like the Brother) that were both put out to pasture awhile ago due to their poor drivers and not so user friendly interface.

If you’re shopping for an all-in-one device, this Brother device may be for you. I’m extremely impressed with it and should have gone with Brother years ago (granted some of the Bonjour stuff and Scan to FTP might not have been there).