There was an error in this gadget

Thursday, September 13, 2012

Cross-posted from O'Reilly Radar: Mobile developers, integration, and discovery are what count now

I wrote this guest post on O'Reilly Radar.  It's about three new battles to watch as the mobile hardware gap closes.


Tuesday, September 11, 2012

Video interview: Lessons about carrying out high-impact projects

Andy Oram, my editor at O'Reilly, did this fun interview: "Lessons about carrying out high-impact projects from author Chris Vander Mey"

He writes:

Chris Vander Mey, CEO of Scaled Recognition, and author of a new O’Reilly book, Shipping Greatness, lays out in this video some of the deep lessons he learned during his years working on some very high-impact and high-priority projects at Google and Amazon.
Chris takes a very expansive view of project management, stressing the crucial decisions and attitudes that leaders need to take at every stage from the team’s initial mission statement through the design, coding, and testing to the ultimate launch. By merging technical, organizational, and cultural issues, he unravels some of the magic that makes projects successful.
Highlights from the full video interview include:
  • Some of the projects Chris has shipped. [Discussed at the 0:30 mark]
  • How to listen to your audience while giving a presentation. [Discussed at the 1:24 mark]
  • Deadlines and launches. [Discussed at the 6:40 mark]
  • Importance of keeping team focused on user experience of launch. [Discussed at the 12:15 mark]
  • Creating an API, and its relationship to requirements and Service Oriented Architectures. [Discussed at the 15:27 mark]
  • 22:36 What integration testing can accomplish. [Discussed at the 22:36 mark]

O'Reilly Radar (

Thursday, September 6, 2012

Are you effective? How to measure your personal email signature!

If you're a manager of any kind - product, engineering, people, cats - you send email.  Lots of it.  Each email message you send is an opportunity to build your social network and product awareness. But you don't know how effective your reach is or if you should be changing your messages.

Luckily, it's really easy to measure your email traction.  Follow these three quick steps.

  1. Create a link you can measure in
  2. Add these links to your signature
  3. Measure, modify, and measure again!

1. Create a link you can measure with or Google Short Links. is typically used to create short, easy-to-share links.  But since it's a redirector, it captures that the link was clicked on and who clicked on it.  This is your measure.  It's easy to create a link - just paste it into the website and copy the funny URL you get.  See Figure 1 - that funny "" link is what you want.  Click to copy!

Fig. 1.  Create a link in
UPDATE: If you want to track multiple sources to the same point (e.g. in my case I want to know whether my Alumni group is generating more traction than my Meetup group), you need to create unique URLs.  On most sites you can append a parameter to the destination URL to make it unique.  For example, my book's URL is:
And if I want to make it unique for my Google alumni group, I just add something to the end as a "querystring parameter" - something starting with a question mark and followed by some characters.  You may need to try some different combinations, but on Amazon I just used:

2. Create a signature.

In my case, I created a clear call to action and also linked to my other presences, including this blog.  See the figure below.
Fig 2.  Create an email signature in GMail.  Or whatever.

Now, the Scaled Recognition website has Google Analytics hooked up, and Blogger (my blog hoster) has great analytics, but by creating a signature with links I can measure specific clicks from MY sent email.

3. Measure!

One of the mantras I espouse in Shipping Greatness (note the link!) comes from Lord Kelvin: "That which cannot be measured cannot be improved."  Now that you have measured, you can improve.  You'll get charts like you see below in Figure 3 (just click on Stats in  

Fig 3.  Measure!
One challenge here is that you can't do a proper A/B test in which some recipients of your email get one treatment of your signature and others get a different treatment.  That's OK - sometimes we have to settle and ship the software we have.  You can still change up your signature in a week or two and see whether your audience changes, your traffic changes, and so forth.

What you'll need to do to make this number meaningful is control for email volume.   To do this, create a search in your GMail, or Outlook or whatever, that gives you a count of the number of messages you sent.  In GMail I entered the following into the search box:
after:2012/8/30 before:2012/9/6 from:me in:sent
And from there I get a count of the number of email messages I sent.  The metric you want to drive up is the click-to-email ratio, A.K.A. "conversion."  It is simply this:

# of Clicks / # of email messages sent

Good luck!

Thursday, August 30, 2012

Steve Jobs and his use of the dysfunctional relationship

I finally read Walter Isaacson's great biography of the late Steve Jobs.  I admit, it was more fascinating than I expected, but for a different reason: I found an astounding portrayal of how dysfunction can be captivating.

Steve would routinely berate, abuse, and express great disdain for people, opinions, and ideas.  And yet, people continued to work with him and thought he was a great genius in spite of this dysfunction.  Why is that?

I think it comes down to Reinforcement (wikipedia). There are well established psychological theories of positive and negative reinforcement.  The canonical example is that a rat presses a bar and gets a food pellet.  This is a fixed-schedule reinforcement (blue FR line in the figure below).  This is what most businesspeople follow.  Work->Salary->Promotion.

What's creepy-fascinating is that if the positive reinforcement, the pellet, is delivered randomly instead of every time, the rat is FAR more likely to press the bar.  See the red "VR" line - it's a much steeper slope and a far more effective way of getting taps on the bar.  In business a "tap on the bar" might equate to submitted reports, new ideas, or checked in code.  Some argue that this phenomenon is why people stay in abusive relationships, because even though an individual is abused, there is occasional and random positive reinforcement and that relationship is much harder to leave than one in which the reinforcement is sparse but continuous.
I'd argue that Job's behavior, conscious or not, was quite similar to abusive relationships.  His abuse was constant and his praise was over-the-top and apparently random.  Sure, you could argue that his praise was nonrandom because he would praise people when they finally got the color blue right, but the reality is that nobody else could tell the differences in the shades of blue, which means the results were effectively random.

Can you use Steve's technique to drive a team to produce more and work harder?  Undoubtably.  The success of Apple is one example.  Is it evil?  Undoubtably.  And it takes a certain emotional numbness, which Steve demonstrated repeatedly, to actually pull this off.

If you're still unconvinced, consider drawing a parallel to an individual who exhibited Steve's same svengali-like appeal: H. H. Holmes, circa 1886.  Erik Larson chronicles his story in "Devil and the White City," one of my favorite reads of the year.

If you really want to understand what Jobs meant to business, don't read the book.  Instead, read Isaacson's smart article in the Harvard Business Review.

Friday, July 13, 2012

Writing great software (or anything) means managing your energy.

I've learned one big thing over the past weeks of writing Objective-C (a.k.a iOS or iPhone) code for the first time.  When you feel like the thing you're staring at should work and you don't know why, STOP WORKING!

I have a theory behind this rule.  I borrowed it from Tony Schwartz. The theory is after about 90 minutes the average human starts to lose focus and higher-level cognitive functions drift.  Most artists, developers, writers - you cats - are above average, so maybe you get two hours at the outside.  So after about two hours the extra-ordinary human loses the ability to differentiate between minute details, which is what these silly, frustrating, "why-can't-I-figure-this-blasting-thing-out" problems are all about.

The solutions to silly software problems that make developers like me crazy end up being things like:

  • I included a source file instead of a header file.
  • The index was 0 instead of 1.
  • The name of a variable was misspelled - "tacoTrock" instead of "tacoTruck".  
  • I accidentally overloaded a method name as a variable.
These are all really simple, dumb things.  Good defensive programming can help you avoid them.  For example, using a great IDE (integrated development environment) that has autocomplete and text highlighting will help you avoid spelling errors.  Never using "set" to start a method name helps avoid overloading implicit setters/getters.  Using "isFoo" for boolean variables helps you avoid getting confused by true/false states and "didFoo" is a great naming convention for callbacks/delegates.  

But these practices are not enough; even if you write perfect code with perfect style, you're gonna hit a wall.

When you hit the wall, walk away.  Over the past month or so I've tried to step away for 10-20 minutes when I hit the wall.   When I return to work I've found the answer in less than 15 minutes.  Every. Single. Time.  And when I don't step away?  I waste upwards of an hour and don't get the answer.

