Monday, September 15, 2014

Innovate on Experience, Not Features

A lot of hubbub has been circulating around the recently announced iPhone 6 and its feature set.  Firstly, most analysts point out how its not so innovative.  Second, seeing as there were 4 million pre-orders, at a measly $240 profit per phone (40% margin on a $600 unsubsidized price), that stands to net Apple a cool $1 billion in profit....on predorders.  It literally has not shipped yet but already made a billion dollars.

Here's where I think things get interesting: there's chatter about how there's nothing really all that new about what the iPhone 6 does: it has all of the features that Samsung phones do from two years ago.  And it's absolutely true: NFC has existed for 10+ years, so there's nothing new here.  Call it the Android fanboy in me that sees that on paper, it's a hilarious 1:1 match for a Samsung Galaxy Note...from 2012.

However, the innovation is not in features, it's not in specs.  Apple innovates on user experiences.  Did no one learn anything about Mac specs always being slightly behind PCs?  It wasn't about how many gigahertz the processor was clocked at, or how much RAM it sported, it was "how pleasant is this thing to use?", "how much of my time does it take to maintain?", or "what apps all come for free?"

I think the same applies to the iPhone 6:  it's not about how Android phones had NFC years ago -- they did, as did many other implementations a decade ago -- but rather the user experience sucked because no merchants really invested in accepting it.  How useful is an NFC feature if no store takes it?  Apple's innovation here is getting merchants to lean in and finally do it -- because if their competitor "works with Apple" to adopt NFC and they don't, they look terrible.  Simply by making NFC relevant again, Apple uses their bodyweight and momentum to get others to play ball....innovation without even a drop of technology.

The same goes for the other numerous "copycat" features: larger screen, messaging, apps, photos: they didn't invent this stuff, each feature has already been done, sometimes better, by another competitor.  However, the innovation isn't on the feature: it's on the software experience, and that's what competitors miss.  Messaging is simple and no where near the awfulness that is Hangouts.  Photos are easily taken and easily sync'ed (modulo being hacked) rather than depending on Google+, that you may not want.  I already mentioned NFC.  No bloatware added by the OEM.  And so on and so forth.  The features aren't new, a non-shitty software user experience is.  And that is something that competitors haven't understood for 20 years, even longer than NFC has existed.  (Affectionately known as "it just works")

I won't be buying an iPhone 6 myself -- it costs more for a phone than a laptop for crying out loud, and I live in the Google ecosystem.  But I will attest that Apple is pushing the user experience innovation forward.


Elder Scrolls Online Review

I've been a bit quiet on the blog for a while, and it's mainly because I got my hands on Elder Scrolls Online (an MMO, like World of Warcraft) for the last month or so.  But I'm now done with it.  Since it's on me to catch up on a month-plus of blogging, I'll at least start with my own personal review of ESO.

I feel like reviewing ESO is almost cliche now, since it has been reviewed a gazillion times by a gazillion people.  But I feel like I have to give an on-the-ground view of what the game is like for someone who has limited time to play:  If you can only play when your kids are asleep, is it worth it?  (perhaps I should make a series out of this kind of review?)

First, since I started up after the game launched, I did not have any of the pre-signup issues that people complained about.   That said, I had the "premium" version that let me play a Breton in the Aldmeri Dominion (Elf-land).  After creating my character and stumbling through the intro/training area,  I started hunting around and doing quests in the starting area.

First, I'm glad the quests were not of the typical MMO variety ("kill 10 bears"), which grow boring quickly.  However, quests are still mind-numbingly empty:  simply click through all the discussion-tree options, and then follow the marker on the map to whatever you need to kill or examine.  The story behind every quest is completely inconsequential -- just click through the options and you're done, who cares what they say or what the background of the problem is?  Wash, rinse, repeat.  They could fix this by simply removing the "goal marker" on the map and forcing people to read what they say.  Even those quest choices that make you choose a permanent choice (usually "do you kill this person or not") have little to no difference on results and rewards.

The options for customizing a character through the skill tree are awesome: the options go far, far beyond just what is available to your class, so you can create a bow-wielding battle-mage or a magic-wielding, mace-favoring assassin regardless of what class choice you made.  Seriously, every MMO should let you customize your character this way, rather than forcing you into 2-3 builds that work for your class.  However, having played Skyrim, I wanted a customization tree that was as deep and customizable like Skyrim's.

Crafting is ok, but confusing.  There are a lot of options, and you pick up a lot of crafting ingredients to do every craft.   But it's not clear which one you should do.  It's almost like I felt I had to do all of them because I had so many crafting ingredients.  I ended up creating a lot of my own equipment, but I also just bought a bunch from vendors.  Do I need to do this to max out my character?  Yes?  Maybe?  No?

Which brings me to one of my biggest gripes: no game-wide auction house.  I had a slew of junk that would be useful to someone else that was worthless to me.  But you have to join guilds and then sell only to guildmates who want to buy your stuff.  This is completely worthless, and provides absolutely no value to the game.  I joined guilds just to get access to sell things in their stores, not to socialize or join a group.  I ended up accumulating a stack of gold that I couldn't use to buy anything, and a stack of [crafting] items I couldn't use.  There is no need for this crap in the game, and the designers should simply do away with it.

And speaking of crap, there are bots, and many of them.  This is all over tons of articles, but it was never a big problem for me.  It was annoying getting gold-spam, but at the same time, the spam was for selling me gold I couldn't use because there was no auction house.  Why did botters/spammers choose this game to automate?  Pretty dumb.  It was fun to steal their kills, though.

I didn't get to level 50 before I started trying out PvP, but the game scales up your level.   I was lucky to choose a "campaign" of PvP where my side was winning -- I would jump into the PvP area, try to find a group, and then run to where everyone was fighting.   I liked that PvP was a viable way to earn skill points, stat points, and experience, which is rare for MMOs.  You could just not do the usual PvE experience and still get to 50.  However, I spent most, if not all, of my time in PvP running from a friendly-owned keep to a contested keep.  Die, run back to battle for 10 minutes, die, repeat. Maybe there was some point to getting lots of PvP points, but I got nothing from it, so it was lost on me.  Why would I spend my time on this?  I guess to try to gamble on more items, but what a waste of time.

There also seemed to be few people around.  I tried to do one of the earliest "group" dungeons, and I just couldn't find another living soul who wanted to do it...and I wasn't on a backwater server.   Did the entire world already level up and skip this dungeon?  It seemed so odd, considering in other MMOs (WoW) how the first group dungeon is packed and run by teams repeatedly.  I guess ESO is just a ghost town.

Beyond that, there were "little bugs" that made it hard to play.  Some characters that wouldn't follow or show up.  Switching quickslot actions sometimes wouldn't work.  Rewards for PvP were randomly worthless.  It exposes rough edges that other MMOs have smoothed out.

I didn't renew my subscription to ESO.  I don't care what happens to any of the characters in the story, and PvP is a repetitive grind at best.  There are some cool ideas within: customizing specialization paths, but under the surface, it's not all that unique of an MMO.







Thursday, July 31, 2014

First Try With Google Domains

So I got an invite to use Google Domains, which is Google's new domain registrar service.  I have to say that I'm impressed with how smooth and easy the transaction was.  I realize that it probably sounds biased coming from me, but you may want to check it out for yourself.

The search mechanism was quick and pretty straightforward -- you enter in the site name you want, and it checks the availability...very similar to other registrars.  It makes other suggestions of available names too, nothing shocking there.  I liked some .us domains, but found that you can't register them anonymously, so I went with another that seemed ok -- glennwilson.info.

However, the benefit comes from checking out.  It was smooth to just say "yep, that's it, I'm done" and put in contact/credit card info, and *poof* done.  None of the sneaky upsells or additional charges you normally see with registrars.

Then switching my blog from the standard *.blogspot.com domain over to my new domain was pretty easy too -- I just went to the blog settings, added my new domain under "Blog Address", and then went to my domain account and set up a new CNAME record.  This part was kind of awkward and I had to dig for it in the blogger documentation, and stumbled through creating an arcane DNS thingy, but it didn't take more than a few minutes to do.

Next, I might try to get an app engine instance running on the new domain to see how that works.  In the meantime, kudos to the Google Domains team for a nice product so far.

Saturday, April 26, 2014

All In on a Mac

