Wednesday, May 26, 2010

Recruiters... ARGH!!!

What's the difference between a recruiter and a telemarketer? Apparently nothing.

About once a week I get a call from a recruiter (at my desk) asking if we're hiring. They know I am a software engineer, which rather implies that I'm not a hiring manager, and yet it's me they call. It's fairly obvious that they're doing it because they want to try and end-run around the standard procedure. Because they're special. Like everybody else.

Now, I don't want to tar all recruiters with the same brush. I've worked with ethical, responsible recruiters. One, in fact, got me my current job. Not so coincidently, I've never heard from my fellow engineers that they've gotten phone calls from them.

I don't know if I'm ever going to be in a position to hire anyone. But if I am, I'm going to put a bounty on cold-call recruiters. I'll tell my reports that if any of them gets a call from a recruiter, they'll get a cookie. Two if it's a recruiter trying to poach talent. I'll get all of the info and put that recruiter and their organization on a blacklist.

Networking pi(e)

This is a speed test through the MiFi I did while waiting for the train home at Redwood City:

Tee hee.

Friday, May 21, 2010

This is how you lose a loyal customer

For about 4 months now, we've been enjoying the multi-room viewing beta with our DirecTV DVRs. This morning, it was summarily turned off. I went to the DirecTV website and discovered that they now want to charge $3/mo for it.

Offense number one: nickel-and-diming your customers.

Fine. I clicked on the button to activate it. The response? "Sorry, your account is ineligible. Please call yadda yadda." So I call, and get someone who says we need to change our plan or something. So we have free Showtime and Starz for 3 months..... but we must remember to call them back and turn it off or they'll start charging for it. Grumble.

Offense number two: sneaky customer lock-in "special offers."

After 20 minutes on hold, I got to the right person... who said that this feature was no longer available on the model of DVR we have. Instead, I would need to upgrade to the latest one.

Offense number three: Oh, there's just too many to count.

I've had it.

I've been a loyal DirecTV customer for 15 years now. First, they gave us substandard TiVos and didn't keep up with the new features. Then they replaced them with their own DVRs that we effectively had to beta test for them. Then, when they finally catch up with features that TiVo has had for years now, they shit on us and call it pudding.

We're going to save up for TiVos, and we'll be switching to Comcast. The really sad part is that I don't expect that they'll shit on us any less. But at least with real TiVos they'll have one less avenue with which they can do it.

Data cards and SMS

This is sort of interesting. I got a 3G data modem back at the end of last year. These devices have phone numbers, though they can't make or receive traditional voice calls. They can, however, send and receive SMS messages. I don't have any use for this, so I've ignored it, but last month a text message from the Philippines, of all places, showed up. I called up AT&T and they took it off the bill (it was 42¢ for one text!) and opted-out of SMS. And that was the end of it.

Last night, just as an experiment, I loaded up the Novatel Mobilink software to use the modem in the USB mode on a Windows XP virtual machine, just to see how it would work. And after some fiddling, I did get it working.

The interesting part is that in the Mobilink UI, there was a little mailbox icon. Clicking on that took me to an SMS management UI, which showed not one but 5 text messages waiting. The other four were free texts from AT&T warning me that in January and April I was approaching, and then exceeded the usage limit of my plan (back then I was on the 200 MB/mo plan).

The interesting part is that I didn't have the MiFi back then. That means that incoming SMS messages must either be stored in the network somewhere or on the SIM.

It's sort of too bad that the MiFi can't share the unlimited text messaging we have on our two iPhones. Alas, to properly make use of it, Novatel would need to add SMS support either into the MiFi SDK (so that you could write an app or a widget to use it), or - better yet - into the MiFi's web UI (preferably behind the admin password somewhere).

Thursday, May 20, 2010

3G speed testing - HSUPA

The big difference between an iPhone and the MiFi - or any other AT&T data device, for that matter - is a protocol called HSUPA. In a nutshell, HSUPA means fast uplink bandwidth. It's counterpart is HSDPA, which gives fast downloads. The iPhone has HSDPA, but lacks HSUPA. If I perform a speed test with the iPhone over 3G, then connect the iPhone up to the MiFi and repeat the exact same test, the result is that the download speed is the same for both. But in the upload direction, the difference is marked. Usually the MiFi can get an upload bandwidth of about 1-2 MB/sec, but the best I've been able to see on the iPhone is about 256 kB/sec.