Every. Single. Time.

Maybe I'm insane or just far below average, but I doubt it.  Rather, I think we all have to manage our energy very carefully.  Skeptical?  Just try it - run your own experiment.  

If you're a type-A overachiever you will probably feel bad about not working during those 10-20 minutes.  I know I still struggle with these feelings.  So try saying, 

"I am running an experiment.  Good science makes for good products, so practicing this good science for two weeks is a good idea.  At the end of two weeks I will evaluate my progress.  In the meantime, I can't argue with how nice it is to walk up to the coffee shop in the sun..."
If you wonder why I'm at Verite most days between 2:30 and 4:30 it's because A) the Red Sox don't start playing until 4:15PST most days and B) I generally need that walk-to-the-coffee-shop break 2 hours after lunch!

Want to know more about managing your energy?  I wrote about it in Shipping Greatness, and you can also read Tony Schwartz's book.

Friday, May 18, 2012

A simple project management spreadsheet in Google Docs

I love Google Spreadsheets and I won't apologize because it's the single best tool for project management in the universe.  It lacks some of Excel's functionality and is somewhat harder to use, but the ability it provides groups to simultaneously edit a single data source is transcendent. That's why I use it for simple project management.

I reference the simple project management spreadsheet shown below in Shipping Greatness and discuss how to use it in some detail.   You can access and copy the spreadsheet here.  What I don't talk about is how I made it.

See, the trick with a simple project management spreadsheet is to make it automatic enough to be useful but not too automatic that it breaks or takes lots of management time.  You can see that each task in the Task Breakdown has an assignee (by globally unique email address), a target version, and time remaining.    If you expand out columns B..D you can see some of the magic...

The first bit of magic is to compute a symbolic name - "email"+"|"+"version".  This enables you to do the lookups in the "Task Allocation" through the SumIf operation.  That's a simple way to get you totals on an individual basis and identify the long pole.

The next trick is to ensure that code complete doesn't end on a Monday.  You can make your estimates of linear development days turn into linear weeks by ROUNDUP("maximum developer days"/5*7).  Apply your fudge factor here (divide by 0.6).  Use the MAX not the SUM of the team's developer days, since code complete is defined by the long pole, not the total work.

Now that you have a code complete date that might end on a sunday, make it end on a monday with a WEEKDAY function.  One such function looks like this: 


What about Test Complete? Well, testing starts either after Code Complete or after the previous Test Complete - so use a MAX function again, and apply similar weekday logic.

Finally - if you have a launch day schedule (e.g. a Patch Tuesday) you need to get a little more tricky. I'm sure there's a better way to do this, but I just created an ugly IF statement, like so:


Notice that this spreadsheet doesn't have any hard dependency checking. That would add LOTS of complexity and you can manage big dependencies in notes, in my experience.

Now that you know how this spreadsheet works, feel free to copy it and let me know if you have improvements. Look for tips on how to use it in the book!

Thursday, March 15, 2012

How not to build an error page.

This is crowdSpring's login error page.  My guess is some VIP ended up serving this, but even so - to have your login timeout and then deliver this error shows very poor attention to detail.  Don't be these guys.  Be THESE GUYS instead (keep clicking...)

On editing your own work.

On Thursday I finished my most recent round of edits on Shipping Greatness.  This step involved printing out the 315 pages doublespaced, going through every page with a red pen, and then applying all of those edits to the Word document. 

This process was painful.  It was slow.  I was bored.  When I grew bored I became worried that I was bored because the book was awful.  I have not been able to come up with evidence to the contrary, so I'm running on faith, at the moment.  I found that the editing work was most pleasant at the Pub, but that my productivity wasn't great, particularly after my second pint of Lucille.

I pushed really hard to make it through the red-ink stage to get to the copy-to-computer stage, figuring it would go quickly.  In a fit of curiosity I attempted to edit on an Android Honeycomb tablet, the Samsung Galaxy 10.1 and QuickOffice from the Android App Store.  This was a horrible mistake.  I used a bluetooth keyboard and mouse, but the app was so impossibly slow I couldn't scroll past the table of contents.  Also, there are no shortcut keys to jump back and forth by words, or copy and paste, get the point.

