Bug in iPhoto 11 with iCal Import for Calendars

This is one of those simple blog posts where I write about a frustrating problem, and how I worked around it.

The Culprit

iPhoto 11 and it’s Calendar feature.

The Issue

When you try to import iCal dates into a Calendar, it frustratingly deletes events if they “collide” on the same date.

Example

Let’s say you have two iCal calendars, one for your family birthdays and events, and one for your friends birthdays and events.  Let’s also say that your brother is born on April 11th, and your friend is born on April 11th.

When you import both iCal calendars into iPhoto, only one of the birthday events will show up.  This does not happen if both birthdays are in the same calendar – only if they are in two different calendars.

What’s worse is that this also affects the native support for holidays.  So any friends or family born on July 4th are definitely out of luck.

Solution / Workaround

It’s not perfect, but here is my solution:

  1. Uncheck the holidays checkbox on the calendar import.  This gets you one “clean” calendar import that won’t hit the bug.
  2. Go to iCal and export each of the calendars that you want to add to your iPhoto calendar.
  3. In iCal, create a new calendar called “2012 iPhoto Calendar” or something like that.
  4. In iCal, import each of the calendars you exported, in the order you want them to appear.  Add them to the new “2012 iPhoto Calendar” calendar.
  5. Once you are done, quit iPhoto.  It only detects iCal changes at launch.
  6. Launch iPhoto
  7. Import the new iCal calendar “2012 iPhoto Calendar”.  All your dates will appear, in the order you combined them.

Hope this helps someone out there.  For my rather elaborate family calendar efforts (which involve five separate family calendars of birthdays, anniversaries, and key dates), this was an essential fix.

Proposed Solution: Quicken 2007 & Mac OS X Lion

Right away, you should know something about me.  I am a die-hard Quicken user.  I’ve been using Quicken on the Mac since 1994, which happens to be the point in time where I decided that controlling my personal finances was fundamentally important.  In fact, one of my most popular blog posts is about how to hack in and fix a rather arcane (but common) issue with Quicken 2007.

So it pains me to write this blog post, because the situation with Quicken for the Mac has become extremely dire.  Intuit has really backed themselves into a corner, and not surprisingly, Apple has no interest in bailing them out.  However, since I love the Mac, and I love Quicken, I’m desperately looking for a way out of this problem.

Problem: Mac OS X Lion (10.7) is imminent

Yesterday, I got this email from Intuit:

It links to this blog post on the Intuit site.  The options are not pretty:

  1. You can switch to Quicken Essentials for Mac.  It’s a great new application written from the ground up.  In their words, “this option is ideal if you do not track investment transactions and history, use online bill pay or rely on specific reports that might not be present in Quicken Essentials for Mac.” Um, sorry, who in their right mind doesn’t want to track “investment transactions”?  Turns out, at tax time, knowing the details of what you bought, at what price, and when are kind of important.  At least, the IRS thinks so.  And they can put you in jail and take everything you own.  So I’m going with them on this one.  No dice.
  2. You can switch to Mint.  I love Mint, and I’ve been using it for years.  But once again, “This option is ideal if maintaining your transaction history is not important to you.”  Yeesh.  For me, Mint is something I use in addition to Quicken.  Unfortunately, Mint is basically blind to anything it can’t integrate with online.  Which includes my 401k, for example.
  3. You can switch to Quicken for Windows.  Seriously? 1999 called and they want their advice back.  Switch to Windows?  Intuit would get a better response here if they just sent Mac users a picture of a huge middle finger.  By the way, to add insult to injury:  “You can easily convert your Quicken Mac data with the exception of Investment transaction history. You will need to either re-download your investment transactions or manually enter them.”

This is an epic disaster.  I’m not sure how many people are actually affected.  But the Trojan War involved tens of thousands of troops, so I’m going with Homer’s definition of “Epic”.

What’s the Problem?

There are really three issues at play here:

  1. Strike 1. Around 2000, Intuit made the mistake of abandoning the Mac.  Hey, they thought it was the prudent thing to do then.  After all, Apple was dying.  (The bar talk between Adobe & Intuit on this mistake must be really fun a few drinks into the evening.)  Whoops.  This led Intuit to massively under-invest in their Mac codebase, yielding a monstrosity that apparently no one in their right mind wants to touch.  From everything I hear, Quicken 2007 for the Mac might as well be written in Fortran and require punch cards to compile.  Untouchable.  Untouchable, unfortunately, means unfixable.
  2. Strike 2. Sometime in the past few years, someone decided that Quicken Essentials for the Mac didn’t need to track investment transactions properly.  I’ve spent more than a decade in software product management, so I have compassion for how hard that decision must have been.  But in the end, it was a very expensive decision, and even if it was necessary, it should have mandated a fast follow with that capability.  It’s a bizarre miss given that tracking investment transactions is a basic tax requirement.  (See note on the IRS above)
  3. Strike 3Apple announces the move from PowerPC chips to Intel chips in June 2005.  Yes, that’s *six* years ago.  Fast forward to June 2011, and Apple announces that their latest operating system, Mac OS X Lion, will not support the backwards compatibility software to allow PowerPC applications to run on Intel Macs.

Uh oh.

This is Intuit’s Fault.

With all due respect to my good friends at Intuit, this problem is really Intuit’s fault.  Intuit had six years to make this migration, and to be honest, Apple is rarely the type of company to support long transitions like this.  You are talking about the company that killed floppy drives almost immediately in favor of USB in 2000, with no warning.  They dropped support for Mac OS Classic in just a few years.  It’s not like Apple was going back to PowerPC.

If you examine the three strikes, you see that Intuit made a couple of tactical & strategic mistakes here.  But in the end, they called several plays wrong, and now they are vulnerable.

Intuit would argue that Apple could still ship Rosetta on Mac OS X Lion.  Or maybe they could license Rosetta to Intuit to bundle with Quicken 2007.

Apple’s not going to do it.  They want to simplify the operating system (brutally).  They want to push software developers to new code, new user experience, and best-in-class applications.  They do not want to create zombie applications that necessitate bug-for-bug fixes over the long term.  Microsoft did too much of this with Windows over the past two decades, and it definitely held them back at an operating system level.

