Showing posts from 2014

Chemical Reactions

Thus far on this little experiment, I've:

Overslept by 1 hour.Completely lost track of time innumerable occasions.Discovered an odd blurring & vibration in my vision.  Generally, it feels like I'm looking through a tunnel or a straw at the world.Had insatiable cravings for caffeine and sugar.Hyperfocused on assembly language programming and exercism.Generally feel like I got hit by a truck--slow, plodding, etc. On the bright side: Mood is much better.Sleep is much better.Laughed more (that is, some!) The next 2-6 weeks look to be rocky, but we'll see.  Some things have to change, and my brain chemistry's going to have to come along for the ride.

Fun with Assembly

I still remember an interview I had around February 2001, in which +Ron Garnett talked about how his team wrote code:
We write stuff in Assembler, because we're too lazy to write stuff in C. Wait...what?  I thought the whole purpose of C was to have portable Assembly, so you could control the bare metal correctly.  I did get an inkling if you were that good, assembly could be seductive in your ability to do whatever you want.

This came to mind again when +Seth Moore posed a similar question on Facebook the other night:

Pop quiz:When you run this, what prints out? 

Basically, the above is a quiz to determine if you understand loops, expressions -v- statements, and the pre-decrement operator (--).  Pre-decrement specifies that the lvalue of the expression is the current value minus one and the post-state of that variable is assigned that decremented value.  Post-decrement has the same result (decrementing the value), but the lvalue of the expression is the PREVIOUS value.

As is my w…

Rant: Stacked Ranking at Yahoo...yet another failure

From this article:

Mayer also favored a system of quarterly performance reviews, or Q.P.R.s, that required every Yahoo employee, on every team, be ranked from 1 to 5. The system was meant to encourage hard work and weed out underperformers, but it soon produced the exact opposite. Because only so many 4s and 5s could be allotted, talented people no longer wanted to work together; strategic goals were sacrificed, as employees did not want to change projects and leave themselves open to a lower score. One of the uglier parts of the process was a series of quarterly “calibration meetings,” in which managers would gather with their bosses and review all the employees under their supervision. In practice, the managers would use these meetings to conjure reasons that certain staff members should get negative reviews. Sometimes the reason would be political or superficial. 
If anyone believes Vitality Ranking works, especially with knowledge workers, you're sadly mistaken.  The system br…

Spotify Model, the Darkside

Ah, the Spotify Engineering Culture.

We've all heard the gloss:  Small, independent Squads organized into buzzwordy terms like "Tribes," and "Guilds." These terms hearken to days past in humanity, days of community and craftsmanship.

Here's what I take from the above:  None of that fricking matters.  What really matters is a throwaway blurb at the very end of the video, starting at 12m 30s.  Transcribed here:
We've learned trust is more important than control.  Why would we hire someone we don't trust?  Agile at scale requires trust at scale, which means NO POLITICS.  It also means no fear.  Fear doesn't just kill trust; it kills innovation.  Because, if failure gets punished, people will be afraid to try new things.
 There's the secret sauce:

Hire the right people.Trust them.Dump the politics.Expect failure and deal with it appropriately. * * *
So here's the thing with the above:  I question whether it's sustainable by any organizatio…

My Longstanding Battle with Skating Continues

Me: "Hey Joey, what would you like to do today?"

He: "Let's go iceskating."


She: "Dad doesn't do iceskating."

Me: "I can do it if I have to."

* * *

Ah famous last words.

I've been working alot lately.  Let me rephrase:  I've been working roughly 9:30->8pm M-T-R-F.  I haven't been working late Wednesdays because of Church, and not Fridays because something usually comes-up.  I haven't been able to spend much time with my son, and we're both missing it.

But...skating?   I hate ice-skating.  I actually went into our marriage with two agreements:   Whitney doesn't have to go on any ski-lifts or high places and I don't have to skate.

Then somehow it became a matter of pride and I said we were going.  Besides, we had a coupon for 1 free skate with another paid admission.  So, we went.

Joey was having lots of fun, and I made it it around the rink 2 times in an hour without falling.  So far so good…

Aaaaaand, My Day is Shot (by Meetings)

I've come to understand my limits: 2 meetings.

Looking back on it, it's hard to comprehend a day where I had 7 1-hour meetings in a single day, because as it stands today, I've had 3 meetings and my mind is tapioca.  Actually, you might say I've had 4, but I'll get to that.

Running down the list:

10:30am Team standup.  Daily coordination face-to-face activities.  Absolutely essential.  Still counts against the quota!2pm.  Steering committee meeting for something rather important.3pm. Emergency coordination meeting because our team discerned we were blocked on all our upcoming work and needed to pull in some other work. Now amid all that, was a sit-down I had around 11:15 with another developer on a point-of-interest.
Note the timing, too: 10:30 --> Right in the middle of the morning.  2-3pm --> Right in the middle of the afternoon. I remember fondly a team I was on where all meetings were before 10 or after 4, and the middle of the day was sacrosanct.

A thought experiment.

Imagine yourself trapped in a cylinder filling with water.  The water comes in at an uneven rate: Sometimes it dribbles, sometimes it gushes.  You can't get out of the cylinder, and once the water reaches your head you'll drown.

"Okay, that's torture."

Yes, it is.

Now, let's imagine the cylinder were bigger, maybe the size of one of those nuclear storage tanks, but still only 7 or so feet tall.  You can have things in there with you to distract you, but the water's still coming in and once it gets to the top, you drown.

"Still torture."

Yep, it is.

Let's imagine the water was coming in at an unbelievably slow rate...maybe it might take years to get all the way to the top, and let's imagine the tank was even bigger, with a transparent top so you could see the sun.  There's always the risk that someone will open the flood valve and fill the tank at any moment.

Still...torture?  Maybe by now you see where this is going.  You're in tha…

A Moment in Time: Early September 2014

It's quiet and loud, busy and peaceful as I sit outside Starbucks this afternoon.  Caffeine from the Clover-brewed Ethiopian Yirgacheffe courses through me as the clock turns 6.

I'm reeling having watched The One I Love.  Like, back on my heels reeling.  Watched that at the Kentucky Theatre with a small matinee crowd, attempting to shut-down a few brain cells to prepare for crunch time ahead--crunch time at home, at work, etc.  I wasn't successful, the movie's a mind-f@#%.  Like, your mind rejects it, refusing to suspend disbelief, right as the main characters...have to suspend their disbelief.

Anyway, Chevy Chase area, Lexington Kentucky.  This is exactly where I always wanted to live, some place like this, or the Bardstown road area of Louisville:  Urban, but green, old but renewed.  Cars exist here, but they're's very walkable, and people seem fit, especially on a glorious no-humidity day with Fall in the air.

Mostly, I just like listening and …

What Peter Egan taught me about writing: "Dynamics"

Dynamics?  Yes, dynamics.
In musicdynamics normally refers to the volume of a sound or note, but can also refer to every aspect of the execution of a given piece, either stylistic (staccato, legato etc.) or functional (velocity). The term is also applied to the written or printed musical notation used to indicatedynamics.  I've read Peter Egan obsessively for years:  I have dead-tree copies of 2 of 3 Side Glances compilations, and one edition of Leanings that stoked a motorcycle obsession I've had since 2008.  Prior to that, I'd pick up copies of Road & Track in the Winn-Dixie in my hometown, read the Egan article and then place it back on the shelf above the sign, "IF YOU READ THEM BUY THEM. THIS AIN'T A LIBRARY [sic]."

Indeed:  Libraries don't smell like cigarettes and rotting meat.

Thirty years on, Gearheads venerate Peter Egan, but I think that limits too much to our particular obsession.  Really, anyone who aspires to write or narrate anything

Spoilerific Liveblogging Dr. Who S8E1: "Deep Breath"


Dinosaurs in London.

Well, that was awkward.  Capaldi off to a poor start, but honestly, so was Tennant in "Christmas Invasion"

New Opening looks like the opening to Amazing Stories in 1985...

"People are apes.  MEN are monkeys."  Nice, Mdm Vastra

Clara dealing with the change.  Not well.  Metaphor for all relationships--people change.  Are we big enough to see through the veil?

Parallels: Doctor and the Dinosaur, "I am alone..."

Strax is a joy, per usual, "May I take your clothes?"

And...there's the cyborg

"He looked young, you might as well flirt with a mountain range."  Nice interlude to explain Peter Capaldi know...old.

"My Time Machine was stuck in your throat...that's mostly how I meet girls."

"Planet of the pudding brains..."

Strax: "...and we will melt him with acid.  The Times shall I send it up?"  WHACK!

Ah, JLC in Victorian Garb.  Holds her own quite well against Stra…

Developer toolchain, 2014 Edition