Now I have a quad core Macbook Pro with 12GB of RAM and an SSD.  It seems to run Microsoft Word OK.  Frankly, it should sequence genes OK.  But the process of incorporating the edits was still PAINFUL.  Now I couldn't go to the pub and do work because I needed the laptop and the paper - at some point there's a limit to how much you should spread out.  Also, I needed to sit at a table, which ruled out other fun places to work, like on the couch.  So the process became more painful.

I am done with this pass, however.  I'm not sure if I'll follow the same-two step process again; I certainly find problems more easily on paper, but I think this two-step process is slower than it needs to be.

Thoughts?  Share them with me at

Wednesday, March 14, 2012

Crowdsourcing the cover - what I learned.

Two weeks ago I posted a $400 reward on crowdSpring for a book cover design for Shipping Greatness.   I spent $99 to post the award, but haven't paid out the $400 yet.  I've extended the "competition" as a precursor to cancelling it, since I haven't been impressed yet.  You can see the creative brief that I submitted here (pdf).  I learned some things about the current state of crowdsourcing in this process. 
1. Volume is high, quality is low.

I received 63 entries, which is actually more like 35-40 because some designers submitted a cover and full book treatment.  I rated none of them five stars, and only a couple got four stars (a "good" rating).  I wasn't mean enough to give anyone no stars. 

The volume of submissions is very high, the quality of submissions is very low.  The level of polish was low, most of the content came from other locations, and I didn't see much creativity.

It was interesting to me how many of the designers were not native English speakers; that bodes well for crowdsourcing in one regard, because it means the world is flat and the best talent is going to be noticed.

On the flipside, communicating and iterating around design is a major skill and if the consumers are going to be English speakers (many will be) then the designers need to brush up on their language skills.  Or at least proofread better with a copy of MS Word.

2.  The investment designers will make is not large.

The majority of the covers were stock photos with text.  One of the challenges with stock photos is that in addition to the $500 you're spending on crowdSpring, you're spending additional capital on the photo itself.  It's unfortunately hard on iStockPhoto to figure out how much rights will cost, and the designers don't say.  So you can't make a well informed decision.

3. Design is iterative and long-distance crowdsourcing doesn't work well.

One example of this is the first series of designs I received.  Designers didn't read the supplementary materials and as a result I got a lot of pictures of boxes, hand trucks, and packaging.  In their defense, I could have said "NO BOXES," which I did on day two, and that cleared things up.

4. The stupid customer doesn't know what they want!

I'm the stupid customer here and I learned two things on the day of the deadline.  First, that some folks thought the cover should be light and funny-ish. Second, as one reviewer said, "one person tipping up a light bulb is not a team."

The positive part of this is that maybe I have some guidance to give to a local designer - "in addition to the creative brief, emphasize humor/snarky-ness and team-ness." 

5. crowdSpring's site is good, but not Great.

The overall site latency is so poor that it becomes very hard to use.  One kind focus group participant had such a hard time that he sent a screenshot of his votes because he couldn't actually submit them!  (see below).

Other details are also problematic, like the images you see above are all cropped so you can't really see what the book cover looks like.  Or like the screenshot below, where you click on the thumbnail and it increases the size by 30% or so - still too small to get a feel for it, even though the native image resolution is at least 1024x768.

6. All in, I wasn't wowed.