A Proposed Solution: VMware to the rescue

I believe there is a possible solution.  Apple has announced that Mac OS X Lion will include a change to the terms of service to allow for virtualization.  If this is true, this reflects a fundamental shift in Apple’s attitude toward this technology.

The answer:

  • Custom “headless” install of Mac OS X 10.6.8, stripped to just support the launch of Quicken 2007.
  • Quicken 2007 R4 installed / configured to run at launch
  • Distribution as VMware image

OK, this solution isn’t perfect, but it is plausible.  Many system utilities are distributed with stripped, headless versions of Mac OS X.  In fact, Apple’s install disks for Mac OS X have been built this way.  A VMware image allows Intuit to configure & test a standard release package, and ensure it works.  They can distribute new images as necessary.

The cost of VMware Fusion for the Mac is non trivial, but actually roughly the same price as a new version of Quicken.  I’m guessing that Intuit & VMware might be able to work out a deal here, especially since Intuit would be promoting VMware to a large number of Mac users, and even subsidizing it’s adoption.

Will Apple Allow It?

This is always the $64,000 question, but theoretically, this feels like really not much of a give on Apple’s part.  They are changing the virtualization terms for Mac OS X Lion, so why not change them for Snow Leopard to0.

Can We Fix It? 

I’m a daily VMware Fusion user, which is how I use both Windows & Mac operating systems on my MacBook Pro.  If Intuit can’t work this out, I just might try to hack this solution myself.

In the end, I’m a loyal Intuit customer.  I buy TurboTax every year, and I use Quicken every week.  So I’m hoping we can all find a path here.

Feel free to comment if you have ideas.

 

 

Why LinkedIn Hackdays Work

Two weeks ago, we celebrated yet another great Hackday judging event at LinkedIn.  For the April 15th Hackday, over 50 employees submitted a combined total of 29 projects for the contest.  We saw incredible product concepts, developer tool innovations, internal corporate applications, and even a few ideas so good they’ll likely ship as products in the coming weeks.  At this point, it feels like every Hackday is better than the one before it.

Most of the engineers who work at LinkedIn have also worked at other great technology companies, and in the past year there has been an incredible swell of feedback from new and old employees alike that LinkedIn Hackdays have become something truly special.  Creating the LinkedIn Hackday has been an iterative, experimental process, so I thought it might be useful to capture some of the details on how LinkedIn Hackdays work, and more importantly, why we run them the way we do.

Origins

It’s funny to think about it now, but the original LinkedIn Hackday had an unlikely catalyst.  On December 14th, 2007 approximately 100+ LinkedIn employees moved into a brand new space on the first floor of 2029 Stierlin Court.  It was the first time that LinkedIn had designed a workspace from the ground-up, and it included a large number of LCD TV’s on the wall.  The goal was to immerse the product and engineering teams in real-time feedback and data from the LinkedIn community, and each of the TV’s was driven by small Mac Mini.

The “Pure Energy” contest kicked off right before Christmas, with a goal of using some of the seasonal downtime to produce cool, internal applications that we could effectively “hang on the wall”.  The prize?  Brand new iPhones for the winning team.  The only rules?  The application had to reflect real usage of LinkedIn, it had to run continuously (so it could be left up 24×7), it had to be designed for display on a 720P monitor (1366×768), and it had to run in either Safari or as a Mac OS X screensaver.

Five projects were submitted, and several became staples of our decoration in 2029 for all of 2008.  (Coincidentally, December 2007 was also the first time we pull the live Twitter search for “LinkedIn” up on the wall for everyone in Product & Engineering to see at all times through the day).  The winner of the “Pure Energy” contest, NewIn, still lives on in an upgraded form, in both the LinkedIn reception lobby as well as on LinkedIn Labs.

Key Ingredients

