Category Archives: Haiku

Ten 2014 Tech Trend Haiku


2014 has seen a proliferation of articles about tech trends — this is, as it were, the trend in tech trends.  News outlets, consultancies, and the random web page all feel an urgency about putting their two cents in. 

Even as more voices are being heard about what to expect in the near future (or more accurately, the ‘intimate future’), what is actually said seems to be getting shorter and shorter.  Moreover, what is being said seems to be getting recycled year over year.

Where near future predictions used to be long and thoughtful, intimate future predictions have become terse and uniform. This process is known to economists as the process of commoditization. What was once crafted is now generic, easily digestible, and able to be mass produced: predictions in 140 characters or less.

This trend of writing about tech trends seems to be running out of steam, however.  Repetition and terseness are sure signs of an exhausted meme.  They are last year’s fashion.

This is a shame, as they clearly once had a purpose in informing, inspiring and entertaining us. In an attempt to revive the genre, I’ve taken the trend to its logical conclusion: the tech trend Haiku. 

Surveillance culture
Watches your clicks and your votes.
— Learn to embrace it.

The Quantified Self
Takes the means of surveillance
Back from government.

Technology and
Fashion allow me to find
My socks. Wherables.

The revolution
Will be tweeted on an app
You’ve never heard of.

"Drones on leashes shoot
Aerial photos" — creepy.
Drone on, drone, drone on …

All things great and small
Will have unique addresses:
Internet of things.

New studies show tech
Cripples attention span and


A 3-D printer
Printed itself from old parts.
The circle of life.

Reality augmented
Through tinted glasses. Only
Virtually real.

Self-driving cars are
A placeholder for our hearts’
desire: flying cars.

2011: The Year in Review


2011 was an extremely busy and exciting year.  I had the chance to go to more conferences than I ever have before: MIX11, An Event Apart and BUILD were highlights for me.

Blog: I wrote several blog posts I was rather proud of – much as a doting father would be.  The most popular was Windows Phone 7 at a Crossroads which received more comments than I typically get as well as extremely flattering outside attention from and the Windows Phone Dev Podcast.  My two personal favorites, however, were one on Delight and another called The Kinect’s Past which received a comment from Bill Buxton.

Speaking Engagements: I also had a busy year speaking at the Greater Gwinnett Microsoft User Group, the Atlanta .NET User Group, CodeStock 2011, MADExpo 2011, Web Visions and SIEGE 2011 as well as a private presentation on UX for Microsoft and Bank of America.  I also did a podcast interview for IEEE Spectrum about Windows 8.

Keynote: I was invited to give one of the two keynotes at the Mid Atlantic Developer Expo conference.  It was a distinct honor and an extremely fun event.

User Group: I spent another year running the Silverlight Atlanta User Group.  Corey Schuman and I have been organizing and maintaining the Silverlight User Group for two years, now, and only recently changed the name to the Atlanta XAML group after what was frankly a very tough year for Silverlight.

Conference: It was the second year I led the organizing of the ReMIX conference in Atlanta.  Our attendance was up to 450 this year.  More importantly, we were able to get just about every speaker we wanted including Rick Barraza, August de los Reyes, Josh Blake, Arturo Toledo and Albert Shum.  We also had a single track devoted just to the Kinect.  I want to thank the other organizers of ReMIX for indulging me in this: Cliff Jacobson, Sean Gerety, Wells Caughey, Dennis Estanislao and Farhan Rabbi.

Book: I spent the last quarter of this year working on a Kinect SDK book for APress with my colleague Jarrett Webb.  This was a good outcome since I spent the first part of the year writing several chapters of a Windows Phone book that didn’t get to see the light of day.  Expect to see the Kinect book towards the beginning of February.

My most impressive achievement, however, was catching up on five seasons of The Wire.  There are lots of blog posts going up around the web right now purporting to give advice about what you should and should not do in 2012.  My advice is short and sweet: you need to watch The Wire.  If you don’t, you are a horrible person, hate America, are aiding and abetting terrorists and are preventing George R. R. Martin from completing his next novel.

Consider the Cow


