Monday, January 28, 2013

The greatest Google Mail feature you may not be using stopped working

Some time ago I published an incredibly popular post called The greatest Google Mail feature you may not be using. It showed how selecting text in a message and hitting reply caused just the selected text to be included in the reply. This is a great feature because it cuts down on recipients having to wade through gigantic messages and shows what you were actually replying to.

Some time last week this feature stopped working for many people. Including me.

To reenable you need to go to Labs in Google Mail. To do that, first go to Settings. And find Labs. Scroll down until you find the following entry called "Quote Selected Text".

Enable it and hit the Save Changes button.

Integrating OpenSSL crypto functions with Go

In a previous post I pointed to my go-openssl project that provides alternative implementations of crypto/rc4, crypto/md5 and crypto/sha1 based on OpenSSL's libcrypto. To make these easy to use (and to allow Go itself to use them for crypto/tls) I've added a bootstrapping Makefile to the project that builds Go itself with the OpenSSL implementations integrated.

To use it just do make in the integrate directory. It will create a go subdirectory with a full build of the latest version of Go form Mercurial incorporating the OpenSSL implementations. Doing make tester will build a small tester program that exercises the new hash and cipher implementations.

Since this was a slightly complex task (requiring the assistance of minux) I wrote a large comment in the Makefile. If anyone else needs to patch Go itself they might run into similar things:
# This target modifies the Go installation in the following ways:                     
# 1. Copies the native Go md5 implementation and calls it crypto/gomd5                
# 2. Alters cgo so that it uses crypto/gomd5 and fixes gomd5 so that                  
#    it doesn't reference crypto/md5                                                     
# 3. Alters the deps_test.go to recognize that the OpenSSL-linked                     
#    versions of md5, sha1 and rc4 are dependent on the C include.                    
# 4. Modifies the api/except.txt list to cause the change in signature                
#    on the md5, sha1 and rc4 packages to be ignored when testing API                 
#    compatibility (this is necessary because using cgo changes the                   
#    signature even though they are compatible with the existing                      
#    packages)                                                                        
# 5. Deletes the md5block.go and sha1block.go implementations since                   
#    they are not needed.                                                             
# 6. Copies in the OpenSSL md5, sha1 and rc4. 

Friday, January 25, 2013

Lua implementation of Aho-Corasick string matching

The Aho-Corasick string matching algorithm is a fast way of matching a large number of strings against  a source document. It consists of two stages: building of a special suffix tree and then matching against the tree. The algorithm is linear in the size of the source document (and number of matches) and matches all strings in the dictionary simultaneously and outputs them.

It is particularly helpful when a large dictionary of strings needs to be matched against a document. For example, it can be used to match a dictionary of known virus signatures against a suspicious executable. And it's possible to build the suffix tree ahead of time when the dictionary is fixed.

I needed a Lua implementation of the algorithm for a project and have created one (with a test suite) and released it here. There are two functions: build (which takes an array of strings, the dictionary, and returns the tree in the form of a Lua table) and match (which finds matches in a string given a tree). Since the tree is just a Lua table is can be serialized and loaded into programs as needed.

Lua 5.2.0  Copyright (C) 1994-2011, PUC-Rio
> AC = require 'aho-corasick'
> t ={"The", "han", "and", "pork", "port", "pot", "ha", "e"})
> m = AC.match("The pot had a handle")
> print(table.concat(m, ","))

The Wikipedia article has a good explanation of the algorithm itself, but to ease (my own) understanding of the algorithm in action I built a small Processing program that animates the process of matching. (The video is much easier to watch if seen on YouTube).

There's a small test suite included with the implementation. To run it do lua test.lua.

Wednesday, January 23, 2013

GMSL v1.1.3 Released

I've released v1.1.3 of my GNU Make Standard Library. Changes in this release are:

1. New sequence function which returns sequence of numbers. For example, $(call sequence,1,5) returns 1 2 3 4 5 and $(call sequence,5,1) returns 5 4 3 2 1. That was Feature Request #3. If you have a feature idea for GMSL please submit it.

