Passion * Technology * Ruthless Competence

Tuesday, April 22, 2008

Morning Coffee 163

Between MVP summit last week, ALT.NET this past weekend and an internal brown-bag presentation yesterday, my unread email and blog posts have piled up. Most of the following is old news, but I wanted to get something out. Especially since I feel a case of Caps Fever coming on that will force - force you understand - me to head home early today.

DyLang Stuff

  • My teammate Srivatsn demonstrates how to make your static C# types act more dynamic in order to interop better with DLR languages. For example, by implementing GetBoundMember and SetMemberAfter, you can support setting arbitrary attributes on a C# class from Python. Cool.
  • Today's Michael Foord link: On Testing: Some Programmers Refuse to Get it. He's responding to a comment by Allen Holub suggesting that having 110k of test code for 30k of production code is "a real indictment of the language" (IronPython). I'm with Michael on this, Holub's suggestion is laughable and worse radically uninformed. I like the way Larry O'Brien (who passed on Holub's comment in the first place) describes the views of tests from inside and outside the agile community. I also like his description of tests as "quality diodes".

Other Stuff

  • Werner Vogels posts about a new Amazon EC2 feature: Persistent local storage. Basically, you can create an empty volume up to a terabyte in size and then mount it to your images as a drive. The objective seems to be able to run relational databases in the images, rather than being limited to S3 and SimpleDB. Kinda interesting, but given Google's announcement last week, I think the shine is off EC2 a bit.
  • This past weekend's Twitter outage has Dave Winer re-thinking the idea of building networks on a single point of failure. While obviously I agree with the concept, I don't agree with his solution that "We need some big infrastructure companies to get into this game". While there are some big blog infrastructures out there, most of that network was built on a massive number of small infrastructures. Why wouldn't the same thing work for microblogging?
Posted By Harry Pierson at 11:27 AM Pacific Daylight Time

Thursday, April 17, 2008

Wanna Work on IPy + VS?

We've hired a few people around here recently (including me obviously). However, if you have a burning desire to work on IronPython (or IronRuby) and Visual Studio, we're still hiring:

An important aspect of developing these dynamic languages [aka IronPython and IronRuby] is providing support in the Visual Studio IDE. This includes editing features (color-coding of source code, intellisense, go-to-definition, refactoring, etc), debugging features (breakpoints, data tool tips, etc), ensuring a language-specific look-and-feel (interactive console, etc), and integration into the Visual Studio project system. It includes integration with the various designers like the WPF designer via CodeDOM, and development of project templates for various scenarios (Silverlight 2 app, WPF app, ASP.Net website, VSTT unit tests, etc). We also want to integrate with Visual Studio technologies like profiling and code coverage. Your job will be to ensure that developers using dynamic languages built on top of the Dynamic Language Runtime (DLR) have the best development environment in Visual Studio.

We’re looking for a talented developer with exceptional programming ability and a passion for dynamic languages. Experience in these areas is a bonus though not strictly required: building developer tools like editors and debuggers, compiler implementation, reflection, dynamic languages, VM implementation, performance measurement and/or optimization, C#. Applicants should have a BS/MS in computer science or equivalent, and three or more years of industry experience.

Posted By Harry Pierson at 3:52 PM Pacific Daylight Time

Monday, March 17, 2008

DLR Resources & Jobs

I'm back home from PyCon, but between digging out my inbox, finishing transition reports and doing my mid-year career discussion I'm a little busy. But I did want to point at a couple of recent posts from the IPy team blog:

Posted By Harry Pierson at 11:25 AM Pacific Standard Time

Friday, March 14, 2008

IronPython 2.0 Beta 1 Released

I'm sitting in the PyCon keynote right now, but I wanted to take a quick second to say congrats to my new teammates for getting the brand spanking new beta 1 drop of IronPython 2.0. You can find out what's new via the release notes.

Posted By Harry Pierson at 6:42 AM Pacific Standard Time

Tuesday, March 11, 2008

Joining the Dynamic Languages Team

After nearly two years in MSIT and six years focused on architecture across three different roles, I'm moving on to a new job in the Developer Division. In a couple of weeks, I'll be joining the Dynamic Languages team as a program manager. This is the team who ships IronPython, IronRuby, the Dynamic Language Runtime and Dynamic Silverlight. After seeing all the their cool work at Lang.NET this year, I just had to be a part of it.

