Archive

Author Archive

Simply Atrocious

January 17, 2014 2 comments

Via a twitter tip from Scott Berkun, I read Matt White’s “Atrocities: The 100 Deadliest Episodes in Human History“. The book is a truly impressive and meticulous compilation of man’s inhumanity to man throughout the ages. It’s not only chock full of body counts, it attempts to describe why each atrocity was precipitated. The book also contains lurid details of some of the tactics and methods used by the “victors” to obliterate their victims.

According to Mr. White, here are the top 3 atrocities that have occurred (so far) over the course of human history:

atrocities

While reading Matt’s book, my feelings oscillated uncontrollably between repulsion and gratitude. Repulsed at the insidiously diabolical forms of death experienced by bazillions of fellow human beings, but extremely grateful I wasn’t physically present during any of those maelstroms.

Auto Forgetfulness

January 15, 2014 1 comment

The other day, I started tracking down a defect in my C++11 code that was exposed by a unit test. At first, I thought the bugger had to be related to the domain logic I was implementing. However, after 4 hours of inspection/testing/debugging, the answer simply popped into my head, seemingly out of nowhere (funny how that works, no?). It was due to my “forgetting” a subtle characteristic of the C++11 automatic type deduction feature implemented via the “auto” keyword.

To elaborate further, take a look at this simple function prototype:


SomeReallyLongTypeName& getHandle();

On first glance, you might think that the following call to getHandle() would return a reference to an internal, non-temporary, object of type SomeReallyLongTypeName that resides within the scope of the getHandle() function.


auto x = getHandle();

However, it doesn’t. After execution returns to the caller, x contains a copy of the internal, non-temporary object of type SomeReallyLongTypeName. If SomeReallyLongTypeName is non-copyable, then the compiler would have mercifully clued me into the problem with an error message (copy ctor is private (or deleted)).

To get what I really want, this code does the trick:


auto& x = getHandle();

The funny thing is that I already know “auto” ignores type qualifications from routinely writing code like this:


std::vector<int> vints{};

//fill up "vints" somehow

for(auto& elem : vints) {

//do something to each element of vints

}

However, since it was the first time I used “auto” in a new context, its type-qualifier-ignoring behavior somehow slipped my feeble mind. I hate when that happens.

Categories: C++11 Tags: , ,

The Long And Winding Road

January 13, 2014 Leave a comment

No BS

January 11, 2014 Comments off

As you can tell from the fading red color and the yellowish background, this tacky “No BS” sign has been around for decades:

No BS

I’ve carted my beloved “No BS” sign with me from cubicle to cubicle throughout my long and un-illustrious career. The cool thing is that I have never been asked, nor “commanded!“, to take it down by anyone in any of the companies I’ve worked for. Hell, I can’t even remember ever getting a “stern look” from anyone who’s seen it. I do, however, remember getting many chuckles from people who saw it for the first time: “Nice sign, LOL!“.

How about you? Have you been so lucky?

Categories: miscellaneous Tags:

Huge Cajones

January 9, 2014 2 comments

According to “No Managers Required: How Zappos Ditched The Old Corporate Structure For Something New”,  by the end of 2014, Zappos.com will have dismantled their corpo pyramid. Under the stewardship of maverick CEO Tony Hsieh, the 1500 employee company will be transitioned into a “holacracy” of 400, self-governing circles.

Hierarchy Holarchy

Talk about having huge cajones. Just think of the disruptive risk to business performance of making such a daring structural/operational change to a billion dollar enterprise.

Although I look forward to watching how the transformation plays out, I’m a bit skeptical that Mr. Hsieh can pull it off. After visiting the site of the “consultant” that will be advising the company during the transition (holacracy.org) and browsing through the ungodly long, complicated, formal Holacracy Constitution, the first thought that came to mind was “D’oh!“.

Twitter friend and guest blogger @serialmom sums up the situation with this insightful tweet:

SM Tweet

Goalodicy

January 7, 2014 Leave a comment

Goalodicy – the pursuit of idiotic goals

The last book I read was Scott Adams’ “How to Fail at Almost Everything and Still Win Big: Kind of the Story of My Life“. The current book I’m reading is Oliver Burkeman‘s “The Antidote: Happiness for People Who Can’t Stand Positive Thinking“. Coincidentally, and unbeknownst to me before I began reading the books, both authors trash the dogma that setting specific goals is a worthwhile idea. Burkeman has this (and much, much more) to say on goal pursuit:

A business goal would be set, announced, and generally greeted with enthusiasm. But then evidence would begin to emerge that it had been an unwise one – and goalodicy would kick in as a response. The negative evidence would be reinterpreted as a reason to invest more effort and resources in pursuit of the goal. And so things would, not surprisingly, go even more wrong…. There is a good case to be made that many of us, and many of the organisations for which we work, would do better to spend less time on goal-setting, and, more generally, to focus with less intensity on planning for how we would like the future to turn out. – Oliver Burkeman

