Category: "Apple"

Job Dreaming

If you asked me to describe my dream job, here are some things I would include:

Makes the world a better place

You only live once, and I want to spend my career doing something important. I'm not just in it for a paycheck, I want my work to make the world a better place. Three areas that I've thought a lot about are science, education and politics. I would much rather work in one of these than just helping a company sell widgets.

A fresh start

My seven years as a web developer have focused on maintaining legacy code. That means someone else wrote the app, making the decisions (and mistakes) that I have to live with every day. I've tried to keep up with new methods for programming, but they're hard to bolt on to an existing app with spaghetti code inside. Starting a project for scratch means I can do it right from the beginning (or at least I can make my own mistakes).

Working in a team

I've telecommuted 100% of the time for the last 5 years. I loved avoiding the long drive to work, but it got lonely at times. Worse than that, I was the only PHP developer in the company, so I didn't have anyone to bounce ideas off of and learn from. Working with other developers would be ideal, though I would still want to have some creative control.

At least some telecommuting

Spending two hours a day in the car is a real drag. I've done it before. While there are advantages to spending some time in the office with the rest of the team, I would prefer to do most of my work in the quiet of my home office.


Working as an independent contractor has its upsides, but it also meant that I got no benefits from my job and no paid time off. The ideal job would include generous benefits, vacation and sick time.

A bitchin' computer

I'm currently using a 2010 iMac with a 27" display. I love it, but as long as I'm dreaming, the ideal job would provide me with the latest and greatest Mac. The Macbook Pro recently got updated and now includes a retina screen and a lighting fast SSD instead of a hard drive. That should do nicely.

The job I started this month fulfills all of these requirements. I'm a software application developer for the National Higher Education Benchmark Institute. It's part of Johnson County Community College in Overland Park, and it exists to collect data from community colleges around the country and create reports and analysis for colleges and policy makers. We work to help make education more cost-effective. Given the importance of education to the future of the world and the budget difficulties faced by educators and students, this seems to fit my first requirement. I have a real chance of making the world a better place.

I will get to create a project from scratch, assembling state-of-the-art tools rather than battling with legacy code. The project I was hired for is called Maximizing Resources for Student Success and it is funded by a grant from the Bill and Melinda Gates Foundation.

I will be working with a team that includes other developers and researchers. So far they all seem like interesting and talented folks. And the atmosphere on a college campus is nice, too. I love how I can walk through the halls and hear different languages being spoken.

Though I'll drive to the office for the first few months, the plan is for me to telecommute three days a week after that. This should be a good mixture of concentrated coding sessions and team interaction. I think I can handle the drive twice a week.

The JCCC benefits are by far the best I've ever been offered. Health, dental, vision, retirement, KPERS (Kansas Public Employee Retirement System, I'll be vested in 5 years), federal holidays, paid Xmas break, vacation, personal days and sick days.

Oh, and the SSD and retina equipped Macbook Pro is gorgeous. The fact that it was purchased with Bill Gates' money is a funny little bonus.

iOS to Get More Voice Control

MacRumors (via TechCrunch) is reporting that the next major version of Apple's iOS will include more deeply integrated voice controls. I've been hoping for something like this for a while. Voice control is the inevitable direction for interacting with machines, especially mobile devices lacking a full-sized keyboard. Google's mobile OS, Android, is currently ahead on this. It allows you to enter text with your voice in any application. iOS has some basic voice controls for making phone calls and playing music, but I've long hoped that they would extend this to more applications, including 3rd party apps. There are some very useful (and free) iOS apps that you can control with your voice, including Dragon Dictation, Dragon Search, Vlingo and Siri. Apple acquired Siri about a year ago.

If you haven't seen Siri in action yet, check out this video:

It's impressive, but I'm excited to see what Apple could do with this after 1.5 years of development integrating it into iOS. Currently I can hold my phone's home button and then say, "Call Sara" or "Play songs by Phoenix," but I'd love to be able to say, "Listen to NPR newscast," "Start 10 minute timer," "Search Amazon for books about programming" or even "Hulu Plus: Play last night's Daily Show." If Apple provides a voice API to 3rd party developers we'll see stuff like that and much more.