As you might imagine, I'm pretty excited about this opportunity.

In the short term, I'll be primarily focused on IronPython, which is marching towards their 2.0 release. Towards that end, I'm attending PyCon 2008 in Chicago this weekend, though I don't officially change jobs for a couple more weeks. Longer term...well let's just say I'm going to be really focused on doing my part to get IPy 2.0 out the door and after that we'll see where things lie. This is a pretty big shift for me, so I'm explicitly trying to focus on short term work for the first six months in order to absorb as much knowledge as possible from the folks I'll be working with like Jim Hugunin, John Lam, Martin Maly, Jimmy Schementi and a bunch of others who I haven't met yet.

While this is a pretty big role shift, I haven't given up my passion for services and/or architecture. In other words, this isn't the last you'll hear about Kitchen Sink Variability, the ROI of EA or my perspective on Nick's Shared Integration Model. Obviously, with the job focus change, I expect focus on my blog to change as well. I'm not exactly sure how blogging fits into this new role, though the Dynamic Languages team is pretty open and many other members blog (as linked above) so I doubt I'm going anywhere. I'm going to try and keep blogging Morning Coffee, but I'm guessing it won't be quite as regular as it has been in the past. Unfortunately, I am going to stop coding F# for a while (sorry, Don!) I can't focus on learning two languages at once and obviously Python is my new top priority.

I wasn't in my MSIT architect role that long, but I feel that the "in the trenches" experience will serve me greatly for years to come. And of course, I will miss my teammates, especially Dale  who regular readers might remember from filling in around here occasionally.

Posted By Harry Pierson at 9:49 AM Pacific Standard Time

Friday, March 07, 2008

Morning Coffee 156

  • My hockey team won last night 4-2. No points for me, but I was even on the night. I did spend some time in the penalty box, but I was serving a two many men on the ice bench minor. We only had nine skaters, not enough for two full lines, so I'm pretty tired today. However, I'm not as tired as I was two weeks ago - that's a good sign.
  • Politics 2.0 watch: The Obama campain announced yesterday that they raised $55 million in donations in the month of February. That's significantly more than Clinton ($35 million) and McCain ($12 million) combined. Even more impressive is that $45 million of that was raised online, of which $40 million were from donations of $100 or less and $22.5 million were from donations of $25 or less. I guess in Politics 2.0, individuals contribute more than online punditry and video parodies of political commercials.
  • TextGlow is a Sivlerlight 2 based Word docx file viewer, created by James Newton-King. Nice, but what I really want is "SlideGlow", a SL2 based PPTX file viewer. (via DNK)
  • Speaking of Silverlight, Windows Live launched an experimental site called PhotoZoom which will let you create DeepZoom photo albums. (via LiveSide)
  • Charlie Calvert has created a home for Language Futures discussion on MSDN Code Gallery. If you'll recall, back in January he asked for input on Dynamic Lookup. Now he's looking for feedback on Call Hierarchy, a proposed VS IDE feature to help you visualize how your code flows. Great idea, but the Call Hierarchy dialog mockup isn't very intuitive. Couldn't we put these visualizations into the code editor window directly, like CodeRush does?
  • John Lam continues his Dynamic Silverlight series, first building a Flickr image browser in Managed JScript then showing how to integrate an IronRuby version of the Flickr image browser with an ASP.NET MVC app.
  • EdJez is inspiring. Subscribed. (via Brad Wilson)
Posted By Harry Pierson at 10:34 AM Pacific Standard Time

Wednesday, March 05, 2008

