Nima Dilmaghani’s Technology Blog

How best to announce a new technology or how Google does things differently

Usually, technology companies make significant releases of first versions of their technologies or major upgrades at large technology conferences that they closely control. Apple announced and for the first time publicly demoed the iPhone at Mac World in 2007.  Microsoft announced and released early access to Windows Azure at the Professional Developers Conference in the fall of 2008.  Similarly, Microsoft will make several technology releases at the Mix conference this week.  This is usually done in a setting where all eyes are on the company.  Everything is very carefully prepared and the demos, the interviews, the sound bites, and the method of distribution of early access is carefully crafted and rehearsed.  Press is in abundance at these conferences and hungry for the headline that is sure to come.  This practice stems from how information was distributed in the past.  Both the regular media and the industry press would be at the event in force ready for the news story perfectly crafted by the technology company.  The big launch of Technology XYZ, done properly, would guarantee a good story in that night’s TV news program, big coverage in the next day’s paper, and in the weekly and monthly magazines that would follow.  The marketing experts at the technology companies are usually headed by MBA types with business backgrounds.  Their training and experience tells them that the more positive media coverage they get the more successful they have become.

However, the question to ask is if this is the best way to get the news out to the developers, the people who will actually build with these technologies going forward.  Google clearly thinks not.  Like in many other areas, Google has been doing things differently.  Google did not announce App Engine at Google I/O last year.  Instead they chose to announce it about a month before the big conference, at a small invite only event called Google Campfire One.   By the time developers arrived at Google I/O a month later, they had already played with the product and could ask the more advanced questions.  While this approach does not provide the media splash that the traditional approach delivers, it is inherently better for the developers and for the platform.  It gives the community several weeks to play with the bits, understand them, and come to the conference with informed questions and feedback.  The presentations can now range from beginner level to advanced topics, and the end product of the conference is customer developers that can better use the platform and build fantastic products on top of it.  In the end, it is not how much media splash a technology gets that defines its success or failure.  Sadly it is not even the quality of the technology itself.    It is the quality, and usefulness of what developers build on it.  Unfortunately, in traditional technology companies, the metrics of marketing success and failure have been the number of articles published and more recently the number of related blog posts and tweets.  Not how quickly we can get the community of developers to install, learn, and build on the new platform.  

I strongly suspect that Google will do the same this year.  Watch out for Camp Fire Two in the next few weeks where Google will make their announcements and releases.  And learn, learn, learn before coming to Google I/O where you can take your knowledge to the next level.  Why would Google change a working formula that no other technology company has even groked?

There is another reason other companies have not groked this approach.  Traditionally technology companies like Microsoft sell software and traditionally their customers have been enterprises that would wait and wait and wait before adopting the software and allowing it to be installed and used in their data centers.  That period of time from announcement to deployment has been long enough that it has made the traditional marketing method superior.  We are surely moving away from this world.  In the world of cloud computing and services, there is no deployment.  We live in the world of instant gratification.   And in this new world, Google’s approach is the winner’s approach.  There is also one other difference that needs mention.  App Engine is not particularly targeted to the enterprise.  The business decision maker that chooses the Google solution is much closer to the developer than the person who decides between SQL Server and Oracle.  The enterprise business decision maker is more likely to be at the big conference, and hear about the release at the keynote, and then create an action item for his engineers to play with and evaluate the new technology.  Therefore, the traditional method still may have advantages.

Having said the above, every platform company should still look closely at what Google is doing and take it one step further.  Put as much as possible of your marketing dollar in training your customers, and enabling outside developers to build their knowledge and expertise of the new platform quickly so they can build great products on it.  Then and only then will your platform be truly successful, go viral and become the envy of the industry.


Wow CodeCamp!

Posted in 104812 by nimad on November 6, 2008

