Friday, July 19, 2013

My Friend Jeffrey McManus Suddenly Died on July 5th

On July 5th Jeffrey McManus unexpectedly died. I learned of this devastating news on July 10th through his wife Carole's tear-jerking FAQ about this death posted to her Facebook timeline. I'll never joke again about quitting Facebook, I don't know when I would have found out about Jeff's death living in NJ.

PandoDaily has a fine public write up if you want the immediate details, though I wish they ran with a better picture.

It is literally the least I can do to honor his memory by recounting how he touched my life. I still can't believe I never get to see him again.

Vertigo Software
I met Jeffrey, whom I called Jeff, when we both worked at Vertigo Software. Jeff worked at Vertigo for 5 months in 2003 and he made a lasting impression. We didn't keep in touch much for a long time after he left the company because I wasn't ready for Jeff. He had such an outgoing personality, and at the time I was very much an introvert, that I didn't know how to handle Jeff's joviality. I mistook his playful spirit for a lack of technical seriousness, a blunder of colossal proportions that I've never admitted to anyone. I never stopped keeping tabs on what he was doing since he was always doing interesting stuff.

New York and Potential Opportunities
Jeff came to New York City in August 2006 just when he was starting Platform Associates. We had drinks at the W hotel in Times Square. I hadn't seen Jeff in a few years at that point and wasn't really sure what to expect, but we had a wonderful few hours together filled with Jeff's trademark off color humor and alcohol. Jeff tried to talk me into joining him at Platform Associates, but since I'm more cautious with my career, I had to tell him I couldn't do it. I always admired his ability to come up with new ideas and just go for it.

Jeff was one of the people I interacted with the most on Twitter. My wife and I would specifically take a discussion to Twitter just to see what kind of response we would get out of Jeff. I don't think I missed too many opportunities to get in a snarky or slightly subversive comment on whatever Jeff was saying on Twitter. I'll greatly miss Jeff's witticisms.

Tangerine Element
Jeff was the first person I turned to when I wanted advice on launching Tangerine Element. I asked him for help on consulting engagements, search engine optimization, incorporation strategies, you name it. I'm pretty sure during some of the early consulting he gave me template contracts and invoices to look at from Platform Associates to help smooth that process out. Jeff was always giving like that, always quick to help out however he could.

WWDC 2011
Apple's WWDC 2011 was my first time attending the conference. When I mentioned to Jeff I was going, he immediately said we should hang out. I didn't hesitate to say yes.
We ate dinner at a very nice place not to far from Moscone West that I can't remember the name of, but I think that's mostly because Jeff dazzled me with Marriot's The View lounge. Jeff and I were both Star Wars fans and he knew that The View's resemblance to the Emperor's throne room from Return of the Jedi would blow me away. It did. If I'm around Moscone West and someone hasn't been to The View and I know there a Star Wars fan, I make it a point to take them to the Marriot. The views are simply stunning as well.
As usual, Jeff and I talked about his startups and if there was some way I could help out…

At the end of 2011, I taught Introduction to iOS Programming through This was my first time teaching an actual course on anything. It meant a tremendous amount to me. I taught another session of the class starting in April 2012. Unfortunately the demands of my day job and the amount of work it takes to do an instructor lead course to my standards meant I couldn't schedule a third session.

WWDC 2012
WWDC 2012 was a truncated affair for me. I had to leave on Tuesday night of that week, but Jeff adjusted his schedule so we could still grab dinner. We went to this great place 54 Mint in a night I'll never forget. I was surprised to find us sitting next to a large table of people from Apple, including Michael Jurewitz. I'd just seen a large number of these people up on stage, and @Jury in particular I'd interacted with on Twitter a few times. I thought if I ever wanted to work at Apple, perhaps I'd say hi later.
Jeff and I got deeply into a discussion about the future of Since I had just wrapped up the second session of my course, I was overflowing with ideas on what to do with the site and take it to mobile. Jeff had just proposed bringing me onto CodeLesson in a product advisor role in my spare time when all of a sudden he gets up, steps towards Apple's table, and makes a fake big smile and waves his hands.
Flabbergasted by what I'd just saw, Jeff sits back down and chuckles as I ask him what he'd done. This was my introduction to the photobombing. Jeff said he did it all the time and all involved got a great laugh out of it. I'd never heard let alone done that so I emailed @jury at the airport to apologize. Don't know if that email was ever read, but this was the only time Jeff and I truly disagreed on anything.
This incident epitomized Jeff. With him you never knew what you were going to get, and that's one of the reasons these outings where so exciting!