2. Support for GNU Make 3.82 was added. Specifically, the associative array and named stack functions will now report an error if a name or key value has a space in it on GNU Make 3.82. Also, fixed Bug #11: memoize wasn't working on GNU Make 3.82.

3. Fixed Bug #12: the associative array set function was broken if the array or key name had a / in it.

If you are serious about GNU Make check out my book "GNU Make Unleashed". If you are unfamiliar with the library check out the documentationThe GNU Make Standard Library (GMSL) is a collection of functions implemented using native GNU Make functionality that provide list and string manipulation, integer arithmetic, associative arrays, stacks, and debugging facilities. 

Monday, January 21, 2013

Calling OpenSSL libcrypto functions from Go

I've released on github three Go packages that present the same set of functions as crypto/md5, crypto/sha1 and crypto/rc4 but that use the OpenSSL libcrypto functions instead of the native Go implementation.

Testing by sending 4.4GB of data through these three functions yields the following results (the test document was the King James Bible concatenated 1,000 times and sent to MD5, SHA1 and RC4 in 4.4MB chunks). All tests were done using go version devel +7dc8d66efb6d Mon Jan 21 10:53:39 2013 +1100 linux/amd64.

Native Go404 MB/s123 MB/s111 MB/s
Via OpenSSL607 MB/s636 MB/s744 MB/s

These packages provide the same interface as the native Go implementations and should be drop in replacements. libcrypto must be available. The code is available in my go-openssl repository.

PS As this is the first time I've written any cgo code, I'd be happy to hear from more experienced Go programmers about improvements to my wrappers.

PPS As a comparison here is the output of the Go benchmark tests on the native Go implementations of MD5 and SHA1
% go test -bench=".*" crypto/md5
BenchmarkHash8Bytes          5000000       477 ns/op  16.74 MB/s
BenchmarkHash1K              1000000      2882 ns/op 355.26 MB/s
BenchmarkHash8K               100000     20061 ns/op 408.34 MB/s
BenchmarkHash8BytesUnaligned 5000000       477 ns/op  16.76 MB/s
BenchmarkHash1KUnaligned     1000000      2875 ns/op 356.15 MB/s
BenchmarkHash8KUnaligned      100000     20147 ns/op 406.60 MB/s
ok  crypto/md5 15.997s
% go test -bench=".*" crypto/sha1
BenchmarkHash8Bytes 2000000       799 ns/op  10.00 MB/s
BenchmarkHash1K      200000      9098 ns/op 112.54 MB/s
BenchmarkHash8K       50000     67341 ns/op 121.65 MB/s
ok  crypto/sha 18.364s
And here's the same with the OpenSSL wrapped versions:
% go test -bench=".*" md5
BenchmarkHash8Bytes          5000000       611 ns/op  13.09 MB/s
BenchmarkHash1K              1000000      2272 ns/op 450.54 MB/s
BenchmarkHash8K               100000     13816 ns/op 592.92 MB/s
BenchmarkHash8BytesUnaligned 5000000       616 ns/op  12.97 MB/s
BenchmarkHash1KUnaligned     1000000      2282 ns/op 448.59 MB/s
BenchmarkHash8KUnaligned      100000     14089 ns/op 581.44 MB/s
ok  md5 15.049s
% go test -bench=".*" sha1
BenchmarkHash8Bytes 5000000       625 ns/op  12.78 MB/s
BenchmarkHash1K     1000000      2249 ns/op 455.31 MB/s
BenchmarkHash8K      100000     13507 ns/op 606.46 MB/s
ok  sha1 7.525s

Monday, January 07, 2013

Archived posts from "Double Stealth"

For a short while I wrote a blog called "Double Stealth" based around a fictional character called Brad Bradstone that I'd invented here.  I decided to shut down the blog (and a lot of other things) to make space in my life, but here are the archived entries for those who've asked.

