Get off my lawn.

Saturday, March 28, 2009

RingControl Release 1.0.8

I just put up a new version of RingControl, with a few new features:

SMS Commands:

The biggest new feature is SMS commands. These are basically SMS messages you send to the phone to make it do things. The general idea is that if the phone gets lost or stolen, you can send it commands to help you retrieve it. More commands will be added as I think of them, or get suggestions for them.

The first thing to know about SMS commands is that they have to be specially formatted so RingControl knows you're sending it a command, and not just sending a regular SMS message.

In the Preferences screen, navigate to the "SMS Commands" page, and click "Password/Prefix." Here, you can specify a prefix that RingControl will look for in SMS messages. You could think of this as a password, although no pretenses are made toward this being a "secure" service. Again, it's just a prefix.

The default prefix is "RC." So, assuming you leave the prefix at the default setting, you can send an SMS command to RingControl using this format:

RC.[command] [arguments]

...where [command] is one of the commands described below, and [arguments] is an optional argument specified to the command.

The "ping" command does nothing but send a response to let you know the phone is turned on. If you send this and receive an "ok" message in response, you know the phone can accept other SMS commands. Example:

You can send a "beep" command to make the phone beep so you can find it if it's nearby (or a "ring" command to do the same thing and you think just calling the phone is too much work). Example: RC.beep or RC.ring.

The "service" command takes an argument: on or off. This starts and stops the RingControl service. Example: RC.service on

The "call" command takes a phone number as an argument, and tells your phone to call the specified number. Example: 5551212

The "callme" command tells your phone to call the phone sending the SMS message.

The "speaker" command turns the speaker on or off while the phone is in a call.
Example: RC.speaker on

The "vibrate" command vibrates the phone for the specified number of milliseconds. It's useful for annoying a pet, or lining up two G1s on a smooth/slanted surface next to each other, and having a race.
Example: RC.vibrate 1000

The "volume" command takes two arguments. The first specifies which volume to adjust (ringer, beep, voice, music, system), and the second specifies the volume. The range is 0 to 10.
Example: RC.volume voice 10

You can send the phone a "where" command, and it will send back an SMS message telling you the street address of the phone's location, plus the lat/long. If it can't retrieve the address for some reason, it will send back a link to Google Maps that you can use to tell where the phone is. If your GPS receiver is turned off when you send this command, RingControl turns it on, retrieves the phone's location, then turns the GPS off again. (If it's on already, the GPS setting is left alone.)
Example: RC.where

The "help" command just sends back a list of available commands.

Why it is a Powerful Enterprise Feature (tm):
Several of the audio and speaker commands can be used in combination to perform useful activities at work. For example, suppose you're in a meeting. You can excuse yourself for a moment, conveniently leaving your phone on the table. From another phone in a separate location, you can send the "RC.callme" command, and your phone will silently call you. You can then turn the voice volume up via "RC.volume voice 10" to listen in on the conversation taking place in your absence. Then, when one of your coworkers says something stupid, you can send "RC.speaker on" and make fun of them through your phone's speaker. They will be bowled over by your god-like omnipresence. Most of the time, that is. If your voice booming out of the 1/2" speaker fails to grab their attention, you can follow your announcement up with "RC.vibrate 30000", as a subtle show of force.

Vibrate then Ring:

Some people were asking for a way to make the phone vibrate for a few seconds, then ring, like a Motorola V300. RingControl does this now.

That's all for now.

Thursday, March 19, 2009

Leaving town

Some friends of ours left town today to start a new job in IL. The local Sonic gave them a nice send-off.

sent from my g1

Saturday, March 07, 2009

Mud Run

I have a 2001 Toyota 4Runner. It's a pretty decent vehicle. It seems to be very well-built, having over 100K miles on it now with no squeaks or rattles, and being totally reliable. I actually took it to my mechanic once to see if there was any maintenance to be performed on it, since it had been so long since I had been there. He cleaned some dust off of the engine, and put a new set of spark plugs in it. That was all it needed.