Morning Coffee 154

  • Did you see yesterday's Dilbert cartoon? Classic.
  • MIX isn't the only Microsoft conference this week. It's also time for the annual MS Research TechFest conference. It actually started yesterday, with a keynote from Rick Rashid and Craig Mundy (available on demand). I'll be heading up there later today and will blog everything I saw that is public, like I did last year. In the meantime, you can check out some cool MS Research projects on the TechFest video page.
  • Speaking of MS Research, they've published the Singularity source code (for academic and non-commercial purposes) on CodePlex. Singularity is research OS "focused on the construction of dependable systems". I've wanted to play with this, but I've never had the time. Frankly, that hasn't changed, but now that it's available to the community, I'm hoping I can live vicariously thru other people hacking around with it.
  • Some announcements coming out of MIX won't be a surprise to anyone:
  • Here some primarily "new" news from MIX:.
    • I'm not sure which team owns it, but I'd say the biggest previously-unannounced news was SQL Server Data Services (aka SSDS), a "highly scalable, on-demand data storage and query processing utility services." In other words, SQL in the sky. There's a free beta sometime this month you can sign up for. Very cool, though no word on what it's going to cost. If you're interested in this, I'd keep an I on the Data Platform Insider blog.
    • John Lam announces the Dynamic Silverlight extension that lets you run DLR languages on Silverlight. Given that they talked about this last year, I'm not sure it's really "news", but John provides lots of gory details so it made the cute. But are they really using "DSL" as the acronym for this? Guys, that acronym's already taken.
    • Mary Jo Foley has a scoop on Silverlight for Nokia Symbian mobile phones.
    • There's a new beta of Expression Studio 2 as well as a separate Expression Blend 2.5 preview for Silverlight 2. Soma has the details. This isn't really a surprise, but I hadn't seen any news on new versions of all the Expression Studio products.
Posted By Harry Pierson at 11:27 AM Pacific Standard Time

Monday, January 28, 2008

Morning Coffee 140

  • I only posted one Morning Coffee post last week. It wasn't a lack of content, it was a lack of drive on my part. I had 20-30 items flagged in my news reader, but for some reason I couldn't work up the interest in posting them. So some of these are a bit old.
  • I'm at the Language.NET Symposium this week, so look for lots of language blogging. I've already chatted with Tomáš Petříček and John Lam. If someone kicks Ted Neward's ass because he hates Perl, I'll try and liveblog it.
  • Speaking of Ted Neward, he discusses the question "Can Dynamic Languages Scale?" without devolving into a flame-fest. I agree 100% with his point about the difference between performance scaling and complexity scaling. Personally, I tend to err on the side of better complexity scaling, since buying hardware is easier than hiring developers.
  • Nick Malik responds to me calling his shared global integration vision flawed. He points to NGOSS/eTOM as an example of a shared iterative model that works. I know squat about that shared model, so I'll refrain from commenting until I do a little homework on the telco industry.
  • Speaking of shared interop models, Microsoft is joining DataPortability.org. Dare Obasanjo and Marc Canter are skeptical that so far this effort is all hype and no substance. Reminds me a bit of AttentionTrust.org. But if DataPortability.org can get off the ground, maybe there's hope for Nick's vision (or vis-versa).
  • Don Syme lists what's new in the latest F# release. As I said, this release is pretty light on features. Hopefully, I'll get some details
  • Tomas Restrepo shows how to change your home folder in PowerShell. I need to do this.
Posted By Harry Pierson at 9:10 AM Pacific Standard Time

Thursday, January 03, 2008

Morning Coffee 134

  • Bill de Hora responds to a few of my Durable and RESTful ideas. He points out that relying on a client-generated ID can be troublesome, and recommends using multiple identifiers - one created by the sender, one by the receiver and one representing the message exchange itself. However, the sender ID is vulnerable to client bugs & tampering as Bill points out, and neither the receiver ID nor the exchange ID can be used to determine if a given message is a duplicate. If you don't trust the sender, is it even possible to determine if a given message is a duplicate?
  • Pablo Castro confirms that there are "practical limits" to what ADO.NET Data Services can do with respect to idempotence. Nothing in his post was surprising, though I hope it will be more explicitly called out in the final docs. Developers used to the comforting protection of a transaction may be in for a rude awakening.
  • Dare Obasanjo has a great post comparing the new features in C# 3.0 to dynamic languages like IronPython. I believe many of the productivity aspects of dynamic languages have little to do with being dynamic.
  • Pat Helland noodles on durability and messaging, two topics near and dear to my heart (probably from working with him for a couple of years). I'm not sure where he's going with this - his conclusion that "Basically, big, complex, and distributed system are big, complex, and distributed" isn't exactly ground-breaking. But his point that "durable" isn't a binary concept is worth more consideration. Also, his description of IMS only looking at the effects of a committed transaction is very similar to how web sites work, though obviously HTTP isn't durable so you can't make event horizon optimizations like IMS did.
  • Tangentially related, Werner Vogels discusses the idea of eventually consistent distributed databases. Today, that's a problem mostly only Internet-scale sites like Amazon deal with. In the near future of continued data explosion + manycore, we'll all have to deal with it.
  • Nick Malik argues that categorizing enterprise applications by lifecycle is much less useful than categorization based on organizational impact. He might also need a new chair.
  • Jesus Rodriguez digs into one of SSB's new features in SQL 2008: conversation priorities.
  • Arnon Rotem-Gal-Oz and Sam Gentile are mixing it up over the definition of SOA. Sam thinks SOA has to include business drivers and Arnon doesn't. I'm with Sam on this, defining "SOA" independently from "Applying SOA" seems pointless. Then again, rigorously defining SOA - much less arguing about said definition - seems like a waste of time in the first place IMHO.
  • Wow, this guy Zed is mad at the Ruby community.
  • Andrew Baron has 8 Reasons Why The TV Studios Will Die. Personally, I think reason #2 - Expendable Middle-Person - is the most important. If content producers can reach consumers directly, what value-add will the networks provide? (via United Hollywood)