Thursday, August 2, 2012 - Brad's ToBe List

A lot of people spend time making ToDo lists. ToDo lists are a fools errand, they're nothing but a measurable, actionable list of tasks. People mindlessly checking off tasks completed think they are working to some great future result, but what are they really doing? They're marking time; a steady drum beat of 'done!' onwards to the grave.

What you should be making is a ToBe list.

A ToBe list is a list of people to be in the future. It's a true list of goals, not a list of items to be checked off, but a list of vague, fluffy, unmeasurable states of mind and body. The beauty of a ToBe list is you never check things off, you never need an iPhone app to measure them. In fact, you never 'do' anything.

Brad's ToBe list has the following on it.


1. A great father

2. A loving, caring, thoughtful husband

3. A mensch

And that's it. Three little things that guide my every day. Personally, I wear three rubber bracelets inscribed with the words: father, husband, mensch.

That way I never forget who I want ToBe.

Cassiopeia says I'll never be any of the three, but that doesn't stop me turning up every day and working towards those goals.

Who do you want ToBe?

Thursday, July 26, 2012 - The Daily Grind tries a Groupon

My local coffee shop, The Daily Grind, is run by a wise and down-to-earth Italian immigrant named Gino who moved to the US from his native Naples. He makes, hands down, the best coffee in the world. Not the watery buckets of soup offered by chain of so-called coffee shops like Starbucks, but real Italian expresso and cappuccino.

The other week his coffee shop was, unusually, packed with people and I get a chance to ask Gino about this fortunate change in his business the next day.

"Hey, Gino, my man, what's happening? Crazy busy, yesterday!", I said.

Gino looked at the floor and said quietly, "I tried a Groupon".

"High five, dude, that's awesome"

"No, it's not", he replied, "my entire coffee shop has been filled with needy, entitled morons who couldn't distinguish espresso from Nespresso. One of them even asked me for 'creamer'".

He continued, "I should never have given in to the guy on the phone".

"What guy?", I asked.

"Groupon. They kept calling me telling me how 'great it would be for my business' to 'work with them'. How easy it was to 'offer a Groupon'. How it wouldn't cost me much to 'grow my business'. I kept ignoring them, but they kept calling. Then the calls stopped."

"Go on", I said.

"And one day a guy walks into The Daily Grind. Never seen him before. He buys a coffee and spills a bit on his way out. Just before he leaves he says: 'You guys should totally try a Groupon'. I got the message. I grew up in Naples. I know how this stuff goes".

I was baffled, and then it dawned on me, "Are you talking about the Mafia?"

Gino went white and made a strangled sound in his throat that sounded like 'yelp'. When he'd recovered  he continued, "We never say that. Never. Not as a joke."

"OK, I'm sorry", I lied. "But weren't all those idiots good for business?"

"I doubt it", he replied, "and, after all, I've already got plenty of dumb customers as it is. Come te."

I just smiled and walked out with the venti cappuccino Gino makes just for me.

Saturday, July 21, 2012 - Some advice for Marissa Mayer

I cannot believe I didn't get a call about the CEO position at Yahoo. Seriously, if anyone knows how to raise a brand from the dead it's me. Just ask the owner of The Daily Grind, my local coffee shop, and how my social media savvy saved him from the disaster that was a Groupon. I'll leave that story for another day.

But given that I've been temporarily overlooked I'll serve up my Bradstone Wisdom (pronounced wiz-dome) here for MM to read.

Do you know what Yahoo's greatest strength is? I'll tell you what it is.

Yahoo's greatest strength is that no one, not the company, not the press, not the public, knows what Yahoo does.

It's literally putty in MM's hands.

Is it a social network? Search engine? Email provider? Photo sharing site? No one knows.

And Yahoo's greatest asset? Its users. The millions who still use Yahoo are literally people who've had years to use other sites and haven't. They could have changed to any other site on the web, but they huddle together, a mass of terrified pawns scared to try anything new.