However: As good a vehicle as it is, it is not what one might call "fun." There's something stodgy about the way it moves around. It has stability and traction control, and it won't let you slide around corners, peel out, or anything that might be viewed by others as irresponsible behavior. (or "fun.") It's probably a good thing it has these features, because it seems like it might slide out of control and crash without them. Since it's my wife's car, I'm happy to have those features on it, but it would be nice if you could turn them off.

Non-defeatable traction control is probably the stupidest imaginable feature you could possibly add to a 4WD vehicle. It's outfitted like an "off-road" machine, with body-on-frame construction, big tires, beefy axles, a low-range transfer case, and a locking center differential. You're supposed to be able to get anywhere you want to go in the thing. But the fact that you can't turn the traction control off makes it next to useless in situations where the only way you can move is to spin the tires. You can lock the center diff and at least defeat the stability control, but that's it. All that does is prevents it from minding too much if you put it into a slide. You still can't spin the tires. It's like having a really strict mom embedded in your car.

On the way back from my daughter's basketball game today, my son suggested we turn off on a road he was familiar with and take a look at a "4-wheeling" area he'd been told about. I was game, and followed his directions to a muddy little road with a big puddle in the middle of it. I put it in 4WD, locked the center differential, and charged ahead. As soon as we hit the mud, the tires started to spin. Immediately, the 4Runner throttled back, put on the brakes, and stopped right in the middle of the mud hole. As it happens, locking the center differential takes a few minutes of screwing around to actually turn on. It wasn't actually on yet, so the stability control decided it was time to stop before someone did something crazy (like spinning a tire).

Anyway, we got really stuck, and I was pretty sure I was going to be getting out and stepping into a foot of mud. I finally got the center diff locked, and was able to spin the tires. The trick to doing that is apparently to just floor it, and let the brakes try to stop you. The brakes have a hard time doing their job when they're submerged in mud, so you're able to move forward. We shot mud at least 20 ft. in the air, so I know we were spinning. At one point, we got a little bit inside the car when it rained in through the sunroof (which was barely open).

Eventually, we got out of the mud hole and made it to the end of the road. The only way out was up a really steep rutted hill that was (thankfully) dry. I did find that my 4Runner is pretty good at climbing. It just doesn't like mud.

I spent the rest of the afternoon cleaning the mud and crap out of it. It had so much mud packed into the wheel wells, it was squeezing out under the headlights.

That's my first experience 4-wheeling in the mud, and I'm pretty sure that's the must destructive thing you can do to a car, short of blowing it up with dynamite. I think it would be a lot better if the traction control could be turned off. What a stupid "feature."

Monday, March 02, 2009

Greed II: A Full version

I just released a new version of Greed, with some updates.

First off, Greed is now a paid application. I experimented with the idea of supporting Greed's development through donations, reasoning that people that liked it would be inclined to donate, and people that didn't care too much wouldn't donate. That worked, but I think the conventional approach of making it a paid application works better. Greed is now called "Greed Full", and will co-exist on your phone alongside the original version. Why you would want to do that is anyone's guess, but the ability is there in any case.

As for actual new features:

The main new feature off-line caching support. You can now long-touch a feed and cache its articles to the SD card in your phone, so you can read the articles off line. The next thing I want to do is add support for caching the actual articles. I held off doing that in this release, since I wanted to iron out the question of how to download a bunch of content in the background without dragging the phone down. Having gotten that to work well, I think it's going to get more interesting now, since downloading the content to the phone will make things like the Media player work better for podcasts and such.

Also new is a new article viewer with cool controls that fade into view when you touch the screen, and fade out after a while. There's also a "Friends' Shared Items" option on the main menu, some optimizations in the way feed lists are displayed, and some other minor bug fixes.

The next version will have the aforementioned offline support, and also a series of pop-up windows that ask you if you're sure you want to do X (where "X" is pretty much anything that requires internet access). I'm going to call it "Greed Vista Ultimate."