We’ve learned a lot in the past four years about how to make Hackdays successful at LinkedIn, but at a high level, there are ten key ingredients that make LinkedIn Hackdays work.

  1. For Engineers, By Engineers.  This may be obvious, but Hackdays are highly optimized events around engineering culture.  There may be a lot of opinions about what would be considered “fun” or “useful”, but for Hackdays, in the end, is designed for engineers.  This effects everything from the timing, the prizes, the venue and the communication around it.

  2. Spirit of Exploration.  Hackdays have an opinionated culture, and one of those opinions is that with software it is infinitely better to learn by actually doing, rather than reading / talking.  It’s part of why people go into engineering in the first place.  This is one of the reasons that we celebrate hacks that are purely to learn a new language, environment, algorithm, or architecture.  This is not just a fun thing to do – it’s an incredibly effective way to expose talented engineers to new technology, and more importantly, set a tone that we should always be learning.

  3. Independence.  Hackdays are a day of true self-determination.  At LinkedIn, we believe that small, cross-functional teams build the best software.  Teams do a great job looking at product metrics, customer requests, and innovative ideas from the team, and then prioritizing what to work on.  Hackdays are a day to break free, and work on whatever you personally find interesting.  If you have a great idea, this is the day to help make it a reality.

  4. Company-wide Event. Hackdays may be optimized for engineers, but everyone is invited and included.  Some of the best Hackday projects come from an engineer, web developer and product manager working together.  We’ve had entries from almost every function, and from multiple offices.  Most importantly, hackday projects are shared with the entire company on the intranet, and Hackday Judging is an event that everyone is encouraged to attend.  Winners are announced to the whole company.  It’s incredibly important to cement hackdays as a part of company culture, rather than something that lives within the engineering function.

  5. Executive Attention.  Believe it or not, it wasn’t until 2010 that we stumbled upon an obvious truth.  Executive attention matters.  Actions speak louder than words, and when executives make a point to attend, reference, and discuss hackday projects, it makes a huge difference to the entire organization.  At every LinkedIn Hackday Judging event, you’ll now find at least three of LinkedIn’s senior executives on the panel.

  6. It’s a Contest, but Loosely Enforced.  LinkedIn Hackdays are thrown on Fridays, with the submission date for projects due at 9am on the following Monday.  Teams are limited to five people, and projects have to be presented live for Hackday Judging to be considered for prizes.  Having rules for hackdays is a delicate balance – if you are too weak on enforcement, people lose faith in “the system”, and you’ll get discontent from the people who follow them.  However, too tight on the rules, and you break the independent spirit of the event.

  7. Hackday Judging, or Hackday Idol?  Hackday Judging has morphed over the years into an “American Idol” like event.  The hackdays themselves are relatively independent and quiet.  It’s the judging that is the main event.  Teams are given two minutes to demo their hacks.  The panel of celebrity judges is given a minute to asks questions, and then it’s on to the next project.  We serve lots of food & drink, and try to make it a fun event.  (Typically, I fill the role of Ryan Seacrest.  Yes, I know that my mom would be proud.)  There is a lot of laughing, a lot of cheering, and we try to make a good time for everyone.  Most people who attend leave the event incredibly inspired by what their co-workers come up with.  More importantly, once people attend, they tend to come back again (or better yet, enter their own projects.)  We now have everyone in the company help judge by tweeting out their favorite projects with the project name and a #inday hashtag.

  8. Lots of Prizes. We give prizes to every team that present a project at Hackday, typically a reasonably sized Apple gift card.  Winning teams get larger dollar amounts.  We have 5-6 regular categories, so there are always multiple winners.  Some times, we give additional prizes for stand out projects, but that’s up to the judges.  The reason for gift cards is logistics – giving out iPhones, iPods, Flip cameras, etc sounds like a great idea, but too often you get winners who already have one, or who don’t want one.  (The Apple bias bugs some people, but the truth is we’ve experimented with a wide variety of prizes, and people on average seem to really prefer these.  We did notice that our college interns preferred Amazon gift certificates, however…)

  9. Path to Production.  Some hackday projects are so impressive, there is a natural desire to shout “SHIP IT!”  In reality, however, hackday projects can vary significantly in their technical and product appropriateness for a large scale production environment.  At LinkedIn, we’ve now found multiple ways for people to share their hacks.  Some projects live on hosted on internal machines, and are used by employees.  Some of our best internal tools have come from previous hackdays.  Other projects are built over the LinkedIn Platform, and can be launched to end users on LinkedIn Labs.  Some projects are actually extensions of our production codebase, and actually become live site features.  (Example: The 2010 Year In Review email began as a Hackday Winner, as did the inline YouTube expansion in the LinkedIn feed.)

  10. Learn & Iterate.    We are big believers in continuous improvement, and I don’t think there has been a single hackday where we didn’t add some improvements.  We constantly try out new things, and stick with the ones that work, and shed the ones that don’t.  The pace of innovation has dramatically quickened as hackdays became more frequent, and as the company has grown larger.

Common Issues & Questions

It would be impossible to capture all the common questions about hackdays here, but I thought it was worthwhile to capture a few persistent questions that we’ve debated in our process of creating LinkedIn Hackdays.

  • I have a great hackday idea – how do I find engineers to build it?
    This is a really well meaning question, typically from non-technical employees, who are excited about the idea of hackday, but lack the means to implement it themselves.   The most reliable way that people solve this problem is by talking about their idea broadly, and effectively evangelizing the idea of forming a hackday team around it.  In the past, we’ve tried throwing pre-hackday mixers, usually around a technical topic, to help people find teams, but it’s had at best mixed success.

  • I want people to build features for XYZ – how do we get people to do it?
    This question typically comes from a product manager, executive, or business owner who sees hackdays as a massive amount of valuable potential engineering effort for their area.  In this case, the short answer is that hackdays are about independence – the more you try to get people to do what you want, the more energy (and innovation) you sap from the system.  That being said, we’ve seen quite a bit of success where teams sponsor “special prizes” for a specific category on a given hackday.  Example: an iPad 2 for the project voted best “developer tool”.  This approach seems to provide the best balance of independence and incentive to generate the desired result.

  • How do we get all hackday projects live to site?
    This question assumes that the goal of all hackday projects should be to go live to site.  However, given the education and innovation mandate of hackday, there are actually quite a few projects that are not intended to go live to site, and that’s not a bad thing.  The way that we’ve handled this question is by providing both a variety of mechanisms for projects to “go live”, as well as prize categories for projects that are not based on being a “shippable” feature.

  • How can we spare a day from our priorities for a Hackday?
    In some ways, this is the big leap of faith.  For anyone who has attended any of the recent LinkedIn Hackdays, it’s hard to imagine this being considered seriously at this point.  However, at small companies, there are always more things to do than time to do them.  The decision to have hackdays is largely based on the belief that giving people time to learn by doing and to pursue independent ideas will pay off in multiples, not just in the projects themselves, but in the attitude and energy it brings to the company overall.  In some ways, you can view it as an HR benefit that also has a measurable positive impact on culture, internal technology, and product innovation.

  • How do we get people to participate?
    The ten ingredients above reflect the system that we’ve devised, but the truth is it took time for hackdays to build into a culture fixture at LinkedIn.  In 2008, we threw two hackdays, and had about half a dozen teams enter each.  However, as the company celebrated each hackday winner, we saw demand pick up.  We had a major breakthrough in participation when we launched the “Hackday Idol” format for judging in early 2010, and since then we’ve seen incredible growth in the number of participants and projects.

What’s Next?

I’ve got a few new innovations ready to roll out for the May 20th hackday.  Not to spoil the surprise, but we’ll be rolling out for the first time a new “Hackday Masters” designation and category, for people who have won at least three hackdays.

Hopefully, the Wizard of In will smile down on us, and as always reward those who seek to bend code to their will.

Easter Egg: The LinkedIn Wizard Goes Web-Wide

For some reason, I *love* Easter Eggs.

No, I don’t mean the candy colored eggs that people make and roll to celebrate the holiday.  Easter eggs are the playful name for hidden features, games, and funny content that software engineers embed in their products for fun.  This was extremely popular in the early days of consumer software in the 1980s (there is even a Wikipedia page dedicated to Microsoft’s early easter eggs.)