I thought this day would never come.  After decades of swearing I hated Macs and would never own one, I finally took the plunge and got my own Macbook Pro 15".   For the majority of my lifetime, I swore I would only use "open" and easy-to-hack on (like Windows!  ha ha) systems.   At some point along the way, the value proposition changed, and a Mac became a better choice for coding, gaming, and cost of maintenance.



It wasn't like I didn't try to look at other systems.  Of course, I went straight to Chromebooks first, but knew that I would have to wipe / dualboot it to even get Linux on it, and even then, the modest computing power wouldn't be able to handle heavier applications.  On my way to the Mac counter at Best Buy, I even stopped over at the Windows laptops.  There were dozens of them, all happily running their Windows 8 kiosk-style and not another soul in sight around them -- when I touched one to try to launch the big "weather" app from Metro mode, it then went into "edit your Metro tiles" mode.  Huh?  I just wanted the weather, and clicking on this thing makes me edit my tiles.  Nope, I'm out.

Instead, I plunked down several thousand bucks and walked out with a small, thin white box.  Giddy.

One week in, I have to admit that I'm happier than ever, and I've been extremely surprised by the experience:
  • Finding applications that run on Mac is easy.  Everything I wanted to run, including IDEs I've used before, and games I was playing on my Windows Doorstop all have Mac versions.
  • It had all the "power" of Linux already in it.  I fired up a terminal and checked the version of git.  It was all ready to go out of the box.
  • Navigating around the OS was not a problem.  I always thought "I know where to find everything on a Windows/Linux machine, but not on a Mac." -- turns out, it's just a matter of running the Finder or Launcher. 
  • I was able to easily install Hearthstone and battle.net, and they ran smoothly without even making the fan run.
Even so, there have been a couple of rough edges.  The first thing I did was to reverse the two-finger inverted scroll nonsense.  The App Store concept was weird -- do I buy apps from Apple's store thingy, or just download them from somewhere else?  The number and quality of apps is questionable.  I wanted an IDE to be there, but the closest one was like $70.  Huh?   And the "app still running until you go to Menu -> Quit" is still bizarre to me.  

Anyways, it's been a helluva purchase, and it's helped me get a couple of broken-then-fixed versions of my extension out.  I'm considering my all-in bet a pretty good one so far.

Sunday, April 6, 2014

Back in the Saddle

My next 30 day challenge hasn't gone so well.  It turns out that sometimes it's easier to commit to something larger and execute on it than commit to something smaller that's easily forgotten.  Oh well, I guess I'll just hit the reset button and try something else.

In the meantime, I found out from a friend who uses my spoofer extension that it completely stopped working with Chrome 35 (dev channel).  This usually happens when Chrome changes APIs that extensions can use to do certain things, and indeed, this is what happened.  Looking through all of the chrome.* APIs I was calling, half of them were deprecated and replaced with something else.  So much for a stable development platform.

So this pushed me a bit on releasing my half-baked 1.0.30 version, that was a significant rewrite from 1.0.26.  Thanks to some very cool and helpful G+ commenters, I isolated a couple of bugs in the 1.0.30 version and knew I needed to get back on the horse and start hacking again.

But, there were several problems:  One, all of my source code was on a 5-year-old laptop that is one power supply away from being a doorstop.  Second, none of the source code is under source control.  And last, I had no error reporting in the extension at all -- it could be failing horribly and I would never know.  I set out to change that and learn new stuff along the way.

First, I set up a bitbucket account, where I could have multiple projects for free.  Usually for open-source stuff, people pick github, but I went otherwise because of (a) all of that weird BS going on around github in general, and (b) bitbucket is free.  I also started using git, and tracking / tagging / etc. the source, so that's good.  Second, I polished off an old CodeEnvy account I had and started and connected it to my bitbucket repos and started hacking online (on my Chromebook, naturally)


CodeEnvy has been surprisingly responsive and usable.  I can deploy an app engine app right from the IDE, push and pull from bitbucket, and can edit multiple languages.  I'm impressed with it so far....I daresay it might be something I'd pay for.

Lastly, I started fixing up the bugs in 1.0.30 and implemented a weak (but workable) error reporting system.  It's anonymous, and just reports how often an error occurs.  I don't have it sending anything back yet, but it's a good start.

Also, I think I made a decision on upgrading my workstation to a Macbook Pro 15".  Now, if I can just get the guts to spend $1900 on it...

Monday, March 31, 2014

Confusing Error

I've been hacking away at my extension again, based on the fact that the old version is completely broken by Chrome version 35.

One of the major operational pieces that I did not have in place is error reporting -- I relied on anecdotal error reports from users, which have typically been enough in the past.  However, with a major refactoring and rewrite, there are so many problems that can pop up, and I have no way to know if I'm causing bad regressions.

So I've been building version 1.0.31, with opt-out error reporting.  But when making the changes and firing it up for the first time, I kept seeing this error in the console:

Error in event handler for (function name here): TypeError: The first argument is the receiver and must be an object.

WTF?  It only seemed to come up when registering a callback, but I didn't change anything significant with any callbacks, I just added some error aggregation and reporting.  After struggling with finding the cause, I used the time-tested method of commenting out large blocks of code and then un-commenting until things work.  I eventually narrowed it down to this new function-class that I added:

function Error(code, message) {
  this.code = code;
  this.message = message;
}

Why would this class cause problems, it's as basic as it gets...?  And why would it cause this weird error? The only answer I could think of was that "Error" is a reserved name and declaring this function effectively overwrote it, causing all sorts of disaster.  So I renamed the class to "ErrorReport" and things worked again.

If you encounter this error, there's a chance somewhere that someone is inadvertently clobbering a "protected namespace" function...one of the wonderful joys of Javascript is the ability to shoot yourself in the foot in mysterious ways.

Sunday, March 23, 2014

Brew For You Service

Here is a quick double feature of what I'm grateful for, and some ideas I came up with:

I'm grateful for:


  • Staying in touch with good friends over 20+ years leads to some awesome (hilarious) reunions that seem like you never drifted apart.  I'm grateful for having life-long friends.
  • I'm grateful for the opportunity to get 5+ free hours to brew.   That picture below is a Belgian Wit, which I'm hoping will come out with a nice light orange-y flavor.  My feet are up on top of the mash tun.



[Bad] ideas of the day:

  • A "brew-for-you" service where you specify the recipe that you want to brew, and the service gets all the materials, brews a 5 gallon tester batch for you, and you pick it up when it's fermented and ready.  I would love this service so I could try out new recipes or tweaks without having to commit an entire afternoon of working to find out if it worked.
  • A DSP that targets mobile ads specifically at *mobile web* rather than mobile app, and detects when users are zoomed in & in a residential geolocation (i.e., at home, browsing).  Not sure if that would be all that useful.

Sunday, March 16, 2014

A new 30 days

So I've reached the end of my 30 day challenge to write a blog post a day.  It's taught me a lot about both trying to do something regularly (set a schedule and do it the same time every day) and writing (super hard, kudos to people who do it full time).

But now I need a new challenge to do something completely new for 30 days.  I thought about all the things I wrote before, like writing code every day, doing shoulder mobility drills, etc.  But these are things I kinda-sorta do now; they're not completely new.  It's like setting a goal to floss twice a day instead of once.

I've been feeling dissatisfied with my professional work as of late, and it's made me more mopey, and probably not fun to be around.  I want to be able to focus more on the positive, be grateful for what I have, and be a better person to be around.  There are studies that have shown that just reflecting on what you are grateful for will make you happier and more satisfied with your life.  But I also want to do something beyond just improving my attitude -- I also want to actively work on something that could build into another professional opportunity.

So I can think of two things that will help me do this:
- every day for 30 days, think of and post something I'm grateful for
- every day for 30 days, at the same time, I'll post an idea for something I'd want, or want to build

I'll either post them on G+, which is where short stuff like this will likely be more 'visible', or the blog, if there is an idea that I really need to write about (or talk myself out of.)

So, day 1-  March 16.

What I'm grateful for:

I get time every day after the kidlet goes to bed to work on my "own stuff", writing blog posts, checking facebook, etc.

Idea of the day:

Wind chimes that make the sound like palm trees do in the wind.  I dunno, it sounds dumb, but I like the sound of palm trees when they blow in the wind, but they can be nasty to maintain and get really tall.

Ok, so maybe that's in the "talk myself out of it" category?

Thursday, March 13, 2014

The Old Startup Guy

