<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Interoperability Happens - XNA</title>
    <link>http://blogs.tedneward.com/</link>
    <description>Ted's takes on the enterprise Java, .NET and Web services communities and technologies</description>
    <copyright>Ted Neward</copyright>
    <lastBuildDate>Fri, 15 Feb 2013 04:25:38 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7067.0</generator>
    <managingEditor>tneward@tedneward.com</managingEditor>
    <webMaster>tneward@tedneward.com</webMaster>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=9fc99f7c-088b-45e9-b52a-3ccd9976c28d</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,9fc99f7c-088b-45e9-b52a-3ccd9976c28d.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,9fc99f7c-088b-45e9-b52a-3ccd9976c28d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9fc99f7c-088b-45e9-b52a-3ccd9976c28d</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While cruising through the Internet a few minute ago, I wandered across <a href="http://meteor.com">Meteor</a>,
which looks like a really cool tool/system/platform/whatever for building modern web
applications. JavaScript on the front, JavaScript on the back, Mongo backing, it's
definitely something worth looking into, IMHO.
</p>
        <p>
Thus emboldened, I decide to look at how to start playing with it, and lo and behold
I discover that the instructions for installation are: 
</p>
        <pre>
curl https://install.meteor.com | sh
</pre>
Um.... Wat?
<p>
Now, I'm sure the Meteor folks are all nice people, and they're making sure (via the
use of the https URL) that whatever is piped into my shell is, in fact, coming from
their servers, but I don't know these people from Adam or Eve, and that's taking an
awfully big risk on my part, just letting them pipe whatever-the-hell-they-want into
a shell Terminal. Hell, you don't even need root access to fill my hard drive with
whatever random bits of goo you wanted.
</p><p>
I looked at the shell script, and it's all OK, mind you--the Meteor people definitely
look trustworthy, I want to reassure anyone of that. But I'm really, really hoping
that this is NOT their preferred mechanism for delivery... nor is it anyone's preferred
mechanism for delivery... because that's got a gaping security hole in it about twelve
miles wide. It's just begging for some random evil hacker to post a website saying,
"Hey, all, I've got his really cool framework y'all should try..." and bury the malware
inside the code somewhere.
</p><p>
Which leads to today's Random Thought Experiment of the Day: How long would it take
the open source community to discover malware buried inside of an open-source package,
particularly one that's in widespread use, a la Apache or Tomcat or JBoss? (Assume
all the core committers were in on it--how many people, aside from the core committers,
actually look at the source of the packages we download and install, sometimes under
root permissions?)
</p><p>
Not saying we should abandon open source; just saying we should be responsible citizens
about who we let in our front door.
</p><p><b>UPDATE</b>: Having done the install, I realize that it's a two-step download...
the shell script just figures out which OS you're on, which tool (curl or wget) to
use, and asks you for root access to download and install the actual distribution.
Which, honestly, I didn't look at. So, here's hoping the Meteor folks are as good
as I'm assuming them to be....
</p><p>
Still highlights that this is a huge security risk.
</p><img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=9fc99f7c-088b-45e9-b52a-3ccd9976c28d" /><br /><hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Um... Security risk much?</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,9fc99f7c-088b-45e9-b52a-3ccd9976c28d.aspx</guid>
      <link>http://blogs.tedneward.com/2013/02/15/Um+Security+Risk+Much.aspx</link>
      <pubDate>Fri, 15 Feb 2013 04:25:38 GMT</pubDate>
      <description>&lt;p&gt;
While cruising through the Internet a few minute ago, I wandered across &lt;a href="http://meteor.com"&gt;Meteor&lt;/a&gt;,
which looks like a really cool tool/system/platform/whatever for building modern web
applications. JavaScript on the front, JavaScript on the back, Mongo backing, it's
definitely something worth looking into, IMHO.
&lt;/p&gt;
&lt;p&gt;
Thus emboldened, I decide to look at how to start playing with it, and lo and behold
I discover that the instructions for installation are: &lt;pre&gt;
curl https://install.meteor.com | sh
&lt;/pre&gt;
Um.... Wat?&gt;
&lt;p&gt;
Now, I'm sure the Meteor folks are all nice people, and they're making sure (via the
use of the https URL) that whatever is piped into my shell is, in fact, coming from
their servers, but I don't know these people from Adam or Eve, and that's taking an
awfully big risk on my part, just letting them pipe whatever-the-hell-they-want into
a shell Terminal. Hell, you don't even need root access to fill my hard drive with
whatever random bits of goo you wanted.
&lt;/p&gt;
&lt;p&gt;
I looked at the shell script, and it's all OK, mind you--the Meteor people definitely
look trustworthy, I want to reassure anyone of that. But I'm really, really hoping
that this is NOT their preferred mechanism for delivery... nor is it anyone's preferred
mechanism for delivery... because that's got a gaping security hole in it about twelve
miles wide. It's just begging for some random evil hacker to post a website saying,
"Hey, all, I've got his really cool framework y'all should try..." and bury the malware
inside the code somewhere.
&lt;/p&gt;
&lt;p&gt;
Which leads to today's Random Thought Experiment of the Day: How long would it take
the open source community to discover malware buried inside of an open-source package,
particularly one that's in widespread use, a la Apache or Tomcat or JBoss? (Assume
all the core committers were in on it--how many people, aside from the core committers,
actually look at the source of the packages we download and install, sometimes under
root permissions?)
&lt;/p&gt;
&lt;p&gt;
Not saying we should abandon open source; just saying we should be responsible citizens
about who we let in our front door.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;UPDATE&lt;/b&gt;: Having done the install, I realize that it's a two-step download...
the shell script just figures out which OS you're on, which tool (curl or wget) to
use, and asks you for root access to download and install the actual distribution.
Which, honestly, I didn't look at. So, here's hoping the Meteor folks are as good
as I'm assuming them to be....
&lt;/p&gt;
&lt;p&gt;
Still highlights that this is a huge security risk.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=9fc99f7c-088b-45e9-b52a-3ccd9976c28d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,9fc99f7c-088b-45e9-b52a-3ccd9976c28d.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>C++</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Personal</category>
      <category>Python</category>
      <category>Reading</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Social</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=7f19fdac-abaa-4e41-9bf0-e009f865d0e7</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,7f19fdac-abaa-4e41-9bf0-e009f865d0e7.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,7f19fdac-abaa-4e41-9bf0-e009f865d0e7.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7f19fdac-abaa-4e41-9bf0-e009f865d0e7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://manning.com/petricek2/">F# Deep Dives</a>, by Tomas Petricek and Phillip
Trelford, Manning Publications
</p>
        <p>
As many readers of my writing will already know, I've been kind of "involved" with
F# (and its cousin on the JVM, Scala) for a few years now, to the degree that I and
a couple of really smart guys <a href="http://www.amazon.com/Professional-F-2-0-Ted-Neward/dp/047052801X">wrote
a book on the subject</a>. Now, assuming you're one of the .NET developers who've
heard of F# and functional programming, and took a gander at the syntax, and maybe
even bought a book on it (my publisher and I both thank you if you bought ours), but
weren't quite sure what to <i>do</i> with it, a book has come along to help get you
past that.
</p>
        <p>
As of this writing, the early-access (what Manning calls their MEAP) version had only
Chapters 3 ("Parsing text-based languages") and Chapter 11 ("Creating games using
XNA"), but the other topics ("Integrating external data into the F# language", "Handling
dirty data with machine learning" and "Functional programming in the cloud" are just
three of the other chapters listed) are juicy and meaty, and both Tomas and Philip
are recognized names in the F# space. Neither are strangers to the subject material
nor to writing, and the prose from the MEAP edition is pretty easy to read already,
despite the fact that it's early-access material. In particular, the Markdown parser
they implement in chapter 3 is a great example of a non-trivial language parser, which
is not an easy task to approach but certainly a lot easier to do in a functional language.
(For the record, I built a custom parser of my own for generating slides, and the
blog entries that described the early implementations are <a href="http://blogs.tedneward.com/2011/04/27/Managing+Talks+An+FOffice+Love+Story+Part+1.aspx">here</a>,
and yes, I really should finish that series out, I know. I got more interested in
extending the system, then realized I needed a full-fledged parser, and got distracted
trying to integrate... surprise, surprise... Tomas' Markdown parser that he made available
online.)
</p>
        <p>
This book looks really promising, and I'm really hopeful Manning will send me a copy
when it comes out, so I can level up my F# myself.
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=7f19fdac-abaa-4e41-9bf0-e009f865d0e7" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Review (in advance): F# Deep Dives</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,7f19fdac-abaa-4e41-9bf0-e009f865d0e7.aspx</guid>
      <link>http://blogs.tedneward.com/2013/01/05/Review+In+Advance+F+Deep+Dives.aspx</link>
      <pubDate>Sat, 05 Jan 2013 10:10:05 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://manning.com/petricek2/"&gt;F# Deep Dives&lt;/a&gt;, by Tomas Petricek and Phillip
Trelford, Manning Publications
&lt;/p&gt;
&lt;p&gt;
As many readers of my writing will already know, I've been kind of "involved" with
F# (and its cousin on the JVM, Scala) for a few years now, to the degree that I and
a couple of really smart guys &lt;a href="http://www.amazon.com/Professional-F-2-0-Ted-Neward/dp/047052801X"&gt;wrote
a book on the subject&lt;/a&gt;. Now, assuming you're one of the .NET developers who've
heard of F# and functional programming, and took a gander at the syntax, and maybe
even bought a book on it (my publisher and I both thank you if you bought ours), but
weren't quite sure what to &lt;i&gt;do&lt;/i&gt; with it, a book has come along to help get you
past that.
&lt;/p&gt;
&lt;p&gt;
As of this writing, the early-access (what Manning calls their MEAP) version had only
Chapters 3 ("Parsing text-based languages") and Chapter 11 ("Creating games using
XNA"), but the other topics ("Integrating external data into the F# language", "Handling
dirty data with machine learning" and "Functional programming in the cloud" are just
three of the other chapters listed) are juicy and meaty, and both Tomas and Philip
are recognized names in the F# space. Neither are strangers to the subject material
nor to writing, and the prose from the MEAP edition is pretty easy to read already,
despite the fact that it's early-access material. In particular, the Markdown parser
they implement in chapter 3 is a great example of a non-trivial language parser, which
is not an easy task to approach but certainly a lot easier to do in a functional language.
(For the record, I built a custom parser of my own for generating slides, and the
blog entries that described the early implementations are &lt;a href="http://blogs.tedneward.com/2011/04/27/Managing+Talks+An+FOffice+Love+Story+Part+1.aspx"&gt;here&lt;/a&gt;,
and yes, I really should finish that series out, I know. I got more interested in
extending the system, then realized I needed a full-fledged parser, and got distracted
trying to integrate... surprise, surprise... Tomas' Markdown parser that he made available
online.)
&lt;/p&gt;
&lt;p&gt;
This book looks really promising, and I'm really hopeful Manning will send me a copy
when it comes out, so I can level up my F# myself.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=7f19fdac-abaa-4e41-9bf0-e009f865d0e7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,7f19fdac-abaa-4e41-9bf0-e009f865d0e7.aspx</comments>
      <category>.NET</category>
      <category>F#</category>
      <category>Industry</category>
      <category>Languages</category>
      <category>Reading</category>
      <category>Review</category>
      <category>Windows</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=345c85f3-4b46-4757-b204-eb2f63d59eb7</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,345c85f3-4b46-4757-b204-eb2f63d59eb7.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,345c85f3-4b46-4757-b204-eb2f63d59eb7.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=345c85f3-4b46-4757-b204-eb2f63d59eb7</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Once again, it's time for my annual prognostication and <a href="http://blogs.tedneward.com/2012/01/02/Tech+Predictions+2012+Edition.aspx">review
of last year's efforts</a>. For those of you who've been long-time readers, you know
what this means, but for those two or three of you who haven't seen this before, let's
set the rules: if I got a prediction right from last year, you take a drink, and if
I didn't, you take a drink. (Best. Drinking game. EVAR!)
</p>
        <p>
Let's begin....
</p>
        <h3 id="recap-2012-predictions">Recap: 2012 Predictions
</h3>
        <p>
          <strong>THEN</strong>: <em>Lisps will be the languages to watch.</em></p>
        <blockquote>
          <p>
With Clojure leading the way, Lisps (that is, languages that are more or less loosely
based on Common Lisp or one of its variants) are slowly clawing their way back into
the limelight. Lisps are both functional languages as well as dynamic languages, which
gives them a significant reason for interest. Clojure runs on top of the JVM, which
makes it highly interoperable with other JVM languages/systems, and Clojure/CLR is
the version of Clojure for the CLR platform, though there seems to be less interest
in it in the .NET world (which is a mistake, if you ask me).
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Clojure is definitely cementing itself as a "critic's darling"
of a language among the digital cognoscenti, but I don't see its uptake increasing--or
decreasing. It seems that, like so many critic's darlings, those who like it are using
it, and those who aren't have either never heard of it (the far more likely scenario)
or don't care for it. Datomic, a NoSQL written by the creator of Clojure (Rich Hickey),
is interesting, but I've not heard of many folks taking it up, either. And Clojure/CLR
is all but dead, it seems. I score myself a "0" on this one.
</p>
        <p>
          <strong>THEN</strong>: <em>Functional languages will....</em></p>
        <blockquote>
          <p>
I have no idea. As I said above, I'm kind of stymied on the whole functional-language
thing and their future. I keep thinking they will either "take off" or "drop off",
and they keep tacking to the middle, doing neither, just sort of hanging in there
as a concept for programmers to take and run with. Mind you, I like functional languages,
and I want to see them become mainstream, or at least more so, but I keep wondering
if the mainstream programming public is ready to accept the ideas and concepts hiding
therein. So this year, let's try something different: I predict that they will remain
exactly where they are, neither "done" nor "accepted", but continue next year to sort
of hang out in the middle.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Functional concepts are slowly making their way into the mainstream
of programming topics, but in some cases, programmers seem to be picking-and-choosing
which of the functional concepts they believe in. I've heard developers argue vehemently
about "lazy values" but go "meh" about lack-of-side-effects, or vice versa. Moreover,
it seems that developers are still taking an "object-first, functional-when-I-need-it"
kind of approach, which seems a little object-heavy, if you ask me. So, since the
concepts seem to be taking some sort of shallow root, I don't know that I get the
point for this one, but at the same time, it's not like I was wildly off. So, let's
say "0" again.
</p>
        <p>
          <strong>THEN</strong>: <em>F#'s type providers will show up in C# v.Next.</em></p>
        <blockquote>
          <p>
This one is actually a "gimme", if you look across the history of F# and C#: for almost
every version of F# v."N", features from that version show up in C# v."N+1". More
importantly, F# 3.0's type provider feature is an amazing idea, and one that I think
will open up language research in some very interesting ways. (Not sure what F#'s
type providers are or what they'll do for you? Check out Don Syme's talk on it at
BUILD last year.)
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: C# v.Next hasn't been announced yet, so I can't say that this
one has come true. We should start hearing some vague rumors out of Redmond soon,
though, so maybe 2013 will be the year that C# gets type providers (or some scaled-back
version thereof). Again, a "0".
</p>
        <p>
          <strong>THEN</strong>: <em>Windows8 will generate a lot of chatter.</em></p>
        <blockquote>
          <p>
As 2012 progresses, Microsoft will try to force a lot of buzz around it by keeping
things under wraps until various points in the year that feel strategic (TechEd, BUILD,
etc). In doing so, though, they will annoy a number of people by not talking about
them more openly or transparently.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Oh, my, did they. Windows8 was announced with a bang, but Microsoft
(and Sinofsky, who ran the OS division up until recently) decided that they could
go it alone and leave critical partners (like Dropbox!) out of the loop entirely.
As a result, the Windows8 Store didn't have a lot of apps in it that people (including
myself) really expected would be there. And THEN, there was Surface... which took
everybody by surprise, as near as I can tell. Totally under wraps. I'm scoring myself
"+2" for that one.
</p>
        <p>
          <strong>THEN</strong>: <em>Windows8 ("Metro")-style apps won't impress at first.</em></p>
        <blockquote>
          <p>
The more I think about it, the more I'm becoming convinced that Metro-style apps on
a desktop machine are going to collectively underwhelm. The UI simply isn't designed
for keyboard-and-mouse kinds of interaction, and that's going to be the hardware setup
that most people first experience Windows8 on--contrary to what (I think) Microsoft
thinks, people do not just have tablets laying around waiting for Windows 8 to be
installed on it, nor are they going to buy a Windows8 tablet just to try it out, at
least not until it's gathered some mojo behind it. Microsoft is going to have to finesse
the messaging here very, very finely, and that's not something they've shown themselves
to be particularly good at over the last half-decade.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: I find myself somewhat at a loss how to score this one--on the
one hand, the "used-to-be-called-Metro"-style applications aren't terrible, and I
haven't really heard anyone complain about them tremendously, but at the same time,
I haven't heard anyone really go wild and ga-ga over them, either. Part of that, I
think, is because there just aren't a lot of apps out there for it yet, aside from
a rather skimpy selection of games (compared to the iOS App Store and Android Play
Store). Again, I think Microsoft really screwed themselves with this one--keeping
it all under wraps helped them make a big "Oh, WOW" kind of event buzz within the
conference hall when they announced Surface, for example, but that buzz sort of left
the room (figuratively) when people started looking for their favorite apps so they
could start using that device. (Which, by the way, isn't a bad piece of hardware,
I'm finding.) I'll give myself a "+1" for this.
</p>
        <p>
          <strong>THEN</strong>: <em>Scala will get bigger, thanks to Heroku.</em></p>
        <blockquote>
          <p>
With the adoption of Scala and Play for their Java apps, Heroku is going to make Scala
look attractive as a development platform, and the adoption of Play by Typesafe (the
same people who brought you Akka) means that these four--Heroku, Scala, Play and Akka--will
combine into a very compelling and interesting platform. I'm looking forward to seeing
what comes of that.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: We're going to get to cloud in a second, but on the whole, Heroku
is now starting to make Scala/Play attractive, arguably as attractive as Ruby/Rails
is. Play 2.0 unfortunately is not backwards-compatible with Play 1.x modules, which
hurts it, but hopefully the Play community brings that back up to speed fairly quickly.
"+1"
</p>
        <p>
          <strong>THEN</strong>: <em>Cloud will continue to whip up a lot of air.</em></p>
        <blockquote>
          <p>
For all the hype and money spent on it, it doesn't really seem like cloud is gathering
commensurate amounts of traction, across all the various cloud providers with the
possible exception of Amazon's cloud system. But, as the different cloud platforms
start to diversify their platform technology (Microsoft seems to be leading the way
here, ironically, with the introduction of Java, Hadoop and some limited NoSQL bits
into their Azure offerings), and as we start to get more experience with the pricing
and costs of cloud, 2012 might be the year that we start to see mainstream cloud adoption,
beyond "just" the usage patterns we've seen so far (as a backing server for mobile
apps and as an easy way to spin up startups).
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: It's been whipping up air, all right, but it's starting to look
like tornadoes and hurricanes--the talk of 2012 seems to have been more around notable
cloud outages instead of notable cloud successes, capped off by a nationwide Netflix
outage on Christmas Eve that seemed to dominate my Facebook feed that night. Later
analysis suggested that the outage was with Amazon's AWS cloud, on which Netflix resides,
and boy, did that make a few heads spin. I suspect we haven't yet (as of this writing)
seen the last of that discussion. Overall, it seems like lots of startups and other
greenfield apps are being deployed to the cloud, but it seems like corporations are
hesitating to pull the trigger on an "all-in" kind of cloud adoption, because of some
of the fears surrounding cloud security and now (of all things) robustness. "+1"
</p>
        <p>
          <strong>THEN</strong>: <em>Android tablets will start to gain momentum.</em></p>
        <blockquote>
          <p>
Amazon's Kindle Fire has hit the market strong, definitely better than any other Android-based
tablet before it. The Nooq (the Kindle's principal competitor, at least in the e-reader
world) is also an Android tablet, which means that right now, consumers can get into
the Android tablet world for far, far less than what an iPad costs. Apple rumors suggest
that they may have a 7" form factor tablet that will price competitively (in the $200/$300
range), but that's just rumor right now, and Apple has never shown an interest in
that form factor, which means the 7" world will remain exclusively Android's (at least
for now), and that's a nice form factor for a lot of things. This translates well
into more sales of Android tablets in general, I think.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Google's Nexus 7 came to dominate the discussion of the 7" tablet,
until...
</p>
        <p>
          <strong>THEN</strong>: <em>Apple will release an iPad 3, and it will be "more of the
same".</em></p>
        <blockquote>
          <p>
Trying to predict Apple is generally a lost cause, particularly when it comes to their
vaunted iOS lines, but somewhere around the middle of the year would be ripe for a
new iPad, at the very least. (With the iPhone 4S out a few months ago, it's hard to
imagine they'd cannibalize those sales by releasing a new iPhone, until the end of
the year at the earliest.) Frankly, though, I don't expect the iPad 3 to be all that
big of a boost, just a faster processor, more storage, and probably about the same
size. Probably the only thing I'd want added to the iPad would be a USB port, but
that conflicts with the Apple desire to present the iPad as a "device", rather than
as a "computer". (USB ports smack of "computers", not self-contained "devices".)
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: ... the iPad Mini. Which, I'd like to point out, is just an
iPad in a 7" form factor. (Actually, I think it's a little bit bigger than most 7"
tablets--it looks to be a smidge wider than the other 7" tablets I have.) And the
"new iPad" (not the iPad 3, which I call a massive FAIL on the part of Apple marketing)
is exactly that: same iPad, just faster. And still no USB port on either the iPad
or iPad Mini. So between this one and the previous one, I score myself at "+3" across
both.
</p>
        <p>
          <strong>THEN</strong>: <em>Apple will get hauled in front of the US government for...