WWDC 2013
I had the pleasure of hanging out with Jeff and his wife Carole before the conference at the Pi Bar for pizza and beer. I met a few of Jeff and Carole's friends and we chatted about potential iOS work, schools in San Francisco, and places to live. I was given a mission by @missionbride,  gather intel for "Operation: Could We Possibly Move the Family Back to CA". Jeff and Carole helpfully answered all the questions I had. Mission Bride and I aren't planning for an imminent move, just feeling it out a bit.
Jeff came out the next night with my co-workers and former co-workers. We stopped at the Xamarin party held at the Press Club, then dinner at Annabelle's Bar & Bistro before heading to Marriot's The View. Jeff staged a boisterous game of "Who's Your Top 5". If you've never played, this is a game of "who would you cheat on your spouse for just one night with". Again, this was classic Jeff, taking an off color concept and truly relishing it! When Jeff and I were saying our goodbyes, I gave him a bear hug and told him how proud I was of all the weight he'd lost in the last year.
Mission Bride was coming to San Francisco a couple days later. Jeff magnanimously offered to share his Father's Day the coming Sunday and show us around neighborhoods Carole and he thought might be good for us. I had every intention of taking him up on the offer when traffic intervened and prevented us from getting back from a jaunt down to Salinas in time for our flight home. In hindsight I'm glad we missed it. Carole and the kids got Jeff to themselves as far as I know on his last Father's Day.

Jeff was a talented entrepreneur, great dad, great husband, and a good friend to me. It feels so cliché, but I wish I had more time with him. I'm sure we would have been great friends.

Thursday, February 21, 2013

The Still Handy C Language Cheat Sheet

I got this in college to deal with writing C game code on a Solaris box using something called World ToolKit.

How I Couldn't Recover Deleted Videos & an iMovie Project from iPhone Backups

I finally downloaded iMovie and started editing some video on my phone. I usually don't have time to sit down at my iMac for an editing session, but I do usually want to string a few clips together with titles. iMovie iOS seems to work well for that.
There is, however, a catch. Somehow I got the notion that iMovie copied clips into itself, not used them directly from the Photo roll. When I went to export to the Photo roll, I was out of space on my 16 GB iPhone. So I deleted the source video clips and boom, iMovie could no longer find the videos, prompting this:
Since the first iPhone in 2007, I've never accidentally deleted a video or photo. I've also been meticulous about backups. Since iCloud backups and Photo Stream in iOS 5, I am syncing photos and videos manually less and less frequently to the iMac. When I tweeted the above, I had no idea I would totally fail to get both the videos and iMovie project back together. Here's what happened.
Plan A
The plan seems simple, restore from backup right? iCloud makes this super easy. Here's what I had to work with:
  • iPhone 5 with iMovie project but no videos
  • iCloud backup with videos but no iMovie project
If iOS had Time Machine, or even Trash of some kind, this would have been really simple and I hope iOS 7 has something more granular than full device restore. Heck, even if videos were added to Photo Stream I wouldn't have had a problem. But we aren't there yet. I thought I'd:
  1. Restore iCloud backup onto an iPhone 4
  2. Email video clips to myself to get them onto iPhone 5
  3. Sync clips to iMac just in case something else goes wrong
  4. Finished exported from iMovie
This immediately goes wrong when I restored an iPhone 5 backup onto the iPhone 4.
iOS Won't Restore Photos & Videos from an iPhone 5 backup to iPhone 4
I've done a decent number of iCloud restores to move devices around amongst family members. It works great, I've never seen it fail. So at first when I restored the iPhone 4 from iPhone 5 and there were no videos, I thought it was either just taking a while to copy all the data back or for the first time it had simply failed.
So what do you in tech do if something doesn't work the first time? Like Sisyphus you do it again, and I did. Another round through restoring the device to factory and restoring from iCloud ended with the same result. I babysat it this time, and saw an alert like some items could not be restored blah blah blah. I was too annoyed to record the entire message and had sussed out what was happening. I had thought this might be a possibility because photos and videos from iPhone 5 are much higher quality, maybe even beyond the performance capabilities of the hardware. So I had to try this from a different angle.
Plan B
The only way to get the videos back was to restore from iCloud to the iPhone 5:
  1. Backup iPhone 5 using iTunes to preserve iMovie project
  2. Restore iPhone 5 from iCloud to get the videos back
  3. Extract the videos from iCloud backup
  4. Restore iPhone 5 to iTunes backup
  5. Deposit videos on iPhone 5's photo roll
  6. Hope the iMovie project isn't busted
I only got to Step 3 before blowing it. On Step 4, iTunes offers to backup the phone before restoring it. Seems like a perfectly smart and safe decision to make with one crucial exception: this backup overwrote my good backup with the iMovie project. I hesitated on the checkbox to backup before restore, knowing I shouldn't check it, but wanting the safety net in case something went wrong.
I knew I had seen iTunes offer me the choice to restore from multiple backups of the same device before, so I trusted it would be so here. It wasn't, iTunes overwrote it's last backup ending my dreams of recovering my iMovie project.
  • I could have avoided losing the iMovie project if I had added Step 0 to Plan B and synced the project to the iMac using iTunes.
  • I could have previously imported the videos to the iMac using iPhoto and avoid either Plan A or Plan B.
  • A friend suggested undelete software. I did not consider that option until after I overwrote the iPhone in Plan B.