You still see easter eggs in websites from time to time.  Maybe a funny error page.  Maybe a game appears when you click the right spot on a web page.  But it’s not as common as it used to be.

The New LinkedIn Platform

Today was a huge launch for the LinkedIn Platform team.  After months of effort, the team launched an incredible new way for developers to bring powerful professional identity & insights into any web application. (If you haven’t checked out the new developer.linkedin.com, definitely go do it now.)

The LinkedIn Wizard

I am proud to reveal tonight, on my personal blog, that thanks to Jakob Heuser, there is an eighth “undocumented” professional plugin for the web.  If you want to see it, all you have to do is use the following script on your website:

<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>

<script type="IN/Wizard" size="large"></script>

 

The Wizard of In, patron of all LinkedIn Hackdays, has gone web-wide.

Upgrading a NetGear Infrant ReadyNAS NV+ to 6TB

Recently, I’ve been evaluating different solutions for upgrading my home storage solution for backup and file storage.  A couple of years ago, I decided to purchase an Infrant ReadyNAS NV+, which offers appliance-level simplicity to deploy a virtualized drive over a flexible RAID system.   It’s a 4-drive system that supports hot-swapping of drives and optimized Ethernet traffic for mixed (Mac & Windows) networks.

I’ve been happy with the ReadyNAS, and performance has been fairly good since I upgraded the Gigabit switch that I use.  However, over the past two years, my storage needs have grown:

  • iMac 27″: 2 TB drive for documents / applications / photos, 2 TB drive for iTunes, 2 TB for Time Machine
  • Macbook: 250GB main drive

The ReadyNAS has 4 750GB drives, providing 2.25 TB of available storage.  At the time I deployed it, my backup needs were about 1 TB, so I could use the drive for backups and incremental updates.

The problem now is the iTunes drive.  It’s too large to backup effectively with Time Machine.  I’ve been using Carbon Copy Cloner to update a disk image of the drive on a weekly basis, but I’ve found that it’s extremely finicky and errors out in a number of situations.  Plus, at 1.6TB, the iTunes library will likely outgrow it’s 2TB home sometime in 2010.  (If you’ve ever purchased a TV season on iTunes, you’ll understand the storage needs).

In order to figure this out, I tried asking the question on Quora, LinkedIn, and Twitter.

So, I decided to make the big move to upgrade the system.  Looking at prices on NewEgg, I decided to opt for the Western Digital WD15EARS SATA 1.5TB drives.  Low power and 64MB of cache.  $109 each.  (Great price – selling the 750GB drives will likely pay for 25% of the upgrade).

Unfortunately, the drive wasn’t listed on the compatibility page on NetGear’s website.  Fortunately, a quick board question provided me with the info I needed – the drives will work, if I upgrade to the new beta firmware (4.1.7 T29).

So that’s what I’m doing tonight:

  • Upgrade firmware
  • One-by-one replace each 750GB drive with a 1.5TB and let it resync
  • Once all four drives are replace and synched, reboot and let it reconfigure to the 4.5 TB logical size.

Once I get the ReadyNAS NV+ to 4.5 TB, I’m going to move my iTunes library to the ReadyNAS.  This way, it can scale easily to more than 2 TB, and I don’t have to worry about backup because of the RAID configuration.  (I have a clone of most of the library on a Mac Mini in the kitchen.)  I will then move the 2 TB drive that currently houses the iTunes library, and move it to the Airport Extreme hub so I can use it as a Time Machine drive for the MacBook.

I’m not sure this information is actually useful to anyone.  My guess is that someone, somewhere out there will want to know that you can, in fact, upgrade the Infrant ReadyNAS NV+ to more than 4TB, and that you can use the Western Digital DV15EARS 1.5TB drives with it.  And maybe, just maybe, someone out there is morbidly curious about the evolution of my network storage.

Or so I hope.  I’ll update this post if anything goes wrong.

Rethinking IT as an HR Benefit

This has been something that I’ve been thinking about heavily for the past few years.  There is a trend in Silicon Valley that has been under-appreciated in the press, but nonetheless has rapidly swept through technology companies in the Bay Area. It may not be buzzword-enabled (yet), but it nonetheless may be a truly transformative event for our industry.

More and more companies seem to be thinking of IT as a human resources benefit.

(If your eyes just rolled back in your head, stay with me for a second.  This is a big deal.)

Historically, IT has been positioned as one of two things in the enterprise:

  1. Cost Center. In this model, IT technology and services are a required cost of doing business and being competitive, but don’t add any differentiation versus your competitors.  As a result, IT is managed by cost, and the goal is to provide “sufficient” productivity compared to other comparable companies at the lowest possible cost.  In this frame, every software purchase, every hardware purchase, every investment in training or personnel is evaluated based on price.
  2. Productivity. In this model, IT technology and services are seen as productivity enhancements, and potential differentiators.  Here, investments are made based on an Return on Investment (ROI) justification, where the benefits can include saving time and/or people, or potentially boosting output or revenue.  In this frame, there is a heavy bias towards technology that allows people to get more things done, more quickly, and with fewer errors.

Both of these models tend to heavily favor technology that is cheap.  What they don’t favor is technology that is enjoyable to use.   This has led to many decades of enterprise technology that is sold to decision makers at the top of the organization, and rolled out to reluctant employees who bear the brunt of the cost savings and/or potential productivity gains.

I had never considered that there might be a third model until a blog post about IT at Google surfaced in 2006.  [Note: I hope someone can find this URL for me – I’ve tried with no luck tonight].  This post wrote about how Google set up stations on every floor, with surplus batteries and machines to make swapping out faulty equipment a breeze.  It talked about giving employees a choice of platform to work on.  Most importantly, it talked about thinking about IT as an HR benefit.

IT as an HR Benefit

