Lars Kemmann

Back to Profile: Lars Kemmann


  • GoingNative 9: LINQ for C/C++, Native Rx, Meet Aaron Lahman

    Looking forward to this.  Hope MS follows the pro-standardization direction that Herb Sutter has been trying to set.

    @dot_tom: I agree - a standard, source-format, portable XML library is very much needed.  (And a JSON library, a TCP/IP library, and an HTTP library.  Likely all built on an async task/futures-based runtime.)

    Who knows?  If this keeps up, maybe I can switch from C# to C++ a few years sooner than I planned!  (I'm not going to get my hopes up just yet, though.)

  • What is a database, really?

    My my, they keep adding more dimensions to that diagram.  (Not shown in the ACM article is the "homoiconicity" dimension (IQueryable & IQbservable) - I guess 4D is just too hard to print.)

    Wonder what'll show up next...?

  • What is a database, really?

    Meijer + Beckman = rate as "5 stars" before even finishing the download. Smiley

  • TWC9: WCF Data Services v5, Performance Killers, Project Detroit and more

    Personally, I preferred being able to skim the bulleted list quickly - but then, I always get C9 via RSS.  (I almost never watch TWC9. Embarassed)  Plus, the caption on each thumbnail is too small to read.

    But maybe it's great for others?

  • Variadic Templates are Funadic

    Dear C9 Team,

    Since conferences always seem to bring a lot of "where's the video" comments, could you add some sort of status indicator on these posts?  Something like:

    • Talk has not happened yet
    • Talks is airing live
    • Talk is past and was recorded, is now in processing (ideally with an ETA, but you can only do so much)
    • Talk uploaded for perpetual on-demand access by Niners Smiley
  • YOW! 2011: Allen Wirfs-Brock and Rob Manson - Ambient Computing, Augmented Reality, and JavaScript

    Right, sorry Charles.  Rob Manson's comment in the video about how native apps cause fragmentation was what triggered some of my comments, but it was definitely just a side remark of his. Smiley  Allow me to try again, if that's okay.

    The big question underlying the video is just how to address - and prevent - that very fragmentation of native/platform-specific apps.  In other words, in the world of ambient computing - where a proliferation of devices with ever-changing form factors and ever-increasing interconnectivity is the norm - how do you really manage to "write once, run anywhere"?

    In that respect, Java was the champion in the late 90s but failed to deliver (for whatever reason, I blame UI mostly but I'm not familiar enough with the history of Java).  .NET came along as Microsoft's take on portability (MSIL), and the idea of WPF/E had us all cheering for a long time.  But because Silverlight/XAML stayed a (mostly) closed platform, it was never really adopted universally on the Web, so now HTML5 is the dominant option for a "write once, run anywhere" de facto standard.  And it will stay that way.

    Hence my worries when the Web becomes fragmented with vendor-specific extensions that have no plans for standardization (whether Metro, Chrome, or anything else).  I love taking advantage of close operating system integration, don't get me wrong, but the only way to make that profitable in the long term (in the absence of an OS monopoly) is to keep pushing cross-OS (e.g., Web) standards.

    A classic example of this is GDI vs. HTML5 Canvas.  Both (more or less) neatly express the need to draw free-form graphics across myriad devices - in ever-changing form factors - in a portable way.  When Windows was universal, GDI was the de facto answer for doing graphics.  But with the arrival of more devices that didn't run Windows, another approach was needed and evolved from Apple's custom Canvas tag into an HTML5 standard.  As browser implementations then "caught up" with the standard (in other words, as Canvas became a standard way to do free-form graphics), we developers were suddenly able to use hardware-accelerated rendering - across any device that implemented the Canvas tag!  Canvas thus subsumed GDI in a more portable way because the market reality changed.

    Sure, taking advantage of the latest and greatest (whether hardware-accelerated rendering in the 2000s or touch in the 2010s) will always require non-standard extensions (or even platforms) for early adopters, and there's a great first-mover advantage to doing so (that's why, for example, I keep specializing in Windows rather than trying to learn all the intricacies of Linux, Mac OS X/iOS, or Android - when I need close OS integration I can only afford to do it with one OS).  But in the long term, for those technologies to become commodities, we need a standardized way to use them.

    So the more I think about it, maybe IE10 isn't so bad after all. Smiley  To reword what I said to aL_, as an engineering professional I should respect standards unless there is a compelling reason to go vendor-specific, and even then I need to keep pushing for the standards to catch up.

    So - where is the standard multi-touch/gesture API for Javascript?  And where is the one that supports three-dimensional interactions with ambient cameras like Kinect? Smiley

  • YOW! 2011: Allen Wirfs-Brock and Rob Manson - Ambient Computing, Augmented Reality, and JavaScript


    It's about COM interop, true (MS definitely did that well), but it's also about pushing a proprietary API with a proprietary app store that generates a vendor lock-in for Microsoft.  It's the Win32 API war all over again.


    I agree, users don't know the difference between a proprietary Internet (e.g., the route that is being taken by Apple iDevices, Google Chromebooks, Microsoft IE10) and an open Internet.  Don't you think it's our responsibility as engineering professionals to make the decisions for them?

    The web stack is able to do incredible things - think Google Wave, Google Docs, or Prezi.

    Interesting times indeed. Smiley

  • YOW! 2011: Allen Wirfs-Brock and Rob Manson - Ambient Computing, Augmented Reality, and JavaScript

    @aL_: I was thinking about this "too slow" progress of standards bodies today, actually from the point of view of gaming (something I hadn't seriously looked at in a while).  Sparked by this article about a presentation by Forrester CEO George Colony on the end of the web, I was thinking about the question of whether HTML5+ and technologies like WebGL can keep pace with consumer (or business) demand, or whether native apps really are the future (as they were the past).

    While there are some fundamental limitations to the web architecture that mean you'll always have some more freedoms locally (case in point: Javascript), I think the standards have been growing just about as fast as real consumer demand.  Note that for "us" (developers), things like 3D and asynchrony (think WPF/Silverlight, web sockets) are things we wanted yesterday.  On the other hand, the average user - whether consumer or enterprise - has always lagged behind in actual adoption.  I think the "general user adoption lag" and "standardization lag" are actually - fortunately for the web, and unfortunately for Mr. Colony - about the same in most cases.  So we'll continue to see a thriving web that meets real needs, as long as we maintain our commitment to the standards.

    Standards are almost as fundamental as analytical models and the laws of physics for most engineering disciplines.  My respect for standards has grown significantly over the last few years as I've learned more about them, and I shudder to think what a future forever dominated by fragmented native "apps" will look like.  I hope Microsoft and others will be agile enough in their business models to embrace standards (and I don't mean the embrace-extend-extinguish kind!).

    What worries me now is that Google/Chrome is starting to neglect the standards, and so is Microsoft/IE10.  Lock-in and fragmentation of the market with native "extensions" (specifically apart from any goal of standardizing them, e.g. IE10's WRT API has no standards ambitions) is certainly one business strategy, and it has short-term benefits for the companies that employ it.  I would love to see Microsoft, Google, Apple, and others fully embrace a standards-driven Internet and allow open competition on a level playing field (and adjust their business models accordingly), but I'm just being idealistic when I hope for that.

    Follow the money.

    Bottom line: technology isn't going to be the death of the web, corporate strategy is.  The standard web just doesn't yield sufficient profit margins for Microsoft, Apple, or even Google.  (The standard web used to be a goldmine for Google when it was the best offering on every browser, but ironically Google is probably pursuing custom extensions today primarily as a result of competition from Bing/Yahoo.)

    You could easily prove me wrong - if you could find a way for one of those three companies to grow its shareholder value without resorting to custom extensions to help them win the battle.  Good luck. Smiley

  • YOW! 2011: Damian Conway - Temporally Quaquaversal Virtual Nanomachine Programming Made Easy

    Please let us know when the session videos are released, I can't wait to watch the keynote.

  • SQL Azure Data Sync- Synchronize Data across On-Premise and Cloud (E2C)

    SQL Azure Data Sync is a great tool; even though it's only at a CTP stage, the experience is already quite polished and it's a pleasure to use.  I've used it to export a database (schema and all) from an Azure subscription to my local machine; I needed to take my services offline for a longer period of time and had to create a full backup.  (Perhaps this wasn't the ideal way to do that.  But it was fun! Smiley)

    On that note, it would be nice if Windows/SQL Azure subscriptions would support "deactivating" a service or database, respectively.  I would like to be able to store these things (perhaps in my Azure storage account) with the ability to bring them back online at a later date.  (Added to the linked UserVoice site: Allow taking a database offline to prevent charges to my account. (

  • Ping 114: Fast Async, Kinect Fusion, IE beats malware, Bing most effective

    The 'Fast Async' link seems to be broken. Sad

  • The Full Stack, Part 7: Entity Framework to Phone: The Client Side

    Enjoying the series!  (Especially the dependency injection w/ Entity Framework - I wasn't sure if that was possible, and it's the biggest reason I've held off on using EF until now.)

    Nitpicker's Corner: Your media download links for this post are not in the standard order, so I ended up (almost) downloading the MP3 or the MP4 instead of the WMV version.  C9 devs, you've gotta get that fixed or I'm going to suffer motor memory loss. Smiley