The new features of iOS are expected to be revealed at Apple's developer conference, WWDC, this June. They'll also be discussing their new version of the desktop operating system, OS X Lion (10.7). Developers with early releases of that have already discovered that it contains some new text-to-speech voices. Perhaps that's a clue that Lion will be getting some voice control features, too. I've been using voice control and dictation software on my Mac for years (currently Dragon Dictate), but it suffers from the same lack of OS integration as Siri. It only makes sense for Apple to include these features in both iOS and OS X.

What do you think? Do you like talking to machines? Or are you frustrated by inaccuracies? When a machine responds to a voice command, do you say "Thank you"?

Update (July 25, 2011):
More info has come out about this new feature. It's rumored to be called "Assistant."

Update 2 (October 4, 2011):
Apple has officially announced the new feature and they're calling it Siri.

Personman for the iPhone

Last week Apple finally released the iPhone SDK so that developers can create programs that run natively on the iPhone. I downloaded the SDK and installed it. It would be fun to learn some Objective-C and try my hand at making iPhone apps, but web development is my main interest right now. While the iPhone has always been able to run web apps through the mobile version of Safari, the new SDK does include some tools for web developers. Dashcode, which used to just be a tool for making Dashboard widgets, now lets you make iPhone-optimized web applications. It includes most of the UI elements and animations that native apps have, but it's all done in XHTML, CSS and JavaScript.
I used the RSS template in Dashcode to make an iPhone version of my website: It runs off of my normal RSS feed, but it presents the data in an iPhone-friendly way. All I really had to do was plug my feed url in and then I added my header image and changed some fonts. And the SDK comes with an iPhone simulator, which I used for the screenshot.

The page works in Safari on a computer, too, but if you try to view it Firefox or IE it's going to break badly. The apps that Dashcode creates use some custom JavaScript functions that only work in Safari. Most of them are meant to improve performance or add eye candy. I don't have one yet, but I think the iPhone is a great device. I'm torn about this approach to development, though. It's incredible to have such a small device with these kinds of capabilities. The non-standard browser features like SVG, off-line data API and hardware accelerated animations make it possible to do so much with so little. But making a version of a site that only works in one browser and breaks terribly in all others feels a bit too much like using FrontPage to make a site that only works in IE. The fact that FrontPage sites are disgustingly ugly and iPhone sites are sexy and useful doesn't change the basic fact that it's flouting standards and causing problems down the road. Apple says that they're submitting these features to the web standards boards.

This was a fun experiment and I'll be learning more about it, especially if I finally break down and get an iPhone. Even though there are upsides and downsides to developing for the iPhone, the important fact remains that it has the best mobile browser that I've ever seen. It does a brilliant job of making regular web pages useful on a small screen.

MacHeist II

The Apple community/fanboys are abuzz about tomorrow's Steve Jobs keynote address. It's always fun to see what they come up with, but I'm not in the market for a sub-notebook or renting movies through iTunes, so it won't mean too much to me. If they announce a new iPhone with 3G, GPS and a huge price cut, then I might get seriously excited.

MacHeist is selling software bundles in conjunction with MacWorld Expo and giving 25% of the proceeds to charity. It's fun to watch because as the sales go up, they add more apps to the bundle. The price is $49 and the current list of apps retails for $368. I'm looking forward to making some stop motion animation, balancing my checkbook and maybe making some screencasts with the bundled apps. Pixelmator is the latest to be unlocked. It's a PhotoShop-type app with stunning Mac style. Check the list of apps and the causes that they're supporting. If you decide to buy, please use my referral link below:

MacHeist II

iMovie 08

I just finished my first project in iMovie '08. I'm really trying to like it, but it's hard. Here's a quick run-down of the pros and cons as well as my idea for how to fix it.

Scrubbing - Move your mouse over clips and you scrub through the clip.
Selecting - Scrub to where you want to start the selection, click and drag, scrubbing to where you want to stop. Then drag the selection to your project. This is an improvement over iMovie 06.
Events - I like this feature in iPhoto and I like it in iMovie, too.
YouTube export - This is great. I've spent hours trying to export to YouTube and the quality was never as good as this. Easy and good quality.
Other exports - The export interface for just making a quicktime movie for iTunes or iPod or iAnythingElse is very simple and nice.
Importing from camera - There's a new automatic mode that rewinds the tape and imports all of it. Cool.