For a while now, a trope has been going around (I think started by Jesse Liberty) to the effect that if you know Silverlight then you already are a Windows Phone 7 developer.

Having spent a lot of time lately on the Windows Phone 7 forums answering questions, I’m actually amazed at how many posts come through that demonstrate a lack of basic knowledge about Silverlight.

… and that’s kindof cool.

My first emotion, however, is always shock and resentment that people are trying to write Windows Phone apps and yet are asking elementary questions about data binding, about how to template a control, about the purpose of the DataContext, about how to skin a listbox.

Not uncommon are questions such as:

“Please to show me how to write a complete Twitter client with samples and with security built in. Thanks in advance.”

What I find impressive in all this (my second emotional reflex) is that the developers who are trying to do the most with Windows Phone are not experienced Silverlight developers – the people we all originally assumed would adopt the Windows Phone platform.

They are not interested (to my chagrin) in the nuances of the Silverlight platform and the best way to prop up an MVVM framework. 

Instead, they are looking to accomplish a task and then move on.  I suspect that while I am still putting the finishing touches on my tombstoning infrastructure and my comprehensive solution to page transitions in a phone app, they will already each have 20 applications ready for the Marketplace, all of them beautiful, functional and competent.

The philosopher Hegel, at a certain point, extols the virtues of the cow, and recommends that people should consume concepts the way a cow will consume grass, quickly and efficiently.  Nietzsche, in a similar vein, considers the cow’s contentment chewing her cud while the philosopher worries about what will make him happy.

One oddity of modern (by which I mean in the past 5 years) programming is that application development time has not gotten any shorter despite the prevalence of frameworks and syntactic sugar in our languages to make the development process easier.  Is it that with better tools, we simply take greater time to create our software edifices?

Windows Phone applications, by contrast, are small and light.  They certainly gain by sophisticated architectures – and I’ve read many a screed decrying the lack of TDD and IoC experience among the new breed of phone developers – but do they really need it?  Do I need architecture at all for a three page application?  Do I really need unit tests?  Continuous integration?

In the consulting and corporate worlds, being able to talk to TDD, IoC, SCRUM and a host of other acronyms sets an expert developer apart and justifies higher rates.  In those particular environments, it makes sense to hone these skills and to guard them jealously as they give us a competitive advantage in the consulting marketplace and along the corporate ladder.

Phone development, however, is judged by a different marketplace.  A phone application doesn’t have to appeal to architects and CEO’s. It simply has to appeal to the twitchy fingers of a phone marketplace consumer who has no idea what is going on underneath the slick appearance of an app.  It seems unlikely that any phone application will achieve high ratings based on the beauty of its architecture. 

So consider the cow.  As consumers of phone applications, this is what we all are.  An app must catch our interest quickly.  The moment an app loses our interest we forget about it.  An app is either successful in maintaining our attention or it isn’t, and if it isn’t it is soon consigned to oblivion.

And now consider the virtues of the cow developer.  The best ones share common characteristics with and understand their audience.  They have little time for finding the “best” way to skin an app (after all, there’s always more than one way to do that).  Instead, they want a quick solution so they can move on to getting the colors right, the sounds right, the overall experience right.  If someone else can provide the quick solution, all the better. 

There is no particular pride to be taken in coming up with a solution by oneself.  Pride doesn’t feed anyone. The primary objective is to create apps that delight the consumer and make him want to buy (or chew, to extend the cow analogy a little too far).

Perhaps it is time we, as developers, began admiring the cow rather than the architect of our plumbing.

How to become a Silverlight Expert


I am a Silverlight Expert (And So Can You!).

You may have come across this con before.  You find a short ad in a magazine or a newspaper or a flyer that offers you a secret recipe for making lots and lots of money from your home.  All you have to do is send in $10.

A friend of a friend of a friend of mine actually did this.  The secret recipe is that you create an ad in a magazine or a newspaper or a flyer offering a secret recipe for making lots and lots of money and all people have to do is send you $10.