something.</em></p>
        <blockquote>
          <p>
Apple's recent foray in the legal world, effectively informing Samsung that they can't
make square phones and offering advice as to what will avoid future litigation, smacks
of such hubris and arrogance, it makes Microsoft look like a Pollyanna Pushover by
comparison. It is pretty much a given, it seems to me, that a confrontation in the
legal halls is not far removed, either with the US or with the EU, over anti-cometitive
behavior. (And if this kind of behavior continues, and there is no legal action, it'll
be pretty apparent that Apple has a pretty good set of US Congressmen and Senators
in their pocket, something they probably learned from watching Microsoft and IBM slug
it out rather than just buy them off.)
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Congress has started to take a serious look at the patent system
and how it's being used by patent trolls (of which, folks, I include Apple these days)
to stifle innovation and create this Byzantine system of cross-patent licensing that
only benefits the big players, which was exactly what the patent system was designed
to avoid. (Patents were supposed to be a way to allow inventors, who are often independents,
to avoid getting crushed by bigger, established, well-monetized firms.) Apple hasn't
been put squarely in the crosshairs, but the Economist's article on Apple, Google,
Microsoft and Amazon in the Dec 11th issue definitely points out that all four are
squarely in the sights of governments on both sides of the Atlantic. Still, no points
for me.
</p>
        <p>
          <strong>THEN</strong>: <em>IBM will be entirely irrelevant again.</em></p>
        <blockquote>
          <p>
Look, IBM's main contribution to the Java world is/was Eclipse, and to a much lesser
degree, Harmony. With Eclipse more or less "done" (aside from all the work on plugins
being done by third parties), and with IBM abandoning Harmony in favor of OpenJDK,
IBM more or less removes themselves from the game, as far as developers are concerned.
Which shouldn't really be surprising--they've been more or less irrelevant pretty
much ever since the mid-2000s or so.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: IBM who? Wait, didn't they used to make a really kick-ass laptop,
back when we liked using laptops? "+1"
</p>
        <p>
          <strong>THEN</strong>: <em>Oracle will "screw it up" at least once.</em></p>
        <blockquote>
          <p>