No timeline - I like seeing a visual representation of how much time each clip takes up. The iMovie 08 project area isn't impossible to get used to, but it's not ideal.
Audio controls - The audio rubber band is gone. It allowed you to edit the volume in a clip.
Can't mute all the original clip audio easily - If you drag a bunch of clips to your project and add some music, you may want to mute the original clips and just have the song. You have to edit each clip and move the volume to 0%. In the old iMovie you could uncheck the audio track and mute it all at once.
Can't delete multiple clips from project - Add a bunch of clips or photos to your project, then change your mind? You have to delete them all one by one. WTF?
Less control over transitions - Add a transition and want to make it a little longer? Sorry, you can't.
No slow-mo or time-lapse - You used to be able to speed up or slow down a clip. No longer.
Less control in general - Maybe that's nice for novices, but I got used to some of the things you could do in iMovie.

My solution:
Most of the problems are in the timeline area. One solution would be to scrap the new timeline and go back to the old way. Here's what that would look like:

Digg it

Camino and Firefox tip

I was already planning on posting this tip, but it's also relevant to Dave's question. He's right, Firefox's method for searching within a page is very nice. You type cmd+F (or ctrl+F on Windows) and a little bar appears at the bottom of the page. In Camino, as in most browsers, the search window appears on top of the page, sometimes getting in the way.

But instead of using cmd+F, try tapping the / key. They just start typing your search term. It will be found as you type. If the highlighted word is not what you want, push cmd+G to find the next instance. Even more useful: Tap the ' (single quote key) and you can find as you type, only this way your search is limited to links on the page. As soon as the link you want is highlighted, just press enter and you follow the link. Both of these tips work on Firefox and Camino.

This provides another way to keep my hands on the keyboard, which I can operate more quickly and comfortably than a mouse. It would be even better if I could use cmd+Enter to open the link in a new tab. That works in Firefox but not Camino.

Update: This bug was first reported for Camino in 2002. Holy crap, can it be that hard to fix?


I like it: Camino
It's better than: Firefox on OS X
Why the change?
It's been two years since I switched to Macs and I absolutely love them. But there's a dirty little secret about Macs: Firefox, my favorite web browser, tends to run very slowly on OS X. A Firefox developer recently asked for gripes from Mac Firefox users on his blog. There was a long list. The biggest problem for me has been performance. After Firefox has run for a few hours, it will often be using up 20-80% of my CPU and over 400 MB of RAM (not to mention over a GB of virtual memory). Reports of memory leaks are common, but they're often blamed on extensions. I've tried running with fewer extensions, but it didn't seem to help much.

So, at the suggestion of a co-worker I switched to Camino. It's based on the Firefox project, but it's built to run on OS X. It fits in better with the Mac style and most importantly, it performs much better. I can run Camino for days and days and it will rarely use more than 100 MB or RAM. It seems to know how to give up RAM when it's finished with it, a trick that Firefox rudely fails to do on OS X. The one huge downside is that Firefox extensions don't work on Camino. It does have built in ad-blocking, so there's no need for the otherwise must-have extension, AdBlock Plus. There is a website with some add-ons for Camino: Pimp My Camino. But it's a pretty weak offering compared to Firefox's add-ons. There's nothing equivalent to FireBug, so I still use Firefox when I need that tool.

If you use the normal download, you'll be getting version 1.0.4. I recommend that you get a development snapshop using a tool like CaminoKnight. That will give you some of the newer features, such as built-in spell checking.

I've been very happy with this switch. If Firefox 3 works better on OS X, as has been promised, then I may switch back, but for now, Camino is the snappiest option for me.

EMI drops DRM in iTMS

Apple, inc and the record label EMI announced (EMI press release, Apple press release) this morning that they will begin offering songs in the iTunes Music store that have no digital rights management (DRM). If you're not familiar with DRM, here's a quick explanation. When you buy a 99 cent song in iTunes, you can play it on your computer and up to four more computers where your iTunes account is authorized. You also can only play the song on an iPod, so if you have bought some songs on iTMS and you get an mp3 player that's not from Apple, you can't play your songs. There's also a limit on how many cds you can burn from the music you buy. The idea is to prevent piracy, but the people who are willing to pay a dollar for a song are usually not the pirating type. They could have downloaded the entire album for free from BitTorrent if they wanted to pirate it. What usually happens is that DRM is an annoyance to law-abiding music purchasers.