When you think about benefits in a human resources context, there is a very different frame of reference.  In business school, students who take incentives classes learn about different forms of compensation and their impact on psychology.  In theory, benefits need to justify their existence in some way beyond straight cash compensation.  Sometimes benefits are required because competitors offer them.  Sometimes benefits are offered because it’s cheaper, due to taxes or bulk purchasing power, for the company to buy them than the employee.  Benefits can be long term, or reward certain types of behavior.  In some cases, benefits are offered because people actually appreciate them more than the equivalent of cash.

In most companies, while benefits are in the end a cost center, they are factored into the general budget and philosophy around compensation of employees.  As a result, more often than not, benefits tend to compete with each other.  Given a compensation budget, what percentage of dollars will be spent on salaries vs. bonus vs. benefits?  Would employees prefer a 401k match or transportation vouchers?  Charitable contribution matches or gym discounts?  Who benefits from each program, and how much?  Will the benefit help with recruiting new employees, or with employee satisfaction and retention?

When framed as an HR benefit, IT comes under a whole different light.  Consider:

  • What percentage of your employees time is spent in front of a computer?
  • What is the relative cost of newer, more enjoyable technology over the “base model”?
  • How much would an employee appreciate dollars spent on IT technology vs. other benefits?
  • How does your technology affect your internal corporate culture?

These are very different questions than the ones that tend to drive historical cost-driven IT decision making.

In this model, you might get everyone a 24″ flat panel monitor instead of a 20″ monitor.   Why?  Because as a benefit, this might only cost $50 per employee per year, and they would appreciate it far more than the dollars themselves.   And they would appreciate it for hours every single day.  In fact, they might want to stay at work longer to use it compared to the machine they have at home.

In this model, you might give everyone the choice of mobile device (Blackberry, iPhone, Android, etc).  Of course, it would cost more in software support and development, but allowing employees to use the device of their choice might be appreciated every single day.  It also might make them a little more reluctant to consider working in an environment where they are forced to use a less-preferred platform.

LinkedIn

At LinkedIn, our IT department provides a wide range of choices, which we actually advertise on job postings:

  • Choice between Mac or Windows environment
  • Choice between laptop or workstation
  • Choice between two 24″ displays or a single 30″ display
  • Choice between iPhone or Blackberry

Do these technologies boost productivity?  Absolutely.  Do these technologies cost more than a homogenous, lowest-cost environment?  Absolutely.

But when you look at this list, it’s hard not to see them as benefits.  I see new employees every day, almost giddy when they first get their first laptop and 30″ display, or a tower with 24GB of RAM.  I hear people with guests at lunch brag about how LinkedIn lets you have an iPhone or a Blackberry.

Many of these employees spend anywhere from 4 to 10 hours with this equipment every day – is it any wonder that they perceive these as benefits?

Thoughts for the Industry

The question I have is, how pervasive is this trend?   For most office workers, any computer offers sufficient speed and available software.  In the consumer market, with the resurgence of design-based thinking, we’re seeing more products and profits driven by quality of the experience rather than quantitative metrics or feature checklists.  Will it spread to the enterprise?   Will employees demand it?

Many great professionals that I know in IT long to provide better products and services to their fellow employees.  Maybe this is the opportunity for IT & HR professionals to work together to reframe the way we justify technology at work.

LinkedIn for iPhone 3.0 is LIVE!

Just a quick note to say that the new version of LinkedIn for iPhone is now live in the iTunes App Store.

Download LinkedIn for iPhone

I wrote a fairly lengthy piece on the official LinkedIn blog, so no need to replicate the full walk-through here.  In any case, check out this new home screen:

This application represents a huge achievement for the team.  It’s really a complete redesign and re-architecture of the entire stack supporting the application, based on an end-to-end design that was driven by user feedback and business metrics.

Building iPhone apps is a wonderful throwback in some ways to the days of client software, except with the advantage of over a decade and a half of web-based architectures.  There is a richness to client applications that the web still doesn’t replicate, and a complexity and depth to their design that is often under-appreciated.

Of course, the team had fun too.  The “Themes” feature, for example, was never part of the original plan.  It was originally a last minute easter egg that we included for fun in internal testing.  It proved so popular, however, we felt like we had to include it for everyone.

There are hundreds of things I love about this new application.  Even the way it presents a user’s profile is thoughtful, as LinkedIn is designed to allow you to put your best foot forward as a professional:

Of course, I wouldn’t be a product manager if I didn’t also have hundreds of things I’d like to see improved in the application.  It has been fun to watch the Twitter stream all day, as the feedback has been mostly positive.  Still, while this application represents a big leap forward for LinkedIn on the iPhone, it’s really just a beginning.  What’s most exciting about the architecture of this application is that it will let us rapidly innovate and improve the mobile experience through 2010 and beyond.

So here’s a quick shout out to the team – thank you for the hard work and effort in 2009 to produce an iPhone app we can be proud of.   I couldn’t be more excited for 2010, as we change the way people think of mobile business applications.

LinkedIn Takes People Search to Eleven

I apologize for the reference to Spinal Tap, but this is my personal blog after all.

I normally don’t post most LinkedIn announcements here, but this one is too big to ignore.

On Monday, LinkedIn made faceted search available to all members.  This effort brought to fruition efforts that date back to 2007 to completely rearchitect and redesign the LinkedIn search experience based on the unique characteristics of people search.

Rather than try to describe the feature here, I’ll just point to the formal LinkedIn blog post by Esteban Kozak, and embed his great youtube video on the feature:

The news coverage has been flattering:

What’s most exciting to me, however, is that these are still very early days in the development of the LinkedIn search platform.  It took LinkedIn over five years to amass its first billion queries.  This year alone, LinkedIn will exceed that number by a wide margin.  People search requires unique investments in structured data, relationship information, search intelligence, and personalized relevance.  (If you’re curious, the Boolean Black Belt got a sneak peak at some upcoming features).

I just wanted to take a moment to say kudos to the entire search team for this tremendous achievement that cuts across all areas – product, design, research, web development, engineering, marketing & operations.

Twitter integration, Open developer program, Faceted Search.  What a great way to launch into the holidays.

Can’t wait for January 🙂

Quicken 2007: How to Repair A Broken File