I'm sure many of you spotted this article about the "new guard" versus the "old guard" of Silicon Valley.  The article is uniquely insightful and detailed, a pretty accurate view of what draws and keeps people in Silicon Valley.

As someone who is nearly 35 and "over the hill", I'd like to give my own perspective on the topic.  I feel somewhat knowledgeable on the topic, since I lived and worked in the valley for nearly four years, and I worked at several  startups over my life, and now I work at one of the "old guard" companies named in the article.  I guess I fit the mold pretty well.

I loved working at a startup when I was young.  We wrote code, played video games, had nerf wars, played soccer, had parties together and generally just tried shooting the moon and having good times as a group of friends trying something big.  We worked long hours (we actually got paid by the hour, which when you are 21, was amazingly good pay, and for the company, it was a steal to get developers that cheap)  Those times were perhaps the most fun and memorable times of my life, and I would give nearly anything to do them again.  It all worked out at the time because the pay was really good for living in a house of 7 roommates and eating Domino's pizza.

I imagine this is exactly what Silicon Valley is like today, and this article seems to confirm it.  Trying to make something cool and fun while working / living / partying with smart people, and having one small sliver of a shot at making it really big.  It gives me chills just thinking about it.

But it doesn't last forever.  You eventually either get old, or sick of it, or find someone and settle down and have kids, or really sell the company for a billion dollars, or fail so hard you have to move home, or whatever.  Then what?  You have to pay a mortgage, take kids to soccer practice, work less than 80 hours a week because there are people who want to see you, live in the valley because soma got too expensive, and work at a job that will really be there next week because health insurance ain't free.  And then you're working the "old guard" making routers and measuring email uptime because it means all of those things.  

There's a generation of us "old people" working at those "old guard" companies because risk tolerance is lower and having a family will always come first.  Hell, I'd work at a startup in a heartbeat if it meant I knew I loved what they were doing, it would afford my mortgage, and I could see my kids.  I'm sure a standing army of similar "over the hill" hackers and hustlers working at the old guard companies are in a similar position.  

These "new guard" companies are designed specifically to work as high-risk-high-reward, time-intensive ventures that don't fit the needs of someone with something to lose.  When I kick off my startup -- and I will -- there will be several rules that I will need it to live by to make it viable for me, as someone with something to lose:
  • There is a clear separation between work and home life.  I'm all for being good friends with who I work with, but you've got to have time apart to stay sane.
  • Some time during the day is going to be for my family, and is non-negotiable.
  • The benefits have to work for everyone.  Having unlimited Ramen and Mountain Dew is great but pales in comparison to health insurance.
  • If and when I sell, I want to make sure every employee walks away well-off.  None of this "liquidation preferences" bullshit.
Anyways, perhaps it's all just hot air because I haven't gotten off my butt and just done it.  But perhaps these are just the words to my future self.  Good luck, buddy.


Wednesday, March 12, 2014

A few lessons learned about writing for 30 days

So my personal challenge is almost up, with a month coming up tomorrow (I think I may have a few days left to write to get to 30 full days...) And there are a couple of things I've learned from my daily habit:

  • Coming up with a new, interesting idea every day is tough.  There are some days where I want to take a picture of a sandwich, or post a link to an article, or something more fit for a social post somewhere.  But coming up with a lot of thoughtful things to say on a daily basis is hard.
  • It's hard to come up with ideas on work days.  Not a whole lot new happens during a long day of the same ol' same ol'.  Plus, fewer free hours in the day to write / take pictures of stuff.
  • It takes a long time to write the posts themselves.  It's an hour-plus to write, and if you're strapped for time, sometimes you have to quickly write something out before the end of the day.  Maybe if you don't have to write every day, you can let posts "brew" over a couple of days and get something well-crafted out.
  • You can't always write what you really want to say, mostly because it will be public forever.  So I would sometimes start writing furious rants just to stop myself and back off to write something else (except in the case of texting and driving).  Maybe that was therapy in itself?
  • Sharing on G+ generated far more traffic than not sharing.  So I would sometimes not share on days I knew it would be really short / boring to spare people from G+ feed spam.
  • Motivation is high at the beginning and at the end.  Maybe I had a lot of writing topics ready to go at the beginning -- it's different and new.  And by the end, it was old hat and the light was visible at the end of the tunnel.  But the middle is what required the consistent reminder and daily routine to build up the motivation.
Anyways, I still want to write, and going through this experience has made me want to write consistently.  However, I don't think I could do it every day.  I'd save up my most interesting thoughts and maybe post every couple of days.