And right there is the secret of Yahoo's future success. It needs to learn the lesson of history and look to the greatest of all online brands for inspiration: AOL. It needs to play on the fears of its users and make YOL the one place the go.

If I were CEO I'd kill the deal with Bing and cut Yahoo's links to the web. Whenever a user finds something on the web outside Yahoo and clicks through, YOL should flash up a warning that leaving the safety of Yahoo puts their users at risk of viruses, scams and worse.

Also kill off any innovation. YOL needs to be the Walmart of the Web. Its customers should go to it and only it for everything. Drop all that money spent on clever stuff like YUI.

And then six months in hit the user base with the revenue plan. YOL goes subscription only. $5 a month for peace of mind.

Think about it! Where's the competition? Literally no one else is going to go the one stop, closed ecosystem route. No one.

This would be YOL's "Apple Store" moment. Just when everyone thought retail was dead Apple saved it. And YOL can do the same for closed, proprietary systems.

They're literally the last hope. Even Microsoft has embraced the web.

Saturday, July 7, 2012 - The Pelko Method

Time management is a vital skill for any startup CEO and even more important for someone like me who's running a startup, being a full-time Dad, and working up to my first triathlon.

I know that many readers will be tempted to use the so called Pomodoro Technique of time management. Here's how PT works. You get a little timer (either software or a real kitchen style timer with a bell) and you set it for 25 minutes. You work on your task for 25 minutes and then task switch and use the timer again.

It's called the Pomodoro Techinque because pomodoro is Italian for tomato and the preferred timer for PT fans is a tomato shaped kitchen timer.

Now, I don't want to diss people who are using this technique, because at least they are trying, but it's really a rather feeble technique. Personally, I use the Pelko Method.

Pelko is Finnish for 'fear' and was invented by time management guru Dr Timo Käyhkö. I was lucky enough to attend one of Dr Käyhkö's $2,000 day seminars last year and for a small fee spend some time one on one with the guru.

I asked him about the Pomodoro Technique and how it compared. His exact words were "The Pomodoro Technique, are you kidding me? People are seriously learning productivity and time management techniques from Italians! From Italians!", and started to laugh.

He continued, "Time management from people who sleep all afternoon and productivity from people whose only product is expensive sports cars that break down a lot."

So, I asked how Pelko was different. Dr Käyhkö replied, "Do you know which major country Finland has a border with?". I had to admit that I thought it was Belgium.

"No, cretin, it's Russia. My whole childhood I grew up in fear of being invaded by the Russians. My mother would yell at me at night 'Do your homework quickly before a Russian shoots you'". Everything had to be done in a hurry in my house. I'm not sure what she was afraid of, we lived in Utsjoki and would have been over the border into Norway had the Russians ever really come".

"But then it dawned on me, fear is the greatest motivator. Fear is what got me through high school, through the University of Phoenix. Fear."

"And that's when I invented the Pelko Method".

But, I said, "No one's afraid of the Russians any more".

Käyhkö sighed, "You're really special. It's fear that matters not Russia. The Pelko Method plays on fear. You set your Pelko Timer (which is in the shape of a hand grenade) to 25 minutes and then you start working. But here's the best part: you don't know when it's going to go off. It could be in 25 minutes, or 20, or 15. It's random."

"That instils fear in the mind of the user. Fear that they might not complete their task, and so they work hard."

And that, dear readers, is why the Pelko Method is a work of pure genius.

Friday, July 6, 2012 - Emails to Steve

When Steve was alive I used to regularly email him on his famous public email address with my thoughts and insights on Apple products and the running of the company. It was fantastic to have this direct line of communication with the CEO of a major company and one of the things that really set Apple apart.

Of course, Steve never actually replied to any of my emails but I know he was reading them all because I basically invented the MagSafe connector. I took a look in my email folder and managed to find the exact email where I suggested to Steve that there was a better way to connect your laptop to the wall. Luckily this mail was on my old machine in as you'll see.