If you google (or google on Bing) for a Silverlight Expert you are likely to come across this blog entry by Caleb Jenkins: 5 Steps to becoming a Silverlight Expert in which Caleb pretty much explains the secret recipe.  You write a blog post with the words “Silverlight” and “Expert” in it and, wham, bam, there you go.  Instantaneous SEO success.  Put Silverlight Expert in your meta tags (go ahead and check mine now, if you like; I’ll wait) and there you go.  More SEO magic.  Link anchors to other sites that score high for this particular set of keywords is also very effective.

In addition to Caleb, a Silverlight Expert search on the web will likely bring up Erik Mork, Corey Schuman and Shawn Wildermuth.  For the record, they all really are Silverlight experts just as Caleb really is.  Erik and Corey are recognized by Microsoft as Silverlight MVPs and Caleb is an ASP.NET MVP.  Shawn has been an institution in the MVP program for a decade.

Besides saying you are a Silverlight expert, you can also, of course, pay to be a Silverlight expert.  A google search today will lead with three paid spots for Northridge Interactive, Implicit Web and Axmor.  Are they Silverlight experts?  I don’t really know.  All I can say is that paying to be recognized as Silverlight experts doesn’t mean you are not Silverlight experts.

You may have come across this joke before:

Socrates: “To be is to do."

Sartre: "To do is to be."

Sinatra: "Do Be Do Be Do."

I first came across it in a 1985 Luc Besson film called Subway starring Christopher Lambert (of Highlander fame).  It exemplifies, trivializes and then revitalizes an ancient philosophical debate between the man of action and the man of words about what is the best life – that is, a debate between the politician and the philosopher/scientist.

For the politician, words and public speaking are a form of doing – it has a goal, to convince the polis on a course of action.  For the philosopher, action is a form of being.  What we do reveals the sort of person we are – and so we must choose our actions carefully.  Socrates drinks the hemlock because that is the sort of man he is.

Only in modern times have we thrown up a third option for the best life – a life achieved through marketing.  We should give a nod to the German transcendentalists for laying the groundwork for this third way, since they developed and expanded on the concept of “appearing.”

In the world of marketing, “to appear” to be something is “to be” it.  The world is nothing more than a representation, after all — a collective agreement on what we value and what we believe.  Both the speeches of Pericles and the final moments of Socrates in the Apology can now be seen as great marketing moments that were memorable as well as influential.  If we could only go back in time and get a product placement in there somehow.

In a virtual world dominated by marketing, the secret recipe to success seems to be a recognition that “to say” is “to do”.  If you don’t believe me, just check Wikipedia.

If you want to “really” be a Silverlight expert, however, then there just are no shortcuts.  You’ll have to just do it*.

[* “Just do it” was coined by marketing guru Dan Wieden for an extremely successful Nike campaign and is probably copyrighted. According to the film Art & Copy it was inspired by the last words of a death row inmate as he was waiting to be executed.]

Speaking at DevLink

Our far-flung correspondent from self-promotion land writes:

I received an invitation this past week to speak at DevLink.  I will be presenting on two topics:

The C# 4 Dynamic Objects session will be a longer version of the talk I gave at the MVP Summit in February.  The Advanced Windows Phone 7 talk is one I find I am updating every few weeks as more tools and information about the platform become available.

DevLink is a three day conference being held in Nashville, August 5-7.

My Dance Card is Full


I’m overcommitted.  I recently changed jobs, moving from Magenic Technologies, a software consulting firm, to Sagepath, a creative agency.  I knew the new job would be great when they paid my way to MIX10 my second week at work.

On top of that I submitted talks to several regional conferences and the voting has begun to select speakers.

For CodeStock I have submitted the following three presentations:

For the DEVLINK conference I also have three talks which are currently doing well in community voting.  This is a blind vote, though, so I won’t list the sessions I have submitted.

With Ambrose Little and Brady Bowman, I have started a reading group on Umberto Eco’s A Theory of Semiotics called ‘Semiotics and Technology’ and hosted on google groups.  We have just finished the first chapter and are beginning our discussion of the Introduction.

