|
|
|
|
|
I recently purchased a Pontiac (rip) Vibe. I’m not a fan of domestic cars, but in this case, I made an exception, since the Vibe’s really a Toyota Matrix with a different logo.
The car came with a three month trial of OnStar, GM’s all purpose safety service that will help you out if your keys are locked in the car, you get in a wreck and are unresponsive, or if you need a tow or a tank of gas. Think high-tech triple-A. You can also use it as a phone, provided you’re willing to pay in the ballpark of $1.20 per minute.
I’ve been playing with OnStar since I got it, and I gotta say, it’s nothing but proof that GM doesn’t have their poop in a group.
Here’s the thing: All OnStar is, is a built in cell phone that has a one-touch dial to a call center just outside of Detroit. Plus a GPS and some sensors. That’s it. When your car wrecks (identified by sensors noticing frame damage or the airbags deploying), it places a call, and they check in to see if you need help. If you need a tow, you make the call yourself. Keys locked in the car? You call them on your mobile phone and they take care of you. They’ll even give you directions if you’re lost.
Now don’t get me wrong, this is a pretty good hack. All they did was install a phone, and pay the salary of a bunch of phone jockeys, and they can sell it as a high tech safety service. But it’s a hack. This would work fine in 2003, but these days, we expect automation, computer screens, and immediate service. I’ve got better technology in my pants. (Don’t look at me that way… I’m talking about my iPhone!)
Here’s my experience with OnStar:
Scenario 1: Keys Locked in Car
I call OnStar. Phone tree asks for my home phone number (my ID with OnStar), and walks me through a phone tree. Yes, I need emergency services. beep (This counts as an emergency, as opposed to billing questions or customer service) Okay, yes, my car’s locked. beep No, there aren’t any animals or people locked in the car. beep Please hold…
After a very brief wait (I’ve never experienced more than 30 seconds on hold, they’ve got that down pat.), I get a nice lady on the phone, who asks me for the same information I gave through the phone tree, then sends the unlock signal, and waits on the phone until I confirm the car’s unlocked — which happens almost instantly. She then asks me how my service was, how I’m doing, etc.. Finally I get her off the phone, lock my car, and go back into the house.
This is a cool trick, and it’ll be a real life saver for me one of these days. I’m terrible about locking up my keys. That said, why did I need to talk to a person? Why not punch in my ID, my secret code, and press 1 to unlock my car. Then there’s no hold time (presumably that’s why they ask whether there’s a living creature trapped in the car — to put you at the front of the queue), and no need for pleasantries. (I’m a geek, I’d rather not talk to people.)
All in all, great service, but the execution needs polish.
Scenario 2: Make a Phone Call
My OnStar system also works as a speaker phone. Keep in mind, that’s all it really is. It doesn’t, however, work with MY phone, so I have to buy minutes at exorbitant fees (over $1.20 per minute!), and call from an entirely different phone number from usual. Here’s how it goes.
*beep! OnStar Activated*
Me: "Call Number"
Car: "I didn't understand that."
Me: "Call Number"
Car: "Virtual Assistant. Say yes or no."
Me: "No"
Car: "Please repeat that."
Me: "NO!" (shouting)
Car: "Please repeat that."
*beep* (I manually hang up)
*blee boop* (I hold down the big button on my iPhone)
Me: "Call [My Wife's Name] Mobile"
iPhone: "Calling [My Wife's Name, mis-pronounced], Mobile"
In other words, awful. Awful in every way. Yeah, maybe it’s worth having a spare phone in an emergency, but this isn’t worth ten cents a minute. For my $100 to buy minutes, I can get a swell bluetooth speakerphone and call it a day.
Scenario 3: Voice Guided Directions
For my trial period, I get directions. Now, I was expecting turn-by-turn GPS stuff, but as with everything OnStar, what I actually got was a nice phone receptionist… eventually.
*beep! OnStar Ready! Connecting to OnStar advisor!*
Advisor: "Thank you for calling OnStar"
Me: "Hi. I need directions to Coopersmith's pub in Fort Collins, Colorado."
Advisor: "What?"
Me: "I need directions to Coopersmith's in Fort Collins."
Advisor: "Huh?"
Me (shouting): "I WANT DIRECTIONS TO COOPERSMITHS PUB IN FORT COLLINS COLORADO!"
Advisor: "Okay... Let me look that up."
(typing sounds)
Advisor: "Is that a business name?"
Me: "Yes."
Advisor: "What?"
Me (shouting): "YES, IT IS A BUSINESS NAME!"
(at this point, I decide to always shout, since obviously the speaker can’t keep up with the road noise as I drive down I-25)
Advisor: "Okay, I think I've found it." ("I think"???)
Me: "OKAY..."
*beep! beep! beep!*
WTF??? This is the standard OnStar hold sound. Maybe he’s loading up my GPS or something. I wait.
Advisor (a different one): "Did you need directions?"
Me: "YES! I'M TRYING TO GET TO COOPERSMITH'S IN FORT COLLINS!"
Advisor: "Okay... That's Super...? What?"
Me (screaming at the top of my lungs): "COOPERSMITHS! C-O-O-P-E-R-S-M-I-T-H-S!"
Advisor: "Okay... Just a second..."
*beep! Your OnStar call has ended.*
At this point, I was just curious whether I’d ever get directions. I clicked the button again and quickly got an advisor. I’ll skip the details, but she seemed to hear me okay (I was still yelling) and quickly looked up the business.
Advisor: "I can't get a street address for that. Do you know if it's at the intersection of Linden and Walnut?"
Me: "Yes, it is." (I guess. I'm actually not sure those roads intersect.)
Advisor: "Great. It's just a few turns, but if you'd like, you can download them to your car."
Me: "Sounds good."
Advisor: "Press the blue button."
*beep*
Me: "Done."
Advisor: "Here are the directions..." (she reads them)
Advisor: "Now you can press the button again."
*beep*
Me: "Done."
Advisor: "Great. To play back the directions, press the phone button, then say 'Virtual Advisor' and then say 'Play.' If you need to pause it, just press the phone button. When you call up the virtual advisor again, it will ask if you want to play, which starts over, or resume."
Me: "Great! Thanks."
Advisor: "Have a great day. Call us back if you need anything or have trouble finding it."
*beep! Your OnStar call has ended!*
Me: "Virtual Advisor"
Car: "I don't understand..."
etc...
All told, this took me 20 miles to complete. Good thing I was getting directions to a place that was 40 miles away, or else I would have shot past it an hour before.
Once again, OnStar proves the limitations of just being a phone. Well, a phone that can record your call. My turn by turn navigation is playing back a recording and stopping it after every turn until the next one comes up, and then hitting “play” again.
Are you serious?
This whole package, not including phone minutes, is $30/month. That’s pretty darn steep, but possibly worth it just for the emergency services. (Which costs $20 without the directions service) But overall, it’s a sad statement on GM’s technological capabilities.
I can see two ways to go with this service. One option is to just make it cheaper, and treat it like a triple-A subscription. Emergency services, $100/year. Or whatever. It would probably be worth it.
The other approach would be to just use the OnStar Advisors as what they are, people with computers that are one button away. Let them help you with more than just directions and phone numbers (for while, I have it on good authority, they just use Google Maps), and just look stuff up on the Internet, or even make some phone calls for you to find a laundromat that can press your suit before the wedding you’re attending.
Would I pay for that service? You bet! It would be a GM Concierge. Sure, it’ll require a GM car, but it would give everyone the admin assistant they’ve always wanted.
In the meantime, I’ll drive my Pontiyota (Toyotiac?), which I like a lot, and I know my wife will sleep easier knowing that if my airbags deploy, I’ll get emergency service promptly and automatically, even if I’m knocked out cold. But I have to say that it galls me to pay so much for so little.
|
|
|
|
|
|
|
|
|
True to form, Matthew Drayton of Nolobe got an Interarchy bug fix out a few hours ago. Most, if not all, of the bugs have been addressed. This might be a good argument for the widespread use of public betas these days.
The new app is pretty slick. Running processes on remote servers is a killer feature if ever there was one. Having a terminal session open next to your FTP program does the same thing, but having it integrated so you can select files and pass them to the process is something else entirely.
|
|
|
|
|
|
|
|
|
Interarchy, my long-time FTP (and SFTP, and S3, etc…) client, just got a major upgrade. Now it’s at version 10. Among its many improvements is the ability to create plugins that run programs on the server you’re connected to! So you can, for example, edit your Apache virtual hosts files, and then bounce Apache without leaving Interarchy. Extremely cool stuff.
Unfortunately, it’s chock full of bugs!
These bugs range from irritations to full on crash the application bugs, and most are the kind that seem like they should have been detected in a very modest QA check. (One button in the preferences simply kills the app if it’s running under Snow Leopard!)
Interarchy 9 had an equally spotty release. I’m assuming that a 10.1 update will be here soon, but until then, there’s a painfully buggy program out there. On the up side, of course, I can keep using version 9, and wait until 10.1 to buy the upgrade. (if I choose to do so… Transmit’s looking great these days and has a lot to recommend itself)
|
|
|
|
|
|
|
|
|
The iPhone 4 is flawed. It may not be alone in this, but it’s demonstrably easier to kill its signal than it is with other phones. The fact that an inch of plastic could dramatically reduce the effect (without decreasing it’s improved reception compared to earlier iPhones, no less) only underscores that it’s a flaw.
Apple’s response was late, childish and petulant. Jobs acted as though he was OWED respect… That people should be satisfied that they got ANYTHING. He came off as an entitled brat… the same brat that Sculley fired in ‘85.
Grow up, Steve. Put on your big girl pants, apologize to the people who are disappointed that you didn’t spring for an inch of plastic to ease the attenuation.
Accusing your customers of being whiny bitches works a lot better when you aren’t acting even worse.
|
|
|
|
|
|
|
|
|
Google Reader has a nifty “Send To…” feature that lets you push reader items to other services — such as social networks, Instapaper, and so forth.
I have recently set up a Send To service that will send your Google Reader articles to OmniFocus, provided you’re using version 1.8 or later. (Currently in beta, download it here) (Props and full credit goes to Gokubi for setting this up for version 1.7 — I just polished it up a bit and used the native URI handler in OF 1.8)
Setup is pretty simple. In Google Reader, go to your Reader Settings (upper right corner), and click on the “Send To” tab. Then you just have to add a new service, and use the following settings:

Name: OmniFocus
Send to URL: http://omnifocus.nik.me?name=${title}¬e=From+${source}%3A+${short-url}
Icon URL: http://omnifocus.nik.me/OmniFocus-16.png
Then just go back to Google Reader, and choose Send To on an article (or type Shift + T), and select OmniFocus.

Again, this only works with OmniFocus 1.8, which is in beta right now. If you want the same functionality without having to switch to a potentially untrustworthy version of OF, you can use Gokubi’s original setup, which leverages my URI handler for OF 1.7 and earlier.
|
|
|
|
|
|
|
|
|
Now that jailbreaks are available for iOS 4 (what, no iOS X 10.4?), I went ahead and updated my phone. A couple .plist edits later, and my plain-old 3G gets background pictures and multi-tasking. Installed MyWi, which gives me tethering (without canceling my unlimited plan, thank you very much!) Thanks to iVideoCamera, I can capture video, and Vlingo gives me voice dialing.
So basically, I’ve got the functions of a 3GS, without the extra speed. Not bad for the price.
Now I’m dithering over whether to sell this phone on eBay (I figure an unlocked and contractless 16GB 3G with all these bonus features could be worth at least a few hundred bucks) and get a shiny new iPhone 4; or whether I’m better off staying the course, enjoying life without a contract (even switch carriers — if only T-Mobile’s 3G network worked with the iPhone), and maintaining the freedom to jailbreak and hack to my heart’s content.
Heck, if YOU want it, sound off in the comments. I figure $300 — the cost of the higher-trim-level iPhone 4 — is my “buy it now” price.
|
|
|
|
|
|
|
|
|
Sometimes I run late. Late to meetings, late to go home, late to pick up kids… I know I’m not alone, too. So I fixed this problem with a handy little script I call “Procrastinators Friend”. This script is pretty simple, it just sets your clock ahead by a random amount, between 5 and 15 minutes. I then set this up to run every hour, so I’ll never quite know how fast my clock is running. In order to prevent this from going crazy, it also syncs up your time with a network time server before adjusting it, so you’ll never be too fast or slow.
Naturally, the buyer should beware, here. System tools that rely on modification dates to do stuff will be thrown off by this little script. But maybe that’s worth it to be on time, every time.
Use cron or launchd to run it regularly.
|
|
|
|
|
|
|
|
|
The Problem: Scripts often target the current document window of an application. This is usually easily handled with something like…
Tell application "Finder" to get window 1
The problem with this approach is that it returns a useless window if the wrong kind of window is in front. In the Finder, this will often be a Get Info window, folder options window, or preferences. Some applications have special classes of windows to make this easier, but many do not. To find the frontmost window of these applications, you need to do this manually.
To make this work, you need to loop through your windows until you find one of the right type. You could do this by the name of the window (e.g. find Finder windows whose names don’t contain “Finder Preferences”), but that requires you to catalog the names of every non-standard window, and can cause problems if, for example, you have a folder named “Finder Preferences.”
A better approach is to identify a property that only the right kind of windows contain. So, for Finder windows, you can look for the folder of the window, as in…
Tell application "Finder"
set theFolder to (path to desktop folder as alias)
repeat with i from 0 to (count of windows)
try
get folder of window i
set theFolder to result as alias
exit repeat
end try
end repeat
end tell
In this code, the “try” handler gracefully handles windows without the “folder” property. Likewise, by setting theFolder to the Desktop to begin with, it also handles the situation where there are no open windows.
Using this technique, the following script will open the current Finder window in a new tab in the frontmost Terminal window. If there isn’t a terminal window available, it opens a new window. The code gets pretty involved for the Terminal (including having to go to UI scripting to make a new tab), but it avoids the pitfalls of multiple open windows in each application, not all of which are useful folder or terminal windows.
on run
get quoted form of POSIX path of my getCurrentFolder()
my termScriptInNewTab("cd " & result)
end run
on termScriptInNewTab(cmd)
tell application "Terminal"
activate
set termWins to count of windows
set frontWin to 0
repeat with i from 1 to (count of windows)
try
set tabCount to count of tabs of window i
set frontWin to i
exit repeat
end try
end repeat
if frontWin is 0 then
do script cmd
else
set frontmost of window frontWin to true
tell application "System Events" to tell (first application process whose name is "Terminal") to keystroke "t" using {command down}
set xi to 0
repeat until (count of tabs of window 1) is (tabCount + 1)
if xi ≤ 4 then -- don't wait more than one second
delay 0.25
else
set xi to -1
exit repeat
end if
end repeat
if xi is not -1 then
do script cmd in (last tab of window 1)
else
do script cmd
end if
end if
end tell
end termScriptInNewTab
on getCurrentFolder()
tell application "Finder"
set theFolder to (path to desktop folder as alias)
repeat with i from 0 to (count of windows)
try
get folder of window i
set theFolder to result
exit repeat
end try
end repeat
return theFolder as alias
end tell
end getCurrentFolder
Extra credit: How can you adapt the termScriptInNewTab handler to run the command in the first tab that isn’t busy, rather than a new tab?
|
|
|
|
|
|
|
|
|
Did some cleaning up of this site.
First off, downloads should all work now. Sorry they’ve been variously broken for so long. I finally tracked down the problem. (Turns out it was obvious, but I was dumb. So it goes.)
I also deleted about 500 comments, all of which were spam-ish. Many, I’m sure, were not. So I’m sorry if your comment got deleted. There’s also still some comment spam. Dang.
Oh. New site look. Using the Wabi Drupal theme. I like it. I keep the orange, but it’s a lot less ugly.
Look for more updates to the site in the future. And, as always, thanks for reading. Both of you. You know who you are.
|
|
|
|
|
|
|
|
|
I’ve always had a problem remember my TextExpander shortcuts, to the point that I wouldn’t use it at all. (The only way I ever found it useful was if I used very obvious shortcuts, but that ran into its own problems when the shortcuts would expand accidentally) With Version 3, I’ve managed to come up with a workflow that meets my need for memorable shortcuts, and that also takes best advantage of its new features.
The first thing I did was changed the delimiter to only be tab. That’s it. No expansions at the end of words or sentences. This makes it work pretty much like auto-complete shortcuts in many text editors. It also lets me put in extremely obvious expansions, so I remember them. (e.g. “rep” creates an AppleScript repeat block, and now I don’t have to worry about expanding when I want to reference a customer service rep in my script’s comments)
The second thing I did was made similar expansions have the same prefix. So the various repeat block snippets for AppleScript, all begin with “rep”. This lets me take advantage of TextExpander’s new “Suggest Matching Abbreviations” feature to quickly pick from many similar options. So I can type “rep” and hit option-V (you can set the shortcut in TE’s preferences), and I’ll get a nice drop down menu letting me select from among Repeat n Times, Repeat Until x, and Repeat with x in y. (Each of which also have fill-ins to make it even cooler) Of course, I can also just type, say, “repw” to get “repeat with x in y”, but I don’t have to remember it.
The one downside of this approach is that I lose the benefit of auto-correction dictionaries that fix common typos and capitalization errors. But I consider this a small price to pay for my increased productivity.
|
|
|
|
|
|
|
|
|
Markdown to Word is a ginchy little service that will take Markdown-formatted text, and put it into Microsoft Word, making use of Word’s style sheets to do so.
This is in all ways identical in function to my previous TextMate script which does the same thing, except that this also auto-formats once in Word.
You may notice some funniness in the conversion. Lists, in particular, sometimes don’t convert perfectly. This is part of Apple’s textutil program, which is very handy, but sometimes a little… er… special in how it handles things. I take neither blame nor credit for its output.
IMPORTANT! This service relies on the setfile utility, included with Apple’s free “XCode” developer tools. You’ll need to have those installed (at least the developer applications).
And, of course, this program wouldn’t exist were it not for John Gruber’s “Markdown.” Mr. Gruber retains all copyright, etc., to said code. Disclaimers can be read below and are included with the Zip archive.
http://www.daringfireball.net/markdown
I am eternally grateful to Mr. Gruber for giving me Markdown. Without it, I’d probably be writing in LaTEX or something. Ugh.
|
|
|
|
|
|
|
|
|
I’ve always kept this blog as something of a geek-only site, but the current situation with the insurance overhaul is driving me nuts. The government is being accused of death panels, care rationing, raising our taxes, and more — even though these are EXACTLY the same things our private insurers are ALREADY DOING! So I’m taking my own little stand and sharing my thoughts with both of my readers.
|
|
|
|
|
|
|
|
|
Update: It turns out that when you set an applet as the default application for some particular file type, it doesn’t “stick.” So now I suppose I need to go to ApplescriptObjC, since AppleScript Studio is dead… Ugh.
Do you ever find yourself unintentionally opening an HTML file in Safari, when you really want to open it in BBEdit; or watch Photoshop open up when you just wanted to preview a JPEG?
WhichApp is a little applet that aims to fix this problem. When you open a file with WhichApp, it will present you with a configurable list of applications you can use to open the file. Pick your favorite app, and you’re in business!
Just double click on the applet to build your list of applications. Get Info on a file, choose “Other…” as the default application, and then select WhichApp. Now every time you open that file, you can pick which program ought to open it! Change the setting for all files of that type, and you can avoid the frustration of opening the wrong program every time you open that kind of file!
And, yes, you can duplicate WhichApp and rename it as many times as you want so you can have different selection lists for different file types.
WhichApp was developed on Snow Leopard and hasn’t been tested anywhere else. It’s just an AppleScript, though, so it should work everywhere.
|
|
|
|
|
|
|
|
|
Updated October 2, 2009!
With Snow Leopards new services support, I’ve updated the old “Send to Evernote” service to include three services:
Clip Text to Evernote: This is the original “Send to Evernote” service, with the improvements provided by Snow Leopard. This service takes selected text and turns it into an Evernote note. It will also grab the name of the frontmost window for the title of the note so that you’ll remember where you clipped it from.
Clip URLs to Evernote: This takes any selected URLs, and downloads the contents of those URLs into Evernote. Very handy if you have a reading list of URLs and want to save them for later.
Clip Files to Evernote: This will accept files and folders and attempt to clip them to Evernote. In some cases this will fail if the file isn’t supported by Evernote (although premium users can attach anything they want). If it is a supported file type, the document’s contents will become the note, rather than just attaching as a file.
Installation’s easy. Just unzip the archive, and put the services you wantin your ~/Library/Services/ folder (make one if it doesn’t already exist).
This will also let you get rid of the little elephant in your menu bar if you like.
|
|
|
|
|
|
|
|
|
iSSH is a wonderful SSH client that goes beyond a simple terminal client, to nearly the remote access Swiss army knife of SSH on the desktop.
SSH is commonly used as both a remote terminal and also as a sort of VPN to access remote systems graphically. Apple has limited the iPhone in such a way that this is impossible. A SSH connection can only be maintained in a single app, and when that app is closed, so is the SSH connection — no other apps can access it.
iSSH gets around this by bundling in the two most common remote management systems: VNC and remote X11 applications. It also permits multiple simultaneous connections, so you can manage tasks between more than one server. (very useful in disaster recovery and server migrations)
As a terminal, iSSH is quite good. It supports custom fonts, different keymaps, copy and paste, and is in all ways a good solid terminal. Unlike other SSH apps, it also supports the legacy Telnet protocol and ANSI terminal emulation, in case you need to get your Tradewars on.
It also has a pretty easy way to get at non standard keys, such as arrows and modifier keys. A row of small buttons line the top of the screen, and you can scroll left and right to reveal more commands. This works all right, but I sometimes clicked the wrong key, even when scrolling, since the buttons are so small. This can be quite frustrating, and it made me miss TouchTerm’s floating key palettes.
iSSH also has the option of a “key pie” menu. This brings up a floating round control that reminds me of a remote control for a TV. It can contain multiple sets of fully custom buttons that can be used as modifiers, macros, or arrow keys. I wouldn’t mind seeing this concept completely replace the modifier keys at the top of the window.
VNC is well thought out and very flexible, thanks to the underlying SSH system for secure connections. You can connect in the clear, or using SSH tunneling, as well as tunneling to one server and then connecting openly to a second. Once connected, you have the normal sort of control, including window scaling, keyboard and mouse, and all the modifier keys you’d expect.
The winning feature here is the tunnel support. Performance over 3G is worse than some other VNC clients. Jaadu VNC can do the same SSH tricks and is generally a better VNC client, but it’s also much more expensive. For lighter or infrequent remote management, iSSH is great, especially for the price. (note that VNC is perfect for remote control of presentations — one more use for iSSH!)
X11 forwarding is very impressive, and quite a bit faster than SSH over slower connections (especially if you use something lighter weight than KDE or Gnome) But it’s limited to pure Unix systems, and more complex to set up than VNC, so it’s only a real benefit to the most die hard *nixers. That said, it works great, up until you run out of memory. (Which, on my 3G, was after just a couple of KDE apps — a 3GS would fare better)
The one limit on remote management is that only one graphical (VNC or X11) session can be active at once, although any number of terminals can run at once. (until you run out of memory, at least)
To wrap up, iSSH is fantastic. It gives you all the tools you need to remotely manage Unixish servers from your phone. (Windows, too, if you install the right open source tools) It might be just the thing to let a IT professional take a vacation without needing to drag along a laptop and stay near wifi in case disaster strikes at the datacenter. Or, for $5, it’s also just a handy tool for any *nix hobbyist.
|
|
|
|
|
I have disabled comments due to an overwhelming amount of comment spam, that I cannot seem to stop, no matter how hard I try.
|
|