From: Brad Bradstone
To: Steve Jobs
Date: August 21, 2005, 9:13pm
Subject: Latte Disaster


My son Dagwood ran into the room this afternoon and tripped
over the cable connected to my PowerBook G4 and fell over.
In doing so the PowerBook hit my latte and spilled all over
the keyboard and now the machine is dead.

For crying out loud, can't you make the connector stay in
place with something less strong: velcro or something, so
that when your kid runs in your latte doesn't get spilled?
Now I'm going to have to buy a new PowerBook. Jeez.

Yours looking sadly at a dead machine and typing this on my
ancient iBook,

PS His mom's back from the emergency room with the news that
he has a mild concussion meaning I'll have to stay home
tomorrow and won't be able to get to the Apple Store for a
new machine.

See, it's right there? The spark of inspiration that lead to MagSafe. To think that a spilled latte was all it took.

But now that Steve's gone I'm bereft. To whom do I address my wisdom at 1, Infinite Loop?

And then it dawned on me. I can keep writing to Steve. He never replied before, it's no different. In fact it's positively Zen.

I imagine that somewhere deep below Apple HQ Steve Jobs is buried in a tomb in a room paneled with iPads scrolling messages sent to him. Even though he's not reading them he's absorbing them and his aura permeates the campus.

It's a bit like the tomb of St. Peter under the Vatican receiving the prayers of the faithful.

And so I can keep emailing Steve. I know he's out there somewhere listening.

Wednesday, July 4, 2012 - Date Night

The most important startup I'm part of isn't Yellow Yellow, it's my marriage to Cassiopeia. You may not have thought of a marriage as a startup, but it is. The first thing you look for is your co-founder and from then on the two of you are in charge of making things happen. Of course, you don't hire your team you give birth to them (we have two lovely boys, Dagwood and Spaniel), but you're still there mentoring, encouraging and motivating.

Part of being married is giving your co-founder space to grow and develop their own talents. Tonight is B&C's Date Night and I'm out supporting Cassiopeia's personal mission. She's the Executive Director of a non-profit called The Healing iTouch Foundation that brings children from poor communities together so they can experience their first Apple product. These poor children barely have enough food to eat and so miss the nourishment of using the latest consumer electronics. Healing iTouch brings groups of kids together once a week and sets them free on iPhones, iPads and MacBook Airs.

It's an enriching experience for everyone involved. The educational value of working with iOS devices is incredible. These kids literally know none of the important gestures such as pinching, tapping and swiping. HiT enables them to learn with each child getting 15 minutes iTouch time. And for myself and C we know that we're making a difference. Somehow seeing these children using Apple hardware is more real than our own children's three hours iPad time per day.

At the end of each session the children who've done best take part in the HiT Parade where they get to show off their iOS skills to the rest of class and receive a double helping of the food that the foundation provides. This always seems to be the kids' favorite part of the evening.

Tonight, C invited me to give a motivational speech to the children after they've spent time on the Apple devices. I decided to tell my personal story growing up in Hoboken, NJ and relate how the first time I saw an Apple device at the Apple store in Tyson's Corner, VA changed my life. I hope the kids will be motivated to work hard, focus and get an education so they too can share in the Apple experience.

Seeing some of the children working with Apple devices is amazing. It's not uncommon to see them cry when the machines are taken away and beg to be allowed to stay a bit longer with excuses like "It's cold outside". But that's another valuable lesson that HiT teaches: time management. Use your 15 minutes well, or lose it.

After my speech tonight one little boy came up to me and said simply, "I'm hungry".

I wanted to take him in my arms and tell him: "I feel it too, champ. I feel it too. I feel the hunger to succeed, to create a product that Johnny Ive would truly appreciate, I know precisely what you're going through."

But C says that at iTouch we have a no touch policy in case we get sued. Pity, that kid looked like he could really use a hug.