Scott Adams is even more critical of the “best practice” of goal-setting than Burkeman:

Throughout my career I’ve had my antennae up, looking for examples of people who use systems as opposed to goals. In most cases, as far as I can tell, the people who use systems do better. The systems-driven people have found a way to look at the familiar in new and more useful ways. To put it bluntly, goals are for losers. That’s literally true most of the time. For example, if your goal is to lose ten pounds, you will spend every moment until you reach the goal—if you reach it at all—feeling as if you were short of your goal. In other words, goal-oriented people exist in a state of nearly continuous failure that they hope will be temporary. That feeling wears on you. In time, it becomes heavy and uncomfortable… Goal-oriented people exist in a state of continuous pre-success failure at best, and permanent failure at worst if things never work out. – Scott Adams

If you’re a laser-focused, SMART goal-oriented person, you might want to revisit some of the foundational bricks in your worldview in light of what Burkeman and Adams have to say. But then again, neither Burkeman nor Adams are absolutists. They don’t emphatically advise against all goal-setting. They simply suggest considering alternative, less psychically destructive methods of attempting to better our lives (devise/use a system;  envision a qualitatively desirable future and move toward it).

You might say every system has a goal, however vague. And that would be true to some extent. And you could say that everyone who pursues a goal has some sort of system to get there, whether it is expressed or not. You could word-glue goals and systems together if you chose. All I’m suggesting is that thinking of goals and systems as very different concepts has power. – Scott Adams

There is plenty of very real research testifying to the fact that the practice (of goal-setting) can be useful. Interpreted sufficiently broadly, setting goals and carrying out plans to achieve them is how many of us spend most of our waking hours. – Oliver Burkeman

Goal Setting

Wedded Or Divorced?

January 4, 2014 2 comments

Wedded Or Divorced

So, which do you prefer? A wedding or a divorce? If you prefer the latter but are stuck in the former 24 X 7 (like BD00), what’s your strategy for achieving the transition, even if only temporarily? AFAIK, the practice of meditation is one healthy approach for distancing oneself from one’s thoughts. Is it the only way?

Categories: spirituality Tags: , ,

It’s All About Me

January 2, 2014 Leave a comment

According to the wordpress.com stats helper monkeys, these metrics summarize my 2013 blogging output:

WP 2013 Numbers

Since conjuring up dorky, childish, clipart pictures seems to be my “strength“, it’s not surprising that I uploaded over twice as many pretentious pictures as blog posts.

The WP monkeys didn’t stop there. Those animals also tallied up my most-viewed posts of 2013:

WP 2013

Even though I don’t post on the topic as much as I do on other “stuff“, every single one of my top five “best sellers” explores some aspect of programming in C++ that piqued my interest. But that’s not surprising. Members of two sites with large C++ programmer followings, reddit.com and isocpp.com, decided to share links to my top five on those sites.

In addition to being a blathering blogger, I was fairly active on Twitter in 2013. The talented programmers at vizify.com gratuitously compiled a nice little video of my 2013 Twitter activity (you can see it here) and tallied up my most impactful tweets:

Top 10 Tweets 2013

If wordpress.com and vizify.com can create synopses like these, just imagine what the NSA can do.

Happy New Year!!!

January 1, 2014 Leave a comment
Categories: miscellaneous Tags:

Warts And Barnacles

December 31, 2013 4 comments

When I started this blog four years ago, I had to decide whether to publish as an anonymous coward or to use my real name. I struggled with the decision for a bit because I knew I was going to write frequently, real frequently, about dysfunctional management and institutional behaviors that I’ve both experienced and (even more so) read about over the years. In addition, since I’m a high energy, passionate animal who doesn’t hold much back and at times finds it hard to compromise, I knew that much of my content was going to be highly caustic and offensive.

caustic

Out of fear of repercussions, I decided to start writing incognito… until a dear friend brought up the perplexing issue again. After rethinking the situation, I resolved to let it all hang out. I gingerly hoisted my name up on my “About me” page.

Never say never, but I didn’t (and still don’t) care about climbing any corpo ladder or presenting the squeaky clean image that all main stream “leadership” books tout as necessary to “get ahead“. I have some hairy warts and barnacles growing on my brain and, hell, I choose to expose them.

BD00 Brain

So, if I don’t want to get ahead by movin’ on up, then WTF does BD00 want? I want to keep ruining drill bits while I blast away at the impenetrable bedrock that entombs the holy grail of effective software development. I like going deep, deep, deep down into the unexplored corners of programming (in C++, of course), design, architecture, requirements, and the squishy realm of team-based software development processes. These closely-coupled topics excite me because there seems to be no bottom, no final “truths“, no end to life-long learning in any of them. It’s what I was meant to do.

Driller

What were you meant to do?

white space