Interestingly, when operating over the microcell, the uplink bandwidth is further constricted - you can only get about 64 kB/sec. That's a small enough uplink channel that it starts impinging on the acknowledgements on the downlink side, limiting how much bandwidth you can really get in that direction. But, of course, if you're near the microcell, you're within WiFi coverage anyway.

I've been taking my laptop to work and using the MiFi while on the train. It works well, but there is one AT&T dead spot between the San Antonio and California Ave stations that is troublesome. I don't particularly take this, as many would, as evidence of systemic deficiency in AT&T's network. In my view, all of the cell networks suck. They all have dead spots and none of them are in a giant hurry to fix them, it seems. But every time the phone or data card drops out, I faithfully use the "Mark the Spot" app to tell them. For what that's worth.

Saturday, May 15, 2010

GPS stupidity

I had to go pick up my nephew at the MacArthur BART station today. I was in Oakland, but I didn't know exactly how to get there. So I asked the TomTom iPhone app to get me there. Now, the MacArthur BART station is located in the middle of highway 24, between the Northbound and Southbound lanes just north of I-580. That freeway is elevated, so access to the station is from ground level, underneath the freeway. Well, TomTom routed me directly past it on highway 24 and then announced "you have arrived at your destination!"

Note to the TomTom folks: "arriving" someplace doesn't count when you shoot past it at 70 mi/hr.

Friday, May 14, 2010

Astound your friends!

I'll pick a number (an integer, to be specific) between 0 and 255. You can ask me 8 yes-or-no questions, and then you should be able to tell me which number I picked.

Solution below (highlight with your mouse):

First question: "Is the number greater than or equal to 128?"
Second question: "Is the number greater than or equal to either 192 (if question 1's answer was "yes") or 64 (if question 1's answer was "no")?

And so on. Each question give you an opportunity to throw away half of the remaining field. Dividing by two progressively, you start with 256, then 128, 64, 32, 16, 8, 4, 2 and then 1.

Actually, the last question can be "Is the number odd?" since at that point you'll have narrowed the field to two adjacent numbers.

Note also that if you write down the answers with "yes" being a 1 and "no" being a 0, from left to right, you'll have written down the number in binary.

This works for any number range. The number of questions required is the log2 of the size of the range rounded up to the next highest whole number.

Anyone whoever gets the "clock" game on TPiR should be able to nail each prize in about 10 seconds. Start at 1000. If higher, go to 2000. Cut the range in half each guess until you get inside of a $10 range, then just roll through all 10 remaining prices starting at $xx9 and counting down. Let's say a prize is $667. $1000, $500, $750, $650 (not half way, but easier under pressure), $700 (again, a compromise), $675, $660, $670, $669, $668, $667. Boom.

Friday, May 7, 2010



1 GB SCSI hard disk
5.25" full-height form factor
2+ lbs


4 GB microSD card
15x11x1 mm
about 1 gram

Thursday, May 6, 2010


I'm not a big fan of the iPad, but even I can see that whoever designed this device absolutely missed the point.

Sunday, May 2, 2010

Bluetooth for the car

When I bought my car, I had them install the iPod integration (it was a dealer-installed option). Well, it turns out that the stupid thing emulates a CD changer, so you get no track names, you only get forward-back control, it can only deal with 6 playlists... It was substandard in every way imaginable.

Meanwhile, I was pretty happy with XM anyway. But XM is really expensive, and it's been annoying in various ways lately, so it's time for a change.

Well, I've discovered Pandora. The Pandora app works far, far better than the XM streaming app (which they charge $3 extra per month for), and has the advantage that if you don't like the song playing you can thumb it down and move to the next one immediately.

So, XM is fired.

Now, how to get Pandora everywhere I want...

Well, for the alarm clock, it's pretty easy. Just use osascript to launch the URL of the channel displayed on the channel's page. But it is a little silly using a laptop as an alarm clock. But it turns out that the Chumby supports Pandora, and it's an alarm clock. Done.

Next, the car. Well, I took my car to the local car stereo place and got them to change out the iPod integration gizmo for one that has a aux input jack. It turns out that the new gizmo also emulates a CD changer, so it's really not any better than it used to be, but with the aux input, and a Bluetooth A2DP receiver, it doesn't really matter.