If I received one design that was the clear winner or was clearly great, I'd be stoked and would forgive the latency and strangeness of the process.  But I wasn't.  Here are the top three covers (annoying cropped by crowdSpring so you can't see them properly!).  Feel free to tell me what you think on

PS: Screens like this do not inspire confidence, nor does being down for ~8hrs today.

Monday, March 12, 2012

Engineering in Seattle

Credit: Me.
Things are heating up in Seattle.  eBay is expanding their offices from Redmond to include Seattle.   Ticketmaster is growing their outfit here.  Zygna has an office, Salesforce has an office, and there's a bevy of startups, including BigDoor which has some crazy smart people and Stripes39 who are looking for CEO material as part of an incubator.  Even some of our favorite VCs, like Madrona Venture Capital, are going great guns.

All of these companies bode well for our fair city.  And why would you move here, or stay here during the rainy season?

Reach out to the folks at these companies if you want to come to where the water tastes of caffeine and there's not state income tax. 

PS: people here can't drive.  Not like in Boston, where you fight to the death in the Octagon of the Big Dig, but more like, they stop dead in the middle of snowy hills and get deeply confused by four way intersections.  And make left hand turns at traffic circles!

Thursday, March 8, 2012

How to make one click social posting work!

Updated 03/12/2012 - I'm still fighting with these various social networks.  Twitter, despite its features, seems incapable of actually posting to my Facebook Page.  Therefore, I'm changing the direction and originating content on my Page, and having the Facebook Page post to Twitter with #in.  This, I hope, will work.  I updated the instructions below...


After two weeks of fighting with various social networks I have conquered the diaspora that is today's social ecosystem (modulo Google+, which doesn't yet import Tweets AFAIK).  If you too are trying to use social networks to drive awareness of your products, here's what you need to do.  It'll take some time to set up, but once it's going you'll have a low-overhead approach to social media.

1. Create a blog.  This is where your primary content will go.  You want a blog because you can create rich content with images, tags, searching, etc.  It's also easy for people to add your content to their readers, which they can't do with Facebook Pages.  Obviously I've done this -

2. Advertise your blog on your website.  This is self evident, I hope.

3. Create a twitter account.  This is where you'll originate your recommendations, not your content.  You're limited to 40 characters, but you can pitch your blogpost in 40 characters.  I'm @ShippingChris.  Watch out for "adult" spammers!  Yowsa.