In addition, I have been working with several members of the Atlanta developer community to organize ReMIX Atlanta.  The goal of ReMIX is to have a different kind of conference – one that caters to both the developer community and the design-UX community.  These are traditionally two communities that do not necessarily get along – and yet they must if we are ever to get beyond the current proliferation of unusable applications and non-functional websites.  To quote Immanuel Kant:

“Thoughts without content are empty, intuitions without concepts are blind.”

I also need to stain the deck and build a website for my wife – and in the time left over I plan to build the next killer application for the Windows Phone 7 Series app store.  This time next year I will be blogging to you from a beach in Tahiti while reclining on a chair made from my Windows Phone app riches.

In the meantime, however, my dance card is full.

Open Spaces and the Public Sphere


While watching C-SPAN’s coverage of the public Congressional debate over healthcare (very entertaining if not instructive), I found that a friend has been writing about Habermas’s concept of the ‘public sphere’: Slawkenbergius’s Tales.

To be more precise, he elucidates on the mistranslation of ‘Öffentlichkeit’ in the 1962 work Habilitationsschrift, Strukturwandel der Öffentlichkeit into English as ‘public sphere’.  The term, as used by Heidegger, was often translated into English as ‘publicity’ or ‘publicness’.

“The actually important text was Thomas Burger’s 1989 translation of the book, The Structural Transformation of the Public Sphere. (As my advisor pointed out to me, the highly misleading rendering of the abstract noun Öffentlichkeit as the slightly less abstract but more "spatialized" public sphere may have been the source of all the present trouble.) Because the translation arrived at a point in time when issues of space, popular culture, material culture, and print media were at the forefront of historiographical innovation, the spatialized rendering fit very nicely with just about everyone’s research project. That’s when the hegemony of the "public sphere" began. ”

The mention of ‘space’ in Slawkenbergius’s discourse (he’ll wince at that word – read his blog entry to find out why) reminded me of the origins of the Open Space movement.