Only a long time Quicken user will empathize with the trauma of having your Quicken data file fail to open.  It happened to me this weekend, and after a couple days of experiments, I finally solved the problem.  I’m posting this here on the blog because my Google searches on the topic turned up *nothing*, and the Intuit boards were useless on this topic.

First, background:

  • I’m using Quicken 2007 for the Mac, updated with the R2 updater and the R3 Certificate updater.  This is the most recent version.
  • I’ve used Quicken since 1994 to keep track of my expenses and investments.  That’s right, this file has 15 years of meticulous data in it.
  • Quicken for the Mac users at some level are masochists.  Circa-2000, Intuit decided that the Mac market wasn’t worth supporting, and effectively ended support for the product.  As Steve Jobs brought the Mac back, Intuit brought back support… but very little enhancement to the product.  Quicken 2007 is largely the same as the Quicken 1999 product, except far more rickety and long in the tooth.

OK, so here’s the story:

  1. About 3-5 weeks ago, when downloading stock quotes, I got a very strange error.  It said something like “Unable to create INTC. Security already exists.”  (Of course it exists, I’ve been tracking INTC for more than 10 years…)
  2. About 2 weeks ago, I quit and relaunched Quicken for some reason (my machine tends to stay up for weeks at a time.)  On relaunch, all of my “manually entered” stock quotes were gone.  After a brief panic, I restored a file from Time Machine from a week prior, and all was forgotten.
  3. Periodically, I received that error when downloading stock quotes.
  4. On Friday, I restarted Quicken and got a spinning beach ball.  I thought it hung, so I force quit it, and restarted.  Spinning beach ball.
  5. No worries, right?  I have multiple backups.  I use Time Machine to get an older file.  I launch. Spinning beach ball.
  6. Uh oh. Mild panic.  I tweet.  No one tweets back.
  7. I go to the “Quicken Backup Folder”, which is created automatically in your Documents folder.  I select several of the backups, duplicate them, and try to launch them.
  8. Good news, the file from November 12 actually works, but all security prices are missing.
  9. Bad news, it’s missing two weeks of data!  A lot of manual re-entry of the last two weeks.  Not too bad though.
  10. On Saturday, I quit Quicken and relaunch as part of a reboot.  Spinning beach ball.
  11. Uh oh. Time Machine backups don’t work.  I tried five of them from the last three weeks.
  12. Double Uh Oh. The only file that seems to work is that one from November 12.  But it gives me an error “Unable to save security”.  It works, but is missing all security prices. But it’s missing the two weeks of transactions.
  13. A bit of panic here. I search Intuit boards.  No luck.  I post a question anyway, even though the community on the boards gives me no confidence of ability to help or desire to do so.
  14. I delete Quicken 2007 and all preference files, and try to reinstall + updaters.  No luck.
  15. Tweets return nothing, except strange semi-taunts like, “I hate Quicken too.”
  16. Finally, I realize I may have to create a new file, then export/import all the transactions to create a new clean file.  Creating the file works.  Trying to export QIF and reimport into the new file leaves totally bizarre numbers and transactions.  Seriously, has QIF export ever worked in the past two decades?  Will it ever work?
  17. Desperation.  I start seriously contemplating doing all my finances in Mint… except Mint doesn’t actually support managing accounts without online access that well.  I like Mint, but I use it differently than Quicken…
  18. Hail Mary. The Quicken file isn’t really a file, it’s a Mac OS Package.  It’s a fancy name for a directory of files that is tagged to act like a single file for the Finder.  Looking inside, I find a data file for “Quotes” and a directory for “Quotes Details”.  I delete both.
  19. Salvation.  I launch Quicken.  No beach ball.  Works beautifully.   All stock quotes are gone, but a quick click to download quotes fixes that.  I manually re-enter the few securities that don’t have ticker symbols.  Everything is wonderful again.

So, just to capture some trouble-shooting for you, here is what I saw:

  • Launching Quicken with the corrupted file led to a spinning beach ball for over 30 minutes
  • When it did finally load, it gave me an error “Unable to open file”
  • There was a history of getting errors related to the downloaded stock quotes for securities

Solution was:

  • Make a duplicate of your Quicken file (always, always have a clean backup)
  • Right-click (or control-click) on the Quicken file.
  • Select “Show Package Contents…” from the Finder.
  • Double-Click on the “Contents Folder”
  • Select the “Quotes” file and the “Quotes Details” folder
  • Drag them to the trash, and empty trash
  • Relaunch Quicken with the file

Thus, I am still a Quicken user, at least for a little while longer.  Intuit, if you are reading, please get Quicken 2010 (which has been promised for two years) out the door.  And make sure the import from Quicken 2007 files is *flawless*.

LinkedIn for IBM Lotus Notes is Live

Kudos to the team.  LinkedIn for IBM Lotus Notes is now in beta.

LinkedIn Blog: LinkedIn Widget for IBM Lotus Notes Now Available

Quote from Ed Brill, Director of Product for Lotus Notes at IBM:

This week, IBM and LinkedIn are announcing the availability of the LinkedIn plug-in for Lotus Notes.  This easy to use add-in dynamically displays LinkedIn profile, status, and other information in the Notes 8 sidebar.  The new plug-in is a great example of “contextual collaboration” — where users access relevant information without having to leave behind what they are already working on.

Special kudos to the LinkedIn LED Team, and to Elliot Shmukler for this big win.

In fact, the only thing I find a tad disappointing is the lack of a new Elliot blooper reel for this launch.  As a consolation, I’ll link to the old one from 2008 here.

Stanford CS193P: iPhone Application Programming Launches Tomorrow

A little too busy tonight for a long blog post, but thought I’d share how excited I am to be helping assist the launch of a new course at Stanford this Fall:

CS 193P: iPhone Application Programming

The class website is still a work in progress, but it will come along.  The course is open to Stanford undergrad and graduate students, as well as through the Stanford Center for Professional Development (SCPD) on video.  Enrollment is limited, and my guess is that it will be oversubscribed.