Tuesday, July 3, 2012 - One more thing

With Yellow Yellow on the rise it's not surprising that some of the West Coast's most well known investors come calling. Through a friend of a friend I sat down with Peter Thiel and pitched him using our latest deck.

I long ago realized that Powerpoint was sinful and that there must be a better way. That better way is Prezi. Prezi breaks free of the linear 'story telling' style of Powerpoint and frees the entrepreneur to tell his story with the one thing that Powerpoint really missed: fantastic swooping and sweeping animations. With Prezi I swoop, twist, slide and rotate through a non-linear story that represents the real, complex tangled Yellow Yellow story.

A lot of people think that if you can't tell your story in a simple fashion you don't know what you're doing. So, not true. What Yellow Yellow is doing is complex and hard for the competition to replicate. Our pitch deck is too. It takes an hour to explain the lifetime of work that's gone into Yellow Yellow.

With all due respect to Fred Wilson, six slides just isn't enough to tell the Yellow Yellow story. So, our pitch deck is divided into six sections of six slides each. 36 densely packed slides.

Peter sat stunned through the entire presentation, constantly making notes on his Blackberry. He stopped at one point and called in a member of his team laughing at how amazing Yellow Yellow is and saying: "You have got to see this, I've never seen anything like it." The pair just sat there shaking their heads.

And right when he thought it was done I hit him with "One more thing". A whole extra presentation just as he thought the hour was up. You could see he was breathless with excitement standing in the doorway watching.

Part way through he'd made his decision and truly saw the Yellow Yellow vision. He stopped me, and looked me straight in the eyes. I could tell by the way he was staring deeply into my soul that we'd made a deep connection and that he recognized a fellow traveler.

"Took your breath away, right?", I said.

"You know", he said, "Elon's looking for volunteers to test the unpressurized Dragon capsule in a orbital flight. Straight into space with nothing but a vacuum between you and the stars. Truly breathtaking, if you see what I mean."

Without hesitation I replied: "I'd do that in a heartbeat, sir, in a heartbeat."

Peter smiled at me and said as he walked away, "I'm sure you would, I'm sure you would."

Monday, July 2, 2012 - Klout is gangsta

As a startup CEO it's natural that I listen to a lot of rap. Within the music business rappers are the real entrepreneurs. There's nothing more inspirational that the story of a rapper who started as a small time drug dealer, graduated to controlling an entire block and then pivoted into a successful rap career. These guys know a minimum viable product when they see it, and have been living 'ramen profitable' since before Paul Graham was Paul Graham.

Rappers are street MBAs and know more about supply chain, dealing with competition, pricing, when and how to give free trials and team building. These are all things a good startup CEO needs to know about. As Too Short puts it in Gettin' It:

I know you tired of being broke just hanging out
You gotta lot a dreams but you can't get out
The first thing you need to do is set your self some goals
Think positive, everything else is old
And work hard, never stop hustlin'

The beat may be old school, but the credo isn't. "Think positive", "set yourself some goals", "everything else is old", "and work hard". So true, so relevant, so real!

One thing that rappers talk a lot about is respect. Which brings me to Klout.

Klout is respect for middle-class (mostly white) people.

I can't wait for the day that Klout respects those of us with 70s, 80s and 90s Klout scores and issues us with a special Klout Kard (probably in levels Gold, Platinum, Titanium and Pure Black for the elusive 100 score) so I can just show my KK for instant respect.

Until that happens I make sure to tell everyone I meet from airline checkin personnel to the barista at The Daily Grind my Twitter name @brad_bradstone (go follow me now before you read the next paragraph). When I say it, I see them glance away (usually at their computer screen) and then look back up at me in a new light. Some even say "What is that?" or just "Wha?" as a simple expression of their amazement at my influence.

You see having Klout is nothing like having lots of miles on some airline's loyalty scheme and getting free upgrades. Airline mileage is just a reflection of how much you fly, and how much money you spend. Klout is far more profound.