For those unfamiliar with it, open spaces are a way of loosely organizing meetings that is currently popular at software conferences and user groups.  The tenets of an open space follows, vis-a-vis Wikipedia:

  • Whoever comes is the right people [sic]: this alerts the participants that attendees of a session class as "right" simply because they care to attend
  • Whatever happens is the only thing that could have: this tells the attendees to pay attention to events of the moment, instead of worrying about what could possibly happen
  • Whenever it starts is the right time: clarifies the lack of any given schedule or structure and emphasizes creativity and innovation
  • When it’s over, it’s over: encourages the participants not to waste time, but to move on to something else when the fruitful discussion ends
  • The Law of Two Feet: If at any time during our time together you find yourself in any situation where you are neither learning nor contributing, use your two feet. Go to some other place where you may learn and contribute.
  • The open spaces I’ve encountered at software conferences have tended to be one man on a soapbox or several men staring at their navels.  But I digress.

    The notion of an Open Space was formulated by Harrison Owen in the early 1980’s (about the same time Habermas was achieving recognition in America) as a way to recreate the water-cooler conversation.  It is intended to be a space where people come without agendas simply to talk.  The goal of an open space, in its barest form, is to create an atmosphere where ‘talk’, of whatever sort, is generated.

    For me, this has an affinity with Jürgen Habermas’s notion of an ‘Ideal Speech Situation’, which is an idealized community where everyone comes together in a democratic manner and simply talks in order to come to agreement by consensus about the ‘Truth’ – with the postmodern correction that ‘Truth’ is not a metaphysical concept but merely this – a consensus.

    This should come with a warning, however, since in Heidegger’s use of Öffentlichkeit, public sphere | open space | publicness is not a good thing.  Publicness is characteristic of a false way of being that turns each of us (Dasein) into a sort of ‘they’ (Das Man) – the ‘they’ we talk about when we say “they say x” or “they are doing it this way this year.”  According to Heidegger – and take this with a grain of salt since he was a Nazi for a time, after all, and was himself rather untrustworthy – in Being and Time:

    The ‘they’ has its own ways in which to be …

    Thus the particular Dasein in its everydayness is disburdened by the ‘they’.  Not only that; by thus disburdening it of its Being, the ‘they’ accommodates Dasein … if Dasein has any tendency to take things easily and make them easy.  And because the ‘they’ constantly accommodates the particular Dasein by disburdening it of its Being, the ‘they’ retains and enhances its stubborn dominion.

    Everyone is the other, and no one is himself.

    October 2009: The Month that Was


    At the Atlanta Leading Edge Microsoft User Group (ALEMUG), we typically set aside some time at the beginning of each meeting to discuss the hot topics related to software development – with a particular slant toward the Microsoft world – that have come up in the previous month.

    The web of cross-conversations on blogs, YouTube videos, and software announcements makes up and propels the culture of the software industry.  To be a software developer, in some degree, means being current on these ephemeral Internet happenings.  The purpose of the ten minutes we set aside at the ALEMUG meetings to discuss them is simply to make sure everyone is caught up on current events, so to speak, so that we have a common vocabulary when discussing technology and software methodologies.  After all, communication is the most difficult thing about developing software.  Many of us know how to get things done, but the hard part – explaining why we do things the way we do and sharing our technical knowledge with others – is elusive.  Programming knowledge is always fragmentary, at best, and trying to bring it all together through best practices and even some historical perspective is a constant struggle.

    These monthly wrap-ups also serve as a time capsule, however.  A peculiarity of working on the cutting edge of technology is that there is very little awareness of the passing of time.  Software development usually occurs in a bubble of hyper-focus that inevitably destroys our sense of time.  For instance, how long has WPF been around?  How long has twitter been around?  On a resume, what is the longest amount of time a developer can legitimately claim to have worked with .NET? 

    With the goal of restoring the sense of the flow of time – what Kant called inner sense – here is a list of matters momentous and trivial to the software industry in the middling period between September and October, 2009:

    A renewed debate between Morts and Architect Astronauts was started by Joel Sposky:

    This was mirrored by a similar sort of debate concerning software methodologies started by Ted Neward:

    Microsoft started a new series of ads for their operating systems: Win 7 and Mobile 6.5, that did not quite hit their mark:

    As the Gartner group weighed in on Win 7:

    In hardware, solid state drives got the seal of approval from Jeff Atwood while Barnes & Noble finally came out with their alternative to Amazon’s Kindle:

    Interesting new software and services were released, including a tool for writing iPhone apps using C#, Google Wave (does anyone have an invitation they can send me?), and Yahoo’s alternative to Twitter:

    An indication that the cold war between Microsoft and Google is beginning to heat up:

    And some insights into the world of publishing software books:

    All rational people will agree …


    In the Critique of Pure Reason, Immanuel Kant argues that moral actions are the actions of an autonomous will, and that an autonomous will is a will that is determined by reason alone.  Moral actions, additionally, follow the form of being universalizable, hence Kant finds in rationality a confirmation of the Golden Rule: when you do unto others as you would have them do unto you, you are behaving in a manner that can be universalized for all mankind.

    In the years following Kant’s death, the notion that all rational people, when they are being rational, will consistently agree with certain propositions has fallen somewhat into disfavor.  This has reached the point that Habermas, perhaps one of the last post-modern defenders of some form of Kantian morality, argues that while it was presumptuous for Kant to make claims about what rationality looks like, we should still work towards some sort of ideal speech community which removes all biases and personal ambitions from the process of communication; this would de facto be the closest thing we can get to our ideal of pure reason, at which point we let them tell us what all rational people ought to believe.

    And so you will not often see the phrase ‘all rational people agree’ in print much, these days, though back-in-the-day it was a commonplace.  Still, old habits die hard, and in its place we often find the phrase ‘most people agree’ in its place, with the implication that the “most people” we are talking about are the “rational people.”

    I was recently trying to find a good article on Dependency Injection for a colleague and came across this one on MSDN, which unfortunately begins:

    “Few would disagree that striving for a loosely coupled design is a bad thing.”

    I assume that the author originally intended to say “Most would agree that striving for a loosely coupled design is a good thing.”   He then attempted to negate the statement for emphasis, but managed to over-negate, and failed to see that “few would disagree” is the apposite of “many would agree”, rather than its opposite.

    In fact someone mentioned this to the author on his personal blog, but the author averred that this was just a Canadianism and not actually a mistake.

    Be that as it may, it recalls a problem with logical quantifiers and natural language.  In the classic square of opposition (which sounds like a perverse political system but is simply a diagram that explains the complex relationship between universal propositions and existential ones) we are reminded that while universal affirmative propositions are contrary to universal negations, they are not contradictory.

    If an A proposition, for instance ‘All rational people agree that X’, is true, then the contrary E proposition, ‘No rational people agree that X’ must necessarily be false, and vice-versa.  However, these are not contradictory propositions since both can actually be false.

    The contradiction of A is the existential proposition (O), ‘Some rational people don’t agree that X’, just as the contradiction of E is I, ‘Some rational people agree that X.’  If A is false, then O is necessarily true; if O is false, then A is true; and either A or O must be true.

    What cannot be easily resolved into logical formalism are the grammatical quantifiers ‘many’ and ‘few’.   Are ‘many’ and ‘few’ contradictory or merely contrary (or, God forbid, even subcontrary)?

    What we can all agree on is the fact that english idioms are sometimes difficult to work with, and that this is particularly true when we attempt to formulate complex relationships between quantifiers.  Take, for instance, Abraham Lincoln’s famous epigram (which he possibly never uttered):

    You can fool all of the people some of the time, and you can fool some of the people all of the time, but you can’t fool all of the people all the time.

    I actually have trouble understanding the logic of this argument, and take exception with the first and second premises for the same reason that I take exception with statements about what all rational people agree on.  However I find myself so in agreement with the conclusion, as most people do, that I tend to overlook the manner in which we arrive at it.

    Or take this one, from Tolkien’s novel:

    I don’t know half of you half as well as I should like; and I like less than half of you half as well as you deserve.

    It simply cannot be formalized into first-order logic.  Yet, remarkably, we manage to understand it — or at least most of us do.

    In the movie Shrek the Third, there is this exchange, which plays on the difficulties of universal negation (O propositions brought to you by IMDB):

    Prince Charming: You! You can’t lie! So tell me puppet… where… is… Shrek?
    Pinocchio: Uh. Hmm, well, uh, I don’t know where he’s not
    Prince Charming: You’re telling me you don’t know where Shrek is?
    Pinocchio: It wouldn’t be inaccurate to assume that I couldn’t exactly not say that it is or isn’t almost partially incorrect.
    Prince Charming: So you do know where he is!
    Pinocchio: On the contrary. I’m possibly more or less not definitely rejecting the idea that in no way with any amount of uncertainty that I undeniably
    Prince Charming: Stop it!
    Pinocchio: …do or do not know where he shouldn’t probably be, if that indeed wasn’t where he isn’t. Even if he wasn’t at where I knew he was
    [Pigs and Gingerbread Man begin singing]
    Pinocchio: That’d mean I’d really have to know where he wasn’t.

    In California, for safety reasons, the following law is apparently on the books:

    The law says that nothing “shall be so designed and installed that it cannot, even in cases of failure, impede or prevent emergency use of such exit.”

    H. L. Mencken provides several canonical examples of double negation in his book The American Language in order to demonstrate that it was once more common and better accepted, especially when English was closer to it’s inflected roots.  Thus Chaucer writes in The Knight’s Tale:

    He nevere yet no vileynye ne sayde
    In al his lyf unto no maner wight.

    Shakespeare was no sloucher, neither, and Mencken cites several examples:

    In “Richard III” one finds “I never was nor never will be”; in “Measure for Measure,” “harp not on that nor do not banish treason,” and in “Romeo and Juliet,” “thou expectedst not, nor I looked not for.”

    At the same time, Shakespeare was also a genius at presenting universal negation in a manner fit to please Hegel when the Prince of Denmark soliloquizes:

    To be, or not to be

    while in King Lear,  in turn, the Bard’s use of universal affirmation is so fitting that any reasonable person would acknowledge it:

    All the world’s a stage,
    And all the men and women merely players:
    They have their exits and their entrances;