I try to pause every so often and record what my toolchain looks like.   Sort of like people posting on Everyday Carry, but for what I use every day in development.

Development machine: 13" MacBook Pro Retina, 2.8GHz Core i7, 8GB RAM, 250GB SSD.  I love this machine.  My wife calls it my woobie.  She's not far from right. OS: Mac OS 10.9.4.  Unix when I want it to be, polished Consumer OS when I just don't care.   It's been 3 years since I ran a windows box as a development machine and with virtualization I can't see running windows as a primary OS ever again.Physical Setup: Thunderbolt Gigabit ethernet, Thunderbolt-to-DVI single 23" monitor, Microsoft Natural Ergonomic Keyboard 4000.   I've dabbled in multi-monitors and buckling spring keyboards, but this setup keeps my attention focused and my repetitive strain to a minimum.  I'll eventually wear out this keyboard and probably buy another one just like it.Note taking tool: Evernote, but honestly I…

An Afternoon with the Fleet

There aren't really pics to go with this.  Sorry about that.

It began simply enough:  A dog days Saturday that promised mild temps and good weather.  Car parts in two separate boxes in my garage.  "I'll probably have this done before you guys get back from the hair place, " I said.

I set myself two tasks:  Kill the Check Engine light in the Camry that'd been on for two years and 5 days, and give my 1995 truck a tuneup--plugs, wires, rotor, distributor cap.  I had all the parts, and plenty of hand tools.

Simple enough....

In Which Your Author Hugs a Camry I knew the problem with my Camry was the Vacuum Switching Valve.  It was throwing trouble code P0401, which meant a problem with the EGR system.  Cars are so polite these days, telling you these things.  Back in the day, one had to diagnose from symptoms, now the sensors throughout the system tell you your car that's otherwise running fine needs help.  Okay, so it didn't need help, but I was tired of sta…

Why are there no Software Development simulators?

Saturday, I took my daughters to the kids day/open house down at our local PBS station.  Getting past the claustrophobia of jamming hundreds of kids, strollers, and overwrought parents into the narrow hallways and anechoic studios, it was great kidly fun--lots of booths, sing-alongs, and face painting.  On our way out, we noticed a smart-looking medium duty truck painted like a firetruck, pulling a trailer packed to the gills with equipment.  Inside were two "simulator" booths where two robust gentlemen were showing how they train police officers and firemen to drive their vehicles in all sorts of conditions and situations.

Watching a ten-year-old attempt to pilot a full-sized firetruck in a city (protip: make wide turns), it struck me:
There is effectively no simulation training for Software Developers. That's right:  For the pilot of your 777, there's a simulator.  She's required to log so many hours in life-threatening situations so that she can respond with co…

It's just that easy: Configuration as Code 2014

Ramping on a new project is fun!

Actually, it resembles lighting yourself on fire, running and jumping onto a moving train with jugs of water on it, only to discover the first car has flammable liquids, then the next car, then the next.

Restated: It's never boring.

So, I'm collaborating with a team writing in Rails 4, and that team's adopted the 12 Factor App religion. Great!  I've dabbled in heroku before, and it's neat to see apps written that way from the first git init.

Anyway, thought I'd jot down just how "easy" it is to get an app running.

Install git.  Pull the code for the project.  Everything's self-contained from there, right? Er...Install VirtualBox.  This will let you create run virtual machines on your development box.  (You'll need about 8GB of RAM have that, right?)Install Vagrant.  This is like a build system for your virtual machines.Install Chef.  This is a configuration system for your virtual machines.  Once…

"Ideal team size 5 to 10." (Still no cure for cancer)

You've gotta love social scientists.

In the ongoing quest to squeeze every ounce of productivity from the burnout-destined drone age 20-to-40, they're studying ways to measure collective intelligence.

Quotable quote:

Right now, the optimal size is probably somewhere between five and 10, but with the right collaboration tools, you could imagine having a group that kept getting more intelligent, up to 50, 100, or even 500 or 5,000 people. 

Okay, be proud: You've got your name on the company, and you're the centerpiece of this spiffy article.  What you're trying to do, though, it surmount human biology:  We can keep 7 +/- 2 ( that is, anywhere from 5 to 9) things in our active memory at any one time.  Whenever you go above that number, we forget.  Managing over that many relationships day-to-day simply creates overhead.

From "Thinking: Fast and Slow" on Statistics

I'm muddling through Thinking Fast and Slow.

Much of it sounds like a the Wah-wah sound from a Charlie Brown teacher.  Or, if you like, Unikitty talking business