Silicon Valley Code Camp is happening this weekend.  I missed last year while away on personal family matters.  I have to say that I am pleasantly surprised by how popular it has become.  Compared to two years ago when we started the event,  this year has more than twice as many sessions and almost twice as many registrants.    This is due to the great team who is organizing and promoting Code Camp.  Peter KellnerMichael Van RiperKevin NilsonBess HoKim GreenleeFletcher Johnson, Kenny Spade, and Anand Iyer.  Thanks to them for putting in hours and hours of volunteer time, we all can come, learn and network for free, and eat too.  Note that there is a little publicized Saturday night barbecue planned for after the sessions are over. So make sure to put that on  our calender.  I will be there both days.  If you see me, please say hello.  I have just come back and would love to reconnect.  I will also be giving a talk on Regular Expressions.  If you ever wondered what those hieroglyphics where all about this is your opportunity to find out.

Oomph: A Microformat Toolkit from Microsoft

Posted in javascript, Microsoft, programming, software, web development by nimad on October 22, 2008

Microsoft has just released Oomph: A Microformat Toolkit.  According to Karsten Januszewski, “Our main goal with Oomph is to make Microformats more accessible for users, developers and designers. Oomph is an amalgamation of applications: an Internet Explorer Add-in built in C++; a cross-browser HTML overlay built using JQuery that aggregates Microformats (hCard and hCalendar); a set of CSS styles for Microformats; and a Windows Live Writer plug-in written for inserting hCards”

There is a video demo on YouTube:

The code is on CodePlex at

Visual Studio Launch Event

Posted in .NET, ASP.NET, Card Space by nimad on February 8, 2008

The 2008 Launch event site is at The event is not only a good opportunity for networking and learning, but participants will get copies of VS2008,  Windows Server 2008, and SQL Server 2008.  And because of this, the event will sell out.  So sign up for it now before all seats are taken and if you are unable to attend, please cancel your seat so someone else can attend.

Silicon Valley Code Camp is this weekend

While I am sitting far and away from Silicon Valley, I will be watching as the second Silicon Valley Code Camp happens this weekend. I want to tell all the developers, coders, architects, hackers, or whatever techie names they want to call themselves who live in or near the Valley how lucky they are to have such a great event there. Some of my favorite techies will be speaking at this event. People like Douglas Crockford, Juval Lowey, and Matt Mullenweg will be taking time to share their knowledge and experiences with the rest of us and thanks to the hard work of folks like Peter Kellner who have spent countless hours organizing this event, it will all be for free. Believe me, people from other parts of the country or the world do not have this same luxury to drive a few minutes from their home and listen, learn, and share with such a powerful group of software engineers and pioneers involved in such a divers array of technologies. Fortunately, the word has gotten around and over 700 people have registered. Unfortunately, many of those who register will not show up. Mainly because registration is free and the barrier to entry is nothing. So at the last minute, they decide to do something else or feel lazy or … I don’t really know why. All I know is that this is a great opportunity. People pay hundreds of dollars at conferences to see the same speakers give the same talks and folks in the Valley have a wonderful chance to take advantage of it for free this weekend. So don’t let this opportunity go by. If you have not registered, register now. If you have registered, set your alarm clock for Saturday morning and go down there. You are blessed with the opportunity to live in the valley and take advantage of this. Take full advantage of it.

I wish I was there.

The tools folks said they used at Conference

At the conference Someone put a sheet on the wall and folks filled it out with:

here is a flickr link to the photo of the first page and here is what was on the sheet:

Update:  AltNetPedia has this list in much better order now.

What tools do you use?
Visual Studio!
Big Witeboard Wall!
Rhino Mocks
MS Test
Team Build
Mac Book
Structure Map
Textmate for C# (Really!)
Active Record Migrations
NAntMy Generation
Visual SVN
Socket Wrench

Index Cards
Baseball Bat
Media Wiki
Synergy (network KVM)
Tortoise SVN
SQL Server
Acrobat Connect
SQL Diff
CI Factory
SQL Compare
XML Doc Viewer
Lots of e
Cross Loop

Microsoft announces its new MVC architecture for Web Apps