Posted By Harry Pierson at 10:00 AM Pacific Standard Time
DevHawk
World Tour 2008
DevDays 2008

Change Congress
Recent Bookmarks
Tags .NET Framework (2) ADO.NET (5) Agile (7) AJAX (3) Architecture (282) Guidance (6) Interop (2) Modelling (61) Patterns (7) Process (4) SOA (93) Web Services (5) ASP.NET (18) Battlestar Galactica (3) BI (2) BizTalk (4) Blogging (113) dasBlog (11) Podcasting (4) BPM (1) C# (5) C++ (3) Capitals (5) CardSpace (3) CLR (2) College Football (10) Comedy Central (1) Community (81) Concurrency (6) Consumer Electronics (1) Database (12) Dependency Injection (2) Development (115) C Plus Plus (1) Embedded (5) Lanugages (36) Media (2) P2P (11) Rotor (1) SharePoint (6) SOP (3) DIY (1) DLR (8) Domain Specific Languages (13) Durable Messaging (5) Dynamic Languages (9) Dynamic Silverlight (1) Education (3) Enterprise 2.0 (1) Entertainment (14) ETech (15) F# (38) Functional Programming (11) Game Development (2) Guidance Automation (3) Hardware (8) HawkEye (3) Hockey (29) Home Electronics (1) Home Network (4) Humor (5) IASA (1) Idempotence (3) infrastructure (5) Instrumentation (4) Integration (2) IronPython (14) IronRuby (3) Java (2) Job (3) LINQ (19) Lost (1) Master Data Management (1) Media 2.0 (6) Microsoft (27) MIX06 (2) Mobile Phone (1) Morning Coffee (165) Object Oriented (4) Office (5) Open Source (4) Open Space (2) Operations (3) Other (135) Art (1) Books (1) Family (30) Games (17) General Geekery (25) Home Theater (1) Movies (22) Music (20) Politics (3) Society (1) Sports (37) Working at MSFT (15) Parsing Expression Grammar (15) patterns & practices (2) Politics (39) PowerPoint (2) PowerShell (28) Presentation (4) Projects (1) HawkWiki (1) Python (3) Quote of the Day (4) Refactoring (1) Research (2) REST (18) Reuse (5) Robotics (1) Rome (5) Ruby (23) Sci-Fi (2) Scripting (4) Security (3) Service Broker (14) SharePoint (2) Silverlight (15) Social Software (1) Software + Services (2) Software Factories (11) Software Industry (1) Spark (1) SQL Server (2) Stephen Colbert (1) TechEd (7) TechEd06 (1) TechRec League (1) Television (6) Travel (5) Unified Client (1) Unit Testing (3) UX (1) Virtual PC (2) Visual Studio (19) Volta (2) Washington Capitals (33) WCF (31) Web 2.0 (64) Web Services (5) WF (20) Windows Live (21) Xbox (1) Xbox 360 (51) XML (7) XNA (13)
Disclaimer: The information in this weblog is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion. Inappropriate comments will be deleted at the authors discretion.