However, about once in a chapter, there's a revelation that's obvious yet profound.  Here is a summary of one:

"Extreme outcomes (both high and low) are more likely to be found in small than in large samples"
Zzzzzzzz...wait, what?  Okay, let's have an example:

"A study of the incidence of kidney cancer in the 3,141 counties of the Unites States reveals a remarkable pattern:  The counties in which the incidence of kidney cancer is lowest are mostly rural, sparsely populated, and located in traditionally Republican states in the Midwest, the South, and the West.  What do you make of this?" Did you leap to any conclusions?  Something about clean living country people away from pollution?  Not so fast...
Now consider the counties in which the incidence of kidney cancer is highest.  These ailin…

Ragequit: End of the Personal Stuff

It's all fun and games until your audience starts forwarding your blog posts to your boss.

I'm tired of shooting myself in the foot by over-sharing.  So, this is over.  Haven't decided yet whether the whole blog goes dark, gets deleted, or what (if any) content I'll post here in the future.

I'd like to keep it as a place my kids can see their Dad struggle through his self-entitlement and selfishness to find the path to redemption (yes, over and over).  At this point, the whole thing is just a liability, and that makes me sad.

Best 5 minute meeting ever

So, here we are 3 years later.  
In 2011, I saw my name on a weird spot of an organization chart, 3 levels up from where it had been.  I was reporting to a Director (soon to be a Vice President) and my title was 'Architect'.
I went through all the phases of grief: Shock: "Wow, look at all this stuff I need to understand!  I can do anything I want..."Anger: "I've just butted heads with most everyone in power at my company.  I can't do anything I want."Bargaining: "Maybe I can balance all this crap with things I like to do.  I can do something I want."Acceptance: "There's an huge pile of work.  I'm spread paper thin. I can do a little bit of what I want." During that time, I expected to live at all levels:  High-level strategy, designing new systems, coding, support/sustainment, etc.  I felt excited, because we needed help in all those places, and I thought I could do it all.
Boy howdy, was I wrong.  
At the end of the day, …

Rant: Why we can't get anything done #32767 --> Vacations

The unfortunate thing about working in a corporation is you have to 'tie out' with people.  This sounds awfully exciting, with visions of ropes, knots, maybe even a lasso or wrestling someone to the ground.

It's not that exciting.  No, what "tie out" really means is getting 2 or more people to agree to do something.  In general, that requires those people be physically or virtually in contact at the same time.

This is a list of common excuses for that not happening, broken down by month:

January: Sorry, I was on vacation skiing.February: Sorry, I was at home trying to shovel my driveway.March: Are you kidding? Spring BreakApril: Out doing my taxes.  Text me.May: Watching our (child, niece, grandchild, neighbors kid) graduate from (kindergarten, 5th grade, 8th grade, high school, college, college (masters)).  I'm also taking off the whole week of Memorial Day and the Friday before.  Really need a break, ya know?June: Family Vacation.  I'll be completely ina…

On Conflict Resolution

Thought I'd just shout this one into the ether:  When one feels wronged by a person, the correct procedure is to go to that person one-on-one and discuss it.
15 “If your brother or sister sins, go and point out their fault, just between the two of you. If they listen to you, you have won them over.  (Matthew 18:15) Okay, that's what to do, but why does God want us to do it that way?  Because it's human nature to gossip, and conflict destroys community.

When you involve others, you spread the original wrong to others, "infecting" them.  Sometimes, this is entirely appropriate; when a crime's been committed, for example, the public needs to know to guard themselves from that individual.  For normal "he hurt my feelings" crap, you're making yourself feel better by spreading the poison to others who'll feel obligated as your friends to "own" your problem.  (An incorrect obligation, but one that seems widespread.)  That ownership change…

Back on the Facebook Hookah

Well, I had a good run.

I exited Facebook on December 30th 2012 and remained off until 4 April 2014.  Last week, Whitney asked me to dig up some pics from my trip to Cebu in 2012, most of which were on my dead MacBook Air...and on Facebook.

Hmm...quandry.  So, I bit the bullet and dove back in.

It's good and bad.  As one would expect, the "network effect" is wonderful.  Most of my dad's family is active, along with some key people from mom's family.   Instantly, I saw pictures of people I haven't seen in person in 3-5 years.  Likewise, much of my high school class is on there and it's neat to see people grow, change, and rear children of their own.  It also seems they've adopted more of the "limited sharing" tools from Google+ so you can share a story with one "list" but not your entire friend group, or go whole hog and share out to "Public" like Twitter.