A wonderful opportunity for me to dust off the old Objective-C skills, and help give back to the Stanford community.  Launching new courses is always exciting, and I feel very lucky to be involved with this one in particular.

It might sound crazy to take this on in addition to the full load at both work and at home, but I’m excited to get back involved with teaching, and that’s worth the potential sleep deprivation for the quarter.

The Limits of Quantum Computers by Scott Aaronson

I had a business trip to Boston this past week, which means I got a lot of good reading hours in on the plane ride across the country.  As a result, expect to see some intellectually inspired posts this week.

Tonight, I’m going to start off with an easy one – the most recent issue of Scientific American.  It is a great issue.

Actually, three of the articles were blog worthy.  Tonight, I’m going to highlight the great piece by Scott Aaronson called “The Limits of Quantum Computers“.

Here is a synopsis, from the top of the article:

  • Quantum computers would exploit the strange rules of quantum mechanics to process information in ways that are impossible on a standard computer.
  • They would solve certain specific problems, such as factoring integers, dramatically faster than we know how to solve them with today’s computers, but analysis suggests that for most problems quantum computers would surpass conventional ones only slightly.
  • Exotic alterations to the known laws of physics would allow construction of computers that could solve large classes of hard problems efficiently. But those alterations seem implausible. In the real world, perhaps the impossibility of efficiently solving these problems should be taken as a basic physical principle.

Nah, I don’t think that does it justice.

I’ve been following Quantum Computing off-and-on since the mid-1990s.  I took my first Automata & Complexity course at Stanford (CS 154, from Rajeev Motwani) back in 1995.  One of the truly mind-opening courses in the Computer Science undergrad.  Recognizing that there are mathematical frameworks to not just solve problems, but to describe their complexity is fascinating.

Quantum Computing is fascinating because it takes advantage of the truly strange physics of entanglement, a state in Quantum Mechanics where particles can share a matching, but unknown, fate.  A separate branch of algorithmic mathematics has sprung up around analyzing what types of problems, if any, would be simpler to solve on the basis of a computer that leveraged these “Quantum Bits” or QuBits, for short.  At the same time, molecular scientists have struggled to make progress building very small quantum computers.

To date, there are a small number of algorithms that Quantum Computers have been proven to be able to solve significantly more efficiently than traditional computers.  Interestingly, most of them revolve around factoring, which happens to be the one area that we base most of our security algorithms around.  It turns out that factoring a very large number into two primes is very difficult for normal computers, but very easy for quantum computers.

I don’t think I can summarize an 8-page detailed article here, but let’s just say that in this short article, Aaronson manages to:

  • Give a high level overview of basic complexity theory
  • Give a background on what Quantum Computing is, generally
  • Give a background on what makes Quantum Computing different, algorithmically
  • Give examples of the types of problems that QC will significantly improve
  • Give examples of the types of problems that QC will not significantly improve
  • Give interesting mathematical & physics implications of QC algorithmic theory
  • Intersperse the above with incredibly useful diagrams and drawings

Here is my favorite chart in the article – a simple one that maps the changes that quantum computing introduce in the world of algorithmic complexity:

And that’s just one of the sidebars!  🙂  It’s interesting to note that, after scanning this, I discover from Scott’s blog that he had to fight to get that diagram included!

The complexity class inclusion diagram on page 67 was a key concession I did win. (Apparently some editors felt a Venn diagram with P, NP, BQP, and PSPACE would be way too complicated, even for readers who regularly gobble down heaping helpings of M-theory.) As you can imagine, exposing people to this stuff seemed pretty important to me: this is apparently the first time P, NP, and NP-completeness have been explained at any length in Scientific American since articles by Knuth and by Lewis and Papadimitriou in the 1970’s.

Much appreciated, Scott.

Scott Aaronson has his own blog:
http://www.scottaaronson.com/blog

and he also runs an online encyclopedia for complexity classes:
http://www.complexityzoo.com

And to think, I was just at MIT and missed the chance to meet him. 🙂

The article is not yet fully online, but if you have a chance, I highly recommend picking up a copy of the issue.  Scott has posted an early draft of his article, in PDF, here.  Or better yet, subscribe.  It really is the one scientific magazine to subscribe to if you want to keep up-to-date on a broad range of scientific discovery.

Mozilla Firefox 3 Beta 3: First Impressions

Got to be careful what I say here.  Mike Schroepfer might be reading. 🙂

Actually, I was reading his blog when I found out that Firefox 3 Beta 3 is out.  You can download it here.

I’m playing the naive user for now… just installed it and using it, without reading up on the specifics of the new features.  I’m trying to see what I actually notice without any prep.

First thing… it’s FAST.  Much faster than Firefox 2.  And much much more stable with lots of tabs left open, although I need to give this a bit of a test through the weekend.

One of my biggest problems with Firefox 2 has been based on my particular usage habits.  I tend to open a lot of web pages in tabs, and leave them open for days (or weeks), as reminders to either read the pages or blog about them (or both).  What I’ve noticed is that once I get a large number of open tabs (20+), Firefox starts lagging my entire machine.  I don’t have the fastest machine in the world (PowerMac G5, Dual 2.5Ghz, 2.5GB RAM), but I’m pretty sure it should be able to display 20+ webpages at one time. 🙂

Anyway, everything is faster with Firefox 3.  My eBay loads faster.  SYI 3 loads faster.  WordPress.com loads faster.  Email links that open URLs in Firefox open faster.  And when I launch with a dozen or more tabs, it feels much more stable, not locking up nearly the way that Firefox 2 did.

I’m noticing on Mac OS X (10.5) that the controls look a little goofy.  The small controls used on eBay now come out as Mac-like round buttons, but the font is off-center.  Also, the drop-down menus actually have their text one pixel below the end of the menu control.

This is stuff I’m sure that’ll get fixed by final release.

We’re obviously going to have get busy updating our LinkedIn toolbar – Firefox 3 informed me the current version isn’t compatible.  I use that toolbar every day, so I’m going to have to make sure that gets fixed.  🙂  In fact, none of my toolbars were verified to work with Firefox 3, which is probably a good thing since I don’t use most of them anymore anyway.