iCloud backups are great and probably save most people from catastrophic mistakes, but I really look forward to a more granular accidental deletion recovery mechanism, hopefully in iOS 7. Actually surprised now that I'm thinking about it that one of the original Mac's great innovations, Trash, doesn't exist in some form on iOS.

Wednesday, February 20, 2013

On Seeing Hard R 80's Movie "Lifeforce" As A Pre-Teen & the Blu-ray Release

"Lifeforce PosterLifeforce" was released June 21, 1985 in the USA. I was 10 years old that summer. My family went to the movies nearly every week, but we skipped that one. I can't be sure if it was VHS or HBO, but one Saturday my dad puts on "Lifeforce". I was 10, 11, or at the latest 12. I'll never forget the craziness that showed up on the Zenith tube TV when that flick started.

If you know "Lifeforce", you might think: "That is about as hard R rated as just about anything in the 80s, what the hell where your parents doing letting you watch that?!?"
That is my dad. My mom was always asleep when he put this kind of stuff on. I must conclude that he just didn't care about the ratings. I've asked him several times, and he just laughs. I saw "Aliens" in 1986 at the Movie City 5 theater in Woodbridge, NJ. I was 11, my brother was 8.5! I remember waiting in line and being in the theater more clearly than I usually remember today.

"Lifeforce" formed an equally monumental memory. I believe it was the first time I had seen a woman completely nude. When Mathilda May appears on screen, I remember looking at my dad shocked like I had just seen one of the secrets of the universe. He made mock big eyes, smiled, and we just kept on watching! I only now realize that she is only 10 years older than me. She was most likely 19 when they shot the film. If you told pre-teen me that she was still a teen, my puddle of jelly brain would have imploded.

I was vividly reminded of this because Roger Ebert has a long review, an essay really, of the film because it is being released on Blu-ray April 30, 2013. If none of that persuades you to take a gander at this hidden gem, then perhaps the presence of Sir Patrick Stewart in the cast will.

By the way dad, I'm glad you ignored the ratings. I love you! I'll try to closely follow your movie showing examples, but I don't know if I will let my oldest son watch this pre-teen. It will be on his must see list sooner rather than later…

Tuesday, February 19, 2013

Getting rid of OS X Finder Open With duplicates

This has been an annoyance for a while, but I hadn't spent the time to figure it out. Fortunately know I don't have to since John Gruber posted a link to this tip.

Unfortunately it looks like Finder hung and won't relaunch, so I'm going to have to log out, or reboot. YMMV.

Sunday, February 10, 2013

You're Drunk Mac App Store, Go Home

Mac App Store Hostname


Drunk Mac App Store

I don't even, how can this possibly happen?!? 

Saturday, February 09, 2013

Latest Adobe Flash Emergency Patch Needed More Cooking. I'm Not Waiting Around.

Adobe issued an emergency Flash update for actively exploited vulnerabilities on OS X and Windows. Apple has blocked vulnerable versions of Flash for OS X and won't let you use Flash until you updated to the version at the time of this writing, 11.5.502.149.

I installed that update tonight, and at least for me, it's obvious the patch was rushed and needed more time in the oven.

For the first time in many versions, Flash crashed.

Adobe Flash Player Crash

I saw John Gruber's post on the emergency Flash patch the other day too and remembered he linked to his November 2010 post about going Flash-Free. He says it's been working out pretty well for him in the 2+ years since.

So that's it, I'm done with Flash on the home iMac. If I didn't have the whole Creative Suite installed at work, I'd dump Flash there to.

A Corollary to "Adding More Developers to a Late Project Only Makes it Later"

In The Mythical Man-Month, Fred Brooks found that adding more programmers to a late project only made it later:

The equation is something like this:

If time-spent-adding-programmer > work-new-programmer-produces then 

Recently occurred to me there is a corollary to the idea I hadn't previously considered:

If time-spent-code-reviewing-programmer > time-another-programmer-would have-fixed-issue then

In plain English, if the time spent by a programmer producing buggy code plus time spent by other programmers in code reviews is greater than the time other team members could fix said bugs, your project ships later. 

It seems like the right corrective action is to fire the underperforming developer for the project to not fall further behind. 

Shorter version: keeping a bad programmer on a project always makes it later. 

Friday, February 08, 2013

The Software Was Installed Definitely

You never can predict just how many ways there are to poorly word a dialog box.

Epson Download Navigator

Discredit: Epson Download Navigator 1.5.1

2 iMacs, 1 Desktop: Using Target Display Mode

The Mac on the left is a build server, and now my second display!

Best part is that using 2 iMacs gets both screens level.

To put any Mac in Target Display Mode, type Command-F2 on the Mac you want to use as a display:

Thursday, February 07, 2013

Developers Don't Ever Do This on iOS to Hint Interface Rotation

Just open your content in the orientation you support. This was more confusing then showing the content in landscape when I was holding the iPad portrait.