Right now, the Java community is poised, like a starving vulture, waiting for Oracle
to do something else that demonstrates and befits their Evil Emperor status. The community
has already been quick (far too quick, if you ask me) to highlight Oracle's supposed
missteps, such as the JVM-crashing bug (which has already been fixed in the _u1 release
of Java7, which garnered no attention from the various Java news sites) and the debacle
around Hudson/Jenkins/whatever-the-heck-we-need-to-call-it-this-week. I'll grant you,
the Hudson/Jenkins debacle was deserving of ire, but Oracle is hardly the Evil Emperor
the community makes them out to be--at least, so far. (I'll admit it, though, I'm
a touch biased, both because Brian Goetz is a friend of mine and because Oracle TechNet
has asked me to write a column for them next year. Still, in the spirit of "innocent
until proven guilty"....)
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: It is with great pleasure that I score myself a "0" here. Oracle's
been pretty good about things, sticking with the OpenJDK approach to developing software
and talking very openly about what they're trying to do with Java8. They're not entirely
innocent, mind you--the fact that a Java install tries to monkey with my browser bar
by installing some plugin or other and so on is not something I really appreciate--but
they're not acting like Ming the Merciless, either. Matter of fact, they even seem
to be going out of their way to be community-inclusive, in some circles. I give myself
a "-1" here, and I'm happy to claim it. Good job, guys.
</p>
        <p>
          <strong>THEN</strong>: <em>VMWare/SpringSource will start pushing their cloud solution
in a major way.</em></p>
        <blockquote>
          <p>
Companies like Microsoft and Google are pushing cloud solutions because Software-as-a-Service
is a reoccurring revenue model, generating revenue even in years when the product
hasn't incremented. VMWare, being a product company, is in the same boat--the only
time they make money is when they sell a new copy of their product, unless they can
start pushing their virtualization story onto hardware on behalf of clients--a.k.a.
"the cloud". With SpringSource as the software stack, VMWare has a more-or-less complete
cloud play, so it's surprising that they didn't push it harder in 2011; I suspect
they'll start cramming it down everybody's throats in 2012. Expect to see Rod Johnson
talking a lot about the cloud as a result.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Again, I give myself a "-1" here, and frankly, I'm shocked to
be doing it. I really thought this one was a no-brainer. CloudFoundry seemed like
a pretty straightforward play, and VMWare already owned a significant share of the
virtualization story, so.... And yet, I really haven't seen much by way of significant
marketing, advertising, or developer outreach around their cloud story. It's much
the same as what it was in 2011; it almost feels like the parent corporation (EMC)
either doesn't "get" why they should push a cloud play, doesn't see it as worth the
cost, or else doesn't care. Count me confused. "0"
</p>
        <p>
          <strong>THEN</strong>: <em>JavaScript hype will continue to grow, and by years' end
will be at near-backlash levels.</em></p>
        <blockquote>
          <p>
JavaScript (more properly known as ECMAScript, not that anyone seems to care but me)
is gaining all kinds of steam as a mainstream development language (as opposed to
just-a-browser language), particularly with the release of NodeJS. That hype will
continue to escalate, and by the end of the year we may start to see a backlash against
it. (Speaking personally, NodeJS is an interesting solution, but suggesting that it
will replace your Tomcat or IIS server is a bit far-fetched; event-driven I/O is something
both of those servers have been doing for years, and the rest of it is "just" a language
discussion. We could pretty easily use JavaScript as the development language inside
both servers, as Sun demonstrated years ago with their "Phobos" project--not that
anybody really cared back then.)
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: JavaScript frameworks are exploding everywhere like fireworks
at a Disney theme park. Douglas Crockford is getting more invites to conference keynote
opportunities than James Gosling ever did. You can get a job if you know how to spell
"NodeJS". And yet, I'm starting to hear the same kinds of rumblings about "how in
the hell do we manage a 200K LOC codebase written in JavaScript" that I heard people
gripe about Ruby/Rails a few years ago. If the backlash hasn't started, then it's
right on the cusp. "+1"
</p>
        <p>
          <strong>THEN</strong>: <em>NoSQL buzz will continue to grow, and by years' end will
start to generate a backlash.</em></p>
        <blockquote>
          <p>
More and more companies are jumping into NoSQL-based solutions, and this trend will
continue to accelerate, until some extremely public failure will start to generate
a backlash against it. (This seems to be a pattern that shows up with a lot of technologies,
so it seems entirely realistic that it'll happen here, too.) Mind you, I don't mean
to suggest that the backlash will be factual or correct--usually these sorts of things
come from misuing the tool, not from any intrinsic failure in it--but it'll generate
some bad press.
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Recently, I heard that NBC was thinking about starting up a
new comedy series called "Everybody Hates Mongo", with Chris Rock narrating. And I
think that's just the beginning--lots of companies, particularly startups, decided
to run with a NoSQL solution before seriously contemplating how they were going to
make up for the things that a NoSQL doesn't provide (like a schema, for a lot of these),
and suddenly find themselves wishing they had spent a little more time thinking about
that back in the early days. Again, if the backlash isn't already started, it's about
to. "+1"
</p>
        <p>
          <strong>THEN</strong>: <em>Ted will thoroughly rock the house during his CodeMash
keynote.</em></p>
        <blockquote>
          <p>
Yeah, OK, that's more of a fervent wish than a prediction, but hey, keep a positive
attitude and all that, right?
</p>
        </blockquote>
        <p>
          <strong>NOW</strong>: Welllll..... Looking back at it with almost a years' worth of
distance, I can freely admit I dropped a few too many "F"-bombs (a buddy of mine counted
18), but aside from a (very) vocal minority, my takeaway is that a lot of people enjoyed
it. Still, I do wish I'd throttled it back some--InfoQ recorded it, and the fact that
it hasn't yet seen public posting on the website implies (to me) that they found it
too much work to "bleep" out all the naughty words. Which I call "my bad" on, because
I think they were really hoping to use that as part of their promotional activities
(not that they needed it, selling out again in minutes). To all those who found it
distasteful, I apologize, and to those who chafe at the fact that I'm apologizing,
I apologize. I take a "-1" here.
</p>
        <h3 id="predictions">2013 Predictions:
</h3>
        <p>
Having thus scored myself at a "9" (out of 17) for last year, let's take a stab at
a few for next year:
</p>
        <ul>
          <li>
            <strong>"Big data" and "data analytics" will dominate the enterprise landscape.</strong> I'm
actually pretty late to the ballgame to talk about this one, in fact--it was starting
its rapid climb up the hype wave already this year. And, part and parcel with going
up this end of the hype wave this quickly, it also stands to reason that companies
will start marketing the hell out of the term "big data" without being entirely too
precise about what they mean when they say "big data".... By the end of the year,
people will start building services and/or products on top of Hadoop, which appears
primed to be the "Big Data" platform of choice, thus far.</li>
          <li>
            <strong>NoSQL buzz will start to diversify.</strong> The various "NoSQL" vendors are
going to start wanting to differentiate themselves from each other, and will start
using "NoSQL" in their marketing and advertising talking points less and less. Some
of this will be because Pandora's Box on data storage has already been opened--nobody's
just assuming a relational database all the time, every time, anymore--but some of
this will be because the different NoSQL vendors, who are at different stages in the
adoption curve, will want to differentiate themselves from the vendors that are taking
on the backlash. I predict Mongo, who seems to be leading the way of the NoSQL vendors,
will be the sacrificial scapegoat for a lot of the NoSQL backlash that's coming down
the pike.</li>
          <li>
            <strong>Desktops increasingly become niche products.</strong> Look, does anyone buy
a desktop machine anymore? I have three sitting next to me in my office, and none
of the three has been turned on in probably two years--I'm exclusively laptop-bound
these days. Between tablets as consumption devices (slowly obsoleting the laptop),
and cloud offerings becoming more and more varied (slowly obsoleting the server),
there's just no room for companies that sell desktops--or the various Mom-and-Pop
shops that put them together for you. In fact, I'm starting to wonder if all those
parts I used to buy at Fry's Electronics and swap meets will start to disappear, too.
Gamers keep desktops alive, and I don't know if there's enough money in that world
to keep lots of those vendors alive. (I hope so, but I don't know for sure.)</li>
          <li>
            <strong>Home servers will start to grow in interest.</strong> This may seem paradoxical
to the previous point, but I think techno-geek leader-types are going to start looking
into "servers-in-a-box" that they can set up at home and have all their devices sync
to and store to. Sure, all the media will come through there, and the key here will
be "turnkey", since most folks are getting used to machines that "just work". Lots
of friends, for example, seem to be using Mac Minis for exactly this purpose, and
there's a vendor here in Redmond that sells a <a href="http://www.usmicro.com/hot-offers.php">ridiculously-powered
server in a box</a> for a couple thousand. (This is on my birthday list, right after
I get my maxed-out 13" MacBook Air and iPad 3.) This is also going to be fueled by...</li>
          <li>
            <strong>Private cloud is going to start getting hot.</strong> The great advantage
of cloud is that you don't have to have an IT department; the great disadvantage of
cloud is that when things go bad, you don't have an IT department. Too many well-publicized
cloud failures are going to drive corporations to try and find a solution that is
the best-of-both-worlds: the flexibility and resiliency of cloud provisioning, but
staffed by IT resources they can whip and threaten and cajole when things fail. (And,
by the way, I fully understand that most cloud providers have better uptimes than
most private IT organizations--this is about perception and control and the feelings
of powerlessness and helplessness when things go south, not reality.)</li>
          <li>
            <strong>Oracle will release Java8, and while several Java pundits will decry "it's
not the Java I love!", most will actually come to like it.</strong> Let's be blunt,
Java has long since moved past being the flower of fancy and a critic's darling, and
it's moved squarely into the battleship-gray of slogging out code and getting line-of-business
apps done. Java8 adopting function literals (aka "closures") and retrofitting the
Collection library to use them will be a subtle, but powerful, extension to the lifetime
of the Java language, but it's never going to be sexy again. Fortunately, it doesn't
need to be.</li>
          <li>
            <strong>Microsoft will start courting the .NET developers again.</strong> Windows8
left a bad impression in the minds of many .NET developers, with the emphasis on HTML/JavaScript
apps and C++ apps, leaving many .NET developers to wonder if they were somehow rendered
obsolete by the new platform. Despite numerous attempts in numerous ways to tell them
no, developers still seem to have that opinion--and Microsoft needs to go on the offensive
to show them that .NET and Windows8 (and WinRT) do, in fact, go very well together.
Microsoft can't afford for their loyal developer community to feel left out or abandoned.
They know that, and they'll start working on it.</li>
          <li>
            <strong>Samsung will start pushing themselves further and further into the consumer
market.</strong> They already have started gathering more and more of a consumer name
for themselves, they just need to solidify their tablet offerings and get closer in
line with either Google (for Android tablets) or even Microsoft (for Windows8 tablets
and/or Surface competitors) to compete with Apple. They may even start looking into
writing their own tablet OS, which would be something of a mistake, but an understandable
one.</li>
          <li>
            <strong>Apple's next release cycle will, again, be "more of the same".</strong> iPhone
6, iPad 4, iPad Mini 2, MacBooks, MacBook Airs, none of them are going to get much
in the way of innovation or new features. Apple is going to run squarely into the
Innovator's Dilemma soon, and their products are going to be "more of the same" for
a while. Incremental improvements along a couple of lines, perhaps, but nothing Earth-shattering.
(Hey, Apple, how about opening up Siri to us to program against, for example, so we
can hook into her command structure and hook our own apps up? I can do that with Android
today, why not her?)</li>
          <li>
            <strong>Visual Studio 2014 features will start being discussed at the end of the year.</strong> If
Microsoft is going to hit their every-two-year-cycle with Visual Studio, then they'll
start talking/whispering/rumoring some of the v.Next features towards the middle to
end of 2013. I fully expect C# 6 will get some form of type providers, Visual Basic
will be a close carbon copy of C# again, and F# 4 will have something completely revolutionary
that anyone who sees it will be like, "Oh, cool! Now, when can I get that in C#?"</li>
          <li>
            <strong>Scala interest wanes.</strong> As much as I don't want it to happen, I think
interest in Scala is going to slow down, and possibly regress. This will be the year
that Typesafe needs to make a major splash if they want to show the world that they're
serious, and I don't know that the JVM world is really all that interested in seeing
a new player. Instead, I think Scala will be seen as what "the 1%" of the Java community
uses, and the rest will take some ideas from there and apply them (poorly, perhaps)
to Java.</li>
          <li>
            <strong>Interest in native languages will rise.</strong> Just for kicks, developers
will start experimenting with some of the new compile-to-native-code languages (Go,
Rust, Slate, Haskell, whatever) and start finding some of the joys (and heartaches)
that come with running "on the metal". More importantly, they'll start looking at
ways to use these languages with platforms where running "on the metal" is more important,
like mobile devices and tablets.</li>
        </ul>
        <p>
As always, folks, thanks for reading. See you next year.
</p>
        <b>UPDATE:</b> Two things happened this week (7 Jan 2013) that made me want to add
to this list: 
<ul><li><strong>Hardware is the new platform.</strong> A buddy of mine (Scott Davis) pointed
out on a mailing list we share that "hardware is the new platform", and with Microsoft's
Surface out now, there's three major players (Apple, Google, Microsoft) in this game.
It's becoming apparent that more and more companies are starting to see opportunities
in going the Apple route of owning not just the OS and the store, but the hardware
underneath it. More and more companies are going to start playing this game, too,
I think, and we're going to see Amazon take some shots here, and probably a few others.
Of course, already announced is the Ubuntu Phone, and a new Android-like player, <a href="http://www.tizen.org">Tizen</a>,
but I'm not thinking about new players--there's always new players--but about some
of the big standouts. And look for companies like Dell and HP to start looking for
ways to play in this game, too, either through partnerships or acquisitions. (Hello,
Oracle, I'm looking at you.... And Adobe, too.)</li><li><strong>APIs for lots of things are going to come out.</strong> Ford <a href="http://techcrunch.com/2013/01/07/ford-launches-open-developer-program-to-let-mobile-apps-interface-with-its-cars/">just</a> did <a href="http://developer.ford.com">this</a>.
This is not going away--this is going to proliferate. And the startup community is
going to lap it up like kittens attacking a bowl of cream. If you're looking for a
play in the startup world, pursue this.</li></ul><img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=345c85f3-4b46-4757-b204-eb2f63d59eb7" /><br /><hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Tech Predictions, 2013</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,345c85f3-4b46-4757-b204-eb2f63d59eb7.aspx</guid>
      <link>http://blogs.tedneward.com/2013/01/01/Tech+Predictions+2013.aspx</link>
      <pubDate>Tue, 01 Jan 2013 09:22:30 GMT</pubDate>
      <description>&lt;p&gt;
Once again, it's time for my annual prognostication and &lt;a href="http://blogs.tedneward.com/2012/01/02/Tech+Predictions+2012+Edition.aspx"&gt;review
of last year's efforts&lt;/a&gt;. For those of you who've been long-time readers, you know
what this means, but for those two or three of you who haven't seen this before, let's
set the rules: if I got a prediction right from last year, you take a drink, and if
I didn't, you take a drink. (Best. Drinking game. EVAR!)
&lt;/p&gt;
&lt;p&gt;
Let's begin....
&lt;/p&gt;
&lt;h3 id="recap-2012-predictions"&gt;Recap: 2012 Predictions
&lt;/h3&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Lisps will be the languages to watch.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
With Clojure leading the way, Lisps (that is, languages that are more or less loosely
based on Common Lisp or one of its variants) are slowly clawing their way back into
the limelight. Lisps are both functional languages as well as dynamic languages, which
gives them a significant reason for interest. Clojure runs on top of the JVM, which
makes it highly interoperable with other JVM languages/systems, and Clojure/CLR is
the version of Clojure for the CLR platform, though there seems to be less interest
in it in the .NET world (which is a mistake, if you ask me).
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Clojure is definitely cementing itself as a "critic's darling"
of a language among the digital cognoscenti, but I don't see its uptake increasing--or
decreasing. It seems that, like so many critic's darlings, those who like it are using
it, and those who aren't have either never heard of it (the far more likely scenario)
or don't care for it. Datomic, a NoSQL written by the creator of Clojure (Rich Hickey),
is interesting, but I've not heard of many folks taking it up, either. And Clojure/CLR
is all but dead, it seems. I score myself a "0" on this one.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Functional languages will....&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
I have no idea. As I said above, I'm kind of stymied on the whole functional-language
thing and their future. I keep thinking they will either "take off" or "drop off",
and they keep tacking to the middle, doing neither, just sort of hanging in there
as a concept for programmers to take and run with. Mind you, I like functional languages,
and I want to see them become mainstream, or at least more so, but I keep wondering
if the mainstream programming public is ready to accept the ideas and concepts hiding
therein. So this year, let's try something different: I predict that they will remain
exactly where they are, neither "done" nor "accepted", but continue next year to sort
of hang out in the middle.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Functional concepts are slowly making their way into the mainstream
of programming topics, but in some cases, programmers seem to be picking-and-choosing
which of the functional concepts they believe in. I've heard developers argue vehemently
about "lazy values" but go "meh" about lack-of-side-effects, or vice versa. Moreover,
it seems that developers are still taking an "object-first, functional-when-I-need-it"
kind of approach, which seems a little object-heavy, if you ask me. So, since the
concepts seem to be taking some sort of shallow root, I don't know that I get the
point for this one, but at the same time, it's not like I was wildly off. So, let's
say "0" again.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;F#'s type providers will show up in C# v.Next.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
This one is actually a "gimme", if you look across the history of F# and C#: for almost
every version of F# v."N", features from that version show up in C# v."N+1". More
importantly, F# 3.0's type provider feature is an amazing idea, and one that I think
will open up language research in some very interesting ways. (Not sure what F#'s
type providers are or what they'll do for you? Check out Don Syme's talk on it at
BUILD last year.)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: C# v.Next hasn't been announced yet, so I can't say that this
one has come true. We should start hearing some vague rumors out of Redmond soon,
though, so maybe 2013 will be the year that C# gets type providers (or some scaled-back
version thereof). Again, a "0".
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Windows8 will generate a lot of chatter.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
As 2012 progresses, Microsoft will try to force a lot of buzz around it by keeping
things under wraps until various points in the year that feel strategic (TechEd, BUILD,
etc). In doing so, though, they will annoy a number of people by not talking about
them more openly or transparently.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Oh, my, did they. Windows8 was announced with a bang, but Microsoft
(and Sinofsky, who ran the OS division up until recently) decided that they could
go it alone and leave critical partners (like Dropbox!) out of the loop entirely.
As a result, the Windows8 Store didn't have a lot of apps in it that people (including
myself) really expected would be there. And THEN, there was Surface... which took
everybody by surprise, as near as I can tell. Totally under wraps. I'm scoring myself
"+2" for that one.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Windows8 ("Metro")-style apps won't impress at first.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
The more I think about it, the more I'm becoming convinced that Metro-style apps on
a desktop machine are going to collectively underwhelm. The UI simply isn't designed
for keyboard-and-mouse kinds of interaction, and that's going to be the hardware setup
that most people first experience Windows8 on--contrary to what (I think) Microsoft
thinks, people do not just have tablets laying around waiting for Windows 8 to be
installed on it, nor are they going to buy a Windows8 tablet just to try it out, at
least not until it's gathered some mojo behind it. Microsoft is going to have to finesse
the messaging here very, very finely, and that's not something they've shown themselves
to be particularly good at over the last half-decade.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: I find myself somewhat at a loss how to score this one--on the
one hand, the "used-to-be-called-Metro"-style applications aren't terrible, and I
haven't really heard anyone complain about them tremendously, but at the same time,
I haven't heard anyone really go wild and ga-ga over them, either. Part of that, I
think, is because there just aren't a lot of apps out there for it yet, aside from
a rather skimpy selection of games (compared to the iOS App Store and Android Play
Store). Again, I think Microsoft really screwed themselves with this one--keeping
it all under wraps helped them make a big "Oh, WOW" kind of event buzz within the
conference hall when they announced Surface, for example, but that buzz sort of left
the room (figuratively) when people started looking for their favorite apps so they
could start using that device. (Which, by the way, isn't a bad piece of hardware,
I'm finding.) I'll give myself a "+1" for this.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Scala will get bigger, thanks to Heroku.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
With the adoption of Scala and Play for their Java apps, Heroku is going to make Scala
look attractive as a development platform, and the adoption of Play by Typesafe (the
same people who brought you Akka) means that these four--Heroku, Scala, Play and Akka--will
combine into a very compelling and interesting platform. I'm looking forward to seeing
what comes of that.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: We're going to get to cloud in a second, but on the whole, Heroku
is now starting to make Scala/Play attractive, arguably as attractive as Ruby/Rails
is. Play 2.0 unfortunately is not backwards-compatible with Play 1.x modules, which
hurts it, but hopefully the Play community brings that back up to speed fairly quickly.
"+1"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Cloud will continue to whip up a lot of air.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
For all the hype and money spent on it, it doesn't really seem like cloud is gathering
commensurate amounts of traction, across all the various cloud providers with the
possible exception of Amazon's cloud system. But, as the different cloud platforms
start to diversify their platform technology (Microsoft seems to be leading the way
here, ironically, with the introduction of Java, Hadoop and some limited NoSQL bits
into their Azure offerings), and as we start to get more experience with the pricing
and costs of cloud, 2012 might be the year that we start to see mainstream cloud adoption,
beyond "just" the usage patterns we've seen so far (as a backing server for mobile
apps and as an easy way to spin up startups).
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: It's been whipping up air, all right, but it's starting to look
like tornadoes and hurricanes--the talk of 2012 seems to have been more around notable
cloud outages instead of notable cloud successes, capped off by a nationwide Netflix
outage on Christmas Eve that seemed to dominate my Facebook feed that night. Later
analysis suggested that the outage was with Amazon's AWS cloud, on which Netflix resides,
and boy, did that make a few heads spin. I suspect we haven't yet (as of this writing)
seen the last of that discussion. Overall, it seems like lots of startups and other
greenfield apps are being deployed to the cloud, but it seems like corporations are
hesitating to pull the trigger on an "all-in" kind of cloud adoption, because of some
of the fears surrounding cloud security and now (of all things) robustness. "+1"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Android tablets will start to gain momentum.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Amazon's Kindle Fire has hit the market strong, definitely better than any other Android-based
tablet before it. The Nooq (the Kindle's principal competitor, at least in the e-reader
world) is also an Android tablet, which means that right now, consumers can get into
the Android tablet world for far, far less than what an iPad costs. Apple rumors suggest
that they may have a 7" form factor tablet that will price competitively (in the $200/$300
range), but that's just rumor right now, and Apple has never shown an interest in
that form factor, which means the 7" world will remain exclusively Android's (at least
for now), and that's a nice form factor for a lot of things. This translates well
into more sales of Android tablets in general, I think.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Google's Nexus 7 came to dominate the discussion of the 7" tablet,
until...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Apple will release an iPad 3, and it will be "more of the
same".&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Trying to predict Apple is generally a lost cause, particularly when it comes to their
vaunted iOS lines, but somewhere around the middle of the year would be ripe for a
new iPad, at the very least. (With the iPhone 4S out a few months ago, it's hard to
imagine they'd cannibalize those sales by releasing a new iPhone, until the end of
the year at the earliest.) Frankly, though, I don't expect the iPad 3 to be all that
big of a boost, just a faster processor, more storage, and probably about the same
size. Probably the only thing I'd want added to the iPad would be a USB port, but
that conflicts with the Apple desire to present the iPad as a "device", rather than
as a "computer". (USB ports smack of "computers", not self-contained "devices".)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: ... the iPad Mini. Which, I'd like to point out, is just an
iPad in a 7" form factor. (Actually, I think it's a little bit bigger than most 7"
tablets--it looks to be a smidge wider than the other 7" tablets I have.) And the
"new iPad" (not the iPad 3, which I call a massive FAIL on the part of Apple marketing)
is exactly that: same iPad, just faster. And still no USB port on either the iPad
or iPad Mini. So between this one and the previous one, I score myself at "+3" across
both.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Apple will get hauled in front of the US government for...
something.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Apple's recent foray in the legal world, effectively informing Samsung that they can't
make square phones and offering advice as to what will avoid future litigation, smacks
of such hubris and arrogance, it makes Microsoft look like a Pollyanna Pushover by
comparison. It is pretty much a given, it seems to me, that a confrontation in the
legal halls is not far removed, either with the US or with the EU, over anti-cometitive
behavior. (And if this kind of behavior continues, and there is no legal action, it'll
be pretty apparent that Apple has a pretty good set of US Congressmen and Senators
in their pocket, something they probably learned from watching Microsoft and IBM slug
it out rather than just buy them off.)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Congress has started to take a serious look at the patent system
and how it's being used by patent trolls (of which, folks, I include Apple these days)
to stifle innovation and create this Byzantine system of cross-patent licensing that
only benefits the big players, which was exactly what the patent system was designed
to avoid. (Patents were supposed to be a way to allow inventors, who are often independents,
to avoid getting crushed by bigger, established, well-monetized firms.) Apple hasn't
been put squarely in the crosshairs, but the Economist's article on Apple, Google,
Microsoft and Amazon in the Dec 11th issue definitely points out that all four are
squarely in the sights of governments on both sides of the Atlantic. Still, no points
for me.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;IBM will be entirely irrelevant again.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Look, IBM's main contribution to the Java world is/was Eclipse, and to a much lesser
degree, Harmony. With Eclipse more or less "done" (aside from all the work on plugins
being done by third parties), and with IBM abandoning Harmony in favor of OpenJDK,
IBM more or less removes themselves from the game, as far as developers are concerned.
Which shouldn't really be surprising--they've been more or less irrelevant pretty
much ever since the mid-2000s or so.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: IBM who? Wait, didn't they used to make a really kick-ass laptop,
back when we liked using laptops? "+1"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Oracle will "screw it up" at least once.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Right now, the Java community is poised, like a starving vulture, waiting for Oracle
to do something else that demonstrates and befits their Evil Emperor status. The community
has already been quick (far too quick, if you ask me) to highlight Oracle's supposed
missteps, such as the JVM-crashing bug (which has already been fixed in the _u1 release
of Java7, which garnered no attention from the various Java news sites) and the debacle
around Hudson/Jenkins/whatever-the-heck-we-need-to-call-it-this-week. I'll grant you,
the Hudson/Jenkins debacle was deserving of ire, but Oracle is hardly the Evil Emperor
the community makes them out to be--at least, so far. (I'll admit it, though, I'm
a touch biased, both because Brian Goetz is a friend of mine and because Oracle TechNet
has asked me to write a column for them next year. Still, in the spirit of "innocent
until proven guilty"....)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: It is with great pleasure that I score myself a "0" here. Oracle's
been pretty good about things, sticking with the OpenJDK approach to developing software
and talking very openly about what they're trying to do with Java8. They're not entirely
innocent, mind you--the fact that a Java install tries to monkey with my browser bar
by installing some plugin or other and so on is not something I really appreciate--but
they're not acting like Ming the Merciless, either. Matter of fact, they even seem
to be going out of their way to be community-inclusive, in some circles. I give myself
a "-1" here, and I'm happy to claim it. Good job, guys.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;VMWare/SpringSource will start pushing their cloud solution
in a major way.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Companies like Microsoft and Google are pushing cloud solutions because Software-as-a-Service
is a reoccurring revenue model, generating revenue even in years when the product
hasn't incremented. VMWare, being a product company, is in the same boat--the only
time they make money is when they sell a new copy of their product, unless they can
start pushing their virtualization story onto hardware on behalf of clients--a.k.a.
"the cloud". With SpringSource as the software stack, VMWare has a more-or-less complete
cloud play, so it's surprising that they didn't push it harder in 2011; I suspect
they'll start cramming it down everybody's throats in 2012. Expect to see Rod Johnson
talking a lot about the cloud as a result.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Again, I give myself a "-1" here, and frankly, I'm shocked to
be doing it. I really thought this one was a no-brainer. CloudFoundry seemed like
a pretty straightforward play, and VMWare already owned a significant share of the
virtualization story, so.... And yet, I really haven't seen much by way of significant
marketing, advertising, or developer outreach around their cloud story. It's much
the same as what it was in 2011; it almost feels like the parent corporation (EMC)
either doesn't "get" why they should push a cloud play, doesn't see it as worth the
cost, or else doesn't care. Count me confused. "0"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;JavaScript hype will continue to grow, and by years' end
will be at near-backlash levels.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
JavaScript (more properly known as ECMAScript, not that anyone seems to care but me)
is gaining all kinds of steam as a mainstream development language (as opposed to
just-a-browser language), particularly with the release of NodeJS. That hype will
continue to escalate, and by the end of the year we may start to see a backlash against
it. (Speaking personally, NodeJS is an interesting solution, but suggesting that it
will replace your Tomcat or IIS server is a bit far-fetched; event-driven I/O is something
both of those servers have been doing for years, and the rest of it is "just" a language
discussion. We could pretty easily use JavaScript as the development language inside
both servers, as Sun demonstrated years ago with their "Phobos" project--not that
anybody really cared back then.)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: JavaScript frameworks are exploding everywhere like fireworks
at a Disney theme park. Douglas Crockford is getting more invites to conference keynote
opportunities than James Gosling ever did. You can get a job if you know how to spell
"NodeJS". And yet, I'm starting to hear the same kinds of rumblings about "how in
the hell do we manage a 200K LOC codebase written in JavaScript" that I heard people
gripe about Ruby/Rails a few years ago. If the backlash hasn't started, then it's
right on the cusp. "+1"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;NoSQL buzz will continue to grow, and by years' end will
start to generate a backlash.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
More and more companies are jumping into NoSQL-based solutions, and this trend will
continue to accelerate, until some extremely public failure will start to generate
a backlash against it. (This seems to be a pattern that shows up with a lot of technologies,
so it seems entirely realistic that it'll happen here, too.) Mind you, I don't mean
to suggest that the backlash will be factual or correct--usually these sorts of things
come from misuing the tool, not from any intrinsic failure in it--but it'll generate
some bad press.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Recently, I heard that NBC was thinking about starting up a
new comedy series called "Everybody Hates Mongo", with Chris Rock narrating. And I
think that's just the beginning--lots of companies, particularly startups, decided
to run with a NoSQL solution before seriously contemplating how they were going to
make up for the things that a NoSQL doesn't provide (like a schema, for a lot of these),
and suddenly find themselves wishing they had spent a little more time thinking about
that back in the early days. Again, if the backlash isn't already started, it's about
to. "+1"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;THEN&lt;/strong&gt;: &lt;em&gt;Ted will thoroughly rock the house during his CodeMash
keynote.&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Yeah, OK, that's more of a fervent wish than a prediction, but hey, keep a positive
attitude and all that, right?
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;NOW&lt;/strong&gt;: Welllll..... Looking back at it with almost a years' worth of
distance, I can freely admit I dropped a few too many "F"-bombs (a buddy of mine counted
18), but aside from a (very) vocal minority, my takeaway is that a lot of people enjoyed
it. Still, I do wish I'd throttled it back some--InfoQ recorded it, and the fact that
it hasn't yet seen public posting on the website implies (to me) that they found it
too much work to "bleep" out all the naughty words. Which I call "my bad" on, because
I think they were really hoping to use that as part of their promotional activities
(not that they needed it, selling out again in minutes). To all those who found it
distasteful, I apologize, and to those who chafe at the fact that I'm apologizing,
I apologize. I take a "-1" here.
&lt;/p&gt;
&lt;h3 id="predictions"&gt;2013 Predictions:
&lt;/h3&gt;
&lt;p&gt;
Having thus scored myself at a "9" (out of 17) for last year, let's take a stab at
a few for next year:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Big data" and "data analytics" will dominate the enterprise landscape.&lt;/strong&gt; I'm
actually pretty late to the ballgame to talk about this one, in fact--it was starting
its rapid climb up the hype wave already this year. And, part and parcel with going
up this end of the hype wave this quickly, it also stands to reason that companies
will start marketing the hell out of the term "big data" without being entirely too
precise about what they mean when they say "big data".... By the end of the year,
people will start building services and/or products on top of Hadoop, which appears
primed to be the "Big Data" platform of choice, thus far.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NoSQL buzz will start to diversify.&lt;/strong&gt; The various "NoSQL" vendors are
going to start wanting to differentiate themselves from each other, and will start
using "NoSQL" in their marketing and advertising talking points less and less. Some
of this will be because Pandora's Box on data storage has already been opened--nobody's
just assuming a relational database all the time, every time, anymore--but some of
this will be because the different NoSQL vendors, who are at different stages in the
adoption curve, will want to differentiate themselves from the vendors that are taking
on the backlash. I predict Mongo, who seems to be leading the way of the NoSQL vendors,
will be the sacrificial scapegoat for a lot of the NoSQL backlash that's coming down
the pike.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desktops increasingly become niche products.&lt;/strong&gt; Look, does anyone buy
a desktop machine anymore? I have three sitting next to me in my office, and none
of the three has been turned on in probably two years--I'm exclusively laptop-bound
these days. Between tablets as consumption devices (slowly obsoleting the laptop),
and cloud offerings becoming more and more varied (slowly obsoleting the server),
there's just no room for companies that sell desktops--or the various Mom-and-Pop
shops that put them together for you. In fact, I'm starting to wonder if all those
parts I used to buy at Fry's Electronics and swap meets will start to disappear, too.
Gamers keep desktops alive, and I don't know if there's enough money in that world
to keep lots of those vendors alive. (I hope so, but I don't know for sure.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Home servers will start to grow in interest.&lt;/strong&gt; This may seem paradoxical
to the previous point, but I think techno-geek leader-types are going to start looking
into "servers-in-a-box" that they can set up at home and have all their devices sync
to and store to. Sure, all the media will come through there, and the key here will
be "turnkey", since most folks are getting used to machines that "just work". Lots
of friends, for example, seem to be using Mac Minis for exactly this purpose, and
there's a vendor here in Redmond that sells a &lt;a href="http://www.usmicro.com/hot-offers.php"&gt;ridiculously-powered
server in a box&lt;/a&gt; for a couple thousand. (This is on my birthday list, right after
I get my maxed-out 13" MacBook Air and iPad 3.) This is also going to be fueled by...&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private cloud is going to start getting hot.&lt;/strong&gt; The great advantage
of cloud is that you don't have to have an IT department; the great disadvantage of
cloud is that when things go bad, you don't have an IT department. Too many well-publicized
cloud failures are going to drive corporations to try and find a solution that is
the best-of-both-worlds: the flexibility and resiliency of cloud provisioning, but
staffed by IT resources they can whip and threaten and cajole when things fail. (And,
by the way, I fully understand that most cloud providers have better uptimes than
most private IT organizations--this is about perception and control and the feelings
of powerlessness and helplessness when things go south, not reality.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oracle will release Java8, and while several Java pundits will decry "it's
not the Java I love!", most will actually come to like it.&lt;/strong&gt; Let's be blunt,
Java has long since moved past being the flower of fancy and a critic's darling, and
it's moved squarely into the battleship-gray of slogging out code and getting line-of-business
apps done. Java8 adopting function literals (aka "closures") and retrofitting the
Collection library to use them will be a subtle, but powerful, extension to the lifetime
of the Java language, but it's never going to be sexy again. Fortunately, it doesn't
need to be.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft will start courting the .NET developers again.&lt;/strong&gt; Windows8
left a bad impression in the minds of many .NET developers, with the emphasis on HTML/JavaScript
apps and C++ apps, leaving many .NET developers to wonder if they were somehow rendered
obsolete by the new platform. Despite numerous attempts in numerous ways to tell them
no, developers still seem to have that opinion--and Microsoft needs to go on the offensive
to show them that .NET and Windows8 (and WinRT) do, in fact, go very well together.
Microsoft can't afford for their loyal developer community to feel left out or abandoned.
They know that, and they'll start working on it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Samsung will start pushing themselves further and further into the consumer
market.&lt;/strong&gt; They already have started gathering more and more of a consumer name
for themselves, they just need to solidify their tablet offerings and get closer in
line with either Google (for Android tablets) or even Microsoft (for Windows8 tablets
and/or Surface competitors) to compete with Apple. They may even start looking into
writing their own tablet OS, which would be something of a mistake, but an understandable
one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple's next release cycle will, again, be "more of the same".&lt;/strong&gt; iPhone
6, iPad 4, iPad Mini 2, MacBooks, MacBook Airs, none of them are going to get much
in the way of innovation or new features. Apple is going to run squarely into the
Innovator's Dilemma soon, and their products are going to be "more of the same" for
a while. Incremental improvements along a couple of lines, perhaps, but nothing Earth-shattering.
(Hey, Apple, how about opening up Siri to us to program against, for example, so we
can hook into her command structure and hook our own apps up? I can do that with Android
today, why not her?)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Studio 2014 features will start being discussed at the end of the year.&lt;/strong&gt; If
Microsoft is going to hit their every-two-year-cycle with Visual Studio, then they'll
start talking/whispering/rumoring some of the v.Next features towards the middle to
end of 2013. I fully expect C# 6 will get some form of type providers, Visual Basic
will be a close carbon copy of C# again, and F# 4 will have something completely revolutionary
that anyone who sees it will be like, "Oh, cool! Now, when can I get that in C#?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scala interest wanes.&lt;/strong&gt; As much as I don't want it to happen, I think
interest in Scala is going to slow down, and possibly regress. This will be the year
that Typesafe needs to make a major splash if they want to show the world that they're
serious, and I don't know that the JVM world is really all that interested in seeing
a new player. Instead, I think Scala will be seen as what "the 1%" of the Java community
uses, and the rest will take some ideas from there and apply them (poorly, perhaps)
to Java.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interest in native languages will rise.&lt;/strong&gt; Just for kicks, developers
will start experimenting with some of the new compile-to-native-code languages (Go,
Rust, Slate, Haskell, whatever) and start finding some of the joys (and heartaches)
that come with running "on the metal". More importantly, they'll start looking at
ways to use these languages with platforms where running "on the metal" is more important,
like mobile devices and tablets.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
As always, folks, thanks for reading. See you next year.
&lt;/p&gt;
&lt;b&gt;UPDATE:&lt;/b&gt; Two things happened this week (7 Jan 2013) that made me want to add
to this list: 
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardware is the new platform.&lt;/strong&gt; A buddy of mine (Scott Davis) pointed
out on a mailing list we share that "hardware is the new platform", and with Microsoft's
Surface out now, there's three major players (Apple, Google, Microsoft) in this game.
It's becoming apparent that more and more companies are starting to see opportunities
in going the Apple route of owning not just the OS and the store, but the hardware
underneath it. More and more companies are going to start playing this game, too,
I think, and we're going to see Amazon take some shots here, and probably a few others.
Of course, already announced is the Ubuntu Phone, and a new Android-like player, &lt;a href="http://www.tizen.org"&gt;Tizen&lt;/a&gt;,
but I'm not thinking about new players--there's always new players--but about some
of the big standouts. And look for companies like Dell and HP to start looking for
ways to play in this game, too, either through partnerships or acquisitions. (Hello,
Oracle, I'm looking at you.... And Adobe, too.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;APIs for lots of things are going to come out.&lt;/strong&gt; Ford &lt;a href="http://techcrunch.com/2013/01/07/ford-launches-open-developer-program-to-let-mobile-apps-interface-with-its-cars/"&gt;just&lt;/a&gt; did &lt;a href="http://developer.ford.com"&gt;this&lt;/a&gt;.
This is not going away--this is going to proliferate. And the startup community is
going to lap it up like kittens attacking a bowl of cream. If you're looking for a
play in the startup world, pursue this.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=345c85f3-4b46-4757-b204-eb2f63d59eb7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,345c85f3-4b46-4757-b204-eb2f63d59eb7.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>C++</category>
      <category>Conferences</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Python</category>
      <category>Reading</category>
      <category>Review</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=b5b18e2a-df88-41ef-bc8b-69b46307e908</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,b5b18e2a-df88-41ef-bc8b-69b46307e908.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,b5b18e2a-df88-41ef-bc8b-69b46307e908.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b5b18e2a-df88-41ef-bc8b-69b46307e908</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There's an interesting legal interpretation coming out of the Electronic Freedom Foundation
(EFF) around the <a href="https://www.eff.org/deeplinks/2012/10/governments-attack-cloud-computing">Megaupload
case</a>, and the EFF has said this: 
</p>
        <blockquote> "The government maintains that Mr. Goodwin lost his property rights
in his data by storing it on a cloud computing service. Specifically, the government
argues that both the contract between Megaupload and Mr. Goodwin (a standard cloud
computing contract) and the contract between Megaupload and the server host, Carpathia
(also a standard agreement), "likely limit any property interest he may have" in his
data. (Page 4). If the government is right, no provider can both protect itself against
sudden losses (like those due to a hurricane) and also promise its customers that
their property rights will be maintained when they use the service. Nor can they promise
that their property might not suddenly disappear, with no reasonable way to get it
back if the government comes in with a warrant. Apparently your property rights "become
severely limited" if you allow someone else to host your data under standard cloud
computing arrangements. This argument isn't limited in any way to Megaupload -- it
would apply if the third party host was Amazon's S3 or Google Apps or or Apple iCloud." </blockquote> Now,
one of the participants on the Seattle Tech Startup list, Jonathan Shapiro, wrote
this as an interpretation of the government's brief and the EFF filing: <blockquote><p>
What the government actually says is that the state of Mr. Goodwin's property rights
depends on his agreement with the cloud provider and their agreement with the infrastructure
provider. The question ultimately comes down to: if I upload data onto a machine that
you own, who owns the copy of the data that ends up on your machine? The answer to
that question depends on the agreements involved, which is what the government is
saying. Without reviewing the agreements, it isn't clear if the upload should be thought
of as a loan, a gift, a transfer, or something else.
</p><p>
Lacking any physical embodiment, it is not clear whether the bits comprising these
uploaded digital artifacts constitute property in the traditional sense at all. Even
if they do, the government is arguing that who owns the bits may have nothing to do
with who controls the use of the bits; that the two are separate matters. That's quite
standard: your decision to buy a book from the bookstore conveys ownership to you,
but does not give you the right to make further copies of the book. Once a copy of
the data leaves the possession of Mr. Goodwin, the constraints on its use are determined
by copyright law and license terms. The agreement between Goodwin and the cloud provider
clearly narrows the copyright-driven constraints, because the cloud provider has to
be able to make copies to provide their services, and has surely placed terms that
permit this in their user agreement. The consequences for ownership are unclear. In
particular: if the cloud provider (as opposed to Mr. Goodwin) makes an authorized
copy of Goodwin's data in the course of their operations, using only the resources
of the cloud provider, the ownership of that copy doesn't seem obvious at all. A license
may exist requiring that copy to be destroyed under certain circumstances (e.g. if
Mr. Goodwin terminates his contract), but that doesn't speak to ownership of the copy.
</p><p>
Because no sale has occurred, and there was clearly no intent to cede ownership, the
Government's challenge concerning ownership has the feel of violating common sense.
If you share that feeling, welcome to the world of intellectual property law. But
while everyone is looking at the negative side of this argument, it's worth considering
that there may be positive consequences of the Government's argument. In Germany,
for example, software is property. It is illegal (or at least unenforceable) to write
a software license in Germany that stops me from selling my copy of a piece of software
to my friend, so long as I remove it from my machine. A copy of a work of software
can be resold in the same way that a book can be resold because it is property. At
present, the provisions of UCITA in the U.S. have the effect that you do not own a
work of software that you buy. If the district court in Virginia determines that a
recipient has property rights in a copy of software that they receive, that could
have far-reaching consequences, possibly including a consequent right of resale in
the United States.
</p></blockquote><p>
Now, whether or not Jon's interpretation is correct, there are some huge legal implications
of this interpretation of the cloud, because data "ownership" is going to be the defining
legal issue of the next century.
</p><img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=b5b18e2a-df88-41ef-bc8b-69b46307e908" /><br /><hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Cloud legal</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,b5b18e2a-df88-41ef-bc8b-69b46307e908.aspx</guid>
      <link>http://blogs.tedneward.com/2012/11/03/Cloud+Legal.aspx</link>
      <pubDate>Sat, 03 Nov 2012 07:14:40 GMT</pubDate>
      <description>&lt;p&gt;
There's an interesting legal interpretation coming out of the Electronic Freedom Foundation
(EFF) around the &lt;a href="https://www.eff.org/deeplinks/2012/10/governments-attack-cloud-computing"&gt;Megaupload
case&lt;/a&gt;, and the EFF has said this: &lt;blockquote&gt; "The government maintains that Mr.
Goodwin lost his property rights in his data by storing it on a cloud computing service.
Specifically, the government argues that both the contract between Megaupload and
Mr. Goodwin (a standard cloud computing contract) and the contract between Megaupload
and the server host, Carpathia (also a standard agreement), "likely limit any property
interest he may have" in his data. (Page 4). If the government is right, no provider
can both protect itself against sudden losses (like those due to a hurricane) and
also promise its customers that their property rights will be maintained when they
use the service. Nor can they promise that their property might not suddenly disappear,
with no reasonable way to get it back if the government comes in with a warrant. Apparently
your property rights "become severely limited" if you allow someone else to host your
data under standard cloud computing arrangements. This argument isn't limited in any
way to Megaupload -- it would apply if the third party host was Amazon's S3 or Google
Apps or or Apple iCloud." &lt;/blockquote&gt; Now, one of the participants on the Seattle
Tech Startup list, Jonathan Shapiro, wrote this as an interpretation of the government's
brief and the EFF filing: &lt;blockquote&gt; 
&lt;p&gt;
What the government actually says is that the state of Mr. Goodwin's property rights
depends on his agreement with the cloud provider and their agreement with the infrastructure
provider. The question ultimately comes down to: if I upload data onto a machine that
you own, who owns the copy of the data that ends up on your machine? The answer to
that question depends on the agreements involved, which is what the government is
saying. Without reviewing the agreements, it isn't clear if the upload should be thought
of as a loan, a gift, a transfer, or something else.
&lt;/p&gt;
&lt;p&gt;
Lacking any physical embodiment, it is not clear whether the bits comprising these
uploaded digital artifacts constitute property in the traditional sense at all. Even
if they do, the government is arguing that who owns the bits may have nothing to do
with who controls the use of the bits; that the two are separate matters. That's quite
standard: your decision to buy a book from the bookstore conveys ownership to you,
but does not give you the right to make further copies of the book. Once a copy of
the data leaves the possession of Mr. Goodwin, the constraints on its use are determined
by copyright law and license terms. The agreement between Goodwin and the cloud provider
clearly narrows the copyright-driven constraints, because the cloud provider has to
be able to make copies to provide their services, and has surely placed terms that
permit this in their user agreement. The consequences for ownership are unclear. In
particular: if the cloud provider (as opposed to Mr. Goodwin) makes an authorized
copy of Goodwin's data in the course of their operations, using only the resources
of the cloud provider, the ownership of that copy doesn't seem obvious at all. A license
may exist requiring that copy to be destroyed under certain circumstances (e.g. if
Mr. Goodwin terminates his contract), but that doesn't speak to ownership of the copy.
&lt;/p&gt;
&lt;p&gt;
Because no sale has occurred, and there was clearly no intent to cede ownership, the
Government's challenge concerning ownership has the feel of violating common sense.
If you share that feeling, welcome to the world of intellectual property law. But
while everyone is looking at the negative side of this argument, it's worth considering
that there may be positive consequences of the Government's argument. In Germany,
for example, software is property. It is illegal (or at least unenforceable) to write
a software license in Germany that stops me from selling my copy of a piece of software
to my friend, so long as I remove it from my machine. A copy of a work of software
can be resold in the same way that a book can be resold because it is property. At
present, the provisions of UCITA in the U.S. have the effect that you do not own a
work of software that you buy. If the district court in Virginia determines that a
recipient has property rights in a copy of software that they receive, that could
have far-reaching consequences, possibly including a consequent right of resale in
the United States.
&lt;/p&gt;
&lt;/blockquote&gt; &gt;
&lt;p&gt;
Now, whether or not Jon's interpretation is correct, there are some huge legal implications
of this interpretation of the cloud, because data "ownership" is going to be the defining
legal issue of the next century.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=b5b18e2a-df88-41ef-bc8b-69b46307e908" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,b5b18e2a-df88-41ef-bc8b-69b46307e908.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>C++</category>
      <category>Conferences</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Personal</category>
      <category>Python</category>
      <category>Reading</category>
      <category>Review</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Social</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Two things conspire to bring you this blog post.
</p>
        <h2>
        </h2>
        <h2>Of Contracts and Contracts
</h2>
        <p>
First, a few months ago, I was asked to participate in an architectural review for
a project being done for one of the states here in the US. It was a project dealing
with some sensitive information (Child Welfare Services), and I was required to sign
a document basically promising not to do anything bad with the data. Not a problem
to sign, since I was going to be more focused on the architecture and code anyway,
and would stay away from the production servers and data as much as I possibly could.
But then the state agency asked for my social security number, and when I pushed back
asking why, they told me it was “mandatory” in order to work on the project. I suspect
it was for a background check—but when I asked how long they were going to hold on
to the number and what their privacy policy was regarding my data, they refused to
answer, and I never heard from them again. Which, quite frankly, was something of
a relief.
</p>
        <p>
Second, just tonight there was a thread on the Seattle Tech Startup mailing list about
SSNs again. This time, a contractor who participates on the list was being asked by
the contracting agency for his SSN, not for any tax document form, but… just because.
This sounded fishy. It turned out that the contract was going to be with AT&amp;T,
and that they commonly use a contractor’s SSN as a way of identifying the contractor
in their vendor database. It was also noted that many companies do this, and that
it was likely that many more would do so in the future. One poster pointed out that
when the state’s attorney general’s office was contacted about this practice, it isn’t
illegal.
</p>
        <p>
Folks, this practice has to stop. For both your sake, and the company’s.
</p>
        <h2>
        </h2>
        <h2>
        </h2>
        <h2>Of Data and Integrity
</h2>
        <p>
Using SSNs in your database is just a bad idea from top to bottom. For starters, it
makes your otherwise-unassuming enterprise application a ripe target for hackers,
who seek to gather legitimate SSNs as part of the digital fingerprinting of potential
victims for identity theft. What’s worse, any time I’ve ever seen any company store
the SSNs, they’re almost always stored in plaintext form (“These aren’t credit cards!”),
and they’re often used as a primary key to uniquely identify individuals.
</p>
        <p>
There’s so many things wrong with this idea from a data management perspective, it’s
shameful.
</p>
        <ul>
          <li>
            <strong>SSNs were never intended for identification purposes.</strong> Yeah, this
is a weak argument now, given all the <em>de facto</em> uses to which they are put
already, but when FDR passed the Social Security program back in the 30s, he promised
the country that they would never be used for identification purposes. This is, in
fact, why the card reads “This number not to be used for identification purposes”
across the bottom. Granted, every financial institution with whom I’ve ever done business
has ignored that promise for as long as I’ve been alive, but that doesn’t strike me
as a reason to continue doing so.</li>
          <li>
            <strong>SSNs are not unique.</strong> There’s rumors of two different people being
issued the same SSN, and while I can’t confirm or deny this based on personal experience,
it doesn’t take a rocket scientist to figure out that if there are 300 million people
living in the US, and the SSN is a nine-digit number, that means that there are 999,999,999
potential numbers in the best case (which isn’t possible, because the first three
digits are a stratification mechanism—for example, California-issued numbers are generally
in the 5xx range, while East Coast-issued numbers are in the 0xx range). What I can
say for certain is that SSNs are, in fact, recycled—so your new baby may (and very
likely will) end up with some recently-deceased individual’s SSN. As we start to see
databases extending to a second and possibly even third generation of individuals,
these kinds of conflicts are going to become even more common. As US population continues
to rise, and immigration brings even more people into the country to work, how soon
before we start seeing the US government sweat the problems associated with trying
to go to a 10- or 11-digit SSN? It’s going to make the IPv4 and IPv6 problems look
trivial by comparison. (Look for that to be the moment when the US government formally
adopts a hexadecimal system for SSNs.)</li>
          <li>
            <strong>SSNs are sensitive data.</strong> You knew this already. But what you may
not realize is that data not only has a tendency to escape the organization that gathered
it (databases are often sold, acquired, or stolen), but that said data frequently
lives far, far longer than it needs to. Look around in your own company—how many databases
are still online, in use, even though the data isn’t really relevant anymore, just
because “there’s no cost to keeping it”? More importantly, companies are increasingly
being held accountable for sensitive information breaches, and it’s just a matter
of time before a creative lawyer seeking to tap into the public’s sensitivities to
things they don’t understand leads him/her takes a company to court, suing them for
damages for such a breach. And there’s very likely more than a few sympathetic judges
in the country to the idea. Do you really want to be hauled up on the witness stand
to defend your use of the SSN in your database?</li>
        </ul>
        <p>
Given that SSNs aren’t unique, and therefore fail as their primary purpose in a data
management scheme, and that they represent a huge liability because of their sensitive
nature, why on earth would you want them in your database?
</p>
        <h2>A Call
</h2>
        <p>
But more importantly, companies aren’t going to stop using them for these kinds of
purposes until we <em>make</em> them stop. Any time a company asks you for your SSN,
challenge them. Ask them why they need it, if the transaction can be completed without
it, and if they insist on having it, a formal declaration of their sensitive information
policy and what kind of notification and compensation you can expect when they suffer
a sensitive data breach. It may take a while to find somebody within the company who
can answer your questions at the places that legitimately need the information, but
you’ll get there eventually. And for the rest of the companies that gather it “just
in case”, well, if it starts turning into a huge PITA to get them, they’ll find other
ways to figure out who you are.
</p>
        <p>
This is a call to arms, folks: Just say NO to handing over your SSN.
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Just Say No to SSNs</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db.aspx</guid>
      <link>http://blogs.tedneward.com/2012/03/17/Just+Say+No+To+SSNs.aspx</link>
      <pubDate>Sat, 17 Mar 2012 06:10:49 GMT</pubDate>
      <description>&lt;p&gt;
Two things conspire to bring you this blog post.
&lt;/p&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;Of Contracts and Contracts
&lt;/h2&gt;
&lt;p&gt;
First, a few months ago, I was asked to participate in an architectural review for
a project being done for one of the states here in the US. It was a project dealing
with some sensitive information (Child Welfare Services), and I was required to sign
a document basically promising not to do anything bad with the data. Not a problem
to sign, since I was going to be more focused on the architecture and code anyway,
and would stay away from the production servers and data as much as I possibly could.
But then the state agency asked for my social security number, and when I pushed back
asking why, they told me it was “mandatory” in order to work on the project. I suspect
it was for a background check—but when I asked how long they were going to hold on
to the number and what their privacy policy was regarding my data, they refused to
answer, and I never heard from them again. Which, quite frankly, was something of
a relief.
&lt;/p&gt;
&lt;p&gt;
Second, just tonight there was a thread on the Seattle Tech Startup mailing list about
SSNs again. This time, a contractor who participates on the list was being asked by
the contracting agency for his SSN, not for any tax document form, but… just because.
This sounded fishy. It turned out that the contract was going to be with AT&amp;amp;T,
and that they commonly use a contractor’s SSN as a way of identifying the contractor
in their vendor database. It was also noted that many companies do this, and that
it was likely that many more would do so in the future. One poster pointed out that
when the state’s attorney general’s office was contacted about this practice, it isn’t
illegal.
&lt;/p&gt;
&lt;p&gt;
Folks, this practice has to stop. For both your sake, and the company’s.
&lt;/p&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;Of Data and Integrity
&lt;/h2&gt;
&lt;p&gt;
Using SSNs in your database is just a bad idea from top to bottom. For starters, it
makes your otherwise-unassuming enterprise application a ripe target for hackers,
who seek to gather legitimate SSNs as part of the digital fingerprinting of potential
victims for identity theft. What’s worse, any time I’ve ever seen any company store
the SSNs, they’re almost always stored in plaintext form (“These aren’t credit cards!”),
and they’re often used as a primary key to uniquely identify individuals.
&lt;/p&gt;
&lt;p&gt;
There’s so many things wrong with this idea from a data management perspective, it’s
shameful.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSNs were never intended for identification purposes.&lt;/strong&gt; Yeah, this
is a weak argument now, given all the &lt;em&gt;de facto&lt;/em&gt; uses to which they are put
already, but when FDR passed the Social Security program back in the 30s, he promised
the country that they would never be used for identification purposes. This is, in
fact, why the card reads “This number not to be used for identification purposes”
across the bottom. Granted, every financial institution with whom I’ve ever done business
has ignored that promise for as long as I’ve been alive, but that doesn’t strike me
as a reason to continue doing so.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSNs are not unique.&lt;/strong&gt; There’s rumors of two different people being
issued the same SSN, and while I can’t confirm or deny this based on personal experience,
it doesn’t take a rocket scientist to figure out that if there are 300 million people
living in the US, and the SSN is a nine-digit number, that means that there are 999,999,999
potential numbers in the best case (which isn’t possible, because the first three
digits are a stratification mechanism—for example, California-issued numbers are generally
in the 5xx range, while East Coast-issued numbers are in the 0xx range). What I can
say for certain is that SSNs are, in fact, recycled—so your new baby may (and very
likely will) end up with some recently-deceased individual’s SSN. As we start to see
databases extending to a second and possibly even third generation of individuals,
these kinds of conflicts are going to become even more common. As US population continues
to rise, and immigration brings even more people into the country to work, how soon
before we start seeing the US government sweat the problems associated with trying
to go to a 10- or 11-digit SSN? It’s going to make the IPv4 and IPv6 problems look
trivial by comparison. (Look for that to be the moment when the US government formally
adopts a hexadecimal system for SSNs.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSNs are sensitive data.&lt;/strong&gt; You knew this already. But what you may
not realize is that data not only has a tendency to escape the organization that gathered
it (databases are often sold, acquired, or stolen), but that said data frequently
lives far, far longer than it needs to. Look around in your own company—how many databases
are still online, in use, even though the data isn’t really relevant anymore, just
because “there’s no cost to keeping it”? More importantly, companies are increasingly
being held accountable for sensitive information breaches, and it’s just a matter
of time before a creative lawyer seeking to tap into the public’s sensitivities to
things they don’t understand leads him/her takes a company to court, suing them for
damages for such a breach. And there’s very likely more than a few sympathetic judges
in the country to the idea. Do you really want to be hauled up on the witness stand
to defend your use of the SSN in your database?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Given that SSNs aren’t unique, and therefore fail as their primary purpose in a data
management scheme, and that they represent a huge liability because of their sensitive
nature, why on earth would you want them in your database?
&lt;/p&gt;
&lt;h2&gt;A Call
&lt;/h2&gt;
&lt;p&gt;
But more importantly, companies aren’t going to stop using them for these kinds of
purposes until we &lt;em&gt;make&lt;/em&gt; them stop. Any time a company asks you for your SSN,
challenge them. Ask them why they need it, if the transaction can be completed without
it, and if they insist on having it, a formal declaration of their sensitive information
policy and what kind of notification and compensation you can expect when they suffer
a sensitive data breach. It may take a while to find somebody within the company who
can answer your questions at the places that legitimately need the information, but
you’ll get there eventually. And for the rest of the companies that gather it “just
in case”, well, if it starts turning into a huge PITA to get them, they’ll find other
ways to figure out who you are.
&lt;/p&gt;
&lt;p&gt;
This is a call to arms, folks: Just say NO to handing over your SSN.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,72f35f2a-2a8c-4b0e-a6db-6c31c81fc2db.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>C++</category>
      <category>Conferences</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Personal</category>
      <category>Python</category>
      <category>Reading</category>
      <category>Review</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Social</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=20604d47-a520-4a9f-8fd2-469caa49eb40</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,20604d47-a520-4a9f-8fd2-469caa49eb40.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,20604d47-a520-4a9f-8fd2-469caa49eb40.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=20604d47-a520-4a9f-8fd2-469caa49eb40</wfw:commentRss>
      <slash:comments>34</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As discriminatory as this is going to sound, this one is for the old-timers. If you
started programming after the turn of the milennium, I don’t know if you’re going
to be able to follow the trend of this post—not out of any serious deficiency on your
part, hardly that. But I think this is something only the old-timers are going to
identify with. (And thus, do I alienate probably 80% of my readership, but so be it.)
</p>
        <p>
Is it me, or is programming just less interesting today than it was two decades ago?
</p>
        <p>
By all means, shake your smartphones and other mobile devices at me and say, “Dude,
how can you say that?”, but in many ways programming for Android and iOS reminds me
of programming for Windows and Mac OS two decades ago. HTML 5 and JavaScript remind
me of ten years ago, the first time HTML and JavaScript came around. The discussions
around programming languages remind me of the discussions around C++. The discussions
around NoSQL remind me of the arguments both for and against relational databases.
It all feels like we’ve been here before, with only the names having changed.
</p>
        <p>
Don’t get me wrong—if any of you comment on the differences between HTML 5 now and
HTML 3.2 then, or the degree of the various browser companies agreeing to the standard
today against the “browser wars” of a decade ago, I’ll agree with you. This isn’t
so much of a rational and logical discussion as it is an emotive and intuitive one.
It just <em>feels</em> similar.
</p>
        <p>
To be honest, I get this sense that across the entire industry right now, there’s
a sort of malaise, a general sort of “Bah, nothing really all that new is going on
anymore”. NoSQL is re-introducing storage ideas that had been around before but were
discarded (perhaps injudiciously and too quickly) in favor of the relational model.
Functional languages have obviously been in place since the 50’s (in Lisp). And so
on.
</p>
        <p>
More importantly, look at the Java community: what truly innovative ideas have emerged
here in the last five years? Every new open-source project or commercial endeavor
either seems to be a refinement of an idea before it (how many different times are
we going to create a new Web framework, guys?) or an attempt to leverage an idea coming
from somewhere else (be it from .NET or from Ruby or from JavaScript or….). With the
upcoming .NET 4.5 release and Windows 8, Microsoft is holding out very little “new
and exciting” bits for the community to invest emotionally in: we hear about “async”
in C# 5 (something that F# has had already, thank you), and of course there is WinRT
(another platform or virtual machine… sort of), and… well, honestly, didn’t we just
do this a decade ago? Where is the WCFs, the WPFs, the Silverlights, the things that
would get us fired up? Hell, even a new approach to data access might stir some excitement.
Node.js feels like an attempt to reinvent the app server, but if you look back far
enough you see that the app server itself was reinvented once (in the Java world)
in Spring and other lightweight frameworks, and before that by people who actually
thought to write their own web servers in straight Java. (And, for the record, the
whole event-driven I/O thing is something that’s been done in both Java and .NET a
long time before now.)
</p>
        <p>
And as much as this is going to probably just throw fat on the fire, all the excitement
around JavaScript as a language reminds me of the excitement about Ruby as a language.
Does nobody remember that Sun did this once already, with Phobos? Or that Netscape
did this with LiveScript? JavaScript on the server end is not new, folks. It’s just
new to the people who’d never seen it before.
</p>
        <p>
In years past, there has always seemed to be something deeper, something more exciting
and more innovative that drives the industry in strange ways. Artificial Intelligence
was one such thing: the search to try and bring computers to a state of human-like
sentience drove a lot of interesting ideas and concepts forward, but over the last
decade or two, AI seems to have lost almost all of its luster and momentum. User interfaces—specifically,
GUIs—were another force for a while, until GUIs got to the point where they were so
common and so deeply rooted in their chosen pasts (the single-button of the Mac, the
menubar-per-window of Windows, etc) that they left themselves so little room for maneuver.
At least this is one area where Microsoft is (maybe) putting the fatted sacred cow
to the butcher’s knife, with their Metro UI moves in Windows 8… but only up to a point.
</p>
        <p>
Maybe I’m just old and tired and should hang up my keyboard and go take up farming,
then go retire to my front porch’s rocking chair and practice my <em>Hey you kids!
Getoffamylawn!</em> or something. But before you dismiss me entirely, do me a favor
and tell me: what gets you excited these days? If you’ve been programming for twenty
years, what about the industry today gets your blood moving and your mind sharpened?
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=20604d47-a520-4a9f-8fd2-469caa49eb40" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Is Programming Less Exciting Today?</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,20604d47-a520-4a9f-8fd2-469caa49eb40.aspx</guid>
      <link>http://blogs.tedneward.com/2012/01/25/Is+Programming+Less+Exciting+Today.aspx</link>
      <pubDate>Wed, 25 Jan 2012 23:24:43 GMT</pubDate>
      <description>&lt;p&gt;
As discriminatory as this is going to sound, this one is for the old-timers. If you
started programming after the turn of the milennium, I don’t know if you’re going
to be able to follow the trend of this post—not out of any serious deficiency on your
part, hardly that. But I think this is something only the old-timers are going to
identify with. (And thus, do I alienate probably 80% of my readership, but so be it.)
&lt;/p&gt;
&lt;p&gt;
Is it me, or is programming just less interesting today than it was two decades ago?
&lt;/p&gt;
&lt;p&gt;
By all means, shake your smartphones and other mobile devices at me and say, “Dude,
how can you say that?”, but in many ways programming for Android and iOS reminds me
of programming for Windows and Mac OS two decades ago. HTML 5 and JavaScript remind
me of ten years ago, the first time HTML and JavaScript came around. The discussions
around programming languages remind me of the discussions around C++. The discussions
around NoSQL remind me of the arguments both for and against relational databases.
It all feels like we’ve been here before, with only the names having changed.
&lt;/p&gt;
&lt;p&gt;
Don’t get me wrong—if any of you comment on the differences between HTML 5 now and
HTML 3.2 then, or the degree of the various browser companies agreeing to the standard
today against the “browser wars” of a decade ago, I’ll agree with you. This isn’t
so much of a rational and logical discussion as it is an emotive and intuitive one.
It just &lt;em&gt;feels&lt;/em&gt; similar.
&lt;/p&gt;
&lt;p&gt;
To be honest, I get this sense that across the entire industry right now, there’s
a sort of malaise, a general sort of “Bah, nothing really all that new is going on
anymore”. NoSQL is re-introducing storage ideas that had been around before but were
discarded (perhaps injudiciously and too quickly) in favor of the relational model.
Functional languages have obviously been in place since the 50’s (in Lisp). And so
on.
&lt;/p&gt;
&lt;p&gt;
More importantly, look at the Java community: what truly innovative ideas have emerged
here in the last five years? Every new open-source project or commercial endeavor
either seems to be a refinement of an idea before it (how many different times are
we going to create a new Web framework, guys?) or an attempt to leverage an idea coming
from somewhere else (be it from .NET or from Ruby or from JavaScript or….). With the
upcoming .NET 4.5 release and Windows 8, Microsoft is holding out very little “new
and exciting” bits for the community to invest emotionally in: we hear about “async”
in C# 5 (something that F# has had already, thank you), and of course there is WinRT
(another platform or virtual machine… sort of), and… well, honestly, didn’t we just
do this a decade ago? Where is the WCFs, the WPFs, the Silverlights, the things that
would get us fired up? Hell, even a new approach to data access might stir some excitement.
Node.js feels like an attempt to reinvent the app server, but if you look back far
enough you see that the app server itself was reinvented once (in the Java world)
in Spring and other lightweight frameworks, and before that by people who actually
thought to write their own web servers in straight Java. (And, for the record, the
whole event-driven I/O thing is something that’s been done in both Java and .NET a
long time before now.)
&lt;/p&gt;
&lt;p&gt;
And as much as this is going to probably just throw fat on the fire, all the excitement
around JavaScript as a language reminds me of the excitement about Ruby as a language.
Does nobody remember that Sun did this once already, with Phobos? Or that Netscape
did this with LiveScript? JavaScript on the server end is not new, folks. It’s just
new to the people who’d never seen it before.
&lt;/p&gt;
&lt;p&gt;
In years past, there has always seemed to be something deeper, something more exciting
and more innovative that drives the industry in strange ways. Artificial Intelligence
was one such thing: the search to try and bring computers to a state of human-like
sentience drove a lot of interesting ideas and concepts forward, but over the last
decade or two, AI seems to have lost almost all of its luster and momentum. User interfaces—specifically,
GUIs—were another force for a while, until GUIs got to the point where they were so
common and so deeply rooted in their chosen pasts (the single-button of the Mac, the
menubar-per-window of Windows, etc) that they left themselves so little room for maneuver.
At least this is one area where Microsoft is (maybe) putting the fatted sacred cow
to the butcher’s knife, with their Metro UI moves in Windows 8… but only up to a point.
&lt;/p&gt;
&lt;p&gt;
Maybe I’m just old and tired and should hang up my keyboard and go take up farming,
then go retire to my front porch’s rocking chair and practice my &lt;em&gt;Hey you kids!
Getoffamylawn!&lt;/em&gt; or something. But before you dismiss me entirely, do me a favor
and tell me: what gets you excited these days? If you’ve been programming for twenty
years, what about the industry today gets your blood moving and your mind sharpened?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=20604d47-a520-4a9f-8fd2-469caa49eb40" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,20604d47-a520-4a9f-8fd2-469caa49eb40.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>C++</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Personal</category>
      <category>Python</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Social</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=15d1bb24-7548-446b-90be-8b9d4309d06a</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,15d1bb24-7548-446b-90be-8b9d4309d06a.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,15d1bb24-7548-446b-90be-8b9d4309d06a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=15d1bb24-7548-446b-90be-8b9d4309d06a</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Long-time readers of this blog know what’s coming next: it’s time for Ted to prognosticate
on what the coming year of tech will bring us. But I believe strongly in accountability,
even in my offered-up-for-free predictions, so one of the traditions of this space
is to go back and revisit my predictions from this time last year. So, without further
ado, let’s look back at <a href="http://blogs.tedneward.com/2010/01/05/2010+Predictions+2009+Predictions+Revisited.aspx">Ted’s
2010 predictions</a>, and see how things played out; 2010 predictions are prefixed
with “THEN”, and my thoughts on my predictions are prefixed with “NOW”:
</p>
        <p>
For 2010, I predicted....
</p>
        <ul>
          <li>
            <strong>THEN: </strong>
            <em>... I will offer 3- and 4-day training classes on F# and
Scala, among other things.</em> OK, that's not fair—yes, I have the materials, I just
need to work out locations and times. Contact me if you're interested in a private
class, by the way.</li>
          <ul>
            <li>
              <strong>NOW:</strong> Well, I offered them… I just didn’t do much to advertise them
or sell them. I got plenty busy just with the other things I had going on. Besides,
this and the next prediction were pretty much all advertisement anyway, so I don’t
know if anybody really counts these two.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... I will publish two books, one on F# and one on Scala.</em> OK,
OK, another plug. Or, rather, more of a resolution. One will be the "Professional
F#" I'm doing for Wiley/Wrox, the other isn't yet finalized. But it'll either
be published through a publisher, or self-published, by JavaOne 2010. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> “Professional F# 2.0” shipped in Q3 of 2010; the other Scala
book I decided not to pursue—too much stuff going on to really put the necessary time
into it. (Cue sad trombone.)</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... DSLs will either "succeed" this year, or
begin the short slide into the dustbin of obscure programming ideas.</em> Domain-specific
language advocates have to put up some kind of strawman for developers to learn from
and poke at, or the whole concept will just fade away. Martin's book will help, if
it ships this year, but even that might not be enough to generate interest if it doesn't
have some kind of large-scale applicability in it. Patterns and refactoring and enterprise
containers all had a huge advantage in that developers could see pretty easily what
the problem was they solved; DSLs haven't made that clear yet. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> To be honest, this one is hard to call. Martin Fowler published
his DSL book, which many people consider to be a good sign of what’s happening in
the world, but really, the DSL buzz seems to have dropped off significantly. The strawman
hasn’t appeared in any meaningful public way (I still don’t see an example being offered
up from anybody), and that leads me to believe that the fading-away has started.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... functional languages will start to see a backlash.</em> I
hate to say it, but "getting" the functional mindset is hard, and there's
precious few resources that are making it easy for mainstream (read: O-O) developers
make that adjustment, far fewer than there was during the procedural-to-object shift.
If the functional community doesn't want to become mainstream, then mainstream developers
will find ways to take functional's most compelling gateway use-case (parallel/concurrent
programming) and find a way to "git 'er done" in the traditional O-O approach,
probably through software transactional memory, and functional languages like Haskell
and Erlang will be relegated to the "What Might Have Been" of computer science
history. Not sure what I mean? Try this: walk into a functional language forum, and
ask what a monad is. Nobody yet has been able to produce an answer that doesn't involve
math theory, or that does involve a practical domain-object-based example. In fact,
nobody has really said why (or if) monads are even still useful. Or catamorphisms.
Or any of the other dime-store words that the functional community likes to toss around. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> I think I have to admit that this hasn’t happened—at least,
there’s been no backlash that I’ve seen. In fact, what’s interesting is that there’s
been some movement to bring those functional concepts—including monads, which surprised
me completely—into other languages like C# or Java for discussion and use. That being
said, though, I don’t see Haskell and Erlang taking center stage as application languages—instead,
I see them taking supporting-cast kinds of roles building other infrastructure that
applications in turn make use of, a la CouchDB (written in Erlang). Monads still remain
a mostly-opaque subject for most developers, however, and it’s still unclear if monads
are something that people should think about applying in code, or if they are one
of those “in theory” kinds of concepts. (You know, one of those ideas that change
your brain forever, but you never actually use directly in code.)</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Visual Studio 2010 will ship on time, and be one of
the buggiest and/or slowest releases in its history.</em> I hate to make this prediction,
because I really don't want to be right, but there's just so much happening in the
Visual Studio refactoring effort that it makes me incredibly nervous. Widespread adoption
of VS2010 will wait until SP1 at the earliest. In fact.... 
</li>
          <ul>
            <li>
              <strong>NOW: </strong>Wow, did I get a few people here in Redmond annoyed with me
about that one. And, as it turned out, I was pretty off-base about its stability.
(It shipped pretty close if not exactly on the ship date Microsoft promised, as I
recall, though I admit I wasn’t paying too much attention to it.)  I’ve been
using VS 2010 for a lot of .NET work in the last six months, and I’ve yet (knock on
wood) to have it crash on me. /bow Visual Studio team.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Visual Studio 2010 SP 1 will ship within three months
of the final product.</em> Microsoft knows that people wait until SP 1 to think about
upgrading, so they'll just plan for an eager SP 1 release, and hope that managers
will be too hung over from the New Year (still) to notice that the necessary shakeout
time hasn't happened. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> Uh…. nope. In fact, SP 1 has just reached a beta/CTP state.
As for managers being too hung over, well…</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Apple will ship a tablet with multi-touch on it, and
it will flop horribly.</em> Not sure why I think this, but I just don't think the
multi-touch paradigm that Apple has cooked up for the iPhone will carry over to a
tablet/laptop device. That won't stop them from shipping it, and it won't stop Apple
fan-boiz from buying it, but that's about where the interest will end. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> Oh, WOW did I come so close and yet missed the mark by a mile.
Of course, the “tablet” that Apple shipped was the iPad, and it did pretty much everything <em>except</em> flop
horribly. Apple fan-boys bought it… and then about 24 hours later, so did everybody
else. My <em>mom</em> got one, for crying out loud. And folks, the iPad—along with
the whole “slate” concept—is pretty clearly here to stay.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... JDK 7 closures will be debated for a few weeks, then
become a fait accompli as the Java community shrugs its collective shoulders.</em> Frankly,
I think the Java community has exhausted its interest in debating new language features
for Java. Recent college grads and open-source groups with an axe to grind will continue
to try and make an issue out of this, but I think the overall Java community just...
doesn't... care. They just want to see JDK 7 ship someday. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> Pretty close—except that closures won’t ship as part of JDK
7, largely due to the Oracle acquisition in the middle of the year here. And I was
spot-on vis-à-vis the “they want to see JDK 7 ship someday”; when given the chance
to wait for a year or so for a Java-with-closures to ship, the community overwhelmingly
voted to get something sooner rather than later.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Scala either "pops" in 2010, or begins to
fall apart.</em> By "pops", I mean reaches a critical mass of developers
interested in using it, enough to convince somebody to create a company around it,
a la G2One. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> … and by “somebody”, it turns out I meant Martin Odersky. Scala
is pretty clearly a hot topic in the Java space, its buzz being disturbed only by
Clojure. Scala and/or Clojure, plus Groovy, makes a really compelling JVM-based stack.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Oracle is going to make a serious "cloud"
play, probably by offering an Oracle-hosted version of Azure or AppEngine.</em> Oracle
loves the enterprise space too much, and derives too much money from it, to not at
least appear to have some kind of offering here. Now that they own Java, they'll marry
it up against OpenSolaris, the Oracle database, and throw the whole thing into a series
of server centers all over the continent, and call it "Oracle 12c" (c for
Cloud, of course) or something. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> Oracle made a play, but it was to continue to enhance Java,
not build a cloud space. It surprises me that they haven’t made a more forceful move
in this space, but I suspect that a huge amount of time and energy went into folding
Sun into their corporate environment.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Spring development will slow to a crawl and start to
take a left turn toward cloud ideas.</em> VMWare bought SpringSource for a reason,
and I believe it's entirely centered around VMWare's movement into the cloud space—they
want to be more than "just" a virtualization tool. Spring + Groovy makes
a compelling development stack, particularly if VMWare does some interesting hooks-n-hacks
to make Spring a virtualization environment in its own right somehow. But from a practical
perspective, any community-driven development against Spring is all but basically
dead. The source may be downloadable later, like the VMWare Player code is, but making
contributions back? Fuhgeddabowdit. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> The Spring One show definitely played up Cloud stuff, and springsource.com
seems to be emphasizing cloud more in a couple of subtle ways. Not sure if I call
this one a win or not for me, though.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... the explosion of e-book readers brings the Kindle 2009
edition way down to size.</em> The era of the e-book reader is here, and honestly,
while I'm glad I have a Kindle, I'm expecting that I'll be dusting it off a shelf
in a few years. Kinda like I do with my iPods from a few years ago. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> Honestly, can’t say that I’m using my Kindle a lot, but I am
reading using the Kindle app on non-Kindle hardware more than I thought I would be.
That said, I am eyeing the new Kindle hardware generation with an acquisitive eye…</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... "social networking" becomes the "Web
2.0" of 2010.</em> In other words, using the term will basically identify you
as a tech wannabe and clearly out of touch with the bleeding edge. 
</li>
          <ul>
            <li>
              <strong>NOW: </strong>Um…. yeah.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Facebook becomes a developer platform requirement.</em> I
don't pretend to know anything about Facebook—I'm not even on it, which amazes my
family to no end—but clearly Facebook is one of those mechanisms by which people reach
each other, and before long, it'll start showing up as a developer requirement for
companies looking to hire. If you're looking to build out your resume to make yourself
attractive to companies in 2010, mad Facebook skillz might not be a bad investment. 
</li>
          <ul>
            <li>
              <strong>NOW:</strong> I’m on Facebook, I’ve written some code for it, and given how
much the startup scene loves the “Like” button, I think developers who knew Facebook
in 2010 did pretty well for themselves.</li>
          </ul>
          <li>
            <strong>THEN: </strong>
            <em>... Nintendo releases an open SDK for building games for
its next-gen DS-based device.</em> With the spectacular success of games on the iPhone,
Nintendo clearly must see that they're missing a huge opportunity every day developers
can't write games for the Nintendo DS that are easily downloadable to the device for
playing. Nintendo is not stupid—if they don't open up the SDK and promote "casual"
games like those on the iPhone and those that can now be downloaded to the Zune or
the XBox, they risk being marginalized out of existence.</li>
          <ul>
            <li>
              <strong>NOW:</strong> Um… yeah. Maybe this was me just being hopeful.</li>
          </ul>
        </ul>
        <p>
In general, it looks like I was more right than wrong, which is not a bad record to
have. Of course, a couple of those “wrong”s were “giving up the big play” kind of
wrongs, so while I may have a winning record, I still may have a defense that’s given
up too many points to be taken seriously. *shrug* Oh, well.
</p>
        <p>
What portends for 2011?
</p>
        <ul>
          <li>
            <em>Android’s penetration into the mobile space is going to rise, then plateau around
the middle of the year.</em> Android phones, collectively, have outpaced iPhone sales.
That’s a pretty significant statistic—and it means that there’s fewer customers buying
smartphones in the coming year. More importantly, the first generation of Android
slates (including the Galaxy Tab, which I own), are less-than-sublime, and not really
an “iPad Killer” device by any stretch of the imagination. And I think that will slow
down people buying Android slates and phones, particularly since Google has all but
promised that Android releases will start slowing down.</li>
          <li>
            <em>Windows Phone 7 penetration into the mobile space will appear huge, then slow
down towards the middle of the year.</em> Microsoft is getting some pretty decent
numbers now, from what I can piece together, and I think that’s largely the “I love
Microsoft” crowd buying in. But it’s a pretty crowded place right now with Android
and iPhone, and I’m not sure if the much-easier Office and/or Exchange integration
is enough to woo consumers (who care about Office) or business types (who care about
Exchange) away from their Androids and iPhones.</li>
          <li>
            <em>Android, iOS and/or Windows Phone 7 becomes a developer requirement.</em> Developers,
if you haven’t taken the time to learn how to program one of these three platforms,
you are electing to remove yourself from a growing market that desperately wants people
with these skills. I see the “mobile native app development” space as every bit as
hot as the “Internet/Web development” space was back in 2000. If you don’t have a
device, buy one. If you have a device, get the tools—in all three cases they’re free
downloads—and start writing stupid little apps that nobody cares about, so you can
have some skills on the platform when somebody cares about it.</li>
          <li>
            <em>The Windows 7 slates will suck.</em> This isn’t a prediction, this is established
fact. I played with an “ExoPC” 10” form factor slate running Windows 7 (Dell I think
was the manufacturer), and it was a horrible experience. Windows 7, like most OSes,
really expects a keyboard to be present, and a slate doesn’t have one—so the OS was
hacked to put a “keyboard” button at the top of the screen that would slide out to
let you touch-type on the slate. I tried to fire up Notepad and type out a haiku,
and it was an unbelievably awkward process. Android and iOS clearly own the slate
market for the forseeable future, and if Dell has any brains in its corporate head,
it will phone up Google tomorrow and start talking about putting Android on that hardware.</li>
          <li>
            <em>DSLs mostly disappear from the buzz.</em> I still see no strawman (no “pet store”
equivalent), and none of the traditional builders-of-strawmen (Microsoft, Oracle,
etc) appear interested in DSLs much anymore, so I think 2010 will mark the last year
that we spent any time talking about the concept.</li>
          <li>
            <em>Facebook becomes more of a developer requirement than before.</em> I don’t like
Mark Zuckerburg. I don’t like Facebook’s privacy policies. I don’t particularly like
the way Facebook approaches the Facebook Connect experience. But Facebook owns enough
people to be the fourth-largest nation on the planet, and probably commands an economy
of roughly that size to boot. If your app is aimed at the Facebook demographic (that
is, everybody who’s not on Twitter), you have to know how to reach these people, and
that means developing at least some part of your system to integrate with it.</li>
          <li>
            <em>Twitter becomes more of a developer requirement, too.</em> Anybody who’s not on
Facebook is on Twitter. Or dead. So to reach the other half of the online community,
you have to know how to connect out with Twitter.</li>
          <li>
            <em>XMPP becomes more of a developer requirement.</em> XMPP hasn’t crossed a lot of
people’s radar screen before, but Facebook decided to adopt it as their chat system
communication protocol, and Google’s already been using it, and suddenly there’s a
whole lotta traffic going over XMPP. More importantly, it offers a two-way communication
experience that is in some scenarios vastly better than what HTTP offers, yet running
in a very “Internet-friendly” way just as HTTP does. I suspect that XMPP is going
to start cropping up in a number of places as a useful alternative and/or complement
to using HTTP.</li>
          <li>
            <em>“Gamification” starts making serious inroads into non-gaming systems.</em> Maybe
it’s just because I’ve been talking more about gaming, game design, and game implementation
last year, but all of a sudden “gamification”—the process of putting game-like concepts
into non-game applications—is cresting in a big way. FourSquare, Yelp, Gowalla, suddenly
all these systems are offering achievement badges and scoring systems for people who
want to play in their worlds. How long is it before a developer is pulled into a meeting
and told that “we need to put achievement badges into the call-center support application”?
Or the online e-commerce portal? It’ll start either this year or next.</li>
          <li>
            <em>Functional languages will hit a make-or-break point.</em> I know, I said it last
year. But the buzz keeps growing, and when that happens, it usually means that it’s
either going to reach a critical mass and explode, or it’s going to implode—and the
longer the buzz grows, the faster it explodes or implodes, accordingly. My personal
guess is that the “F/O hybrids”—F#, Scala, etc—will continue to grow until they explode,
particularly since the suggested v.Next changes to both Java and C# have to be done
as language changes, whereas futures for F# frequently are either built as libraries
masquerading as syntax (such as asynchronous workflows, introduced in 2.0) or as back-end
library hooks that anybody can plug in (such as type providers, introduced at PDC
a few months ago), neither of which require any language revs—and no concerns about
backwards compatibility with existing code. This makes the F/O hybrids vastly more
flexible and stable. In fact, I suspect that within five years or so, we’ll start
seeing a gradual shift away from pure O-O systems, into systems that use a lot more
functional concepts—and that will propel the F/O languages into the center of the
developer mindshare.</li>
          <li>
            <em>The Microsoft Kinect will lose its shine.</em> I hate to say it, but I just don’t
see where the excitement is coming from. Remember when the Wii nunchucks were the
most amazing thing anybody had ever seen? Frankly, after a slew of initial releases
for the Wii that made use of them in interesting ways, the buzz has dropped off, and
more importantly, the nunchucks turned out to be just another way to move an arrow
around on the screen—in other words, we haven’t found particularly novel and interesting/game-changing
ways to use the things. That’s what I think will happen with the Kinect. Sure, it’s
really freakin’ cool that you can use your body as the controller—but how precise
is it, how quickly can it react to my body movements, and most of all, what new user
interface metaphors are people going to have to come up with in order to avoid the
“me-too” dancing-game clones that are charging down the pipeline right now?</li>
          <li>
            <em>There will be no clear victor in the Silverlight-vs-HTML5 war.</em> And make no
mistake about it, a war is brewing. Microsoft, I think, finds itself in the inenviable
position of having two very clearly useful technologies, each one’s “sphere of utility”
(meaning, the range of answers to the “where would I use it?” question) very clearly
overlapping. It’s sort of like being a football team with both Brett Favre and Tom
Brady on your roster—both of them are superstars, but you <em>know</em>, deep down,
that you have to cut one, because you can’t devote the same degree of time and energy
to both. Microsoft is going to take most of 2011 and probably part of 2012 trying
to support both, making a mess of it, offering up conflicting rationale and reasoning,
in the end achieving nothing but confusing developers and harming their relationship
with the Microsoft developer community in the process. Personally, I think Microsoft
has no choice but to get behind HTML 5, but I like a lot of the features of Silverlight
and think that it has a lot of mojo that HTML 5 lacks, and would actually be in favor
of Microsoft keeping both—so long as they make it <em>very</em> clear to the developer
community when and where each should be used. In other words, the executives in charge
of each should be locked into a room and not allowed out until they’ve hammered out
a business strategy that is then printed and handed out to every developer within
a 3-continent radius of Redmond. (Chances of this happening: .01%)</li>
          <li>
            <em>Apple starts feeling the pressure to deliver a developer experience that isn’t
mired in mid-90’s metaphor.</em> Don’t look now, Apple, but a lot of software developers
are coming to your platform from Java and .NET, and they’re bringing their expectations
for what and how a developer IDE should look like, perform, and do, with them. Xcode
is not a modern IDE, all the Apple fan-boy love for it notwithstanding, and this means
that a few things will happen:</li>
          <ul>
            <li>
              <em>Eclipse gets an iOS plugin.</em> Yes, I know, it wouldn’t work (for the most part)
on a Windows-based Eclipse installation, but if Eclipse can have a native C/C++ developer
experience, then there’s no reason why a Mac Eclipse install couldn’t have an Objective-C
plugin, and that opens up the idea of using Eclipse to write iOS and/or native Mac
apps (which will be critical when the Mac App Store debuts somewhere in 2011 or 2012).</li>
            <li>
              <em>Rumors will abound about Microsoft bringing Visual Studio to the Mac</em>. Silverlight
already runs on the Mac; why not bring the native development experience there? I’m
not saying they’ll actually do it, and certainly not in 2011, but the rumors, they
will be flyin….</li>
            <li>
              <em>Other third-party alternatives to Xcode will emerge and/or grow.</em> MonoTouch
is just one example. There’s opportunity here, just as the fledgling Java IDE market
looked back in ‘96, and people will come to fill it.</li>
          </ul>
          <li>
            <em>NoSQL buzz grows.</em> The NoSQL movement, which sort of got started last year,
will reach significant states of buzz this year. NoSQL databases have a lot to offer,
particularly in areas that relational databases are weak, such as hierarchical kinds
of storage requirements, for example. That buzz will reach a fever pitch this year,
and the relational database moguls (Microsoft, Oracle, IBM) will start to fight back.</li>
        </ul>
        <p>
I could probably go on making a few more, but I think these are enough to get me into
trouble for the year.
</p>
        <p>
To all of you who’ve been readers of this blog for the past year, I thank you—blog-gathered
statistics tell me that I get, on average, about 7,000 hits a day, which just stuns
me—and it is a New Years’ Resolution that I blog more and give you even more reason
to stick around. Happy New Year, and may your 2011 be just as peaceful, prosperous,
and eventful as you want it to be.
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=15d1bb24-7548-446b-90be-8b9d4309d06a" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Tech Predictions, 2011 Edition</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,15d1bb24-7548-446b-90be-8b9d4309d06a.aspx</guid>
      <link>http://blogs.tedneward.com/2011/01/01/Tech+Predictions+2011+Edition.aspx</link>
      <pubDate>Sat, 01 Jan 2011 10:27:11 GMT</pubDate>
      <description>&lt;p&gt;
Long-time readers of this blog know what’s coming next: it’s time for Ted to prognosticate
on what the coming year of tech will bring us. But I believe strongly in accountability,
even in my offered-up-for-free predictions, so one of the traditions of this space
is to go back and revisit my predictions from this time last year. So, without further
ado, let’s look back at &lt;a href="http://blogs.tedneward.com/2010/01/05/2010+Predictions+2009+Predictions+Revisited.aspx"&gt;Ted’s
2010 predictions&lt;/a&gt;, and see how things played out; 2010 predictions are prefixed
with “THEN”, and my thoughts on my predictions are prefixed with “NOW”:
&lt;/p&gt;
&lt;p&gt;
For 2010, I predicted....
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... I will offer 3- and 4-day training classes on F# and
Scala, among other things.&lt;/em&gt; OK, that's not fair—yes, I have the materials, I just
need to work out locations and times. Contact me if you're interested in a private
class, by the way.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Well, I offered them… I just didn’t do much to advertise them
or sell them. I got plenty busy just with the other things I had going on. Besides,
this and the next prediction were pretty much all advertisement anyway, so I don’t
know if anybody really counts these two.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... I will publish two books, one on F# and one on Scala.&lt;/em&gt; OK,
OK, another plug. Or, rather, more of a resolution. One will be the &amp;quot;Professional
F#&amp;quot; I'm doing for Wiley/Wrox, the other isn't yet finalized. But it'll either
be published through a publisher, or self-published, by JavaOne 2010. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; “Professional F# 2.0” shipped in Q3 of 2010; the other Scala
book I decided not to pursue—too much stuff going on to really put the necessary time
into it. (Cue sad trombone.)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... DSLs will either &amp;quot;succeed&amp;quot; this year, or
begin the short slide into the dustbin of obscure programming ideas.&lt;/em&gt; Domain-specific
language advocates have to put up some kind of strawman for developers to learn from
and poke at, or the whole concept will just fade away. Martin's book will help, if
it ships this year, but even that might not be enough to generate interest if it doesn't
have some kind of large-scale applicability in it. Patterns and refactoring and enterprise
containers all had a huge advantage in that developers could see pretty easily what
the problem was they solved; DSLs haven't made that clear yet. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; To be honest, this one is hard to call. Martin Fowler published
his DSL book, which many people consider to be a good sign of what’s happening in
the world, but really, the DSL buzz seems to have dropped off significantly. The strawman
hasn’t appeared in any meaningful public way (I still don’t see an example being offered
up from anybody), and that leads me to believe that the fading-away has started.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... functional languages will start to see a backlash.&lt;/em&gt; I
hate to say it, but &amp;quot;getting&amp;quot; the functional mindset is hard, and there's
precious few resources that are making it easy for mainstream (read: O-O) developers
make that adjustment, far fewer than there was during the procedural-to-object shift.
If the functional community doesn't want to become mainstream, then mainstream developers
will find ways to take functional's most compelling gateway use-case (parallel/concurrent
programming) and find a way to &amp;quot;git 'er done&amp;quot; in the traditional O-O approach,
probably through software transactional memory, and functional languages like Haskell
and Erlang will be relegated to the &amp;quot;What Might Have Been&amp;quot; of computer science
history. Not sure what I mean? Try this: walk into a functional language forum, and
ask what a monad is. Nobody yet has been able to produce an answer that doesn't involve
math theory, or that does involve a practical domain-object-based example. In fact,
nobody has really said why (or if) monads are even still useful. Or catamorphisms.
Or any of the other dime-store words that the functional community likes to toss around. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; I think I have to admit that this hasn’t happened—at least,
there’s been no backlash that I’ve seen. In fact, what’s interesting is that there’s
been some movement to bring those functional concepts—including monads, which surprised
me completely—into other languages like C# or Java for discussion and use. That being
said, though, I don’t see Haskell and Erlang taking center stage as application languages—instead,
I see them taking supporting-cast kinds of roles building other infrastructure that
applications in turn make use of, a la CouchDB (written in Erlang). Monads still remain
a mostly-opaque subject for most developers, however, and it’s still unclear if monads
are something that people should think about applying in code, or if they are one
of those “in theory” kinds of concepts. (You know, one of those ideas that change
your brain forever, but you never actually use directly in code.)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Visual Studio 2010 will ship on time, and be one of
the buggiest and/or slowest releases in its history.&lt;/em&gt; I hate to make this prediction,
because I really don't want to be right, but there's just so much happening in the
Visual Studio refactoring effort that it makes me incredibly nervous. Widespread adoption
of VS2010 will wait until SP1 at the earliest. In fact.... 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW: &lt;/strong&gt;Wow, did I get a few people here in Redmond annoyed with me
about that one. And, as it turned out, I was pretty off-base about its stability.
(It shipped pretty close if not exactly on the ship date Microsoft promised, as I
recall, though I admit I wasn’t paying too much attention to it.)&amp;#160; I’ve been
using VS 2010 for a lot of .NET work in the last six months, and I’ve yet (knock on
wood) to have it crash on me. /bow Visual Studio team.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Visual Studio 2010 SP 1 will ship within three months
of the final product.&lt;/em&gt; Microsoft knows that people wait until SP 1 to think about
upgrading, so they'll just plan for an eager SP 1 release, and hope that managers
will be too hung over from the New Year (still) to notice that the necessary shakeout
time hasn't happened. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Uh…. nope. In fact, SP 1 has just reached a beta/CTP state.
As for managers being too hung over, well…&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Apple will ship a tablet with multi-touch on it, and
it will flop horribly.&lt;/em&gt; Not sure why I think this, but I just don't think the
multi-touch paradigm that Apple has cooked up for the iPhone will carry over to a
tablet/laptop device. That won't stop them from shipping it, and it won't stop Apple
fan-boiz from buying it, but that's about where the interest will end. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Oh, WOW did I come so close and yet missed the mark by a mile.
Of course, the “tablet” that Apple shipped was the iPad, and it did pretty much everything &lt;em&gt;except&lt;/em&gt; flop
horribly. Apple fan-boys bought it… and then about 24 hours later, so did everybody
else. My &lt;em&gt;mom&lt;/em&gt; got one, for crying out loud. And folks, the iPad—along with
the whole “slate” concept—is pretty clearly here to stay.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... JDK 7 closures will be debated for a few weeks, then
become a fait accompli as the Java community shrugs its collective shoulders.&lt;/em&gt; Frankly,
I think the Java community has exhausted its interest in debating new language features
for Java. Recent college grads and open-source groups with an axe to grind will continue
to try and make an issue out of this, but I think the overall Java community just...
doesn't... care. They just want to see JDK 7 ship someday. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Pretty close—except that closures won’t ship as part of JDK
7, largely due to the Oracle acquisition in the middle of the year here. And I was
spot-on vis-à-vis the “they want to see JDK 7 ship someday”; when given the chance
to wait for a year or so for a Java-with-closures to ship, the community overwhelmingly
voted to get something sooner rather than later.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Scala either &amp;quot;pops&amp;quot; in 2010, or begins to
fall apart.&lt;/em&gt; By &amp;quot;pops&amp;quot;, I mean reaches a critical mass of developers
interested in using it, enough to convince somebody to create a company around it,
a la G2One. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; … and by “somebody”, it turns out I meant Martin Odersky. Scala
is pretty clearly a hot topic in the Java space, its buzz being disturbed only by
Clojure. Scala and/or Clojure, plus Groovy, makes a really compelling JVM-based stack.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Oracle is going to make a serious &amp;quot;cloud&amp;quot;
play, probably by offering an Oracle-hosted version of Azure or AppEngine.&lt;/em&gt; Oracle
loves the enterprise space too much, and derives too much money from it, to not at
least appear to have some kind of offering here. Now that they own Java, they'll marry
it up against OpenSolaris, the Oracle database, and throw the whole thing into a series
of server centers all over the continent, and call it &amp;quot;Oracle 12c&amp;quot; (c for
Cloud, of course) or something. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Oracle made a play, but it was to continue to enhance Java,
not build a cloud space. It surprises me that they haven’t made a more forceful move
in this space, but I suspect that a huge amount of time and energy went into folding
Sun into their corporate environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Spring development will slow to a crawl and start to
take a left turn toward cloud ideas.&lt;/em&gt; VMWare bought SpringSource for a reason,
and I believe it's entirely centered around VMWare's movement into the cloud space—they
want to be more than &amp;quot;just&amp;quot; a virtualization tool. Spring + Groovy makes
a compelling development stack, particularly if VMWare does some interesting hooks-n-hacks
to make Spring a virtualization environment in its own right somehow. But from a practical
perspective, any community-driven development against Spring is all but basically
dead. The source may be downloadable later, like the VMWare Player code is, but making
contributions back? Fuhgeddabowdit. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; The Spring One show definitely played up Cloud stuff, and springsource.com
seems to be emphasizing cloud more in a couple of subtle ways. Not sure if I call
this one a win or not for me, though.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... the explosion of e-book readers brings the Kindle 2009
edition way down to size.&lt;/em&gt; The era of the e-book reader is here, and honestly,
while I'm glad I have a Kindle, I'm expecting that I'll be dusting it off a shelf
in a few years. Kinda like I do with my iPods from a few years ago. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Honestly, can’t say that I’m using my Kindle a lot, but I am
reading using the Kindle app on non-Kindle hardware more than I thought I would be.
That said, I am eyeing the new Kindle hardware generation with an acquisitive eye…&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... &amp;quot;social networking&amp;quot; becomes the &amp;quot;Web
2.0&amp;quot; of 2010.&lt;/em&gt; In other words, using the term will basically identify you
as a tech wannabe and clearly out of touch with the bleeding edge. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW: &lt;/strong&gt;Um…. yeah.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Facebook becomes a developer platform requirement.&lt;/em&gt; I
don't pretend to know anything about Facebook—I'm not even on it, which amazes my
family to no end—but clearly Facebook is one of those mechanisms by which people reach
each other, and before long, it'll start showing up as a developer requirement for
companies looking to hire. If you're looking to build out your resume to make yourself
attractive to companies in 2010, mad Facebook skillz might not be a bad investment. 
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; I’m on Facebook, I’ve written some code for it, and given how
much the startup scene loves the “Like” button, I think developers who knew Facebook
in 2010 did pretty well for themselves.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;THEN: &lt;/strong&gt;&lt;em&gt;... Nintendo releases an open SDK for building games for
its next-gen DS-based device.&lt;/em&gt; With the spectacular success of games on the iPhone,
Nintendo clearly must see that they're missing a huge opportunity every day developers
can't write games for the Nintendo DS that are easily downloadable to the device for
playing. Nintendo is not stupid—if they don't open up the SDK and promote &amp;quot;casual&amp;quot;
games like those on the iPhone and those that can now be downloaded to the Zune or
the XBox, they risk being marginalized out of existence.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NOW:&lt;/strong&gt; Um… yeah. Maybe this was me just being hopeful.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
In general, it looks like I was more right than wrong, which is not a bad record to
have. Of course, a couple of those “wrong”s were “giving up the big play” kind of
wrongs, so while I may have a winning record, I still may have a defense that’s given
up too many points to be taken seriously. *shrug* Oh, well.
&lt;/p&gt;
&lt;p&gt;
What portends for 2011?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Android’s penetration into the mobile space is going to rise, then plateau around
the middle of the year.&lt;/em&gt; Android phones, collectively, have outpaced iPhone sales.
That’s a pretty significant statistic—and it means that there’s fewer customers buying
smartphones in the coming year. More importantly, the first generation of Android
slates (including the Galaxy Tab, which I own), are less-than-sublime, and not really
an “iPad Killer” device by any stretch of the imagination. And I think that will slow
down people buying Android slates and phones, particularly since Google has all but
promised that Android releases will start slowing down.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Windows Phone 7 penetration into the mobile space will appear huge, then slow
down towards the middle of the year.&lt;/em&gt; Microsoft is getting some pretty decent
numbers now, from what I can piece together, and I think that’s largely the “I love
Microsoft” crowd buying in. But it’s a pretty crowded place right now with Android
and iPhone, and I’m not sure if the much-easier Office and/or Exchange integration
is enough to woo consumers (who care about Office) or business types (who care about
Exchange) away from their Androids and iPhones.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Android, iOS and/or Windows Phone 7 becomes a developer requirement.&lt;/em&gt; Developers,
if you haven’t taken the time to learn how to program one of these three platforms,
you are electing to remove yourself from a growing market that desperately wants people
with these skills. I see the “mobile native app development” space as every bit as
hot as the “Internet/Web development” space was back in 2000. If you don’t have a
device, buy one. If you have a device, get the tools—in all three cases they’re free
downloads—and start writing stupid little apps that nobody cares about, so you can
have some skills on the platform when somebody cares about it.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;The Windows 7 slates will suck.&lt;/em&gt; This isn’t a prediction, this is established
fact. I played with an “ExoPC” 10” form factor slate running Windows 7 (Dell I think
was the manufacturer), and it was a horrible experience. Windows 7, like most OSes,
really expects a keyboard to be present, and a slate doesn’t have one—so the OS was
hacked to put a “keyboard” button at the top of the screen that would slide out to
let you touch-type on the slate. I tried to fire up Notepad and type out a haiku,
and it was an unbelievably awkward process. Android and iOS clearly own the slate
market for the forseeable future, and if Dell has any brains in its corporate head,
it will phone up Google tomorrow and start talking about putting Android on that hardware.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;DSLs mostly disappear from the buzz.&lt;/em&gt; I still see no strawman (no “pet store”
equivalent), and none of the traditional builders-of-strawmen (Microsoft, Oracle,
etc) appear interested in DSLs much anymore, so I think 2010 will mark the last year
that we spent any time talking about the concept.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Facebook becomes more of a developer requirement than before.&lt;/em&gt; I don’t like
Mark Zuckerburg. I don’t like Facebook’s privacy policies. I don’t particularly like
the way Facebook approaches the Facebook Connect experience. But Facebook owns enough
people to be the fourth-largest nation on the planet, and probably commands an economy
of roughly that size to boot. If your app is aimed at the Facebook demographic (that
is, everybody who’s not on Twitter), you have to know how to reach these people, and
that means developing at least some part of your system to integrate with it.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Twitter becomes more of a developer requirement, too.&lt;/em&gt; Anybody who’s not on
Facebook is on Twitter. Or dead. So to reach the other half of the online community,
you have to know how to connect out with Twitter.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;XMPP becomes more of a developer requirement.&lt;/em&gt; XMPP hasn’t crossed a lot of
people’s radar screen before, but Facebook decided to adopt it as their chat system
communication protocol, and Google’s already been using it, and suddenly there’s a
whole lotta traffic going over XMPP. More importantly, it offers a two-way communication
experience that is in some scenarios vastly better than what HTTP offers, yet running
in a very “Internet-friendly” way just as HTTP does. I suspect that XMPP is going
to start cropping up in a number of places as a useful alternative and/or complement
to using HTTP.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;“Gamification” starts making serious inroads into non-gaming systems.&lt;/em&gt; Maybe
it’s just because I’ve been talking more about gaming, game design, and game implementation
last year, but all of a sudden “gamification”—the process of putting game-like concepts
into non-game applications—is cresting in a big way. FourSquare, Yelp, Gowalla, suddenly
all these systems are offering achievement badges and scoring systems for people who
want to play in their worlds. How long is it before a developer is pulled into a meeting
and told that “we need to put achievement badges into the call-center support application”?
Or the online e-commerce portal? It’ll start either this year or next.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Functional languages will hit a make-or-break point.&lt;/em&gt; I know, I said it last
year. But the buzz keeps growing, and when that happens, it usually means that it’s
either going to reach a critical mass and explode, or it’s going to implode—and the
longer the buzz grows, the faster it explodes or implodes, accordingly. My personal
guess is that the “F/O hybrids”—F#, Scala, etc—will continue to grow until they explode,
particularly since the suggested v.Next changes to both Java and C# have to be done
as language changes, whereas futures for F# frequently are either built as libraries
masquerading as syntax (such as asynchronous workflows, introduced in 2.0) or as back-end
library hooks that anybody can plug in (such as type providers, introduced at PDC
a few months ago), neither of which require any language revs—and no concerns about
backwards compatibility with existing code. This makes the F/O hybrids vastly more
flexible and stable. In fact, I suspect that within five years or so, we’ll start
seeing a gradual shift away from pure O-O systems, into systems that use a lot more
functional concepts—and that will propel the F/O languages into the center of the
developer mindshare.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;The Microsoft Kinect will lose its shine.&lt;/em&gt; I hate to say it, but I just don’t
see where the excitement is coming from. Remember when the Wii nunchucks were the
most amazing thing anybody had ever seen? Frankly, after a slew of initial releases
for the Wii that made use of them in interesting ways, the buzz has dropped off, and
more importantly, the nunchucks turned out to be just another way to move an arrow
around on the screen—in other words, we haven’t found particularly novel and interesting/game-changing
ways to use the things. That’s what I think will happen with the Kinect. Sure, it’s
really freakin’ cool that you can use your body as the controller—but how precise
is it, how quickly can it react to my body movements, and most of all, what new user
interface metaphors are people going to have to come up with in order to avoid the
“me-too” dancing-game clones that are charging down the pipeline right now?&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;There will be no clear victor in the Silverlight-vs-HTML5 war.&lt;/em&gt; And make no
mistake about it, a war is brewing. Microsoft, I think, finds itself in the inenviable
position of having two very clearly useful technologies, each one’s “sphere of utility”
(meaning, the range of answers to the “where would I use it?” question) very clearly
overlapping. It’s sort of like being a football team with both Brett Favre and Tom
Brady on your roster—both of them are superstars, but you &lt;em&gt;know&lt;/em&gt;, deep down,
that you have to cut one, because you can’t devote the same degree of time and energy
to both. Microsoft is going to take most of 2011 and probably part of 2012 trying
to support both, making a mess of it, offering up conflicting rationale and reasoning,
in the end achieving nothing but confusing developers and harming their relationship
with the Microsoft developer community in the process. Personally, I think Microsoft
has no choice but to get behind HTML 5, but I like a lot of the features of Silverlight
and think that it has a lot of mojo that HTML 5 lacks, and would actually be in favor
of Microsoft keeping both—so long as they make it &lt;em&gt;very&lt;/em&gt; clear to the developer
community when and where each should be used. In other words, the executives in charge
of each should be locked into a room and not allowed out until they’ve hammered out
a business strategy that is then printed and handed out to every developer within
a 3-continent radius of Redmond. (Chances of this happening: .01%)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Apple starts feeling the pressure to deliver a developer experience that isn’t
mired in mid-90’s metaphor.&lt;/em&gt; Don’t look now, Apple, but a lot of software developers
are coming to your platform from Java and .NET, and they’re bringing their expectations
for what and how a developer IDE should look like, perform, and do, with them. Xcode
is not a modern IDE, all the Apple fan-boy love for it notwithstanding, and this means
that a few things will happen:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Eclipse gets an iOS plugin.&lt;/em&gt; Yes, I know, it wouldn’t work (for the most part)
on a Windows-based Eclipse installation, but if Eclipse can have a native C/C++ developer
experience, then there’s no reason why a Mac Eclipse install couldn’t have an Objective-C
plugin, and that opens up the idea of using Eclipse to write iOS and/or native Mac
apps (which will be critical when the Mac App Store debuts somewhere in 2011 or 2012).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Rumors will abound about Microsoft bringing Visual Studio to the Mac&lt;/em&gt;. Silverlight
already runs on the Mac; why not bring the native development experience there? I’m
not saying they’ll actually do it, and certainly not in 2011, but the rumors, they
will be flyin….&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Other third-party alternatives to Xcode will emerge and/or grow.&lt;/em&gt; MonoTouch
is just one example. There’s opportunity here, just as the fledgling Java IDE market
looked back in ‘96, and people will come to fill it.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;em&gt;NoSQL buzz grows.&lt;/em&gt; The NoSQL movement, which sort of got started last year,
will reach significant states of buzz this year. NoSQL databases have a lot to offer,
particularly in areas that relational databases are weak, such as hierarchical kinds
of storage requirements, for example. That buzz will reach a fever pitch this year,
and the relational database moguls (Microsoft, Oracle, IBM) will start to fight back.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I could probably go on making a few more, but I think these are enough to get me into
trouble for the year.
&lt;/p&gt;
&lt;p&gt;
To all of you who’ve been readers of this blog for the past year, I thank you—blog-gathered
statistics tell me that I get, on average, about 7,000 hits a day, which just stuns
me—and it is a New Years’ Resolution that I blog more and give you even more reason
to stick around. Happy New Year, and may your 2011 be just as peaceful, prosperous,
and eventful as you want it to be.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=15d1bb24-7548-446b-90be-8b9d4309d06a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,15d1bb24-7548-446b-90be-8b9d4309d06a.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>C++</category>
      <category>Conferences</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Python</category>
      <category>Reading</category>
      <category>Review</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Social</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=04e22091-4920-4169-bae0-fd5d66527182</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,04e22091-4920-4169-bae0-fd5d66527182.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,04e22091-4920-4169-bae0-fd5d66527182.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=04e22091-4920-4169-bae0-fd5d66527182</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://redmond.startupweekend.org/">Startup Weekend</a> came to Redmond this
weekend, and as I write this it is all of three hours over. In the spirit of capturing
post-mortem thoughts as quickly as possible, I thought I’d blog my reactions and thoughts
from it, both as a reference for myself for the next one, and as a guide/warning/data
point for others considering doing it.
</p>
        <p>
A few weeks ago, emails started crossing the Seattle Tech Startup mailing list about
this thing called “Startup Weekend”. I didn’t do a whole lot of research around it—just
glanced at the website, and asked a few questions of the organizer in an email. Specifically,
I wanted to know that as a tech guy, with no specific startup ideas, I would find
something to do. I was reassured immediately that, in fact, as a tech guy, I would
be “heavily recruited” by others at the event who were business types.
</p>
        <blockquote>
          <p>
            <em>First takeaway: I can’t speak for all the events, this being my first, but it
was a surprise, nay, a shock, to me just how many “business” and/or “marketing” types
were at this event. I seriously expected that tech folks would outnumber the non-tech
folks by a substantial margin, but it was exactly the opposite, probably on the order
of 2 to 1. As a developer, I was definitely being courted, rather than hunting for
a team to find a way to make room for me. It was refreshing, exciting and a little
overwhelming at the same time.</em>
          </p>
        </blockquote>
        <p>
The format of the event is interesting: anybody can pitch an idea, then everybody
in the room is free to “attach” themselves to that idea to form a team to implement
it somehow, sort of a “Law of Two Feet” applied to team-building.
</p>
        <blockquote>
          <p>
            <em>Second takeaway: Have a pretty clear idea of what you want to do here. The ideas
initially all sound pretty good, and choosing between them can actually be quite painful
and difficult. Have a clear goal for yourself what you want out of the weekend—to
socialize, to stretch yourself, to build a business, whatever. Mine were (1) just
to be here and experience the event, (2) to socialize and network more deeply with
the startup scene, (3) to hack on some code and try to ship something, and (4) to
learn some new tech that I hadn’t had the chance to use beyond a “Hello World” demo
before. There was always the chance I wouldn’t get any of those things, in which case
I accepted a consolation prize of simply watching how the event was structured and
run, since it operates in many ways on the same basic concept that  GiveCamp
does, which is something I want to see done in Seattle sooner rather than later. So
just by going and watching the event as a uninvolved observer was worth the price
of admission, so once I’d walked through the door, I’d already met my #1 win condition.</em>
          </p>
        </blockquote>
        <p>
I realized as I was choosing which team to join that I didn’t want to be paired alone
with the project-pitching person (whomever that would be), since I had no idea how
this event worked or what we were going for, so I deliberately turned away from a
few projects that sounded interesting. I ended up as part of a team that was pretty
well spread-out in terms of skillsets/interests (Chris, developer and “original idea
guy”, Libby, business development, Maizer, also business development, Mohammed, small
businessman, and Aaron, graphic designer), working on an idea around “social bar gaming”.
In other words, we had a nebulous fuzzy idea about using games on a mobile device
to help people in bars connect to other people in bars via some kind of “scavenger
hunt” or similar social-engagement game. I had suggested that maybe one feature or
idea would be to help groups of hard-drinking souls chart their path between bars
(something like a Traveling Saleman’s Problem meets a PubCrawl), and Chris thought
that was definitely something to consider. We laid out a brief idea of what it was
we wanted to build, then parted ways Friday night about midnight or so, except for
Chris and myself, who headed out to Denny’s to mull over some technology ideas for
a while, until about 3 AM in the morning.
</p>
        <blockquote>
          <p>
            <em>Third takeaway: Hoard the nighttime hours on Friday, to spend them working on
the app the rest of the weekend. Even though you’re full of energy Friday night, rarin’
to go, bank it because you’ll need to be well-rested for the marathon that is Saturday
and Sunday.</em>
          </p>
        </blockquote>
        <p>
Chris and I briefly discussed the technology approaches we could use, and settled
in on using Azure for the backplane, mostly because I felt it would be the quickest
way to get us provisioned on a server, and it was an excuse for me to play with Azure,
something I haven’t had much of a chance to do beyond simple demos. We also thought
that having some kind of Facebook integration would be a good idea, depending on what
we actually wanted to do with the idea. I thought to myself, “OK, so this is going
to be interesting for me—I’m going to be actually ‘stretching’ on three things simultaneously:
Azure, Facebook, and whatever Web framework we use to build this”, since I haven’t
done much Web work in .NET in many, many years, and don’t consider myself “up to speed”
on either ASP.NET or ASP.NET MVC. Chris was a “front to middle tier” guy, though,
so I figured I’d focus on the Azure back-end parts—storage, queueing, etc—and maybe
the Facebook integration, and we’d be good.
</p>
        <p>
By Saturday morning, thanks to a few other things I had to do after Chris left, I
got there a bit late—about 10:30—fully expecting that the team had a pretty clear
app vision laid out and ready for Chris and I to execute on. Alas, not quite—we were
still sort of thrashing on what exactly we wanted to build—specifically, we kept bouncing
back and forth between what the game would be and how it would be monetized. If we
wanted to sell to bars as a way to get more bodies in the door, then we needed some
kind of “check-in” game where people earned points for bringing friends to the bar.
Or we could sell to bars by creating a game that was a kind of “scavenger hunt”, forcing
patrons to discover things about the bar or about new drinks the bar sells, and so
on. But we also wanted a game that was intrinsically social, forcing peoples’ eyes
away from the screens and up towards the other patrons—otherwise why play the game?
</p>
        <p>
Aaron, a two-time veteran of Startup Weekend, suggested that we finalize our vision
by 11 AM so we could start hacking. By 11 AM, we had a vision… until about an hour
later, when I realized that Libby, Chris, Maizer, and Mohammed were changing the game
to suit new monetization ideas. We set another deadline for 2 PM, at which point we
had a vision…. until about an hour later again, when I looked up again and found them
discussing again what kind of game we wanted to build. In the end, it wasn’t until
7 or 8 PM Saturday when we finally nailed down some kind of game app idea—and then
only because Aaron came out of his shell a little and politely yelled at the group
for wasting all of our time.
</p>
        <blockquote>
          <p>
            <em>Fourth takeaway: Know what’s clear and unclear about your vision/idea. I think
we didn’t realize how nebulous our ideas were until we started trying to put game
mechanics around it, and that was what led to all the thrashing on ideas.</em>
          </p>
          <p>
            <em>Fifth takeaway: Put somebody in charge. Have a dictator in place. Yes, everybody
wants to be polite and yes, choosing a leader can be a bit uncomfortable, but having
that final unambiguous deciding vote—a leader—who can make decisions and isn’t afraid
to do so would have saved us a lot of headache and gotten us much more quickly down
the path. Libby said it best in our little post-mortem at the bar afterwards: Don’t
you dare leave Friday night until everybody is 100% clear on what you’re building.</em>
          </p>
        </blockquote>
        <p>
Meanwhile, on the technical front, another warm front was meeting another cold front
and developing into a storm. When we’d decided to use Azure, I had suggested it over
Google App Engine because Chris had said he’d done some development with it before,
so I figured he was comfortable with it and ready to go. As we started pulling out
laptops to start working, though, Chris mentioned that he needed to spin up a virtual
machine with Windows 7, Visual Studio, and the Azure tools in it. No worries—I needed
some time to read up on Azure provisioning, data storage, and so on.
</p>
        <p>
Unfortunately, setting up the VM took until about 8 PM Saturday night, meaning we
lost 11 of our 15 hours (9 AM to midnight) for that day.
</p>
        <blockquote>
          <p>
            <em>Sixth takeaway: Have your tools ready to go before you get there. Find a hosting
provider—come on, everybody is going to need a hosting provider, even if you build
a mobile app—and have a virtual machine or laptop configured with every dev tool you
can think of, ready to go. Getting stuff downloaded and installed is burning a very
precious commodity that you don’t have nearly enough of: time.</em>
          </p>
          <p>
            <em>Seventh takeaway: Be clear about your personal motivation/win conditions for the
weekend. Yes, I wanted to explore a new tech, but Chris took that to mean that I wasn’t
going to succeed if we abandoned Azure, and as a result, we burned close to 50% of
our development cycles prepping a VM just so I could put Azure on my resume. I would’ve
happily redacted that line on my resume in exchange for getting us up and running
by 11 AM Saturday morning, particularly because it became clear to me that others
in the group were running with win conditions of “spin up a legitimate business startup
idea”, and I had already met most of my win conditions for the weekend by this point.
I should’ve mentioned this much earlier, but didn’t realize what was happening until
a chance comment Chris made in passing Saturday night when we left for the night.</em>
          </p>
        </blockquote>
        <p>
Sunday I got in about noonish, owing to a long day, short night, and forgotten cell
phone (alarm clock) in the car. By the time I got there, tempers were starting to
flare because we were clearly well behind the curve. Chris had been up all night working
on HTML forms for the game, Aaron had been up all night creating some (amazing!) graphics
for the game, I had been up a significant part of the night diving into Facebook APIs,
and I think we all sensed that this was in real danger of falling apart. Unfortunately,
we couldn’t even split the work between Chris and I, because we had (foolishly) not
bothered to get some kind of source-control server going for the code so we could
work in parallel.
</p>
        <blockquote>
          <p>
            <em>See the sixth takeaway. It applies to source-control servers, too. And source-control
clients, while we’re at it.</em>
          </p>
        </blockquote>
        <p>
We were slotted to present our app and business idea first, as it turned out, which
was my preference—I figured that if we went first, we might set a high bar that other
groups would have a hard time matching. (That turned out to be a really false hope—the
other groups’ work was amazing.) The group asked me to make the pitch, which was fine
with me—when have I ever turned down the chance to work a crowd?
</p>
        <p>
But our big concern was the demo—we’d originally called for a “feature freeze” at
4PM, so we would have time to put the app on the server and test it, but by 4:15 Chris
was still stitching pages together and putting images on pages. In fact, the push
to the Azure server for v0.1 of our app happened about about 5:15, a full 30 seconds
before I started the pitch.
</p>
        <p>
The pitch itself was deliberately simple: we put Libby on a bar stool facing the crowd,
Mohammed standing against a wall, and said, “Ever been in a bar, wanting to strike
up a conversation with that cute girl at the far table? With Pubbn, we give you an
excuse—a social scavenger hunt—to strike up a conversation with her, or earn some
points, or win a discount from the bar, or more. We want to take the usual social
networking premise—pushing socialization into the network—and instead flip it on its
ear—using the network to make it easier to socialize.” It was a nice pitch, but I
forgot to tell people to download the app and try it during the demo, which left some
people thinking we never actually finished anything. ACK.
</p>
        <blockquote>
          <p>
            <em>Pubbn, by the way, was our app name, derived (obviously) from “going pubbing”,
as in, going out to drink and socialize. I loved this name. It’s up at <a href="http://www.pubbn.com">http://www.pubbn.com</a>,
but I’ll warn you now, it’s a static mockup and a far cry from what we wanted to end
up with—in fact, I’ll go out on a limb and say that of all the projects, ours was
by far the weakest technical achievement, and I lay the blame for that at my feet.
I should’ve stepped up and taken more firm control of the development so Chris could
focus more on the overall picture.</em>
          </p>
        </blockquote>
        <p>
The eventual winners for the weekend were “Doodle-A-Doodle”, a fantastic learn-to-draw
app for kids on the iPad; “Hold It!”, a game about standing in line in the mens’ room;
and “CamBadge”, a brilliant little iPhone app for creating a conference badge on your
phone, hanging your phone around your neck, and snapping a picture of the person standing
in front of you with a single touch to the screen (assuming, of course, you have an
iPhone 4 with its front-facing camera). 
</p>
        <blockquote>
          <p>
            <em>“CamBadge” was one of the apps I thought about working on, but passed on it because
it didn’t seem challenging enough technologically. Clearly that was a foolish choice
from a business perspective, but this is why knowing what your win conditions for
the weekend are so important—I didn’t necessarily want to build a new business out
of this weekend, and, to me, the more important “win” was to make a social connection
with the people who looked like good folks to know in this space—and the “CamBadge”
principal, Adam, clearly fit that bill. Drinking with him was far more important—to
me—than building an app with him. Next Startup Weekend, my win conditions might be
different, and if so, I’d make an entirely different decision.</em>
          </p>
        </blockquote>
        <p>
In the end, Startup Weekend was a blast, and something I thoroughly recommend every
developer who’s ever thought of going independent do. The cost is well, well worth
the experience, and if you fail miserably, well, better to do that here, with so little
invested, than to fail later in a “real” startup with millions attached.
</p>
        <p>
By the way, Startup Weekend Redmond was/is #swred on Twitter, if you want to see the
buzz that came out of it. Particularly good reading are the Tweets starting at about
5 PM tonight, because that’s when the presentations started.
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=04e22091-4920-4169-bae0-fd5d66527182" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Thoughts on my first Startup Weekend</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,04e22091-4920-4169-bae0-fd5d66527182.aspx</guid>
      <link>http://blogs.tedneward.com/2010/12/13/Thoughts+On+My+First+Startup+Weekend.aspx</link>
      <pubDate>Mon, 13 Dec 2010 09:53:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://redmond.startupweekend.org/"&gt;Startup Weekend&lt;/a&gt; came to Redmond this
weekend, and as I write this it is all of three hours over. In the spirit of capturing
post-mortem thoughts as quickly as possible, I thought I’d blog my reactions and thoughts
from it, both as a reference for myself for the next one, and as a guide/warning/data
point for others considering doing it.
&lt;/p&gt;
&lt;p&gt;
A few weeks ago, emails started crossing the Seattle Tech Startup mailing list about
this thing called “Startup Weekend”. I didn’t do a whole lot of research around it—just
glanced at the website, and asked a few questions of the organizer in an email. Specifically,
I wanted to know that as a tech guy, with no specific startup ideas, I would find
something to do. I was reassured immediately that, in fact, as a tech guy, I would
be “heavily recruited” by others at the event who were business types.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;First takeaway: I can’t speak for all the events, this being my first, but it
was a surprise, nay, a shock, to me just how many “business” and/or “marketing” types
were at this event. I seriously expected that tech folks would outnumber the non-tech
folks by a substantial margin, but it was exactly the opposite, probably on the order
of 2 to 1. As a developer, I was definitely being courted, rather than hunting for
a team to find a way to make room for me. It was refreshing, exciting and a little
overwhelming at the same time.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The format of the event is interesting: anybody can pitch an idea, then everybody
in the room is free to “attach” themselves to that idea to form a team to implement
it somehow, sort of a “Law of Two Feet” applied to team-building.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Second takeaway: Have a pretty clear idea of what you want to do here. The ideas
initially all sound pretty good, and choosing between them can actually be quite painful
and difficult. Have a clear goal for yourself what you want out of the weekend—to
socialize, to stretch yourself, to build a business, whatever. Mine were (1) just
to be here and experience the event, (2) to socialize and network more deeply with
the startup scene, (3) to hack on some code and try to ship something, and (4) to
learn some new tech that I hadn’t had the chance to use beyond a “Hello World” demo
before. There was always the chance I wouldn’t get any of those things, in which case
I accepted a consolation prize of simply watching how the event was structured and
run, since it operates in many ways on the same basic concept that&amp;#160; GiveCamp
does, which is something I want to see done in Seattle sooner rather than later. So
just by going and watching the event as a uninvolved observer was worth the price
of admission, so once I’d walked through the door, I’d already met my #1 win condition.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I realized as I was choosing which team to join that I didn’t want to be paired alone
with the project-pitching person (whomever that would be), since I had no idea how
this event worked or what we were going for, so I deliberately turned away from a
few projects that sounded interesting. I ended up as part of a team that was pretty
well spread-out in terms of skillsets/interests (Chris, developer and “original idea
guy”, Libby, business development, Maizer, also business development, Mohammed, small
businessman, and Aaron, graphic designer), working on an idea around “social bar gaming”.
In other words, we had a nebulous fuzzy idea about using games on a mobile device
to help people in bars connect to other people in bars via some kind of “scavenger
hunt” or similar social-engagement game. I had suggested that maybe one feature or
idea would be to help groups of hard-drinking souls chart their path between bars
(something like a Traveling Saleman’s Problem meets a PubCrawl), and Chris thought
that was definitely something to consider. We laid out a brief idea of what it was
we wanted to build, then parted ways Friday night about midnight or so, except for
Chris and myself, who headed out to Denny’s to mull over some technology ideas for
a while, until about 3 AM in the morning.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Third takeaway: Hoard the nighttime hours on Friday, to spend them working on
the app the rest of the weekend. Even though you’re full of energy Friday night, rarin’
to go, bank it because you’ll need to be well-rested for the marathon that is Saturday
and Sunday.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Chris and I briefly discussed the technology approaches we could use, and settled
in on using Azure for the backplane, mostly because I felt it would be the quickest
way to get us provisioned on a server, and it was an excuse for me to play with Azure,
something I haven’t had much of a chance to do beyond simple demos. We also thought
that having some kind of Facebook integration would be a good idea, depending on what
we actually wanted to do with the idea. I thought to myself, “OK, so this is going
to be interesting for me—I’m going to be actually ‘stretching’ on three things simultaneously:
Azure, Facebook, and whatever Web framework we use to build this”, since I haven’t
done much Web work in .NET in many, many years, and don’t consider myself “up to speed”
on either ASP.NET or ASP.NET MVC. Chris was a “front to middle tier” guy, though,
so I figured I’d focus on the Azure back-end parts—storage, queueing, etc—and maybe
the Facebook integration, and we’d be good.
&lt;/p&gt;
&lt;p&gt;
By Saturday morning, thanks to a few other things I had to do after Chris left, I
got there a bit late—about 10:30—fully expecting that the team had a pretty clear
app vision laid out and ready for Chris and I to execute on. Alas, not quite—we were
still sort of thrashing on what exactly we wanted to build—specifically, we kept bouncing
back and forth between what the game would be and how it would be monetized. If we
wanted to sell to bars as a way to get more bodies in the door, then we needed some
kind of “check-in” game where people earned points for bringing friends to the bar.
Or we could sell to bars by creating a game that was a kind of “scavenger hunt”, forcing
patrons to discover things about the bar or about new drinks the bar sells, and so
on. But we also wanted a game that was intrinsically social, forcing peoples’ eyes
away from the screens and up towards the other patrons—otherwise why play the game?
&lt;/p&gt;
&lt;p&gt;
Aaron, a two-time veteran of Startup Weekend, suggested that we finalize our vision
by 11 AM so we could start hacking. By 11 AM, we had a vision… until about an hour
later, when I realized that Libby, Chris, Maizer, and Mohammed were changing the game
to suit new monetization ideas. We set another deadline for 2 PM, at which point we
had a vision…. until about an hour later again, when I looked up again and found them
discussing again what kind of game we wanted to build. In the end, it wasn’t until
7 or 8 PM Saturday when we finally nailed down some kind of game app idea—and then
only because Aaron came out of his shell a little and politely yelled at the group
for wasting all of our time.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Fourth takeaway: Know what’s clear and unclear about your vision/idea. I think
we didn’t realize how nebulous our ideas were until we started trying to put game
mechanics around it, and that was what led to all the thrashing on ideas.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Fifth takeaway: Put somebody in charge. Have a dictator in place. Yes, everybody
wants to be polite and yes, choosing a leader can be a bit uncomfortable, but having
that final unambiguous deciding vote—a leader—who can make decisions and isn’t afraid
to do so would have saved us a lot of headache and gotten us much more quickly down
the path. Libby said it best in our little post-mortem at the bar afterwards: Don’t
you dare leave Friday night until everybody is 100% clear on what you’re building.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Meanwhile, on the technical front, another warm front was meeting another cold front
and developing into a storm. When we’d decided to use Azure, I had suggested it over
Google App Engine because Chris had said he’d done some development with it before,
so I figured he was comfortable with it and ready to go. As we started pulling out
laptops to start working, though, Chris mentioned that he needed to spin up a virtual
machine with Windows 7, Visual Studio, and the Azure tools in it. No worries—I needed
some time to read up on Azure provisioning, data storage, and so on.
&lt;/p&gt;
&lt;p&gt;
Unfortunately, setting up the VM took until about 8 PM Saturday night, meaning we
lost 11 of our 15 hours (9 AM to midnight) for that day.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Sixth takeaway: Have your tools ready to go before you get there. Find a hosting
provider—come on, everybody is going to need a hosting provider, even if you build
a mobile app—and have a virtual machine or laptop configured with every dev tool you
can think of, ready to go. Getting stuff downloaded and installed is burning a very
precious commodity that you don’t have nearly enough of: time.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Seventh takeaway: Be clear about your personal motivation/win conditions for the
weekend. Yes, I wanted to explore a new tech, but Chris took that to mean that I wasn’t
going to succeed if we abandoned Azure, and as a result, we burned close to 50% of
our development cycles prepping a VM just so I could put Azure on my resume. I would’ve
happily redacted that line on my resume in exchange for getting us up and running
by 11 AM Saturday morning, particularly because it became clear to me that others
in the group were running with win conditions of “spin up a legitimate business startup
idea”, and I had already met most of my win conditions for the weekend by this point.
I should’ve mentioned this much earlier, but didn’t realize what was happening until
a chance comment Chris made in passing Saturday night when we left for the night.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Sunday I got in about noonish, owing to a long day, short night, and forgotten cell
phone (alarm clock) in the car. By the time I got there, tempers were starting to
flare because we were clearly well behind the curve. Chris had been up all night working
on HTML forms for the game, Aaron had been up all night creating some (amazing!) graphics
for the game, I had been up a significant part of the night diving into Facebook APIs,
and I think we all sensed that this was in real danger of falling apart. Unfortunately,
we couldn’t even split the work between Chris and I, because we had (foolishly) not
bothered to get some kind of source-control server going for the code so we could
work in parallel.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;See the sixth takeaway. It applies to source-control servers, too. And source-control
clients, while we’re at it.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
We were slotted to present our app and business idea first, as it turned out, which
was my preference—I figured that if we went first, we might set a high bar that other
groups would have a hard time matching. (That turned out to be a really false hope—the
other groups’ work was amazing.) The group asked me to make the pitch, which was fine
with me—when have I ever turned down the chance to work a crowd?
&lt;/p&gt;
&lt;p&gt;
But our big concern was the demo—we’d originally called for a “feature freeze” at
4PM, so we would have time to put the app on the server and test it, but by 4:15 Chris
was still stitching pages together and putting images on pages. In fact, the push
to the Azure server for v0.1 of our app happened about about 5:15, a full 30 seconds
before I started the pitch.
&lt;/p&gt;
&lt;p&gt;
The pitch itself was deliberately simple: we put Libby on a bar stool facing the crowd,
Mohammed standing against a wall, and said, “Ever been in a bar, wanting to strike
up a conversation with that cute girl at the far table? With Pubbn, we give you an
excuse—a social scavenger hunt—to strike up a conversation with her, or earn some
points, or win a discount from the bar, or more. We want to take the usual social
networking premise—pushing socialization into the network—and instead flip it on its
ear—using the network to make it easier to socialize.” It was a nice pitch, but I
forgot to tell people to download the app and try it during the demo, which left some
people thinking we never actually finished anything. ACK.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Pubbn, by the way, was our app name, derived (obviously) from “going pubbing”,
as in, going out to drink and socialize. I loved this name. It’s up at &lt;a href="http://www.pubbn.com"&gt;http://www.pubbn.com&lt;/a&gt;,
but I’ll warn you now, it’s a static mockup and a far cry from what we wanted to end
up with—in fact, I’ll go out on a limb and say that of all the projects, ours was
by far the weakest technical achievement, and I lay the blame for that at my feet.
I should’ve stepped up and taken more firm control of the development so Chris could
focus more on the overall picture.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The eventual winners for the weekend were “Doodle-A-Doodle”, a fantastic learn-to-draw
app for kids on the iPad; “Hold It!”, a game about standing in line in the mens’ room;
and “CamBadge”, a brilliant little iPhone app for creating a conference badge on your
phone, hanging your phone around your neck, and snapping a picture of the person standing
in front of you with a single touch to the screen (assuming, of course, you have an
iPhone 4 with its front-facing camera). 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;“CamBadge” was one of the apps I thought about working on, but passed on it because
it didn’t seem challenging enough technologically. Clearly that was a foolish choice
from a business perspective, but this is why knowing what your win conditions for
the weekend are so important—I didn’t necessarily want to build a new business out
of this weekend, and, to me, the more important “win” was to make a social connection
with the people who looked like good folks to know in this space—and the “CamBadge”
principal, Adam, clearly fit that bill. Drinking with him was far more important—to
me—than building an app with him. Next Startup Weekend, my win conditions might be
different, and if so, I’d make an entirely different decision.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
In the end, Startup Weekend was a blast, and something I thoroughly recommend every
developer who’s ever thought of going independent do. The cost is well, well worth
the experience, and if you fail miserably, well, better to do that here, with so little
invested, than to fail later in a “real” startup with millions attached.
&lt;/p&gt;
&lt;p&gt;
By the way, Startup Weekend Redmond was/is #swred on Twitter, if you want to see the
buzz that came out of it. Particularly good reading are the Tweets starting at about
5 PM tonight, because that’s when the presentations started.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=04e22091-4920-4169-bae0-fd5d66527182" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,04e22091-4920-4169-bae0-fd5d66527182.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>Azure</category>
      <category>C#</category>
      <category>Conferences</category>
      <category>Development Processes</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Review</category>
      <category>Ruby</category>
      <category>VMWare</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=bd7339e6-fdd5-4f2a-b711-de9a38f6c743</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,bd7339e6-fdd5-4f2a-b711-de9a38f6c743.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,bd7339e6-fdd5-4f2a-b711-de9a38f6c743.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bd7339e6-fdd5-4f2a-b711-de9a38f6c743</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hey, anybody who’s got significant VMWare mojo, help out a bro?
</p>
        <p>
I’ve got a Win7 VM (one of many) that appears to be exhibiting weird disk behavior—the
vmdk, a growable single-file VMDK, is almost precisely twice the used space. It’s
a 120GB growable disk, and the Win7 guest reports about 35GB used, but the VMDK takes
about 70GB on host disk. CHKDSK inside Windows says everything’s good, and the VMWare
“Disk Cleanup” doesn’t change anything, either. It doesn’t seem to be a Windows7 thing,
because I’ve got a half-dozen other Win7 VMs that operate… well, normally (by which
I mean, 30GB used in the VMDK means 30GB used on disk). It’s a VMWare Fusion host,
if that makes any difference. Any other details that might be relevant, let me know
and I’ll post.
</p>
        <p>
Anybody got any ideas what the heck is going on inside this disk?
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=bd7339e6-fdd5-4f2a-b711-de9a38f6c743" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>VMWare help</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,bd7339e6-fdd5-4f2a-b711-de9a38f6c743.aspx</guid>
      <link>http://blogs.tedneward.com/2010/09/09/VMWare+Help.aspx</link>
      <pubDate>Thu, 09 Sep 2010 03:53:01 GMT</pubDate>
      <description>&lt;p&gt;
Hey, anybody who’s got significant VMWare mojo, help out a bro?
&lt;/p&gt;
&lt;p&gt;
I’ve got a Win7 VM (one of many) that appears to be exhibiting weird disk behavior—the
vmdk, a growable single-file VMDK, is almost precisely twice the used space. It’s
a 120GB growable disk, and the Win7 guest reports about 35GB used, but the VMDK takes
about 70GB on host disk. CHKDSK inside Windows says everything’s good, and the VMWare
“Disk Cleanup” doesn’t change anything, either. It doesn’t seem to be a Windows7 thing,
because I’ve got a half-dozen other Win7 VMs that operate… well, normally (by which
I mean, 30GB used in the VMDK means 30GB used on disk). It’s a VMWare Fusion host,
if that makes any difference. Any other details that might be relevant, let me know
and I’ll post.
&lt;/p&gt;
&lt;p&gt;
Anybody got any ideas what the heck is going on inside this disk?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=bd7339e6-fdd5-4f2a-b711-de9a38f6c743" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,bd7339e6-fdd5-4f2a-b711-de9a38f6c743.aspx</comments>
      <category>.NET</category>
      <category>Android</category>
      <category>C#</category>
      <category>C++</category>
      <category>Conferences</category>
      <category>Development Processes</category>
      <category>F#</category>
      <category>Flash</category>
      <category>Industry</category>
      <category>iPhone</category>
      <category>Java/J2EE</category>
      <category>Languages</category>
      <category>LLVM</category>
      <category>Mac OS</category>
      <category>Objective-C</category>
      <category>Parrot</category>
      <category>Python</category>
      <category>Reading</category>
      <category>Review</category>
      <category>Ruby</category>
      <category>Scala</category>
      <category>Security</category>
      <category>Social</category>
      <category>Solaris</category>
      <category>Visual Basic</category>
      <category>VMWare</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
    <item>
      <trackback:ping>http://blogs.tedneward.com/Trackback.aspx?guid=18bb3331-dec4-4cc3-8a2f-1d80f302f478</trackback:ping>
      <pingback:server>http://blogs.tedneward.com/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.tedneward.com/PermaLink,guid,18bb3331-dec4-4cc3-8a2f-1d80f302f478.aspx</pingback:target>
      <dc:creator>Ted Neward</dc:creator>
      <wfw:comment>http://blogs.tedneward.com/CommentView,guid,18bb3331-dec4-4cc3-8a2f-1d80f302f478.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.tedneward.com/SyndicationService.asmx/GetEntryCommentsRss?guid=18bb3331-dec4-4cc3-8a2f-1d80f302f478</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
CoDe Magazine (for whom I do a back-cover editorial every other month) has been running
a different kind of column recently, one which has not only been generating some good
buzz, but also offers a unique opportunity for those who are interested in maybe dipping
their toes into the technical writing game. This message was posted by Markus Eggers,
the publisher of CoDe, on several different mailing lists, and he asked me to spread
the word out:
</p>
        <blockquote>
          <p>
As you may know, each issue of CODE Magazine has a PostMortem column, where the author
discusses a .NET related project and points out 5 things that went well, and 5 things
that didn’t (we call them “challenges” ;-) ). This column has been pretty popular
and provides some great visibility for the author and the companies involved in the
project.
</p>
          <p>
We are looking for more authors for upcoming issues. If you are interested, please
don’t hesitate to contact me.
</p>
          <p>
For more info on PostMortems, check out this writer’s guide: 
</p>
          <p>
            <a href="http://codemag.com/Write/PostMortem">http://codemag.com/Write/PostMortem</a>
          </p>
          <p>
For an example PostMortem, check out this recent article:
</p>
          <p>
            <a href="http://www.epsdownloadsite.com/downloads/d1392e8a-ddcc-4507-95e7-5d933574d997/PostMortemExample.pdf">http://www.epsdownloadsite.com/downloads/d1392e8a-ddcc-4507-95e7-5d933574d997/PostMortemExample.pdf</a>
          </p>
        </blockquote>
        <p>
As an added incentive, if you think you have an interesting project that would work
well for a PostMortem, but don’t feel like your writing is quite “up to snuff”, feel
free to loop me in on the conversation, and at the very least I’ll offer a “pre-editorial
review” of the article and offer up some suggestions on how to make it stronger. (But
Rod Paddock, CoDe’s editor, is also a pretty good editor, and so you might just submit
it to him first to get his take on it.)
</p>
        <p>
In any event, take the shot and see if you’ve got some writing chops in you. :-)
</p>
        <img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=18bb3331-dec4-4cc3-8a2f-1d80f302f478" />
        <br />
        <hr />
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. <a href="mailto:ted@tedneward.com">Contact
me for details</a>.</body>
      <title>Ever thought of being a writer?</title>
      <guid isPermaLink="false">http://blogs.tedneward.com/PermaLink,guid,18bb3331-dec4-4cc3-8a2f-1d80f302f478.aspx</guid>
      <link>http://blogs.tedneward.com/2010/08/26/Ever+Thought+Of+Being+A+Writer.aspx</link>
      <pubDate>Thu, 26 Aug 2010 05:21:40 GMT</pubDate>
      <description>&lt;p&gt;
CoDe Magazine (for whom I do a back-cover editorial every other month) has been running
a different kind of column recently, one which has not only been generating some good
buzz, but also offers a unique opportunity for those who are interested in maybe dipping
their toes into the technical writing game. This message was posted by Markus Eggers,
the publisher of CoDe, on several different mailing lists, and he asked me to spread
the word out:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
As you may know, each issue of CODE Magazine has a PostMortem column, where the author
discusses a .NET related project and points out 5 things that went well, and 5 things
that didn’t (we call them “challenges” ;-) ). This column has been pretty popular
and provides some great visibility for the author and the companies involved in the
project.
&lt;/p&gt;
&lt;p&gt;
We are looking for more authors for upcoming issues. If you are interested, please
don’t hesitate to contact me.
&lt;/p&gt;
&lt;p&gt;
For more info on PostMortems, check out this writer’s guide: 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codemag.com/Write/PostMortem"&gt;http://codemag.com/Write/PostMortem&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
For an example PostMortem, check out this recent article:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.epsdownloadsite.com/downloads/d1392e8a-ddcc-4507-95e7-5d933574d997/PostMortemExample.pdf"&gt;http://www.epsdownloadsite.com/downloads/d1392e8a-ddcc-4507-95e7-5d933574d997/PostMortemExample.pdf&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
As an added incentive, if you think you have an interesting project that would work
well for a PostMortem, but don’t feel like your writing is quite “up to snuff”, feel
free to loop me in on the conversation, and at the very least I’ll offer a “pre-editorial
review” of the article and offer up some suggestions on how to make it stronger. (But
Rod Paddock, CoDe’s editor, is also a pretty good editor, and so you might just submit
it to him first to get his take on it.)
&lt;/p&gt;
&lt;p&gt;
In any event, take the shot and see if you’ve got some writing chops in you. :-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.tedneward.com/aggbug.ashx?id=18bb3331-dec4-4cc3-8a2f-1d80f302f478" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Enterprise consulting, mentoring or instruction. Java, C++, .NET or XML services.
1-day or multi-day workshops available. &lt;a href="mailto:ted@tedneward.com"&gt;Contact
me for details&lt;/a&gt;.</description>
      <comments>http://blogs.tedneward.com/CommentView,guid,18bb3331-dec4-4cc3-8a2f-1d80f302f478.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>F#</category>
      <category>Industry</category>
      <category>Python</category>
      <category>Visual Basic</category>
      <category>WCF</category>
      <category>Windows</category>
      <category>XML Services</category>
      <category>XNA</category>
    </item>
  </channel>
</rss>