Your Klout score is a measurement of you, not you money. It measures how deeply you influence the world, it measures the depth of your commitment, of your intelligence, or your charm. In short, the higher the Klout score, the deeper your soul.

And Klout goes even further. It's a sort of Amway pyramid scheme: as more people follow you, your influence goes up and spreads out and your Klout score rises.

Imagine for a moment a still lake representing the status quo. A stone drops into the middle of the lake and waves spread out into infinity. Each time I tweet I am a smooth stone slipping into the waters of the everyday and spreading out wisdom.

So, I am adding a poster of Klout's CEO Joe Fernandez to my shrine. Joe, you're my brother from another mother.


Thursday, June 28, 2012 - Why I can't stand AirBnB

There are days I get up and feel like freakin' Mugatu. As if I'm the only person in the whole damn world who notices that Zoolander has just one look. In this case I'm talking about AirBnB.

Am I the only person in the whole damn world who's noticed how AirBnB is the worst brand ever? Seriously, the worst.

When I hear AirBnB I hear "air bed" and "bed and breakfast". Can you freakin' imagine a bed and breakfast that had air beds? What are these people thinking? What sort of lame bed and breakfast would that be?

And air beds are those horrible things that everyone gets a bad night's sleep on and get pulled out because your wife forces you to sleep on it alone because you've been snoring again or you've been forced to give up the marital bed for her parents when the come to stay.

An air bed.

And bed and breakfasts? Who wants to stay in a bed and breakfast. Ever notice how it's some sort of legal requirement for at least one of the bed and breakfast's owners to have a physical defect or personality disorder. I once stayed in a bed and breakfast where I swear one of the owners had a colostomy bag based on the weird smell and strange equipment in the shared bathroom.

Bed and breakfasts are just one step on the creepy scale above youth hostels.

Which brings me, naturally, to Yellow Yellow. There's deep thinking behind the name. The Mayan word for yellow is k'an which also means precious and ripe. I like to think that what we're doing at Yellow Yellow is both precious to our customers and ripe for the picking.

The ancient Greeks referred to repeating a word as epizeuxis and they did it for emphasis. The idea of calling the company Yellow Yellow (and not just Yellow) came to me while on a retreat at a Buddhist monastery in Montana. I'd been reading Henry David Thoreau's Walden and was struck by one single line in the book: "Simplicity, simplicity, simplicity". At Yellow Yellow we're searching for precious, ripe, simplicity.

And lastly it's a single color which makes printing cheap when we come to print collateral. The official color used by Yellow Yellow is PANTONE 14-0848 Mimosa. It was Pantone's color of the year in 2009 (the year Cassiopeia and I married) and it represents "hopefulness and reassurance in a climate of change".

And that's a clear message about Yellow Yellow's products: they bring hope to our customers.
Precious, ripe, simple hope.

A life in a day of a startup CEO

I initially entitled this "a day in the life" but realized every day I live is more like an entire life in a day. Every morning is a rebirth as I push Yellow Yellow to new heights and stay laser focused on the big picture.

Carpe diem is so 20th century, it's 2012 people: you need to stop seizing the day and start Optimizing The Day. I love to hear from others with meaningful tips that maximize the oos: the daily schmooze, booze, snooze and above all as CEO: choose. Living the startup life to the max, means maximizing every aspect of life.

Here's my daily rhythm (don't call it ritual: it's not about being repetitive, it's about being in tune).

0523 Alarm sounds on my iPhone 4GS. I don't use just any alarm program: I use Biorythym Alarm System+ which monitors my internal body clock and starts ringing at the appropriate time before 0523 to begin a smooth start to the day. It uses Gregorian chants, nature sounds and recordings from inside the womb to ease me into the day.

0530 I'm in front of my MacBook Air (with 256GB SSD) at my desk made from recycled lumber from South African railway tracks. Why did I get up 7 minutes earlier? Because, as Manic Minute Minder Pro reminds me 7 minutes wasted per day 1.7 extra days of productive time per year. 1.7 days when the competition is literally sleeping!