I’ve been very happy with Firefox vs. Safari since I switched about two years ago.  I was debating whether Safari 3 and the rise of the iPhone meant I would eventually have to switch back to Safari as my primary browser.

It’s not final, but my first few hours on Firefox 3 has left me fairly confident that Mozilla will continue to be my browser provider of choice for the foreseeable future.

You know, I just realized that Mozilla’s success making a great web browser for the Mac proves the lie in Microsoft’s excuses for abandoning the platform.   Firefox proves:

  1. That a great web browser can be built as a stand-alone application, not as a component of the OS.
  2. That a great web browser can be built on the Mac by a company other than Apple.

These were, of course, the two nominal reasons that Microsoft gave back in 2002 for dropping Internet Explorer on the Mac.

As Apple market share continues to grow, and the concept of an all-Windows workplace fades, I have to wonder – will Microsoft ever reconsider providing IE as a cross-platform browser again?   Even if the Mac has a low (5%) market share, that doesn’t mean only 5% of companies will have Macs deployed.  It could turn out that a vast majority of companies end up with a minority share of Macs in-house.  Does Microsoft really want to cede the cross-platform web application market to Mozilla?

Somehow, I doubt this is being seriously considered in Redmond.  But it’s definitely interesting in the face of a resurgent Mac platform and a cross-platform Firefox & Safari.  Internet Explorer for the iPhone, anyone?

Electronic Warfare: Israel’s Syria Bombing Raid

I don’t normally post about military or political events here, but this this article had a specific technology angle to it, and I thought it was too interesting to ignore.

From Aviation Week:

Syrian President Bashar al-Assad said the Israelis struck a construction site at Tall al-Abyad just south of the Turkish border on Sept. 6. Press reports from the region say witnesses saw the Israeli aircraft approach from the Mediterranean Sea while others found unmarked drop tanks in Turkey near the border with Syria. Israeli defense officials admitted Oct. 2 that the Israeli Air Force made the raid.

blog post photo
The big mystery of the strike is how did the non-stealthy F-15s and F-16s get through the Syrian air defense radars without being detected? Some U.S. officials say they have the answer.

U.S. aerospace industry and retired military officials indicated today that a technology like the U.S.-developed “Suter” airborne network attack system developed by BAE Systems and integrated into U.S. unmanned aircraft by L-3 Communications was used by the Israelis. The system has been used or at least tested operationally in Iraq and Afghanistan over the last year.

The technology allows users to invade communications networks, see what enemy sensors see and even take over as systems administrator so sensors can be manipulated into positions so that approaching aircraft can’t be seen, they say. The process involves locating enemy emitters with great precision and then directing data streams into them that can include false targets and misleading messages algorithms that allow a number of activities including control.

A Kuwaiti newspaper wrote that “Russian experts are studying why the two state-of-the art Russian-built radar systems in Syria did not detect the Israeli jets entering Syrian territory. Iran reportedly has asked the same question, since it is buying the same systems and might have paid for the Syrian acquisitions.”

I find it a little surprising that your could commercialize an exploit like this.  I’ve done enough security software work to know that it’s not surprising that any system engineered in the last 50 years would have vulnerabilities.  Thanks to the ongoing wars over security on the Internet, in fact, our ability to “crack” into systems seems to be growing at a rapid pace.

That being said, when an exploit is discovered, typically a patch is quickly produced.  For example, if they find a serious exploit tomorrow in a common piece of networking equipment, like a Linksys home router, typically a software patch would be quickly released to block that exploit.

As a result, if an exploit like this existed in serious military systems, you’d think that a patch would be quickly released to block it.  The lead times to produce military systems in volume would seem to preclude commercializing an exploit the way this article describes.

Then again, I guess the exploit would have two things going for it:

1) The exploit would not be used frequently, making it hard for the enemy to “simulate” or understand the exploit well enough to produce a patch.

2) Not everyone keeps up-to-date with their security patches… do you?

It would be a fascinating turn of events if the next-generation military advantage did not depend on speed, munition strength, or even targeting & accuracy.  Instead, the real advantage could go to the force who could most rapidly disable and coopt enemy systems.

Intel demos USB 3.0 at 4.8 Gbps. Wow.

Not sure if this will play out in commercial production, but Intel demoed USB 3.0 at the Intel Developer Forum last week.

There is good coverage of the event and the specification here on CNET.

Intel is working fellow USB 3.0 Promoters Group members Microsoft, Hewlett-Packard, Texas Instruments, NEC and NXP Semiconductors to release the USB 3.0 specification in the first half of 2008, said Pat Gelsinger, general manager of Intel’s Digital Enterprise Group, in a speech here at the Intel Developer Forum.

In an interview after the speech, Gelsinger said there’s typically a one- to two-year lag between the release of the specification and the availability of the technology, so USB 3.0 products should likely arrive in 2009 or 2010. A prototype shown at the speech is working now, and USB 3.0 will have optical and copper connections “from day one,” he added.

The current USB 2.0 version has a top data-transfer rate of 480 megabits per second, so a tenfold increase would be 4.8 gigabits per second. Many devices don’t need that much capacity, but some can use more, including hard drives, flash card readers and optical drives such as DVD, Blu-ray and HD DVD. The fastest flash card readers today use IEEE 1394 “FireWire” connections that top out at 800 megabits per second.

In addition, USB 3.0 will offer greater energy efficiency, Gelsinger said. It will be backward compatible, so current USB 2.0 devices will be able to plug into USB 3.0 ports.

It took me a while to trust USB 2.0 for high speed peripherals like hard drives (versus IEEE 1394 Firewire), but my recent 500GB USB 2.0 external drives have converted me.  The key is to keep them on a dedicated bus, so that USB 1.x devices don’t slow them down.

At 4.8Gbps, I’ve got to wonder whether or not 10G Ethernet will be available in the home in 2 years.  If not, I could see actually preferring USB 3.0 to either eSATA or GigE for my multi-terabyte NAS.

We’ll see.  A lot can happen in 2+ years.