Today at the conference, Scott Guthrie demoed the new MVC architecture that Microsoft will be releasing in Spring 2008 for web apps. The first CTP should be available in two weeks. This architecture is very similar in many ways to the Rails architecture but takes full advantage of Microsoft .NET 3.5’s features and the strong typing in .NET. The crowed of alpha geeks that where incredibly critical of Microsoft the night before all gathered in one room and intently listened. Many questions were asked: Does this framework work with such and such? Can I do so and so. Scott’s answer was yes to all of these questions. The crowed was enchanted by Guthrie. No one had anything negative to say. There were a few syntactic and minor suggestions. And some mental wresting from some of the geeks, but Scott’s technical answers addressed the issues raised. Everyone was incredibly impressed. Scott’s presentation and rapid fire answers to questions demonstrated his detailed understanding of all the testing frameworks as well as alternative development frameworks out there and his team’s synthesis of all this knowledge in what appears to be a superior product to what currently exists in the market.
This will be a MVC pattern similar to Rails with a similar URL mapping convention and an architecture that allows you to plug in your favorite testing tools. Both Scott Hanselman and Philip Wheat taped the talk and will post it shortly. I strongly recommend watching it. This architecture is far superior in separation of concerns, testability, maintainability, and scalability to the existing ASP.NET architecture that was basically mimicking a state-full WinForms environment in a stateless web world to bring existing WinForms developers up to speed with web application development quickly. It will enter a heated battle with Ruby on Rails for the top spot as the best way to develop modern web apps. The Microsoft .NET Framework will have certain advantages such as WCF, Linq, and strong typing while the dynamic nature of Ruby and it’s faster innovation rates due to its open source nature will have other advantages. It will be interesting to see how this fight will pan out.

Note that because of a fundamental change in the design, there will be a new (smaller) set of ASP.NET controls that will work in this model. This architecture relies more on the native html controls (which is a good thing. See my CSS blog post to see what hoops you need to jump through to make ASP.NET controls work well with CSS). AJAX Control Toolkit controls that talk to the server also will get counter parts that will work in this model. There will be no change to the Microsoft Ajax Library or the networking stack of the Microsoft Ajax offering. This stack will also improve the existing ASP.NET architecture by replacing the UpdatePanel that was designed to wrap existing ASP.NET controls which were not originally designed for Ajax with a control that can be passed into the app as a JSON object and placed in a placeholder.

To read other perspectives please read the following blogs:

Bob Grommes, Chris Holmes, Howard Dierking, Jeffery Palermo, Jason Meridth, Joshua Flanagan Mike Moore, Roy Osherove,

Update: Sergio Pereira has written nice blog post that goes in more detail with sample code.

topics at

jay flowers: loop diagrams from system thinking

jeffery palermo: advanced nhybernate techniques

paul juliean : different styles of pair programming

mvc stuff and plugging the dlr into that ruby view,

can we call it msft does rails

ndunit and xunit

ddd domain driven design

scott belware behavior driven design

rod how to sell agile to management

making tests pretty

eric anderson how to introduce bdd to developers who are not actively seeking better ways to do that. how to lower barrrier to writing specs

passion, what to do to build that passion

what is going on with architecture, what you have learned about

unit testing

futurespective on msft. give msft ideas on where to go.



what we lack in .net community that they have in ruby and java community

scott gu new mvc pattern from msft. use nunit to test it.

simon guest guidance or lack of from msdn. how to fix or replace it

westin benford monorailmoving from to monorail. why would someone spend 6 months on monorail and then move to ror

dynamic languages on the cl

aspect oriented programming

why move from tdd to bdd.

how to move organizational skill up

kevin d? how to move legacy code under test

jacob boris. how to avoid xml hell

howard turking. runs msdn magazine (laughter which was not cool) how to systematically moving it up to the masses vs c++ hates the vb community.

moving a .net team to ror. tips tricks

it is harder to build software this way how to make it easier.

intersection of the domain moder pattern and rich internet app built on silverlight

dave ohara. how do we take these ideas and sell them to folks in a way that they see the value.

tom integration tests involving databases. i am fan of nhybernate and active record. (use sql light with database in xaml -joke)

lightning talk for 5 min. to do quick demos, …

