I'm a husband, father, author, cyclist, sailor, travel addict, and former Silicon Valley software engineer. I've written 3 books and actively review books on this blog.
Comments on this blog are aggressively moderated against link-spam and rude or meaningless comments.

Friday, February 27, 2015

Green Arrow is definitely one of the second tier heroes in the DC universe. This is both a good thing and a bad thing when you build a TV show like Arrow after him. There's not a ton of baggage associated with the character, so the writers and directors have free reign over what to make of him. I don't even remember his origin story from the comics.

I watched the TV show on Blu Ray on a HDTV system setup at optimal viewing distance. The transfer and quality of the picture is amazing. You can see every pore on the faces of the characters on closeup. This is a show where the production values are definitely way up there.

The plot revolves around Oliver Queen (Green Arrow, though he's never referred to as such in the show), a billionaire by inheritance who was rescued off an island he was stuck on for 5 years. The story then flips back and forth between his time on the island, where he went from being a playboy to becoming a badass, and his time in Starling City, where he uses his badass MMA skills (with several trick arrows) to beat up bad guys and in some cases kill them.

The story is dark: as dark as the Batman movies, but not as deep as say, Buffy. It's decent watching, but I wouldn't put it up there with my favorite TV series (either Buffy or Macross). Nevertheless, the set pieces are jaw-droppingly beautiful, and tastes vary so you might as well take a look.

Wednesday, February 25, 2015

Console Wars is Blake Harris' account of the rise and fall of Sega of America during the 1990s. Despite the title, it focuses almost exclusively on Sega, devotes relatively little time to Nintendo, and Sony's efforts only makes cameo appearances, even though it was the Sony that would ultimately dominate the generation.

Written like a novel, the protagonist of the account is Tom Kalinske, the CEO Sega recruited from Mattel to run Sega of America. Deficient in the account are any technical details, such as the actual creation of any of the consoles or games that feature during the actual wars.

This is as it should be. Sega of America was chiefly a marketing operation. While they had minor inputs as far as the character of Sonic the Hedgehog went, they couldn't dictate either hardware or software strategy, though they did bankroll a few games, such as Ecco the Dolphin.

This is by no means a bad thing. As a technical person, I've always been mystified by marketing and the efforts that go behind it. My preference, of course, has always been to work on product that would sell themselves, ranging from Purify, to of course, Google search. Harris does a good job de-mystifying that process, and explaining (through illustration) how important market positioning, branding and courting the press matters.

In the end, of course, we all know the end of the story. Marketing can only go so far: it makes the difference when your product is actually technically competitive, but no amount of marketing could save the Sega Saturn from the technical onslaught of the Playstation. It's a pity that Harris didn't go into that second half of the story, but again, as a story largely about marketing, Console Wars ended at exactly the right place.

Ultimately, the book illustrates a key principle in technology companies: you cannot control your fate without control over the technical development of future products. No matter how brilliant an executive Kalinske was, when he could not persuade his masters at Sega Japan to work on machines that would match the competition, he was doomed to failure.

The book also clearly illustrates the problems and politics associated with a multi-national corporate organization. Kalinske's American team clearly found the Japanese team inscrutable, and were frequently frustrated by Sega Japan's inability to pay attention to them despite their success. This is a great lesson for any one who struggles to get their remote office recognized from halfway across the world.

Tuesday, February 24, 2015

Bowen turned 3 last year, but despite our coaxing, he still hasn't shown much interest in his Strider bike. But more than that, even if he could ride, it would be a while before we could trust him out riding in the streets, touring, or even visiting his friends that way. I'd seriously considered a triplet before, but with another son on the way, we thought hard and went with a custom Co-Motion Convertible Periscope Quad. Since I already had heavy duty tandem wheels from our previous touring tandem, I opted for a custom frame built to take 700c wheels, dual pivot long reach caliper brakes and drum brakes, in case I ever got so crazy as to take a quad up a mountain.

The build job took months, and the fitting to Bowen took weeks. The periscope feature enables kids as short as 4' 2" to ride, but Bowen was still far from that. Co-Motion asked us to work with their local dealer, the Bicycle Outfitter, and they kindly agreed to take on fitting Bowen as a pilot project. Basically, they took an existing crank, got a local machinist to machine off the crank arms, and then attached a second bottom bracket and stoker assembly to the bike, added a backrest with restraining seat belt, and then customized the handlebar assembly for the Bowen. This was serious work. We tried to find SPD shoes that would fit him, but none of them were small enough, so we made do we rat trap pedals.

The tandem handles surprisingly well. I felt a wobble early on, but the shop discovered that it was a loose headset. We took it up and down some twisty roads, and the bike did not display any disconcerting behavior compared to our previous stiff-framed aluminum tandem. What does happen, however, is that the S&S couplers come loose on the bike because of the sheer amount of torsion placed on the joints, so we actually have to check and tighten down the couplers every ride. My previous Co-Motion S&S coupled tandem never exhibited this, so it must be unique to these super long bikes.

The reason we opted for a convertible is that we expect the bike to stay in triplet configuration for a few years until the youngest one gets old enough to move into Bowen's seat, at which point Bowen would have graduated into a seat without a back rest/seat restraint. Then we'll ride it in quad configuration until Bowen graduates onto his own bike. And yes, when the kids are all graduated we can stick the front and back halves of the bike together and ride it as a tandem.

The minute Bowen saw the bike he immediately knew which seat was his. After 2 rides, he'd figured out how to get into the seat and his feet into the pedals without assistance. He takes great pleasure in wearing his own cycling gloves, and his helmet, though he still has a hard time getting through 2 days without destroying his sunglasses. He was terrified of descents at first, but now demands that I work harder so the bike goes faster. And in case you're wondering, yes, my wife and I ride the bike together without him, and the bike feels quite a bit lighter, so even though he's maintaining 90rpm with us, his contribution to powering the bike at the moment is negligible.

Yes, the bike is slow. 3% grades feel hard, and 6% grades require we get down to the granny gears (a 24x36, in case you're wondering). The bike is well north of 50 pounds in the triplet configuration. We've not tried for any speed records yet, but it will take descents at speed with no problems. One bug we had trouble with on the bike was the horizontal water bottle cages: any less than a grippy bottle cage would eject the bottles on a bump, and even with a stainless steel high grip bottle cage, if the bottle wasn't inserted deep into the cage, a bumpy road would still take it out.

Taking and putting the bike back together is also more work than you might expect. Basically, you'd have to remove all the timing chains, which require loosening the eccentrics, derailing the chains and storing them before you could unscrew the couplers. When I stowed it into the Scion xB this weekend for a 3 day trip to Monterey Bay, we could get the bike into the car by removing the captain's seat post, uncoupling the bike, and stowing the 3 pieces vertically with one of the rear seats folded down. It's quite clear that with 2 kids, we're going to have to buy a custom rack for one of our cars.

Time to disassemble: 30 minutes. Time to reassemble: 45 minutes. Aligning the couplers on the big heavy bike is enough work that you have to take extra time to do it right, as well as using the special grease that S&S machine recommends.

All in all, the bike does what it's supposed to. People I know (including some cycling enthusiasts in the bike club) have occasionally complained that their children don't like to spend time outside, or don't want to ride bicycles with them. My impression so far is that if you give your child a chance to spend time with you outdoors, he'd happily take that over almost any other kind of stimulation. However, sour that by trying to make a kid keep up with you, or making yourself bored by having to stay at his pace or constantly worrying about traffic, and it's going to be frustrating for everyone involved. Tandems, triplets, and quads are ridiculously expensive and practically impossible to resell, but resolve these problems easily and maximize the chance that your child's association with cycling will be a pleasant one.

Monday, February 23, 2015

The Pillars of the Earth is Ken Follett's historical novel about the building of a Cathedral in Kingsbridge, England in the 1100s. It's certainly not the kind of the book I usually read, and I expected to stop reading after a couple of chapters, but it rapidly become compelling reading and I found myself reading it continually. It's bee a while since a book captivated me, and it was an unexpected pleasure.

What makes the book interesting is the description of political maneuvering throughout the country at the time, with the church, the earls and kings all maneuvering to rule the land. There are a few interesting romances in the book, and they lend human interest to the entire affair, but are really secondary to the overall plot.

I found the characters interesting, and the depiction of the treatment of women in the era is probably accurate, with a few anachronisms that I never would have known about without referring to Wikipedia.

What's fun about the book is that the author plays a very long game. Insignificant events right at the end of the book get used later on, which then leads to interesting plot points. The villains are suitably villainous, and the protagonists, while not without their fault, are plausible. For instance, Prior Philips grows from being politically naive to becoming able to take advantage of setbacks and turn them into strengths, even to the point of humbling a king.

The book is written in clear transparent style, and is very accessible as a result. The language is clearly not that which would have been spoken during that era, but on the other hand, I'd much rather not have to struggle through Old English or Latin in order to understand what's happening.

I can recommend this book, even if you're not normally a fan of historical fiction, and have no real interest in religious affairs.

Friday, February 20, 2015

Like 8% of men, I'm color blind. In normal day to day life, this isn't much of a disability. For instance, traffic lights are designed by men, so the red in the light is tinted with yellow, and the green in the light is tinted with blue, so the difference in the colors are very very distinctive. The same goes for lights for entering and leaving ports.

In recent years, the most annoying color-sensitive objects are those designed for the general consumers by UI designers who don't know any better. In particular, those devices that are not designed for use by men tend are the greatest offenders.

Take, for instance, Canon's digital cameras. The S90 was clearly designed by a person sensitive to color blindness. The charger had 2 LEDs: one for charging, one for charged. Even if you were color blind, you could use the position of the lit light to tell when a battery had been charged. My Makita power tools and the Canon 5DMk2 (and other professional series cameras) are also designed correctly. Rather than depend on color, the chargers blink while charging and become steady when charged. Note that making devices that the color blind can use in no way makes the experience worse for those who are not color blind!

By contrast, the Canon S100 was not designed by the same people. Instead of 2 LEDs, it was designed to have only 1 LED. That flipped from red to green when charged. And of course, there was no way for me to tell when the battery is charged, which drives me bonkers. Countless cell phones have the same issue (though to my relief, the Sony Xperia Z1's charged indicator flips between red and blue instead of red and green, which is at least usable by me, though not by a mono-chromat). And of course, web-sites that use red and green are also similarly annoying.

Do industrial design schools or UI design classes in schools not have disabilities/color-blindness studies as part of their curriculum? Or do those designers just not care? How can even one company like Canon have such completely disparate policies for products in the same product line?

Thursday, February 19, 2015

I broke my Xperia Z1 in mid December, and shipped it back to Sony for a warranty repair. Not knowing if I was going to ever get it back (Sony once hung on to one of my RMAs for over a year!), I bought a Lumia 635. Then last week, Sony finally sent me back a new (complete with box) Xperia Z1 6906, which wasn't the same as the 6903 which I had purchased. The difference is that the 6906 will handle LTE in the US, while the 6903 model has a few bands that are more frequently used outside the US. Since you're going to be restricted to 2G outside the US if you're mostly on T-mobile anyway, this was actually an improvement for me.

A few things that I miss between the Z1 vs the Lumia 635:

The Lumia 635 has phenomenal battery life. It's a weaker phone with a smaller screen, so I wasn't tempted to use it as much, but with the Xperia Z1, I turned on all the stamina mode features of the Z1 this time around, and have to get into the habit of keeping the phone charged the whole time. The day I didn't do that, battery life was abysmal.

The smaller Lumia 635 and the fact that it's cheaper meant that the fitness tracking feature was actually useful. I could stick it in any pocket, and didn't really care if I was going to sit on it. There's a lot to be said for having a phone so cheap that I could buy 6 of it for the price of the Z1. The compactness can be solved by buying a compact Z series phone, but you can't solve for cheapness any other way than by spending less.

But there are also many reasons to be relieved to get the Z1 back:

That nice big screen is really sweet. When using it to shop on Amazon, or use Feedly, I never felt cramped or constrained.

Apps. It's funny how Outlook is much better on Android than on Windows Phone. This is because Microsoft bought Accompli, but it's still nice. Similarly, I had to pay for Phonly (a view into Feedly) but Feedly on Android was free. People frequently say that having a forked Android store in the form of the Amazon App store hurts the Android ecosystem, but I disagree. Having 2 stores to shop from creates competition, which means that overall prices are lower for apps, and Amazon frequently gives me discounts or free coins to buy apps with. What this means is that apps I might have had to pay for on Windows such as Plex are essentially free on Android. Even better, because the Amazon appstore is not tied to a Google account the way the Google Play app store is, my wife gets those apps for free too!

That camera on the Z1 is just amazing for a smart phone camera. Enough said. As a matter of fact, together with the IP58 waterproofing rating that's the reason to get a Z series smartphone.

Waterproofing: lots of people claim that they don't see this as a key feature. The first time you rinse off the phone casually to get rid of fingerprints, etc., everyone else in the room goes, woah, you can do that?

Power. Smartphone processors simply haven't been improving as rapidly over the last few years, so the Z1 is still within striking distance of current flagship phone performance. This is no big deal for typical reading e-mail, checking RSS feed, etc., as the 635 shows, but for photo editing and processing videos, it's nice to be able to do this without having to resort to a desktop or a laptop.

All in all, after several months of using the Z1 and comparing it against the 635, I will admit that the improvements over the cheaper phone is probably justified, but requires surprising numbers of tweaks (e.g., to power management) to get there.

The current model Xperia Z3 Compact and Z3 phones reportedly do not suffer from the power management tweaking required to get decent battery life. They do, however, come at a much higher price ($476 and $575 are the current Amazon.com prices), which mean that they're not as immediately a no-brainer compared to the Nexus 5 as the Z1/Z1 compact are. However, since the Nexus 5 is no longer easily available, and the nearest comparable is the Moto X ($399.99), compared to those phones, the Xperia Z3 series would be a no-brainer.

Wednesday, February 18, 2015

The Fifth Discipline is Peter Senge's management book about building learning organizations. I first read it in the 1990s, and recently read the new edition again. Re-reading it again nearly 20 years later is definitely an experience that's different from the first time.

As a writer, The Fifth Discipline is verbose, meanders all over the place, repeats itself frequently, and name-drops obscure people that you'd never have heard of. These properties makes it a difficult and frequently frustrating read.

As a manager, however, the fifth discipline encodes some ideas about leadership that I've found nowhere else, and hammers home certain ideas in ways that not only make sense, but have you excited about putting them in place.

The central premise of the book is that human organizations are dynamic living systems which have non-linear behavior in response to events and change. This includes several properties that make leadership challenging:

Many incentive systems improve performance in the short term but decrease performance over the long term.

Many feedback cycles are extremely long, far beyond what humans were evolved to deal with, and exacerbate human tendencies to either blame individuals for poor performance or put in place patch after patch to try to solve problems rather than deal with an integrative approach to problem solving. In particular, who you hire, who you fire, and who you promote has performance impact on your organization measured in years, making it difficult to get better because the feedback cycle takes so long.

Most long term solutions and systems approach to problem solving are counter-intuitive and difficult to sell to short-term oriented business cultures.

The tool that the book uses to illustrate this is the Beer Game, developed at MIT's Sloan school of management. The structure of the game ensures that very similar outcome happens despite having explained the rules to very smart people and having very smart people play them. The game illustrates that given a poorly structure system and organization in place, it doesn't matter who's playing the game---it's very difficult to do a good job. In fact, the wider economy exhibits this behavior in the form of bubbles of various forms.

You can see many examples of this kind of organizational pitfalls in many Silicon Valley tech companies:

Conventional wisdom is that whenever you promote a great engineer into being a manager you lose a great engineer and get a lousy manager. Companies frequently therefore hire managers from the outside. In the short term this solves the above problem. In the long term, however, outside managers frequently dilute the culture, and more perniciously, by not having a culture of promoting from within, in the long term you get demoralized employees and end up with retention problems.

I can think of one case where a great engineer was promoted into a lead. This person only worked at night and never met her team-mates. She was, however, very productive (since she never actually spent any time on leadership). This led to a promotion since leads weren't evaluated on leadership. Other leads in the department took note, however, and soon leadership was devalued as everyone followed her lead. The company would end up with a culture where leads would grab all the great work for themselves, since promotions depended not on ensuring that your team was successful, but on individual performance.

The book not only illustrates the approach (called "Systems Thinking"), but in one of the appendices has a complete catalog of corporate dysfunction patterns, with diagrams of feedback cycles, diagnoses, and solutions. So if you're in a hurry, just read "The Beer Game" chapter, the section on "Systems Thinking", and then flip straight over to Appendix 2. Everything else can be treated as fluff.

Tuesday, February 17, 2015

My big beef with the first volume was the sheer selfishness of people involved, and the implausibility that somewhere, someone hasn't actually tried to build civilization and society. When you think about the zombie menace as portrayed in The Walking Dead, they're simply not that hard to deal with.

Well, this second volume addressed most of my concerns. Rather than one nasty community after another, this volume mostly deals with a community that recruits Rick's band, integrates them into society, and then actually makes good use of what they're good at. It's very well written, and the plot twists aren't silly and stupid.

Rick himself has an epiphany about the reason civilization exists, and the series begins to turn the corner. Color me impressed. Rarely do comic books that become this successful address their biggest failings, and I can see this series becoming really good.

Monday, February 16, 2015

After a year and a half, my Pyle swimming headphones had a mechanical breakage which made them unusable for my swimming workouts. Long before the mechanical damage, however, the headphones had greatly diminished in sound quality, presumably through water working its way into the headphones. Replacing the ear pieces didn't help any, so I decided to switch players.

For the player, I picked the Aerb 4G IPX-8 MP3 player. It's a nice, no-frills player with a clip that clips into your goggles, while charging through the headphone port, which is the first time I'd seen that design. This is nice, because there are no fiddly doors to open and close and wear out and let water in. The problem is that it doesn't have a shuffle feature, so it'll just play all songs from beginning to end. If you want the shuffle feature you might want to upgrade to the version that comes with an FM Radio. Not having shuffle doesn't bother me much so I kept this. The battery lasts forever. I charged it once when I bought it and 2 months later my twice weekly swimming workout still has not destroyed them.

Now, the headphones that come with this (and other swimming MP3 players) are crapThey won't stay in your ear, or provide a decent seal to prevent water from coming in. However, decent headphones for swimming cost only $4.59 on Amazon, with the caveat that it'll take about a month for them to arrive via the slow boat from China. But these cheap headphones are amazing. They come with 3 clips to clip onto your goggles, and you can flip turn, and thrash about in the water and they absolutely will not come off. They seal decently and provide relatively great sound in the water. I'm buying a second pair.

Friday, February 13, 2015

I'm a sucker for deals, so even though I'm not a fan of zombies, The Walking Dead Compendium 1 & 2 were on sale on Google Play books, so I bought them to read. I'd read some of the early parts of the series years before, but they weren't compelling enough to draw me in. Binge reading entirely 48 issue series at a time, however, is a different experience.

First of all, in the time since the original comic series came out, story telling in the zombie-plagued future has had better story telling than when the series first started. It's no longer stupid horror stories, which I understand that this series pioneered. When compared to say, The Last of Us, The Walking Dead no longer stands as an example of how to do future dystopia right. In fact, The Last of Us being "only" a 12 hour video game feels like it does a much better job due to tighter story telling and a confined plot. The art style in The Last of Us, of course, is much much stronger than the black and white Walking Dead.

There's much to like about the series, however. The world portrayed is strong, and is as much of a character as the lead character, Rick. As a foreign born immigrant reading these books, however, it strikes me as how uniquely American these books are. The strong individualistic culture of "I've got mine, screw you!" comes across extremely well in these stories, and they are stories you wouldn't find in other cultures. For instance, at a crucial juncture in this book, a few of the characters decide that they'd stand a much better chance of survival by abandoning the group and running away, leaving the rest to die. You'd think that people who've depended on each other for survival for that long (well over a year) couldn't do that to each other, but in the individualistic libertarian morality play that is The Walking Dead, this isn't just plausible, it's the right thing to do. (They do come back later but the rationality behind that behavior isn't explained and they are punished for it)

If something like The Walking Dead was written by say, the Japanese, it'd be much more a story about how society comes together to build a future in a desperate future, rather than a story about constant betrayal and stupid decisions.

If you enjoy drama, betrayal, and a feeling of desperation as well as insight into why American culture is constantly about the strong screwing over the weak, you cannot find better source material than The Walking Dead series. But quite frankly, I wouldn't want to live in a world filled with idiots, and as Wallace Stegner frequently pointed out, American society and history is actually filled with examples of people building institutions and societies, rather than doing their own selfish things.

Thursday, February 12, 2015

By now, you've heard of the Marshmallow Test. If you haven't, go visit YouTube and search for the many videos filmed of the test. This book was written by Walter Mischel, the psychologist responsible for designing the test and describes the various follow up studies over the years to understand the nature of willpower, and whether or not it can be trained.

The marshmallow test is an indicator of executive function (EF), This book is therefore an exploration of executive function. There are several interesting attributes that just a surface understanding of the results behind the marshmallow test wouldn't get you.

First of all, it turns out that willpower or executive function is contextual. Any examination of Bill Clinton's career, for instance, shows that he had plenty of willpower when it came to his most important goals, but was of course, undone by an affair with an intern. This pattern is repeated in many Hollywood movie stars, and even military generals like David Petraeus. What happened in those cases is that for such people, their focused willpower doesn't extend to certain areas of weaknesses which was what brought them down.

Secondly, willpower is not a fixed resource. It can be drained through use, so your willpower is strongest in the morning but weakest in the afternoon and in the evening. That's why bars, etc open late at night so they get more revenue when your willpower is the lowest.

Finally, executive function can be trained. There are several strategies that many adults try, including meditation, "mindfulness", and other well-documented techniques. Mischel goes through most of them and details the reasons they succeed (or fail), and how to make the more common ones more effective.

More importantly for parents, there are definite ways of bringing up children so that they have more or less willpower. In particular, modeling is critical, as is being supportive and not over-controlling:

The message here is that parents who overcontrol their toddlers risk undermining the development of their children’s self-control skills, while those who support and encourage autonomy in problem-solving efforts are likely to maximize their children’s chances of coming home from preschool eager to tell them how they got their two marshmallows. (Page 60)

Not surprisingly, having absent parents or growing up in an unpredictable environment also leads to lower willpower:

Beginning in early childhood, far too many people live in untrustworthy, unreliable worlds in which promises for delayed larger rewards are made but never kept. Given this history, it makes little sense to wait rather than grab whatever is at hand. When preschoolers have an experience with a promise maker who fails to keep his promise, not surprisingly they are much less likely to be willing to wait for two marshmallows than to take one now. These commonsense expectations have long been confirmed in experiments demonstrating that when people don’t expect delayed rewards to be delivered, they behave rationally and won’t choose to wait for them. (Page 72)

That means that keeping your promises to your kids is very important. There's also pre-natal advice, and advice that reducing quarrels between parents during the first few years is critical to having a kid with more executive function.

Overall, the book is good reading, though it's rather verbose in places and doesn't always do a great job getting to the point quickly. Nevertheless, it's got plenty of practical advise, and provides details behind the workings of executive function that a surface understand of what's happening during the test wouldn't give you, so I recommend reading the book for yourself.

Wednesday, February 11, 2015

Recently, someone asked me a deep question: we all know (and Google has the data) that interviews do a poor job of predicting on-the-job performance. If that is the case, would a different form of interviewing (say, pair programming) or other form of testing do a better job?

My answer to that question is "no." What most of the other articles do not note is that Google actually does have data as to the major factor influencing on-the-job performance (at least, performance as viewed by Google's notorious promotion committees). It turns out that even in 2003-2004, Google had data indicating that your first tech lead at the company strongly predicted how well you would do in the future inside Google.

There are several reasons for this. One obvious one is that the promotion committee is likely to weigh your tech lead's comments on your performance more heavily than some other random engineer's. The deeper reason, however, can be found in the book, Chasing Stars. Fundamentally, all organizations have stated or unstated rules for how they work. Whether the on-boarding systems do a good job of explaining that to new employees and indoctrinating them in the culture very much explains future performance.

Google at the time when I joined was a largely oral culture. A typical noogler joining the engineering team would during his first week of working through the engineering training document find several bugs a day in the documentation necessitating a documentation change, if he were conscientious. Old documentation or out of date documentation was rampant, and the tech docs team had their hands full trying to keep up with the amount of code and internal APIs continually being churned. If you actually had to get work done, your most important tool wasn't the documentation or the internal search engine (which was laughably bad), but knowing who to talk to. For instance, if you needed to make a change to crawl, and your tech lead knew to say, "Go talk to Arup Mukherjee and ask him how you would do this", you were in luck and you'd be productive and efficient. If your tech lead said, "Go read the documentation," or worse, "Use the Source, Luke", not only would you waste a lot of time reading both code and documentation (as I was forced to once when dealing with the search results mixer), chances are when you were done you would probably have done it wrong, and your code reviewer would spend gobs of time correcting the way you did things, and forcing you to do everything over and over until you got it right. If that happened, you might as well kiss your "Exceeds Expectations" performance review goodbye. (And yes, I lucked into knowing people who wouldn't just tell me who to talk to, but walked me to their cube, provided introductions, and made it clear that what I was supposed to do was important enough to deserve help)

I'm fond of saying that context matters a lot when it comes to performance. This type of context-sensitive performance isn't necessarily because the tech lead deliberately led the poor engineer wrong. It was because the tech lead did not provide a suitable context for the engineer to work with, and in the process makes the job much much harder (or in some cases nearly impossible) for the new engineer. Hence if your interview process is successful in eliminating people who can't actually do the job, but you end up with variable performance or unexpectedly poor performance on the job from people who should be doing well, you need to examine your on-boarding process or the training process for your leads/managers.

The follow up to this question then is, "If performance is so context determined, why do we bother with interviews?" The answer to that is that the goal of the interview isn't to predict performance in the future. The goal of the interview is to ensure sufficient technical competency and cultural compatibility so that with a good on-boarding process or a decent tech lead/manager, the new engineer ought to be able to do a great job. Hence, when I run interviews, I don't favor esoteric problems that require dynamic programming (for instance), but basic data structure questions. While I consider basic tests such as the Fizz Buzz Test way too simple and insufficiently indicative of someone with basic computer science knowledge, coding questions that approximate that level of complexity (while still testing basic computer science concepts) is all that is typically needed to weed out people who simply can't code and shouldn't be allowed access to your source control system.

Tuesday, February 10, 2015

My Windows Home Server (original) has been running very nicely since it was first installed in 2011. The nightly backup feature has saved my ass countless times, and I've definitely done many a restore from image instances from backup when I would try a new OS (such as Windows 10 Technical Preview) and then backed out from it. It also serves as the central file server for the home, exporting music/video/etc via DLNA to the living room PS3. All in all it's been an incredible value.

Unfortunately, WHS is showing it's age, and has been de-supported. This was running fine for us until very recently, since two of the limitations were no big deal:

No support for larger than 2TB disks (6TB of local storage was plenty, thank you)

No support for UEFI machines (we didn't have any, except for various Windows tablets, which didn't store any data worth backing up)

Then we got a Surface Pro, which is a UEFI machine. The WHS had also started getting a little flakey, and I'd eventually have to replace my desktop and laptop with newer, UEFI machines so I started shopping.

One obvious upgrade was to go to Windows Home Server 2011, but that's also showing it's age, and lost the drive extender feature of the original WHS. We could go with hardware RAID by as explained on the Windows Home Server review, RAID is a mixed bag, since if the RAID controller fails, you'd have to replace it with an identical piece of hardware or risk losing your data. RAID isn't a great solution for home use.

Windows 8.1 has support for storage spaces, which has many interesting features that in many ways mirror what was in file extender:

Drop any set of storage spaces disks into any Windows 8.1 PC, and you'll be able to crack open and view all the files. This sort of commodity hardware data storage is invaluable.

You can mix and match drive sizes into a storage pool, and then create virtual disks that can be mirrored (RAID 1), striped (RAID 0), or with parity (RAID 5) across the multiple drives. This is very nice, since you can then upgrade storage slowly. You can even designate spare disks and "hot spares", to automate failover. This effectively lets you tell Windows to have different data policies for different type of data, for instance asking for photos to be mirrored while videos are striped.

You can even thin-provision virtual disks, and have Windows warn you when you need to add storage.

The problem with Windows 8.1 is that it doesn't support full bare metal backup and restores. For that feature you need Windows Server Essentials 2012 R2, a full on business server. This is when you realize what a great deal the original Windows Home Server was, since the retail cost of Windows Server Essentials 2012 R2 is more than what I paid for the original Windows Home Server hardware!

No big deal. I worked in the software industry, so I pulled some strings and got a copy at employee pricing. Then I needed hardware to run it. I thought about repurposing the Windows Home Server, but then realized it was a bad idea: I needed to do a server-to-server copy, and the Acer was also headless. While it's possible to do a Server install headless, it's not for the faint of heart.

The cheapest server you can buy is the Lenovo TS140. You can get it for around $225 for an i3 machine, 4GB RAM, and no HDD. However, I found a deal where for well under $300, I got a quad core Xeon configured with ECC RAM. Now that I was expecting to handle tens of terabytes, I figured ECC RAM was worth paying for. The extra CPU is also helpful for running server applications such as Plex, which basically transcode video sources on demand for targeted delivery.

Installing WSE 2012 R2 is straightforward. However, I learned a few things about UEFI machines and WSE 2012 R2 that weren't documented elsewhere that I looked:

OS updates will not work if you have secure boot turned on. Turn off secure boot.

WSE 2012R2 (or any version of Windows) will not allow you to use excess space on the boot drive as part of a storage spaces cluster. So effectively, your 4 drive bay server is now a 3 bay server! This isn't a big deal if you have 4TB disks in the server, since that's plenty of storage, but it does make the server smaller than you expected.

WSE 2012R2 is a business server. So the first thing it does is it sets up a domain. This is no big deal as it's very automated and easy. However when you connect an existing computer to a WSE server, the first thing it does is to register the new machine to the server, with the server providing the domain. This is no big deal with Windows 7: your login prompt changes so you have to hit control-alt-delete to login, but there's no difference otherwise. With Windows 8, if you previously logged in using a Microsoft cloud account, then if you login using domains, you lose all the cloud customizations you used to have! The solution to this is to hack the registry on the Windows 8.1 machine to skip joining the domain. If you were truly running a small business like a dental office, this isn't what you want (you wouldn't want your employees logging on with their cloud accounts), but for a home user who's upgrading from WHS, this is the right thing.

Other than that, everything was fine. I ran a backup and bare metal restore on my Lenovo X201, and things went smoothly. Then I tried it on the Surface Pro. The Surface Pro has 2 SNAFUs. First, bare metal restore doesn't work over WiFi (not surprising). This was easily resolved, since a USB ethernet port was already available for high speed network connectivity. Since you also need to plug in a USB thumb drive for booting, you'll need a USB hub. There are various warnings that you need a powered hub, but my unpowered hub was fine provided I only had the thumb drive and the ethernet port hooked up to it. The final SNAFU was when I tried booting using the thumbdrive and got an error. This one turned out to be secure boot's fault. Turning off secure boot on the Surface Pro got the bare metal restore working with zero hitches.

I transferred all the data over from the old WHS server. It turned out that the old server was CPU constrained. While the old server topped out at around 45MB/s, the new one peaked at 65MB/s. This is pretty sweet. I could also run the Plex Server on it without the CPU even breaking a sweat.

The nasty thing about storage spaces, however, is that it doesn't auto rebalance when you add a new drive. You can force a rebalance, however, by creating a new virtual drive after adding a new drive that makes use of the new drive, and then copying old data to it and then deleting the old virtual drive. This is kinda more futzy than I'd hoped, given that the old WHS kept ticking for years on end without me having to do manual rebalancing and all that, but again, if your old server failed, you could move the drives over to a Windows 8 PC and everything would just work, so this is a feature I'm willing to live with.

All in all, would I recommend this? If you have an old WHS that's been operating and you don't have any UEFI machines, I'd recommend sticking with the old server for as long as you can stand it and don't need to upgrade to any UEFI machines. If you have an existing old-style NAS RAID, I think the Windows solution is superior to any of the freeware servers, especially since ZFS requires gobs of RAM, and the low end servers are cheap, assuming you can snag a copy of Windows Server Essentials 2012 R2 at employee/educational institution pricing. The combination of having a file server, bare metal backup restore, file history, etc, and DLNA server is pretty sweet.

If you ask around, most people (even software engineers who should know better) rely on cloud storage or don't do backups of their data. If you shoot with a modern digital camera (as opposed to a crappy phone camera), videos and photos quickly fill up terabytes of data, making cloud storage prohibitively expensive. Under such circumstances, a home server that backs up all your computer is well worth the cost, and WSE is surprisingly efficient and easy to use. Recommended.

Monday, February 09, 2015

As documented previously, I've recently run into quota issues for gmail. Along with the need to aggressively delete e-mail to get under the quota, I've finally decided to take backing up my e-mail seriously. This is important, because together with photos, a lot of e-mail is actually useful for searching and remembering details that aren't recorded any other way. Even if you've decided to pay for storage on Gmail, for instance, there's always the chance that your account gets hijacked phished or otherwise deleted/hacked, so having a backed up archive locally protects you in that event.

As a well documented cheapskate, I first tried the free solutions. Mozilla Thunderbird, for instance, is well known and popularly acclaimed. But it was too slow and couldn't really manage huge inboxes. I tried various other solutions before giving up and acquiring an Outlook 2013 license through an employee purchase program at Microsoft.

Setting up Outlook is fairly straightforward, and it auto-configures now for Gmail accounts as well as Hotmail and Yahoo mail. For Google Apps for your domain accounts, however, you have to go through custom configuration. There are a few bugs there, but eventually I got it so that everything sync'd.

Performance is decent. It can't match the search index that's built on the browser based version of gmail, but it's acceptably fast and works even when you're offline. The real feature that made me pay for a license, however, is the auto-archive feature. This essentially lets you move old e-mail into an archive which you can then access and search separately. I did an archive and the machine went away for a few minutes and created a 9GB archive of my e-mail all the way back from 2004. It's searchable, opening the folder isn't fast, but it works and I can apply filters to it and search it after creating an index, which takes forever.

The biggest pain point is that I have to force myself to keep Outlook running. (It's not a hog: 200MB of RAM is all it takes --- keeping a Chrome window open to Gmail costs quite a bit more!) The sync with a live server is also somewhat slow: I frequently get a ping on my browser window a few minutes before Outlook fetches the mail. What's also interesting is that while it automagically imports your calendar (and it does a great job of that), it doesn't automatically import contacts, and the auto-complete does not auto-populate.

What auto-archive does not do, unfortunately, is to remove archived e-mail from the IMAP server (in this case GMail). This isn't great, but on the other hand, means I can now very aggressively delete e-mail in the future.

There's a market opportunity somewhere for an e-mail app that doubles as a backup for cloud-based storage, but I'm sure people like me are a rarity (most people don't even backup their photos). However, just like Open Office Spreadsheet was never a good substitute for Excel, there's no serious alternative to Outlook if you need the capability of offline e-mail or archives.

Sunday, February 08, 2015

Indexing is Seanan McGuire's novel about fairy tales gone amuck. It was originally sold as a serial and the structure of the novel reflects it. McGuire's also written novels by the name of Mira Grant, one of whom (Feed) I've previously reviewed as a mediocre novel.

The premise behind Indexing is that fairy tales (known as narratives) have a power all of their own, and once they get started and locked into the persons involved, will make their way to the end, uncaring and leaving dead bodies (or sleeping bodies) in their wake all in service of the story. Hence there's a secret government agency formed around finding narratives and stopping them in their tracks.

The net effect of this is as though you have the Cthulhu mythos replaced with Sleeping Beauty, Cinderella, etc. The premise is interesting, but McGuire does a lot less with the premise than you might expect. Each episode revolves around one particular archetype, and in itself seems to be ok, but the overarching story linking them all is weak, as is the character development. Everyone lives up to their stereotype.

The result is disappointing: you keep reading hoping for the author to deliver a grand plot that was hinted at, only to discover something pretty prosaic. Read Fables instead.

Friday, February 06, 2015

Zero to One is Peter Thiel's short book on how to build startups. It's a very mixed bag, but has a few interesting and important ideas. I'll try to list some of them.

Venture backed up startups shouldn't be funded to achieve "normal" returns. This should drive VC behavior: in other words, there should be no startup in a VC portfolio that do not have the potential to return 10X the rest of the portfolio. Having this discipline means that you only need about 1 in 10 startups to succeed to pay for the entire portfolio of companies. This is a very strong point, but he mixes it all up by scoffing at diversification. What you have to understand is that Thiel isn't just writing a book teaching you about startups. He's a sales person. He succeeds by convincing you (or the founders at any rate), that diversification is for wussies, and that you should bet it all on huge thing while behind the scenes he's practicing diversification by investing in lots of startups with his huge portfolio.

Another interesting point is that the goal of a company is to create products that have no close substitutes so as to enjoy monopoly profits. This is true. Warren Buffett has also frequently expressed the need to have a big moat around business you would invest in. On the other hand, we do have tons of startups all searching for that next monopoly, so it's not as easy as just he says.

Sales is important. This is a big deal, because most tech startups are founded by nerds who hate sales and marketing. This chapter is a great read for every nerd-turned-entrepreneur, and he points out that most sales jobs are named something else (e.g., "Account Executive") so that the customers aren't alerted to the fact that a sales person is talking to them. He also points out that Palantir's sales are so big that the CEO is effectively the company's sales person.

There are some other interesting titbits about various companies founded and run by the Paypal mafia, but a lot of what Thiel says has to be filtered by your B.S. filter: the man is self-serving to the nth degree, so the entire book is a sales job. In one chapter he grudgingly admits that if you examine the odds of success objectively, it makes more sense not to found startups, but to join one that's clearly on the trajectory towards outsized success (e.g., Google or Facebook before the IPO, and now probably Dropbox, AirBnB, Uber, and a handful of others).

I hate to slap a recommended label on this book, but it's so short that you can read it in a couple of hours, so I'd say it's worth a read, provided you take it with a 20 pound burlap sack of salt and watch out for all the places where he's being self-serving.