For this application, the best A2DP receiver is actually the Belkin Bluetooth Music Receiver. It's a good choice because it doesn't require any button pushes to turn on. As long as it is powered from the accessory bus of the car, there's nothing to do to get it working other than tell the phone to connect to it. Finally, this device supports A2DP only - it doesn't support the handsfree or headset profile, so in principle, you can still use a headset to take any phone calls that come in while still listening to music through the car.

The only problem now is that the Belkin device is designed for home audio. So it comes with a AC power supply. Even if it had a car cord available, plugging that into the power port in the dash would be ugly. I had the car stereo folks wire in a set of Anderson PowerPole connectors in the glove box where the new Aux input plug was. So now, I just needed to go from 12 volts to 5 with the tiny coaxial power connector that mates with the jack on the device.

Radio Shack actually came through for me. The had the correct connector set up to mate with a universal power supply jack, and the related universal power supply jack on the end of a pigtail, ready to be wired to your own power supply! They also had an LM7805 5 volt regulator, and I also bought a small electrolytic capacitor to put on the input to smooth the power.

To house the whole thing, I bought a small tin of Altoids, cut a couple of slots in each end for the power input and output wires (using some electrical tape as a makeshift grommet), and a hole in the bottom to screw down the regulator (making the whole tin into a heatsink). I soldered all of the leads together and closed the tin on the wires (with knots tied in them as a strain relief) and taped it shut with electrical tape. After verifying that it worked on the bench, I installed it in the glove box. With everything hooked up, turning the volume on the stereo almost all the way up results in a little bit of alternator whine and some other distortion, but playing music at that volume would be way, way too loud. At normal volume levels, you can't hear anything bad.

MiFi status dashboard widget

I've created my first Dashboard Widget. It's a MiFi signal strength / battery state widget. Whenever the mac is connected to the MiFi, this widget will display the signal strength and battery state. It's marginally easier than opening up a web browser.

I'm not a graphics wizard. All of the graphics in here I stole off the net using Google. Mea culpa.

You can download the widget here. Just unzip it and double click to install.


Saturday, May 1, 2010

MiFi 2372.... FTW!

While the old portable hotspot solution I had was nice, it wasn't very portable. The idea of taking that rig with me on the train just wasn't going to be an option. So when I heard that Novatel Wireless had an AT&T friendly HSUPA network quad-band MiFi available, I decided to look into it.

AT&T doesn't offer the 2372. The only reason I can think of why they wouldn't is that perhaps Verizon negotiated some sort of exclusivity with Novatel. You CAN get the 2372 from either Bell Canada or Rogers... if you don't mind moving to Canada.

But that doesn't really matter. Because I already bought the Quicksilver card, I'm on a subsidized contract with AT&T anyway. Even if AT&T sold them, I'd have to buy one at full price.

So Google to the rescue. You can find places on the Internet that sell the 2372, and if you don't mind having the device airmailed to you from the Ukraine, you can get a reasonably good price.

The device itself is slightly smaller than an iPhone 3G/3GS. It has one button on the front that turns it on and off. It has a micro USB connector on the back for charging and for use with a single device without WiFi. In this mode, the device appears exactly like a standard USB 3G modem. It even can be used in Snow Leopard as a standard wireless WAN device.

There's only one problem I have had with the device so far. Its built-in DHCP server refuses to respond if you have a DHCP Client ID configured:

You have to leave the DHCP client ID space blank or you won't get an address configured. The other minor issue is that the router doesn't support uPNP or NAT-PMP, so the Back-to-my-Mac pane of the MobileMe control panel complains that it can't be reached by your other registered machines. This might mean other issues as well for apps as well if they require setting up port maps and stuff like that. Of course, IPv6 would be the perfect fix... someday.

When you're connected to the device, you can connect to http://www.mifi/ to get status on or reconfigure the device. This is also the place where you can talk to the file sharing component that serves up the files on a card in the microSD slot. I haven't tried that feature of the device, however.

Lastly, the device purports to have a GPS receiver built-in that allows you to query for location information. Unfortunately, it requires cooperation from the carrier to allow it to be turned on, and only the Sprint MiFi currently has this feature enabled.