roy: a famous speaker said that td will deteriorate your design, can it really do that. when to use it or not. how it compares with bdd.

mike from uk you are all a freindly bunch… i am a java manager now. all alpha geeks have left as martin has already left. apple is taking over the desktop. is vista is the last nail in the coffin. why should i care about msft anymore.

vista ME will be out in just 2 years.

where does a model go, what is the lifespan. when to use mockin, when not.

agile project management.

scott: writing and understanding user stories.

jean paul — becoming a catalyst for change in your organization. how to introduce things like agile into the organization

james kovacs — why are we facinated with executable xml. it is terribly verbose. painful.. can we do better. most msft devs diddnet go to college.

ruby for dummies, i mean .net developers.

testing guis.

fostering passion within a company to grow.

are executable requirements possible. are … better. can we do better.

domain specific languages for business and geeks.

language oriented progamming is challenging. design asthetics and environment is challengeing with mocking and dependency injection.

what is the persona for .net. mort, einstien, elvis, belware

sorry for misspelling everyone’s names. fishbowl

Posted in 104812 by nimad on October 5, 2007

here are some of the things said in the fishbowl tonight:

fish ball why is alternative
patterns to produce better software
.net is not driven by community as opposed to ruby or java community
.net community is the office sharepoint community.
things that suck: msdn events (ypou can click five tomes and you have a production all), magazine articles,

you dont like mort? you are wishing mort was more like you? to give people significant options other than what is coming from msft

actively challenge assumptions on software.

try to build a community that actively think about the quality of software we are building and how long does it take.

i want to have your baby, jb.

there is no thought given to maintainability or scalability, it is about it comves from someone who is bigger than me so it must be right.

is there a alternative better way to do things with .net. connecting team systems with external tools and making it work.

build passion around msft software again.

stop the hurt.

we can talk about the pain. is also about the joy of building great systems.

we are doing cool fun stuff.

the values support the tools. it is not just that the vendor gives ups the tools.

stuff msft puts out is good for a large class of people.

msft vs anti-msft track at codecamp? how to write better software.

looking outside msft to make msft devs be beter.

we are like master woodworkers. but there are dumb carpenter out there also.

we are all pitchin in. what specific we do not like? what dont you like. you dont like msdn? i dont like it either. what else?

its a miss match between what this group of devs wants to approach software and the tools. the next person next to you may know a lot more about software is

mort is crying while mommy and daddy are fighting.

tooling makes great demos.

one big thing is inversion of control. i do not want to directly couple to concrete types. the

what is ? we are creative and trying to do better.

cifactory, monorail, .. were uilt on ideas, those are the con = msft + open source + agile + ….

subversion works so i am not looking at team foundation server

in trying to solve my pains. it happens that i do not like te event driven model pulled from windows for things that are solving my pain are not msft right now.

this has not been edited and i captured as much as i could.

Tagged with: , ,

Back to the future with source code viewing with Visual Studio 2008

Posted in .NET, ASP.NET, engineering, Microsoft, programming, software, Technology and Software by nimad on October 4, 2007

Today Microsoft announced that it will be releasing many of the .NET Framework libraries under the Microsoft Reference License (Ms-RL).   Scott Guthrie’s post details what this means.  We have been able to see this source code using Reflector for a number of years so while getting the code in one big chunk is nicer (and now properly licensed) it is not that big of a deal.   A feature that has been lacking since the days of MFC is the ability to step into Microsoft source code in the Visual Studio debugger from your own code.  This was a great feature in MFC and I among others had asked Microsoft’s product team for it in 2005.  Today, my wish has been granted.  Starting with VS2008 you can actually step into Microsoft source code from your own code.  This will help developers everywhere better understand how Microsoft code works and write their code better.  It also puts Microsoft source code more in the spotlight and I hope this visibility will cause Microsoft developers to write better code.

My new wish is that future pieces of source code released in this manner should have the signature or alias of the developer who wrote it so if they did a poor job, the whole world would know.  While this wish coming true is very unlikely for many many reasons, I thought I put it down in writing none the less.