4. Create a Facebook Page.  The Facebook page ( is all about interacting with your community.  Or so my pal James who works at Facebook tells me.

5. Create a LinkedIn profile.  You probably already have one of these, but make sure to add your blog and website to it.
Link up on Linked In.
6. Link your LinkedIn profile to Twitter and your Facebook Page to Twitter.  Don't link your Twitter account to Facebook within Twitter; AFAIK I can't get this to work properly

Apparently you can now link to Twitter- do this just for your Page.

7. When you make a new blogpost, post it to your Facebook page with hashtag "#in".  The process you want is, post to your Facebook page, which will add the post to your personal page and also upload it to twitter.  If you add the hashtag "#in" it should show up on Twitter.

Tuesday, March 6, 2012

Going too far: what you can learn from a $5000 water filter.

This is a $5,000 Natura water filtration system.  It makes great sparkling, cold, and room-temp water.  It was built by great engineers and one ding-dong designer.  What's wrong with this picture?

Right, there is no way to tell which tap is which!  Wait, the left tap has a tiny green ring (see it?) the middle tap has a blue one, and the right tab has a white one.  I will guess that Blue is cold, but which is sparkling? 

Someone kindly hacked this device by adding a cute printed picture above the taps - little bubbles, snowflakes, and a cup.  Boy, you could do so much better still!  Remember that these taps are nearly waist level, always below your eyeline, making labels on the FRONT of the taps bad.  Also, colors don't help the colorblind, do they?

So here's a quick mock of a much better design in my opinion, built in ~4 mins according to the techniques in the Book

Isn't that better?  It's legible, understandable, works for the colorblind, and the Germans would approve since it's simple line art and doesn't mess with the function of the system.  Since the handles are injection molded the cost for this design is effectively zero (maybe the paint you'd apply inside the molding might be marginal) but you also have to do less assembly because the handle is a single part, not two!  Win-win.

Natura, you can have this design for free. Just stop making $5,000 water filters that are not user friendly!

Remember, if you want to learn to make quick mocks like this, Sign Up to get the book.

Friday, March 2, 2012

Why crowdsourcing changed software.

Back in the far past, in the third age of men, when you wanted something creative (copy, a graphic, a logo, you name it) you went to the phone book and found an agency.  You called them and hoped it came out and maybe you got lucky.

In the near-olden days, like, the early 'oughts, if you wanted a great graphic, you asked your colleagues and sent some email to someone they'd worked with in the past.  And maybe you got lucky.

Today, if your software needs icons, colors, or copy you can "crowdsource."  Specifically, throw up a hail mary creative brief and see what you get.  The thing is that unlike football where there are one or two receivers that are heavily covered (I'm still unhappy about the Giants), there are millions of possible receivers out there.  The mass of partially or barely employed creatives are there to solve your problem!

CrowdSpring is one tool you can use.  It's a fascinating portal where you post an award and pick a design.  You are the judge and jury and if you don't like what you get by your deadline, you get your money back (sans the $90 or so to post).  Chuck Palahniuk did it for his new novel, and CrowdSpring claims very high customer satisfaction.

I'm trying it with ShippingGreatness, so if you are a designer looking for $400 ($99 went to CrowdSpring, leaving you a $400 fee), check out the creative brief.

CrowdSpring is pretty easy to use.  The only thing that's a bit silly is you compile your entire creative brief before you've logged in, which means that it's profoundly easy to lose your work.  This is a bad design, but doesn't mean the concept is broken.  CrowdSpring also isn't very transparent up front that you lose your "posting fees" if you choose not to go with any submissions, so beware.

I'll post on how the results turn out.

Thursday, March 1, 2012

Even the apples are optimized at Google!

Now, with lower latency to the core!

"Beauty," "Slickness," and the Germans.

Lately I've been hearing a lot of statements along the lines of "it has to be beautiful," and "slickness is a feature."  I've also been seeing puzzled and scared looks on the faces of the engineers who hear these things.  These looks are responded to with allusions to Apple almost always, but I find such explanations lacking.  I think you can explain what the more-slickness-people are driving at by looking at the Germans.

There are many German things that I love.  Three of them are the Leica, the Audi, and the Omega.  OK, Omega is Swiss but they speak Swiss-German so I'm counting them.

Leica M9
Omega Speedmaster
Audi S4
These three artifacts are all slick and beautiful.  They're coveted and carefully handled.   They are polished and treated with kid gloves and respect.  And they got this "slickness" and "beauty" not because the Germans are revolutionary artists, in the way Italian renaissance painters were, but because the Germans paid exacting attention to detail on a minute level and reduced each device to its essence.

There are few extraneous lines or shapes in these designs.  Buttons, markers, and curves nearly all have purpose.  Even that leatherette casing on the bottom of the Leica is there to make it easier to hold.  There are no numerals on the Omega because they would clutter the face and make the added precision of the second markers too hard to read - and you don't need them.  It's a clock, you know what the tick marks mean.  In the case of the Audi, its now-famous daytime running lights are not Xenon gas (which burns out but is brighter than LED) but are a series of LEDs, carefully sculpted into a patter that is visible and provides enough surface area to accomplish the mission.

The lesson the Germans are teaching us about beauty and slickness in software is that they are the product of dedication to careful technical design.  Reduce the necessary functions to what they need to do and no less, organize them carefully around the user, and don't add a lot of spinny-glowy-showy crap.  That's how you make a product slick.

Wednesday, February 29, 2012

Details matter and you're responsible for them! But not at Verizon.

Details and quality matter.  If you don't pay attention to them you'll build terrible software.   It's your job as a team lead to drive quality.  If you think that modern software developers will not commit obvious mistakes, I beg to differ.

Here's an example of what I mean.  Verizon reports my data usage as 1024 MB/month.  This is clearly wrong because there's no way I use exactly 2^10 MB (or 1GB) every month.  What's more, they report my allowance in MB as (2) when it's actually 2GB. 

This table is wrong because:
  • The data are wrong.
  • The scales are wrong - not out of scale, but literally wrong.
  • They have duplicated data (repeating total data used) for no clear reason.
  • The alignment of the numbers is off - you put the ".00" on the right, so that people can compare big numbers by length.
  • There's too much precision.  Do I really need six significant digits on my data usage?  No.  Remove the decimals at least.
  • All of the fonts are bold (save for the repeated data, which shouldn't be there) for no clear reason.

I'm not sure who's responsible for shipping this - but it clearly should never have been released.  It's functionally broken and broken at a design level.

The Verizon Wireless Account Analysis chart is no better:

This chart is a disaster and an example of how you should NOT build a chart if you wish to communicate clearly.
  • The month label has exactly the same font treatment as the months - so it reads as "January month,"  rather than a label.   
  • Rather than putting the scale on the left, by Data (in MB) they put it in big bold font on the RHS.
  • They put the title in a Tab, when there's clearly no other tab to select. 
  • They've left huge amounts of whitespace by putting the legend on the bottom instead of top right, like most legends.  That's a nit, but still.
  • Why is this weird window size like this, so that there's a huge gray border and also tons of whitespace beside the chart?
  • Why did you capitalize megabytes?  They are not a proper noun, they are a unit of measure, like inches.
I suppose I should not expect much from a company to which I pay only $xxx per month - but a reasonable team lead could identify and fix these problems in just a few minutes.

Things like this make me want to short Verizon, but I think their fiber, wireless, and cable operations are better aligned than their competitors, so I suppose I have to forgive these painful mistakes.

Tuesday, February 28, 2012

What belongs in the book?

I know a lot of great product, program, project, and engineering managers.  Team Leads, as it were.  Collectively, you're all a lot smarter than me.  Frankly, you're probably a lot smarter than me individually, but we won't dwell on that.  So what does the book REALLY need to cover?  Here's a link to the table of contents - let me know what's missing!

Monday, February 27, 2012

Macs are better than PCs now.  I say this not because the screens on common Macs are beautiful or because the form factor of the MacBook Pro and Air are fantastic.  Rather, it's because they're better corporate machines.
  • They're more secure - filevault, a linux kernel, and generally small virus surface area all help.
  • They're way more stable - see above RE: linux kernel vs Windows.
  • The vast majority of your work is probably done in a browser now, or at least should be, rendering desktop apps obsolete.  Sure, things like Photoshop or Omnigraffle are still best running natively, but Omnigraffle (the best wireframe/flowcharting program out there) is only available on Mac.
  • OSX is easier to use for common users than Windows - and that means lower support costs.
  • They're now more manageable in the Enterprise.
Manageability is pretty new.  Adding to a suite of already released open-source tools, Google recently released "Cauliflower Vest," which enables admins to unencrypt encrypted disks in a secure way.  See here:

If you're running a laptop without an encrypted disk, throw it out, encrypt it, or switch to a Chromebook ( so no sensitive data is stored locally.  As a business user, you can't afford to leave your laptop in a coffee shop or airplane with an unencrypted drive.  It's just far too easy for blackhats to read your bits.

Now that Macs are easily and powerfully managed, and most software is in the cloud, there really are no more excuses.

Also check out Simian, which enables hosted software deployment for Macs.  Open sourced at

Friday, February 24, 2012

Showing tweets on Google Sites - via gadget hack

It's super-easy to cobble together arbitrary JavaScript gadgets in Sites now. 
  1. Create a text file "foo.xml" on your local computer. 
  2. Add some wrapper XML into that file that looks like:
    <?xml version="1.0" encoding="UTF-8" ?>
    <ModulePrefs title="Custom Gadget" />
    <Content type="html"><![CDATA[
    //your stuff goes here!
  3. Replace the "//your stuff goes here" with the JavaScript you want.  In my case, I pulled the content from my Twitter gadget on this blog.
  4. In your Google Site, upload the file as an attachment.
  5. On the Sites page in which you want your gadget to show, create a new gadget from a URL, where the URL is the location of your file.  In other words, something like
Done - works great!

If you're really clever you'll quickly discover that building an interface to allow you to customize that gadget is also super simple. 

But why bother if it's just for you?  Do the simplest thing that possibly works if you want to ship!

- Chris.