I do have several options of things I can do for 30 days once this challenge is over, and I have yet to decide between them:
  • Write some code every day.  I'd have to get my dev environment up to speed, but man, I'd love to get some hacking in every day
  • Do 100+ shoulder pass-throughs with my PVC every day.  This would greatly help with my terrible shoulder mobility
  • Come up with 3-10 ideas every day (even if they're bad).  I had a few previous posts on this that showed my terrible "ideation range"
  • Take a photo/video every day.  I certainly don't take enough, and I'd like to leave them all for my kids to see one day
  • Meditate / breathe thoughtfully for some amount of time every day.  I had a former boss who did this every day and it certainly helped focus and de-stress, it would be nice to do with all of the stress that I get from work these days (probably worth a post of its own -- maybe tomorrow)
Anyways, I'm digging the challenge of doing something every day for 30 days, now I get why it can have such an impact on your life -- the muscle memory and consistency of doing something every day makes it part of your daily routine.  I'd recommend it for you too, it will make you a better person!

Tuesday, March 11, 2014

More Silly Extension Ideas


Today, the Chrome web store launched some more monetization options for app/extension developers.  It's a welcome change to allow easier free trials and in-app purchases, which is a good thing if you have something people are willing to pay for.  I have to say it's admirable that they want to make things easier for app/extension developers, but it doesn't exactly help me figure out what to do with my extension.  Should I charge for extra services?  Give a free trial?  Argh.

There's a more difficult hurdle to face as a developer: most users expect apps to be free or extremely cheap, and copycats are easy to create (download the javascript to some other extension, modify it slightly and re-upload as your own); making free knock-offs isn't difficult.  I'm of the mind that any valuable extension or service has to have an offering that is not part of the extension / app itself, but is rather an online service of some sort that is difficult to copy.  The extension itself is just a delivery mechanism.

Anyways, I'm going to try making up some crazy ideas some more, since I wasn't able to find a specific article about startup recruitment from a while ago.  So instead I'll try to make up some more silly, bad ideas:
  1. Enhance my user-agent extension so that people can manage all their settings online and have them automatically pre-populate to anyone who installs it in their company / domain.  (and maybe charge for it?)
  2. An encryption extension that looks for certain headers from specific websites (that know your personal public key) and encrypts all the traffic between you and the website, on top of ssl.
  3. An extension that tracks your web usage and shows you where you went, how much time you spent on different sites, etc.
  4. A chrome app that is a glorified text editor where you could easily edit extensions, save them locally, and upload them to the web store (now with programmatic uploads!)
Maybe I'm thinking a bit too much about writing Chrome apps/extensions today because of the post, but at least it's good practice...

Monday, March 10, 2014

Silly ideas

I ran across this article today, which really got me thinking about career choices.  The basic gist of the article, if I can do it justice, is that most people never feel ready to do something daring and audacious (say, starting a business.)  However, the wildly successful people that are billionaires, etc., just go do it even before they feel they are ready.  I'm not sure if it inspires everyone, but I found it particularly enjoyable.

When I first applied to Google, one of my reasons for wanting to go to a big company was that "I wanted to learn what I needed" to start / lead my own business (as if I would learn those things at a big company).  But if this article is true, I already had everything I needed.  Similarly, I have everything I need right now to do it...which is a scary proposition considering I have a family to support.

But why don't I, or others take this advice, and just keep at our drudgery instead of doing something we're passionate about?  Like many others in my situation, one of the mental blocks that we face is having a "good idea."  (I suspect #2 is not having enough funding / too high of a personal burn rate)  Hell, there's nothing like watching Shark Tank to make you feel like you don't have any good ideas.  Talk about being humbled by people that make chocolate bars and velcro pants.

James Altucher recommends writing down 10 ideas per day, even if they're terrible, just to practice generating ideas.  I don't think I could even come up with 3 a day, let alone 10.

So here are my three dumb ideas for the day (I'm sure someone might already do these):

  • A stand for phones that keep them upright so they can record video without having to be propped up against something
  • A halfway decent HTML5 / web-based video game.  Seriously, can no one do this?  I know so many people who want to do this, but I haven't seen it yet
  • A security device that rings your phone when a window/door is opened/broken
Probably all very silly, or done by someone else, but at least it got me thinking...

Sunday, March 9, 2014

PVC

I rounded out my gear buying weekend with a PVC pipe for home use.  After checking out both the the 3/4" pipe and 1" pipe, I decided to go with the one inch.  It's much thicker than the way a 'normal' barbell feels, and I can't really hook grip it easily, but the 3/4" inch pipe felt flimsy, almost like it would break.

The amazing thing was how cheap it was: it cost less than $5 for the pipe, but it's something I could literally use every day to improve my mobility and practice form at home.

I have super tight shoulders, which limits my overhead mobility, so I'm thinking if I practice 100+ shoulder pass-throughs every day, I could eventually improve my mobility enough to improve on some of these movements.  I think I may end up doing that as my next 30 day "trial".

Also, over the weekend, I got to taste some Habanero Sculpin IPA, which kind of blew my mind.  It packed some powerful heat, which coupled with a kick of an IPA, made it a challenge.  Interestingly, the spice was manageable, but drinking it sans food was not the best idea.  But it was a fascinating beer.

Saturday, March 8, 2014

New Toys!

I got my first set of palm protectors today, and they're going to absolutely save my hands.  I saw that Dick's sporting goods carries the protectors and headed over to check them out.  The rip on my hand is right in the middle of my palm, and is slightly larger than the size of a pencil eraser, which puts it squarely protected by the protectors.  I think if I give the rip one more day to heal, and my shoulders one day to rest, I'll be ready to give 14.2 one more shot and get past 81.

Much to my surprise, Dick's also had a wide array of other crossfit gear: wall balls, jump ropes, foam rollers, bands, and one item that I've been itching to treat myself to for a while:  rings!  I've wanted to get some work in on my muscle ups for a long time, so this is finally a good opportunity.



I'm not exactly sure where I can hang them -- my garage is probably the most likely place.  I'll have to drape them over rafters that have seen better days, so I'm worried that I'd break the wood and bring my garage down on top of me.



There is not a lot of space behind the rings to get a full kip, so I may have to go through getting a full rig before I can really work on my muscle ups.


Friday, March 7, 2014

Humbled Again

So I did 14.2 this morning, and was humbled once again:  I was only able to get 81 reps, which is far short of what I thought I would be able to get.  I didn't even get to the third round.  My right hand ripped while doing the pullups, which may be part of the reason I did not do well.

Not only that, but Jason -- a close competitor -- was able to beat me by 2 reps at 83 (he ripped too, much worse than I did).  So overall it was a pretty crappy day overall.  I want to retest, but my hand is ripped, so I'm debating if I can get some palm protectors and redo it in a day or two.

The overhead squats aren't an issue at all -- I was able to do them all unbroken.  It's definitely the pull-ups that burn you out, especially if doing regular kipping instead of butterfly kipping.  I'm tempted to re-do and pace myself slower and break up the pull-ups into smaller groups.  I really need to work on my butterfly pullups.

Argh.  The open has been far more frustrating than rewarding.  I'm understanding more and more why people don't sign up for it....maybe I need to lower my expectations for myself.

Thursday, March 6, 2014

14.2 wow

So the 14.2 open workout is posted, and I'm watching the two beasts duke it out on the YouTube livestream.  It's freaking impressive.

It's an evil workout:  an increasing 95# overhead squat / c2b pullup couplet with fixed 3 minute rounds.  So any time left in each 3 minute round is rest, but the reps go from 10/10 x 2 to 12/12, 14/14, etc.

It's pretty clear that the kicker here is the rest time.  The strategy is either to go super hard on the movements and maximize rest or stay even throughout the movements.  For beast mode athletes, they are definitely going the former, but for us mere mortals, we'll have to go even throughout to not burn out.  Watching the two top athletes do this, the limiting factor looks to be the pullups, where the arms just burn out or you rip.   (320 reps is crazy good)

After being humbled in the first open workout, I'm hoping that I can get through 14.2 with 2.5 rounds, or 116 reps.  I'm going to split up the pullups to make sure I don't burn out.  I'm strong on the overhead squats (regularly squatting over 300 makes 95# look...relieving), so I'm not too worried about those.

Tonight, I'm going to work on my shoulder mobility and try to get the system ready to go for this one...

Wednesday, March 5, 2014

Pet Peeve

As I live in LA, I spend a lot of time in traffic -- thankfully less than many others.  It's pretty much par for the course for all of us.  When stopped in a parking lot of a boulevard during rush hour, I get a chance to look over and see what other people are doing.  I got to do the same thing when I rode a bus to work every day.  And almost every day, I see someone with their head pointed down towards their lap, texting away while driving.  Presumably they could be surfing the internet or navigating a map or something but you can often recognize the thumb moving to the predetermined keyboard locations at the bottom of the screen.

This drives me absolutely bat shit crazy.  This kills people, and even at best, you're holding up the people behind you and causing worse traffic because the light is green and you're not moving.  I get that checking your messages while all of traffic is stopped for minutes at a time is appealing -- I've certainly felt the draw.  But I'm not talking about quickly checking the messages while stopped.  I've seen people doing 70 and texting with both hands.   Seriously?

(Number 2 on the crazy list is people who hold their phones out away from their heads, talking into it like talking into an ice cream sandwich.)

What I want is an app, device, whatever, that blocks people from texting or using their phones while driving.  Maybe it detects if it's moving quickly and being held in one hand, maybe it's a radar gun thing that I can point at other cars and it shuts down their phone communication or something.  Whatever it is, it's got to save lives.

A simple start might be an app that runs in the background of the phone that disables / slows down SMS or phone calls when it detects its going faster than some speed.  (Parents could force their teenagers to have it installed on their phones.)  But it would not be able to detect if you were a passenger in a car or on a train, and you could still text at low speeds, so it's not perfect.  Maybe if it were able to detect if the phone is held by one hand (not sure if there is a way to detect that)

Perhaps another approach is that the app could detect sound, and if the sound ahead and to the immediate left were louder than the sound to the right and behind, it would sense that you were in the driver's seat and stop texts.  However, you could fool it with loud music, or it would get false-positives even if you weren't driving.  But maybe that would be detectable by very small vibrations you normally get in a car.

Anyways, maybe this is something I'm going to hack on in more detail, because it drives me crazy.






Tuesday, March 4, 2014

A Different Cause of San Francisco's Housing Problem

There is certainly no shortage of coverage of the ongoing debate in San Francisco, with protests, rising housing prices, and this guy.  They keep it interesting!

Having lived in San Francisco twice before, I know a bit about what is going on.  I don't live there now, and I can't call myself a life-long die-hard San Francsican, so my opinions are probably biased or probably perceived as unimportant compared to those who do/are.  But I have lived there long enough and in enough different places in the city to know a sliver about what's really happening.

First, the common facts:
- Housing prices have skyrocketed in San Francisco, up over 13% in one year.  If you had invested at the very top height of the housing boom in 2008, and sold today, you would have made money
- Rent prices increased by roughly the same amount
- Over the next 25 years, another 150K people are expected to move into the city

This sets up a pretty logical supply-demand problem.  The conventional thinking is that the problem is a short supply of housing coupled with a surge in demand from tech workers who either work at startups in the city or commute by shuttle down to the south bay.  And the prices are rising as a natural economic result.  However, I think it doesn't ask the deeper, and more interesting question: why?

Multiple quotes have hinted that it is very difficult to get new housing in San Francisco -- probably because most current residents don't want massive high rises blocking their view (also sometimes passed off as "don't want it changing the skyline/culture of the city" ).   So the very rich people who own very expensive houses in the city don't want anyone else to come in and "ruin" it -- surprise, surprise.  It's not all that this is wrong, per se, but it's a story that could be true in any city anywhere.  This can be fixed by building more housing units, getting more city permits expedited, working out high rises with NIMBYs, fixing rent control rules, etc.  Typical, every day city-planning problems.

The supply question is pretty straightforward, but the more interesting question, one that illustrates how people behave, is: why is demand surging in San Francisco?  For a slew of these tech workers that work in the South Bay (I used to be one of them!) the prospect of living in the city as opposed to somewhere closer to work is, well, nearly silly:  Commute 2+ hours a day on a cramped bus in some of the worst traffic in the US, get home late at night, pay one of the most outrageous rents in the world (insert New York and Tokyo laughing here), deal with freezing cold weather, lack of reasonable public transportation, chronic homeless problems, crime, and more... why?  Most of these articles just say young people "prefer the culture of city".  As if they were going to museums all weekend.

Now for something completely different.  Let's look at a map.


This is a rough travel route from the city down to Facebook main campus (the leftmost pin).  Google and Apple are the middle and lower-right pins, respectively.  If you draw out a line from each of these pins to the city and spin it around in 360 degrees, the commute could take employees of these companies to almost every city in the bay area (and from Apple, all the way to Garlic Capital of the World.)  Granted, the traffic on some of these routes are worse than others, but you get the point: since these employees could live in any place in the whole bay area, why live in the most expensive, "problematic" one?  San Jose is much closer, why aren't employees flocking there and gentrifying those neighborhoods instead?

There are a couple of hypotheses -- San Francisco:

Indeed, if you ask any of the young people who live in the Bay Area, the common refrain is "if you're single, live in the city".  And "downtown Palo Alto is 'ok'", maybe because of all the Stanford students.  And therein lies the problem.  Check what rents are like in downtown Palo Alto -- not too different than San Francisco.  Who knew that young single people want to live next to each other?

San Francisco is perceived as the only halfway decent place to live if you are single (and "University Ave is ok, I guess") in that entire radius.  Why isn't San Jose perceived as good for dating, as it is bigger and over a million people call it home?  Because to meet anyone, you have to drive there, and there is actually no "there" to drive to.  Downtown San Jose?  Yeah...no.  It's a lovely place for families, and is a very nice place to settle.

What's the real problem with San Francisco's housing?  San Jose.  Young single people commuting 2+ hours on buses every day are running away from the south bay to the lone island of not-needing-a-car-and-might-actually-meet-someone town.

How do we solve the ongoing housing problems in San Francisco?  One solution is to build a whole bunch of high rises in one of the most seismically active places on Earth, cramming more people onto landfill, and have the same problems in 2 years.  The demand will rise to meet the supply, and those new units will fill up and rent for outrageous prices, and we've just hit refresh on the whole issue.

Instead, the area could design a place for young, single people somewhere else.   It's not like they haven't tried.  (But it's still not the right formula:  you still need a car to get anywhere.)  Make it so they don't need cars, so they can walk to many bars and restaurants, has housing that isn't all tract houses, and live in a place that has things to do for single people without kids.  And isn't freezing in the summer.

Since that takes decades to build, even with the right political will, why not improve the public transportation that takes people to and from the city?  Imagine a train that ran once every 20 minutes, had 3 stops, ran 24/7, and got people to the city in under 30 minutes (and had a stop in the Mission, and in Northbeach)?  There would be a lot more young people living at the stops in the south bay.

I'm sure that my opinions may be lost in the sea of others' opinions on how to fix the problem.  And maybe these ideas aren't unique.  But can't we agree that fixing some of the problems of San Fran's housing might lie in fixing the system that generates the demand, rather than just bailing water?

Monday, March 3, 2014

Delicious Crack Delivered by Children

You know what I'm talking about when you see stuff like this:




Pure. Cut. Cookie Crack.  2+ pounds of saturated fatty goodness, that helps our future leaders learn business skills.  Probably isn't going to do my weight any favors, but I know I'm making the world a better place.

Remember to do your part and support your local Girl Scouts!

Sunday, March 2, 2014

Filler Words

I'm finding today is a difficult day to come up with some thoughtful ideas.  I thought I'd just write a stream of consciousness that will, in hindsight 20 years from now, seem insightful.

I spotted an article today about public speaking, and this article described the best thing you can do is practice a presentation before you do it -- like, a lot.  This helps you filter out things like "filler words" ("um").  I'm especially terrible at plying many "ums" in my presentations, since often I'm nervous.  Public speaking is one of my own perceived glaring weaknesses, as it were.

But I've found that many of the presentations that I have to give are often last-minute, built-by-committee fraken-decks that have other people's words all over them.  It's impossible to practice these without time and without the freedom to say what I want to.   If it were entirely my work and I had more than a day to practice, I'm sure I'd be a lot better at it.

Maybe my next 30 days' challenge will be working on my public speaking?


Saturday, March 1, 2014

ProductCamp LA

I had the great opportunity to attend Productcamp.la (un-confernece for product managers in LA) today, where we had some strong speakers -- Rich Mironov gave a really spectacular talk (I have a lot to learn).  It was good networking with so many other product managers in the LA area.  Kudos to the organizers to making it happen.

A couple of things that I picked up while at the conference:

  • Many, if not most, product managers are "INTJ" on Meyers-Briggs, which is pretty profound.  INTJs make up 1-2% of the entire population.  Cross that by the common requirements for a PM -- eng undergrad, masters degree, experience -- and they're pretty rare.
  • Product management can be done well enough, be done really well, and be done brilliantly -- and I need to step up and be brilliant rather than "ok".   And brilliance is earned through experience.
  • There are a lot more product managers in west LA than I thought.  There were 200+ of us!
  • It's really weird to be around hundreds of product managers.  It's like being in a convention of unicorns.
  • Agile.  Scrum.  XP.  Waterfall.  Wagile.   It was a constant drumbeat of "well-established development methodologies" that eventually grated on my soul.   Does all this shit really matter?  Whatever happened to "getting it done fast" and iterating?
Anyways, it was a great experience, and I got to see how so many other PMs do their work.  

Friday, February 28, 2014

14.1 In the books

So I didn't do as well with 14.1 as I thought I would, but I did ok -- 215 reps (a little over 4 1/2 rounds).  I was hoping to get more, but my shoulders tired much faster than I thought.  Things I found in doing the workout:

- the shoulders burned out faster than I thought
- I was able to keep the double unders unbroken for the last two rounds (I evidently did better on the later rounds than the earlier ones)
- I had to break up the snatches into fives and then into threes.  By the end, I was just trying to get through as many as I could one-by-one

It's a tougher workout than I gave it credit, and it's easy to redline fast -- and I got less than half of the really elite athletes!  I was able to push through and tie a competitor in the class, so I was happy to keep up.

Thursday, February 27, 2014

Open Workout 14.1

The first open workout is here, and admittedly it's making me a bit nervous.

10 Minute AMRAP:
30 double unders
15 snatches @ 75#

These are two movements that I think I can move well through, but I'm worried about red lining after a few rounds.  I know I can do 30 double-unders unbroken (most of the time, if I'm not flustered), but as soon as I get to the Snatches, it's going to burn my shoulders out.  By round 4-5, I'm sure it's going to burn out my grip strength and shoulder strength.

The "conventional wisdom" is:
  • Pace the first 5 minutes and keep the breathing even
  • Muscle snatch as long as you can, then power snatch
  • Hook grip the hell out of the bar to preserve grip strength
  • Keep a good form on the snatch (don't round the back or "lever") or you'll burn out faster
  • Take a breath and reset before each set of double unders
Anyways, here's hoping that I survive it!  I'm hoping for 6, maybe 7 rounds, if I can rock it.

Windows Price Cuts: Also an Ecosystem Problem

It looks like I wasn't the only one who thought that the Windows 8 price cut to OEMs was not a good idea.

They point out the importance of the ecosystem in choosing devices, which is something that I missed in my own analysis, and a very good point -- when you are buying into the device, you are also buying into all of the company's other products, all the third-party apps that can run on it, etc.

I think the article only goes part way: it describes the capabilities of their web products like SkyDrive, Office 365, etc.  But these aren't really Windows desktop's ecosystem, but pale extensions of their real apps.  It wants Microsoft to have competitive cloud offerings to win users over from Google's products, which of course is the right way to go since the market is shifting to all-cloud and users are using multiple types of mobile devices.  However, All of Microsoft's best offerings, and core competencies, are native Windows apps.

Going "all in on cloud", as strategically logical as it may be, isn't going to help Windows 8, or low-end PC notebooks today.  Their operating system is designed to run "heavy apps" locally, not be a lightweight web-centric OS.  So even if they have really amazing web versions of their apps, why do they need all the power of Windows?  Wouldn't all of that work perfectly well and fine on a Chromebook, obviating the need for Windows at all?

Like I said before, this puts Microsoft in a tough spot.  They need users to need Windows to run heavy native apps, so moving to all cloud products only hurts them.  But heavy apps on "weaker" machines run terribly.  Is the best move for Microsoft to offer a stripped-down, web-centric OS, and only offer it on the low end?


Wednesday, February 26, 2014

How Not To Send Recruitment Emails

I've got a bit of a rant -- one of many -- that I've had brewing for a while.  Full disclosure: this is probably first-world problem territory.

Like many of you in tech, I get headhunter "poach" emails.  I get that it's someone's job to do this kind of work, and it's probably very hard work, so I try to respond to every one that I can to make their lives easier.  Demanding clients, unresponsive or very rare candidates, high-pressure sales pitches and up-and-down pay probably make it challenging.  Some of the recruiters I've talked to are very nice, well-versed in their trade and in tech, and I would definitely talk to again...so this doesn't apply to all of them.

However, I've received a couple of reach-outs that missed the mark, so to speak.  I thought I would give some pointers on how to completely disinterest anyone from considering their position.  These are some of my own personal experiences that have actually happened...

Not telling me who you're hiring for, even after I ask directly.

I get it, you want to draw people in, make them want to know more, get a commitment to talk about it on the phone, whatever -- but when I ask point blank "who are you hiring for?"  And you don't say who it is in your response, I don't take you seriously.  Good companies with good names that "sell themselves" don't have to be secret or play games -- not saying who it is means it's probably someone who I don't want to work for.  Save us both the time.

Not telling me where the job is located.

Same thing -- If you don't say where it is upfront, it probably means I'd have to uproot my life to move there.

Sending an opportunity for my current level, or lower(!) levels.

If someone is going to leave their current position, and take a risk, why would they take a step down in their career or even 'only' make a lateral move?  I understand that you just typed in the job name into the search box in LinkedIn, but at least consider that you may have to offer something more for me to leave a job where I'm very likely happy.

Asking me if I fit what is obviously a set of contrived, imaginary requirements full of buzzwords.

"Have you innovated using synergy of cross-organization collaboration?  Do you have 12+ years of Big Data experience with Bitcoin?"  You may want to know the space you're recruiting in well enough to know some of these are just complete nonsense.  Also: read my profile.

Not responding to my response.

If I accept your invite or respond back, not responding to my response is a sure fire way to make sure I never take you seriously.  Maybe you filled the position already or something, but why not keep the relationship?  Maybe I'm not that interesting.

Maybe these are all first-world problems, but it just seems to me that it would save us all a lot more time.  What have you all seen?

Tuesday, February 25, 2014

Mis-scoring

I've been feeling sore and a little under the weather today, possibly because of a pretty nasty workout today:

EMOM for 5 min:
6/4 Muscle Ups (Rings or Bar) - I did the bar with a band
ME Double Unders

 -Rest 2 minutes-

 4 Rounds of:
30sec ME Power Cleans (185/135/95)  -- I did 135
60sec ME Row for Cals60sec Rest

The scoring was the lowest number of double unders / cleans / calories.  So if you got 10 double unders in one round, even if you did 50 the next round, your score is still 10 (and if you didn't get to any, your score is 0 even if you did zillions the other rounds).

Aside from being a weird mishmash of timing, I dislike these kinds of workouts because you have no incentive to push hard if your numbers in previous rounds were low.  Once you get to the "magic lowest number", you just throw down the equipment and rest.  I get the intention of these workouts: maintain a high intensity across multiple rounds.  But it never turns out that way (at least for me):  it anchors me on only doing the minimum number of movements, which I think is a bad workout.  One small change (score is the *total* number of movements) makes it a very different workout.  (I did 22 / 6 / 13, but I did scale the muscle ups a lot)

I'm eager to see what the open workout will be this week, and hopefully I will recover in time to hit it with full force.

Monday, February 24, 2014

The Homebrewer's Dilemma

Admittedly, I have a bit of writer's block today, partially because I don't have a lot of time to write, and most of the ideas that I have to write about seem trite.

But one idea stuck out as not-as-mundane (thanks to my wife for the suggestion): one of my New Years resolutions.  As a homebrewer and part-time wine collector, I often have many beers & wines at my disposal -- before the new year, it was not uncommon for me to drink several a night.  Call it rationalization that made me think "I deserved it after a hard day" or "two glasses of wine are fine for you", but two drinks often gave way to three or more.

This eventually caught up with me: I was about five pounds heavier than I wanted to be, and I was not progressing in Crossfit as much as I would like.  I'm sure part of it was because of my (still less than ideal) diet and my overindulgence in the sauce.  Having to work out at 7 AM while being semi-dehydrated is also not ideal.  Consuming 500+ calories at night probably doesn't help.

This drove a tough choice for me:  I enjoyed my hobby, but it was slowing me down in my workouts and damaging my health.  I made a compromise: with a new year's resolution to not drink during the week and limit it only to the weekends/holidays.  A sacrilege for a homebrewer, but certainly better than letting it slowly kill me.

It's been a challenge so far, since it's always accessible and there are some days that I think, man, it would be nice.  But I've been able to keep to it, luckily.  In the first workout after I stopped, I already saw the difference:  when running, I was able to push faster than I could before, and I surprised myself with how much further I could go with less lactic acid building up in my veins.  The difference even after ~eight weeks is noticeable, with faster workout times and less weight (I've dropped the 5 already)

I still like booze, I don't think that will change, but I was able to improve my health even a little.  But as Abraham Lincoln said,  "It has been my experience that folks who have no vices have very few virtues." 

Sunday, February 23, 2014

The Danger of Promotion by Group Size

I just spotted this article on the New York Times about how Google goes about choosing who to hire.  In my own experience, most of it is spot on.  Hiring turns out to be the most important thing you do anywhere, because if you do it wrong, it will completely destroy your company/team -- a bad hire will alienate other good people, drag down velocity and create a toxic atmosphere, not to mention cost you a lot to boot them out.   (My mental definition of "bad hire" vs. "low performer": a bad hire has a negative effect on the group, whereas a low performer has a neutral/zero effect on the group.)

The traits in this article are great for any organization, but they're also extremely rare to find in the right combination -- I doubt I even have half of those traits.  (Chances are someone else is trying to hire them too, I have my own opinion on how to win that battle that I'll keep for another post.)  Most organizations would be tempted to lower their bar to get more people through the door.

The general rarity of people with these kinds of traits and the negative effects of bad hires got me to thinking about how many companies should not reward and promote their employees.  "Wha?  How does this have anything to do with hiring decisions?", you might say.

For many large organizations, seniority / influence / rank / power is determined by the size of the group that one controls, oftentimes, "how many heads do I have reporting to me".  Those with more people reporting to them can make more change happen, are groomed as future senior managers, get more visibility, get paid more, etc.  Maybe you've seen this yourself:  a "to get to the next level, you need to have X people reporting to you and increase your scope", the continuous desire to grow the team more, and the difference between an "individual contributor" and "people manager".

This requirement of build-a-big-team-to-get-promoted breeds danger, because managers are given an incentive to have more people of any nature in their groups so they can progress in their careers, grow their team's influence, and theoretically get more work done (reality tends to the opposite).  This means they're apt to lower the bar for hiring, keep bad hires around longer than necessary, and/or do too many projects, which together have a compounding negative effect that slow things down immensely.  And anyone who has worked in software engineering can tell you what adding more people to a team does for velocity (hint: no bueno).

I have to believe that this was the downfall of some large organization somewhere, and perhaps even many downfalls (one of my favorite books on the topic would probably describe this as "undisciplined pursuit of more").  I'm a fan of keeping teams lean and focused, and saying "no" to unnecessary scope-increasing projects, at the expense of ladder-climbing.  Personally, if I get to be an "individual contributor" forever, I'll consider myself lucky :)

What does this mean for organizations that hire really rare types of people?  It means limits to growth, and even increasing the hiring bar, to keep quality high and speed fast.  It also means finding other ways to promote and retain managers other than by size of their organizations -- like, perhaps, velocity and quality of their teams' work, which would push them to keep their teams small and focused.  The alternative tends to look like what most other really large companies look like: big, slow, unfocused and out-innovated by smaller and nimbler rivals.

Saturday, February 22, 2014

Windows 8 Pricing Cuts Are a Product Problem

There's a story going around that Microsoft is cutting the price of Windows by 70% to counter rivals in the lower-end of the notebook market, all the way to $15.  If true, it signals that they feel threatened by competitors in lower-end devices, as also signaled by their 'Scroogled' campaign.  (Disclosure: I used to work on Chromebooks years ago, but haven't for a long time, so these opinions are mine.)

It looks like an aggressive price cut, even if you take the fact that larger OEMs are really only paying $30 today, when you include marketing funds and so forth.  But it's going to cause more heartburn for Microsoft in the long run, because it's not just a pricing problem:

1.  $15 is still not free

Cut the costs all you want, charging $15 is still $15 more expensive than free alternatives.  Also, it's admitting that $50 was too much and they extracted a bit too much value, leaving a bad taste in partners' mouths.  They'll have to still offer significant additional incentives, like marketing funds, to bring the cost to $0.

2.  Windows 8 still sucks

It doesn't matter what you charge for it, consumers (and enterprises?) still don't want Windows 8.  It's not going to change the game in the lower-end notebook market where none of the devices have touchscreens and Windows 8 is designed around touch.  And even if Windows 8.1 fixes all of the problems that Windows 8 had, all you'll have a different flavor of Windows 7 on the device, which isn't much of a change from what they were selling years ago.  Not only that, but low-end Windows notebooks have far more overhead than other options and aren't powerful enough to run the industrial-strength Windows apps.

3.  Windows 9 now can't charge more

Now that they're charging a measly $15 per copy, what kind of deal do you think OEMs are going to want when Windows 9 (or Blue, or whatever it is) comes out?   You guessed it - $15!  Which means that the economics of their next generation of OS and devices have degraded significantly.  This could also build pressure to drop the price of Windows 8 on higher-end notebooks as well.

4.  The bigger cash cow is everything else that runs on the platform.  Why charge at all?

The Windows game is platform control: if Microsoft can control the platform on which developers write apps, and control the platform on which enterprise users use Word and Excel, they have a continuous stream of revenue forever.  However, it's becoming clearer that they have less faith in their platform, and will have to compete on someone else's platform to win.  By charging for the platform that they want to control, they will not achieve the same underlying protection for their real cash cow that they could if it were free.  If the price is a meager $15, why not bite the bullet and make it free to try to keep their platform in place?

5.  Mobile/tablet is the growth game now

As interesting and competitive as the low-end notebook market is now, the higher-end notebook market is really being eroded by mobile devices & iPads.  Cutting prices for Windows 8 on notebooks is not going to help Windows Mobile's position.  And cutting Windows 8 prices is not going to help Surface sales, since Microsoft makes them.

All that said, I'm not sure there's much else Microsoft could do to defend this part of the market -- it's not a pricing problem, per se, it's a product-market-fit problem.  I'm sure $50 would be an easy price for OEMs to stomach if Windows 8 were really stellar on low-end notebooks, but even at free, Windows 8 is still unattractive for someone who isn't stuck with learning how to use it.

A compelling offering for the lower-end of the market has to get rid of the usual Windows clutter, and it either has to be free, or has to be special and differentiated enough to warrant the price.  The product has to have several features:

  • It has to be easy to maintain;  the majority of cost of an OS is the maintenance time
  • It has to be low cost; the appeal of low-end notebooks is value
  • It needs to be non-touch;  low-end notebooks don't have touch screens and probably won't for years (when that time comes, you can update back to live tiles)
  • It has to be x86-based;  Windows on ARM got torched because it couldn't run anything

I'd shoot for a slimmed-down, non-touch-focused flavor of Windows that is free.  Less is more, so it doesn't have to have all the features of a full desktop OS.  It is far more strategic to own the platform market share on which developers build apps and continue to milk the Office cash cow for years to come.

Friday, February 21, 2014

Tasty IPA Results

I got to try my Pliny the Elder clone that I bottled last weekend, and it turned out pretty well.  It's an estimated ~9% alcohol and has a strong hoppy taste:


The color is about right, and the taste is just about there -- just a little bitter.  I'm pretty sure that it was the hop schedule that made the flavor right -- I've been impressed by the mellowness of the Centennial and Simcoe hops, which I haven't used before...excellent dry hopping varietals.  Anything with two rounds of dry hopping has to have some kick to it.


I did unfortunately manage to get a tiny bit of hops leftovers in the bottom of each bottle, so I have to pour them carefully, but it's a small price to pay for one of the best Imperial IPAs on the planet.  If you are an IPA fan, I highly encourage you to grab a bottle of Pliny the next time you can.

I'm not sure what I'd like to brew next.  Recently, I've done a Pale Ale, a Hefeweizen, and now an Imperial IPA, so maybe I should do a Brown or maybe a Blonde Ale... but with a twist -- maybe like a Honey Brown Ale?

Cheers!

Thursday, February 20, 2014

Laptop for Coding

I haven't had a lot of free time to work on my own personal engineering projects because I haven't had a really good laptop to work on.  Most of my free time is on a couch away from a desk or table to work on, so I need something that's mobile and light.

Right now, my Windows laptop is one of these 17" beasts.  It's about 2000 pounds and generates enough heat to heat my house in the winter.  It's pretty powerful, so it can actually run Eclipse without exploding, but it's just too massive.


My other laptop is an early-model Chrome OS laptop (I'm writing on it right now!), which is dual-booted with Linux.  It has 2 GB of RAM, so it slows to a crawl when I try to run anything of note on it.  Even the Web IDEs that I've tried are slow on it.



So I have a Goldilocks problem -- I need a laptop that is small and light enough to work on a couch (with preferably little heat) but powerful enough to run an IDE (preferably a free one).  Would also be a nice bonus to be able to play some games.

Most people would instantly point me to a Macbook Air / Pro, which is fine, except they cost like fifteen hundred f'ing dollars for an entry-level version, probably closer to $2000 for something with some meat on the bones.  I'd rather stab my eyes out with a stick than use a Windows 8 laptop, and others would say to just wipe it and install Windows 7, which sounds like yet another eight hours down the drain.

At this point, I can hope for dual-booting a beefier Chromebook, or shelling out a couple grand for a Macbook.  Not sure what would be a better idea.

Wednesday, February 19, 2014

The Importance of Lottery Tickets

Today, WhatsApp was acquired by Facebook for $16 billion, with another $3 billion of RSUs going to retain the employees.  That's an unreal amount of money, for sure, and the price will be debated to death for the next few days/weeks/months.  Cost-per-user, Snapchat, bubble, messaging is the wave of the future, they did it for international presence, blah blah blah.  There are several dozen engineers who now have more money than they know what to do with -- in other words, they can now afford a house in the bay area.  Maybe.

The more interesting story, in my humble opinion, is the effect that this kind of deal has on every other engineer / would-be entrepreneur / hacker outside of the deal.  They see this $16 billion price tag and think -- "if I had just gotten in on that, I'd never have to worry about money again."   (Perhaps that's just me)  Or on an even more basic level, "should I be doing something different with my time?"

There are plenty of regular people who buy lottery tickets when the jackpot gets large enough.  Admittedly, I'm one of them.  Despite the incredibly unlikely odds of ever winning, I convince myself with the "expected value" argument to buy Powerball tickets when the jackpot is like $400 million and up.  For those who haven't spent too much time in probability and statistics classes, expected value is the probability-weighted value of a choice.

The expected value of not playing the lottery is $0.  However, if you do play, there is a very high likelihood you will lose, and an infinitesimal chance of winning.  So, the expected value of playing powerball when the jackpot is $400M, assuming no other prizes, is positive given a 1 in 175 million chance:

(1-(1/175,000,000)) * -$2 +  (1/175,000,000) * $400,000,000 = $0.285.

By playing the lottery, you are expected to make $0.285.  Even if we get really nitty-gritty and say 50% of that money goes to taxes, the next expected value is still fourteen cents.  I understand that I'm more likely to be attacked by a shark than win, but I can have a shot at it (just as if I started swimming in seal blood in shark-infested waters).   If it doesn't work out, and I don't win, I go to work the next day.   Some non-players would call me stupid for playing a game so obviously rigged, and "throwing my money away", but I have a better shot of winning than they do, don't I?  What happens in a black swan event?

So what do lottery tickets have to do with WhatsApp?  It's really, really important to have proverbial lottery tickets for innovation to thrive.

Most jobs at typical 'large' companies don't have a lottery-ticket scenario.  You do your job, you get an X% raise/bonus.  If you really work hard and do well, you get a little more.  And if you invent the next iPhone and make billions of dollars and change people's lives forever, you get even more and perhaps a promotion (if you got credit for it).  And that's at a good company that rewards its employees -- how many would simply not give raises or bonuses at all?  Maybe you get a small plaque with your name on it and a pat on the back...but you still have to show up on Monday.

But shouldn't the intrepid, visionary, hard-working innovator in the shoot-the-moon scenario get a lottery ticket level of reward?  You took the risk, endured unspeakable politics by those who want to shoot your idea down, made the company billions, shouldn't you take more share of the reward?    Typically, the answer in almost every company is no -- innovation is an expected job function that never happens at all.   Throw in that in most companies, failure is punished not rewarded, and the third scenario will never happen because the expected value of doing so is negative.

Large companies can't really support the lottery ticket scenario either.  If they give an enormous payout to a select group of people, anyone outside it will be completely demotivated ("they care about that project and not my project!").  Moreover, those people who 'won' have few reasons to hang around anymore, and possibly be paid more than the CEO and likely just piss off shareholders.

Instead, if you really have a bee in your bonnet to do this world-changing project, you have to start something entrepreneurial.  You have a low chance of success, since 90%+ of startups fail, but you have a shot, and that shot has a better chance of success than a remote lottery ticket.  In almost every working-9-to-5-for-the-man scenario, you have to buy your 'lottery ticket' somewhere else because of the big company problems above.

The massive WhatsApp acquisition is important, because it's a grinning average Joe with an oversized $16 billion check with confetti falling all around it.  It reminds us, sitting in our cubicles and unproductive staff meetings, that there is a lottery, and only those who play it have a chance to win it.   And for most people, to buy their lottery ticket, they have to walk away from what they're doing now.

Tuesday, February 18, 2014

Memory lane of work

My wife and I were talking about old jobs we used to have as kids, and it got me to thinking about places I've worked in my life.  I've worked at some crazy places.  Here they are, in order of when I did them, and my personal pros and cons (names of employers omitted to protect the innocent):

Corn De-tasseling  (Pulling the reproductive parts out of corn)
Pros:  You can do this job before you're 16, since farm work is legal for minors to do.
Cons:  The leaves of the plants are very sharp and so they can slice you as you walk through them.  Plus, it's wet early in the morning.

Cook at a well-known fast food chain
Pros:  Free food.  Also, when you flip pickles against the refrigerator doors, they stick...hours of entertainment.
Cons:  People want customized shit.  Like a burger with exactly 3 pickles and one dot of mustard but no ketchup.  Really? What does this look like, a Chili's?  It's a fifty cent burger, eat the kind that we normally make instead of holding up the line for everyone.

Cook at Pretzel store in the mall
Pros:  Can't think of any.
Cons:  Working the mall on weekends as a teenager is hell on earth.  The stuff they cook pretzels in is caustic and will burn your face off.  And everyone who recognizes you wants free pretzels.

Temp - "Light industrial work" (Looked at cardboard boxes and put them in two different piles if they were ripped)
Pros:  Didn't require a lot of thinking.
Cons:  Some creepy people do light industrial temp work.  Like, ask you if you like Star Trek and then walk away say nothing else to you again.

Lawn Mower - Self Employed
Pros:  Set my own hours, worked when I wanted.  Listened to The Offsping's Smash while I mowed -- I mowed angry.
Cons:  It's a lot of work finding people who want their lawns mowed, since I was not a good salesman.  Plus, if you mow after it rains, you're going to have a bad time.

Dishwasher / Bus Boy at Diner
Pros:  Not many.
Cons:  Paid less than minimum wage, everyone chain-smoked, had to both clean tables and then clean the dishes.

Dishwasher at a Chinese Restaurant
Pros:  Ahhhh-mazing Crab Rangoon.  I ate 10 by myself once.  One of my friends worked with me, which was cool.
Cons:  Getting the sweet & sour sauce off of some of the dishes was impossible.  Sometimes there was this fish dish which was an entire fish, and it smelled horrible and was hard to clean.

Carpet Cleaner, Duct Cleaner, Water Damage Restoration Part 1
Pros:  Paid pretty well for a teenager.  Got to work some cool dude who happened to be felons (for realz).  It made me really, really want to go to college.
Cons:  Ever clean up a basement with 2 feet of water and a hundred suitcases at midnight?

Convenience Store Clerk
Pros:  Can buy pretty much whatever you want.    This is appealing, say, if you are 20 years old.  Also, the pattern of winning scratch-off lotto tickets seemed to be in "bunches" (all the winning tickets were bunched together)
Cons:  Threats to your life, underage kids trying to buy cigarettes, scooping ice cream.  Watching some poor souls buy a fifth of cheap vodka at 8 AM every day.

Carpet Cleaner, Duct Cleaner, Water Damage Restoration Part 2 (same place)
Pros:  Learned to never buy berber carpet -- it doesn't clean, it just gets matted down and looks terrible.  I know it looks amazing when you first get it, but believe me, in like 4 years you'll regret it.
Cons:  Literally no one who was working there a year earlier was around.  I didn't appreciate this at the time, but this is profound -- what an incredible loss of accumulated knowledge, and high cost of replacing people.  I got to crawl around in the ducts of a university cleaning them by hand because no one else fit in them....OSHA would be proud.

Carpet Cleaner, Duct Cleaner, Water Damage Restoration Part 3 (same place)
Pros:  All they wanted me to do this time was show them how to dial into the interwebs.
Cons:  After I showed them how to do it, there was literally nothing else for me to do.  But they made me sit there while they browsed pictures of Chyna.  Also, literally no one who was working there six months prior was still there.  Seriously!

Student Intern in an IT department
Pros:  No one expects interns to do anything.  Got to learn Perl from some really cool old Perl hacker dude, and work in an office!  See above for why this was a very good thing.
Cons:  Not many, it was pretty cool.  Limited opportunities in an old-school IT department.

Software Development Intern at a Startup
Pros:  Too many to count.  Played video games & soccer, invented games crashing office chairs into each other, ate an entire box of cereal, drank 5 free mountain dews per day, found out that the innards of those gummy computer wrist rests are the same as those "sticky grabber hands" we had as kids.  Got paid an unreal amount because we wrote code.  Also, got to write code.
Cons:  None?  The stuff we were building was sort of boring, but evidently made lots of money.

Software Engineer
Pros:  Paid well, good benefits, smart co-workers, sometimes cool projects.
Cons:  See all of Dilbert.  It's all true.

... there's more, but since it's all software engineering / product management stuff, it's not as interesting or life-threatening.

I wish I could summarize all the learnings in one place (another post for another time).  Having done so many different things, I built an appreciation of people.  Most of all, it helped me recognize what jobs suck beyond words, so that when I see someone else having to do them, I'm as nice to them as I can be.

Monday, February 17, 2014

In and Out of Sync

In yesterday's post, I talked about some of the work I had to do in adapting the spoofer extension to use a different type of storage.  This got me inspired to "polish" the functionality to make it a better experience, so I did a bit of hacking on it.

So with the chrome extension API for storing data, you can either store it in the "chrome.storage.local" storage (on the device) or "chrome.storage.sync" storage, which saves the data on Google servers so you can sync your settings across computers.  But these are pretty different in their constraints: "local" has a lot more space available to it, and it doesn't stop you from writing a lot of stuff really fast.   But "sync" has more limitations: it limits how much you can store there, and limits how fast you can write there.  And it's pretty logical: Chrome doesn't want some evil extension to just start writing tons and tons of bad data and take down Chrome Sync or break other extensions (or Chrome itself?)

This turns out to be a big problem in the extension, because the full set of user-agents that others have amassed online are larger than what sync will store.   Also, importing all of them at once hits its max writes-per-hour limit, so the user cannot edit any settings for an hour(!!!)  Couple this with the fact that a lot of users don't want to have Sync on at all, so it's logical to have the sync functionality to be opt-in.

But I still need to solve the space problem when a user has lots of "local" data and suddenly wants to turn on sync.  I have to warn the user that not all of that data is going to get sync'ed -- or that they cannot import the mega-list of user-agents, which is a common use case.

So what I hacked on yesterday was the ability to move data to and from chrome.storage.local and chrome.storage.sync, but it does it "unintelligently", so if chrome.storage.sync runs out of space, it just dies.  The next step is to alert the user that there is not enough space to import or turn on Sync (and what they can do about it).