EMI is offering DRM-free tracks on iTunes for a premium ($1.29), but they are higher quality (256K). I think the price is still too high, but this is a huge step in the right direction. You'll be able to do whatever you want with these files: email a song to friend, burn as many cds as you want, back them up, play them on any mp3 player and not worry about losing your investment if technology changes. Steve Jobs says that similar deals with other labels will follow and by the end of the year he hopes to have 50% of the iTMS catalog available DRM-free. This may be the beginning of the end for DRM. I've never bought songs from iTunes, but I may consider it now.

I mentioned DRM in a post almost two years ago. I linked to Cory Doctorow's great speech on the subject (still a good explanation of why DRM is terrible) and I hoped that Microsoft's forthcoming portable audio player wouldn't have an oppressive DRM. It does.

If you're wondering what artists this will include, here's a list of EMI artists.

A month at Trinity

I've been at my new job for about a month now, so I thought it was about time for an update. I am working for a company called Trinity Transport. They're a transportation intermediary, or a trucking brokerage. You can find out more about them at their web site, but here's all you really need to know: When a company wants to move some freight, instead of calling a carrier directly they can call a broker. The broker arranges for a carrier and makes sure the load gets moved. Of course, they charge a bit more to the shipper than they pay to the carrier, but they handle all of the headaches. That's basically what the company does.

Trinity has offices and salesmen around the country, but the headquarters is in Delaware. I spent my first week on the job in Delaware. I went through the company orientation and sat down with the other programmers to learn about the projects we're working on. I was there over a weekend, so I spent a day in Washington DC. And I spent a day at the beach, which is about 40 miles from where I was working. Here are pictures from those trips.

I'm working on a product called TTI ShipDirect. You can't see anything there without a login and password, but it's a price comparison site for less than truckload shipments. It's written in PHP with a PostgreSQL database, but the company is starting to use Ruby on Rails for new projects, so I've been learning that, too. I made this little program in just a few hours. Feel free to poke around, create an account, add posts and add comments. The comment form uses AJAX, which is especially easy to do in Ruby on Rails.

While I was in Delaware, they gave me a laptop to get started. But now that I've got settled at my Kansas City office, I have a brand new Mac Mini with a 20" wide-screen monitor. I'm using Synergy to share the mouse and keyboard with both computers. And I'm using Textmate to edit code on the Mac.

I'm having lots of fun at the new job, and apparently I left the bank just in time. It was robbed at gunpoint last week, which had never happened in the bank's 70-year history. If I hadn't quit, I would have been covering the window that got robbed over lunch time.

A great site for Mac freeware

Since I switched to a Mac last May I've been constantly on the lookout for good, free software. One site has helped me more than any other. They're always posting descriptions of programs that are useful, fun or both. I've been meaning to post about for a while so my fellow Mac converts will know where to look. The contest they're having now convinced me to get it done.

I want to highlight 5 apps that I've discovered through the site. These may not be my favorites. I heard about Firefox, Quicksilver, Cyberduck, etc, from other places. But here are five programs that I heard of first from

DoubleCommand - One thing that's made the switch a bit more tricky is the fact that OS X uses Home and End keyboard keys a bit differently than Windows. In Windows, hitting the End key moves the text cursor to the end of the line. On OS X it goes to the end of the document. DoubleCommand is a little application that let's you remap keys. In some cases you can make it more like Windows. I enabled the "PC style home and end keys". You can also make the control key on the Mac act like the command key, which is another area where I still slip up sometimes.

Disk Inventory X - Before I got my new external hard drive, video projects were hard because I was always running out of space. This program scans your drive and makes a graphical representation of the whole drive so you can see where the space is going. It's been very useful for me.

Sizzling Keys - I like listening to iTunes while I use the computer. This app gives you keyboard shortcuts for controling you music even when iTunes isn't the active window. So, right now while I'm typing, I could hit Command + Option + Space and pause iTunes without ever taking my hands off the keyboard or leaving the Firefox window. It also includes a little info window that pops up to show you the meta data and album art when a new song comes on.

Handbrake Lite - Handbrake is a program for converting DVDs into compressed video files. Handbrake Lite is a simplified version that mainly converts into a format that can play on my iPod. What used to take several steps and some trial and error is now done with a few clicks.

MacOSaiX - This is the app I used to make the photo mosaic of the logo. It's dead simple to use. Choose your main image. Then enter some search terms and it hits up Google Images for images to compose with. The more search terms you give it and the longer you let it run, the better the result is.

If you have a Mac, I recommend that you bookmark or subscribe to their RSS feed.