I drink a large bowl of Jing Tea Matcha Supreme Green and a glass of organic milk. At 0533 every day I'm hacking through my email, TODOs, tweets and catching up on Hacker News. Every 20 minutes Time Out reminds me to stop, meditate and focus.

0645 I walk into my bedroom with a green tea for my wife Cassiopeia who is waking up. We smile at each other and spend the next 15 minutes on One on One Time. At 0700 it's time to wake our two boys: Dagwood and Spaniel.

0800 The house is quiet but Skype isn't. I stay in contact with my teams in Costa Rica, Montreal and Goa via Skype throughout the day. This morning check in with the teams gives me a good view of where the business is. Currently we're in double stealth mode (the public doesn't know what we're building and neither do we).

0830 I jog down to the ground floor of our New York brownstone and get on my Trek Madone 4 series bike for a 30 mile ride out into New Jersey and back. My iPhone 4GS is cued up with a set of daily business podcasts set to run at double speed so I can get through all of them in the hour's ride.

0930 Shower and then spiritual time. I have a small shrine set up that allows me to focus on the important. I light an incense and gaze up at posters of Tim Ferriss, Kevin Rose and Warren Buffet.

0945 The day really begins. For here on in it's meetings, hirings, firings, networking with the New York VC and angel crowd until 1900 when C, D & S (or cease and desist as I call them) come back home. We eat together and at 2200 I'm in bed with a light cucumber mask and the alarm set for another day.

Tonight's a little special because I've been invited to give a one hour keynote on being a startup CEO at Velocipede Ventures weekly Pumped and Primed meetup for other successful entrepreneurs like me.

The only MBA I need is a MacBook Air

Welcome to your direct line to my hippocampus!

On Double Stealth I'll be chronicling the life of a startup netreprenuer through the crazy ups and downs of launching and building Yellow Yellow. This blog is all about me, but it's also all about you. It's all about your personal growth and I hope that in some humble way my writings will help you grow.

As the Japanese say: Ichi wo kiite jū wo shiru. A wise man hears one and understands ten.

Note that I said 'launching and building' and not the other way around. If there's one thing we've learnt since the Internet was launched in 2002 it's that you've got to launch, to build your brand, and to build your own Brand Brad before you know what you're building.

That's why this blog is called Double Stealth. It's a new concept I've created that can work for anyone else building web-based business. In the old school way of thinking about things stealth mode meant not letting the public know what you were building. That way competitors were kept at bay until you were ready to launch.

But Double Stealth is even better: the public doesn't know what we're building and neither do we.

Now, I don't mean that in a flippant way. After all, I haven't invested thousands of dollars of my friends' and family's money in my kick ass offshore team for nothing. Not knowing what you're building is the new new. You hear people talk a lot about minimum viable product and pivoting. But watch out, there's a trap there, when you build something, launch it and then realize it's the wrong thing you've spent a fortune (in 'sunk costs' as the B-tards, as I like to call MBA touting chumps, call it).

Double Stealth means you explore the market at minimum cost. Pivoting is what losers do when they realize they've gone the wrong way. It's the U-turn you shouldn't have had to do because you didn't keep your GPS' maps updated. With Double Stealth you don't start out going the wrong way.

But Double Stealth is even more fundamental than that. It's actually what physicists call a quantum state. By not knowing what we're doing, we're actually doing everything at the same time and so we'll be ready for whatever the next big wave is: mobile, social, social-mobile, social-mobile-implant-radical-openness. It's good to have Heisenberg on your side.

In many ways I like to think of Double Stealth as the startup equivalent of the Buddah-nature. It's an emptiness which is filled with everything.

Making an old USB printer support Apple AirPrint using a Raspberry Pi

There are longer tutorials on how to connect a USB printer to a Raspberry Pi and make it accessible via AirPrint but here's the minimal ...