The bad is largely Facebook itself.  The UI is an A.D.D. nightmare …

Just FYI: Food Allergies Suck

At the risk of sounding like a mommyblogger: It's difficult to hear yet another thing your child's food allergies prevent.  Honestly, at times, it feels like my kids are going to end-up in some Food Allergy ghetto wearing a medical alert bracelet staring out through plexiglass at kids luxuriating with their peanut butter, quiche, and potato salad.

Yeah, I'm sad.  This is part of my process of getting over it, so bear with me.

Grace is 3 years old.  She's active, sensory "enhanced" (let's say), impulsive, and quite intelligent.  Channelled appropriately, those are all great qualities.  As it stands, I'm just glad when I come home and the house hasn't burned down.  She's shown a proclivity for sharp objects, flammable microwaves, and plumbing problems.

Anyway, 2 weeks ago, I got the ball rolling to get her into the new child care center/preschool we have onsite exclusively for employees.   The place is brand new, and it's nothing short of ma…

Secret Sauce: Managing Performance

Methodology Doesn't Matter; People Do I've been in industry for 15 years, as unbelievable as that seems.  I just want to shake people when all they can talk about is Process this and Methodology that and Tool this other.
It. Doesn't. Matter.
Okay, it does matter, but only when you have the people end of things sorted out first.  Assuming an equally talented group, those with a better system will (generally) perform better over time.  However, no methodology in the world is going to make disengaged, sloppy employees perform well.  (It's tempting to draw a parallel to the Auto Industry, but I'll spare you.)
So, let's postulate that it's the people that matter.  So what?
Well, if you take that as true, there are conclusions to draw: You must attract top-performing people.You must retain a large percentage of those people.You must eliminate those who don't perform. It's really that simple. 
Okay, item #3 is non-obvious:  Can't the top-performers jus…

My Superego Presents: Best Excuses Ever

Sorry I was unable to ___ because.... the Loyal Order of White Castle was meeting at the same time.I was playing ping-pong.I was playing XBox.I didn't get to work until 11am.I couldn't find the indicated conference room with a map, sextant, compass, GPS, diving rod, and several readings of appropriate entrails.I was busy juggling.I was at lunch 'til 2pm.I chose not to go to bed until 3am, and a nuclear explosion couldn't wake me at 7, let alone my 20 year old Sony clock radio

Orange Card Certification (Psst....It's Free. And Fun.)

Five-year-old Joey:  "Harold, when are we going hunting?"

My step-son is a canonical boy:  Around age 1, his mother reported him fashioning pistols and shooting her with his toast.  He likes taking things apart.  He loves archery, and he's fascinated by firearms.  We live in Kentucky, so most consider this not Neanderthal DNA expressing itself, but the natural order of things.

So yeah, hunting.

As with many things in my life, I found myself in the 1.5 day Kentucky Orange Card certification class this past Friday and Saturday through an odd chain of events:  We actually read the 4-H letter from our local Ag Extension office.  (We get the 4-H letter because we signed-up for a community garden plot last year, but I dropped the ball and we never planted it.)  In the newsletter was a blurb about Scott County 4-H Shooting sports:  Archery, air rifle, air pistol, .22 rifle, .22 pistol, and trap.  It appeared this was all free.  There was an additional blurb:  In order to partic…

Skills to master for a "Full Stack" developer on the JVM, 2014 edition

I'm part of an initiative developing curriculum and training resources for developers.  Here's what I have so far on fundamentals and skills for a developer.
FundamentalsDesign and Structure • Design / Domain Modeling • Object Orientation / Design Patterns
Development and Delivery • IDE mastery: IntelliJ, Eclipse, etc. • Code Reviews / Pull Requests • Testing: Unit testing, test coverage • Effective Debugging / Using a symbolic debugger * Working on an Agile Development team * Profiling/ Performance Measurement Analysis * Secure Coding Practices & Threat modeling
Operations and Sustainability • Appropriate Logging / Levels for operational troubleshooting • Open Source Adoption & Usage • Intellectual Property: Disclosure and Protection

Specific Skills for Server-side DevelopersDatabases General Relational Database concepts (Schemas, tables, datatypes) Expressing one-to-one, one-to-many, and many-to-many relationships General SQL: SELECT, INSERT, UPDATE, DELETE, various joins Awareness o…