Archive for the ‘ Op-Ed’ Category

A guide to the technical job search for the “over 50“ professional.

Man with help wanted sign.

I left my software related position on Feb 21st of this year due to my company’s strategic realignment (which I enthusiastically support).

The last time I was in the “job market”, I was in my early 30s. I’m now 52 years old and this job search has been a very different experience than any other during my career.

After three months of actively searching for a great fit (two and a half months longer than any other job search I’ve engaged in) I thought that this was a good time to share the experience. (Yes I expect to have a job announcement to make soon.)

First, lets address the elephant in the room for we “seasoned” professionals.

There ABSOLUTELY IS age discrimination in the software industry, especially since I was looking for technical (as opposed to management) positions.

Code phrases for age concerns include :

  1. You’re over qualified
  2. We don’t feel it’s a good fit
  3. We don’t think we can challenge you based on your experience
  4. You’ll be a perfect match for us in a year.

Of course, these things could be true, but I’ve never heard them before in my career.

I interviewed with several interesting small companies with interesting senior management (and I had great meetings with them) but when it came time to meet the teams I would be working with, I discovered I was much older than the rest of the team.

Some of the teams were very honest.

  1. We don’t want someone with lots more experience coming in and telling us what to do.
  2. We don’t use agile or unit testing or any of that stuff and we don’t want someone who will encourage management to change the way we work.
  3. After Microsoft Mozilla & Zend you’ll get bored here and leave in 6 months.
  4. We’re like a family, we hang out together after work.  (Implying that an old guy won’t fit into the social scene.)

My experience in developer community didn’t help.

I interviewed with some big companies like Microsoft who clearly wanted a young guy or gal to focus on young app developers (and college aged developer).

Red Hat told me relative to a position building developer community programs that I “had been too evangelism focused”. (Which apparently is different than developer community engagement.)

Twilio told me I wasn’t technical enough for developer evangelism 🙂 (Mmmmm ….)

So, what did I learn that can help YOU streamline the process if you find yourself looking for a new software development related gig after you’ve turned 50 ?

Recruiters are useless.

Well, there are great recruiters out there and like a great bartender, chiropractor, mechanic, etc. the really good ones are worth their weight in gold – the problem is that for every great one there are hundreds of useless ones.

Many years ago I worked with Robert Half and had great experiences as a job seeker and as an employer. In this go-around I found 2 of the 3 recruiters I interacted with at Robert Half to be completely useless. Terse unprofessional communication, illiterate email exchanges, etc.

CyberCoders was even worse. Though I did talk to one or two CyberCoders reps who seemed OK, most were terrible. I even posted on Twitter that I didn’t think CyberCoders even read resumes and they tweeted back “Yes we do”. No inquiry at all. About 2/3 of the voice mail messages I received from CyberCoders reps were entirely unintelligible. I finally got to the point where I just stopped submitting to any job listed by CyberCoders.

Many in house recruiters take weeks to respond to your submission, many do not bother to acknowledge receipt at all.

So, here are my tips for getting past the recruiter to the interview.

1.) Many, many recruiters simply do not know about the skills of the position they are hiring for. They lack the technical foundation to map your work history to the skills and responsibilities of the position that you submit to.


So, create a customized version of your resume for each position you submit to that highlights the job titles, technologies, and responsibilities that match the job description in the posting that you’re responding to. Within the confines of telling the truth, make your resume look as much like the job description (and the hiring company) as possible. Make the match so obvious that even a new recruiter can obviously see that you are a match for the position you are applying for.

2.) Write a specific cover letter for each  submission and target it to the RECRUITER. Specify in your cover letter why you are the right choice for the position. Call out a couple of unique matching points in your resume. Remember, recruiters work on commission, the less work that they have to do to make the match, the better it is for them – and you.

3.) Look at EVERY ad and see if you can determine the actual company that is hiring. If you can, submit directly to them.

4.) In my opinion CyberCoders is the worst! Lots of great listings but they don’t run like a professional placement / recruiting firm – they work like a dating site / matchmaker. CyberCoders forms have skills set ratings & a Q&A section. My suspicion is that if you rate yourself less than advanced in any of the skills sections they probably don’t even look at your resume.

When you have to do that, make the best use you can of the Q&A section to try to convince the recruiter to make a connection for you. I submitted to a dozen positions listed by “Peter” on CyberCoders and emailed him directly to ask for a phone call. Though he looked at my LinkedIn profile, he never even paid me the courtesy of a single reply.

5.) Many local recruiters will want you to come meet with them in person. You’ll go sit with a kid half your age who will ask you “what are you looking for” and “what motives you” and a bunch of other apparently silly questions that you would expect to be obvious from your resume. Yes it will feel like a waste of time, but this is your opportunity to cultivate an advocate in your job search.

Yes, bad recruiters suck and there are tons of them but good recruiters are worth their weight in gold !

Your Resume

1.) 2 Pages MAX !!!!!

I know, we old guys (and gals) have tons of great experience, but find a way to sell yourself with a TWO PAGE resume. Anything after the second page won’t get read anyway and many hiring managers tell me that a resume longer than two pages DECREASES your attractiveness.

2.) Trim your work history. I know this sucks to do. I’m proud of my experience, but 30 years of experience on your resume just highlights your antiquity.

3.) Have MULTIPLE versions that are specifically tailored to the different roles (CTO, Architect), companies or even specific jobs that you are submitting to. Make identifying you as an exact match easy.

4.) Consider using a professional resume writer. They are not that expensive and they can be worth the money !

5.) Use a unique professional design (I’ll post mine shortly). The economy and therefore the job market is bad so every job opening gets lots of resumes submitted, make yours stand out.


Use the web – Old School versus New School

1.) Old School – Monster, Indeed, Traditional “Head Hunters” etc. still get lots of listings and you can use a resume submission service to list you and your resume. (I think I paid $30 for a bulk submission.) It’s worth a try. Note, you may want to use a throwaway email address and a burner phone just for your job search because you WILL get junk calls and email if you list your availability publicly.

2.) New School – For software professionals (in my opinion) the two best resources on he web for your career search are an

3.) LinkedIn, LinkedIn, LinkedIn – make sure your resume and profile are complete. Get a premium membership (for a dozen reasons.) Post on linked in and announce your availability.

Be Prepared

1.) If, like me, it’s been a decade or more since you found yourself in the job market, you may be surprised (as I was) by how much more slowly things move then they did back in the dot com days. Have at least six months financial buffer on hand  so that you don’t have to take something less than you really want just to pay the bills.

2.) Start building the experience for the job you want now.

Here’s what I mean. I REALLY wanted to go to work at Acquia. (The folks that make Drupal) I applied for several technical and management positions at Acquia and went to their headquarters to interview. The place is cool, the products are cool and all the people that I met (including the corporate recruiter) were AWESOME ! But I just didn’t have enough presence in the Drupal community or enough Drupal specific experience to compete successfully against other applicants.

In hindsight, I should have made the time in recent years to submit code to Drupal and increase my visibility on

The more visible the company that you are applying to – the more competition there will likely be for the position that you want.

Build and Work your Social Network

Your Blog (you should have one) LinkedIn, Twitter, FaceBook, Google+, StackOverflow, etc.

Virtually all of the best / most interesting leads that I’ve had have come from the people in my social network – invest in YOURS !

The Interview.

Since most of my blog readers are professionals I would hope that these tips will all fall into the “obvious” category but I’ve heard LOTS of stories about interview stupidity so I thought them worth including.

1.) If you can’t be on time – don’t bother at all. Get a GPS, Print out directions from Google Maps, Print out directions from the company’s website, print out the email confirmation with contact info for the person you are interviewing with. Consider the traffic you will encounter on the drive and leave AN HOUR early (and wait in the parking lot if you are early.)  Being late for an interview (unless you show up bleeding) nearly guarantees you won’t get the job. It shows that you are unreliable, a poor planner and / or researcher, that you aren’t REALLY interested in the position and that you don’t respect the time of others.

2.) Find out the names and titles of the people you will be interviewing with and them find them on the web. Look for blogs, LinkedIn profiles, press releases etc. Know who you are speaking to.

3.) Research the company and brush up on all the technology and the market segment(s) the job will include. This can help to prove that you are both motivated and interested as well as resourceful.

4.) Overdress !  I don’t care if the company has a casual dress code. Show that you can present yourself as a professional.

5.) Use your spare time to get in shape. Be well groomed. Health & fitness projects motivation, energy and certain approach to life that is attractive to employers.

6.) De-emphasize salary discussions but be prepared to have them. It’s not all about money, but the financial discussion can be difficult to have. As a senior / experienced professional, especially if you are coming from a well known company, there may be an assumption that your salary expectations will be beyond the companies salary range. If you are primarily focused on the salary you will likely find yourself  a bad match anyway. Find a job that you will love with people you really want to work with and then work out the salary issues.

7.) Follow up. Without being pushy, keep yourself in the conversation.

8.) Say “I want this job” out loud.

What’s HOT and what’s not !

What Programming Languages are “hot”.

I’m in the greater Boston area and specifically searching in this geography. Engineering trends tend to have some geo-specific leaning, so take these observations with that in mind.

Here’s my impression of what programming languages are most in demand at the moment in rough order by popularity.

1.) Java (Enterprise/Web)  – yup, this was a surprise to me, but there are lots of Java Dev, Architect and Dev Manager positions and they seem to pay a bit higher than other technologies.

2.) JavaScript – I know, REAL programmers don’t write JavaScript but it’s the NEW thing. There are lots of openings for experienced JavaScript professionals, both front end (AngularJS, Ember, jQuery, ExtJS) and server side NodeJS.

3.) Objective-C and Java for Android – but you knew that !

3.) Python and Ruby On Rails. Python is a bit more popular, but not by a really large amount. Of additional interest is that the Python & RoR ecosystems seem to be the most in tune with distributed teams so if you are interested in working from home, I’d invest in becoming an expert in one of these.

4.) C# – Note to .NET developers. It appears that the Microsoft Windows Language wars are over. I have not seen a single position doing new development with VB, though I did see a few positions migrating VB6 and VB.NET to C#. There are still more Web Forms jobs than MVC jobs. WPF is hot and SilverLight (and WinForms) is not.

5.) PHP – A good number of positions but mostly “ham & egg” development and lower salary ranges. (Which made me sad since I really like PHP.) For PHP Developers Laravel & Zend Framework are most popular.

6.) C/C++ for Linux internals and embedded are fairly popular.

7.) COBOL – Yep, there are still COBOL jobs available.

And what about certifications you ask ?

Language certifications seem to be only of nominal value to potential employers but there are some certifications that make a real difference.

1.) Anything SCRUM. Scrum is very popular and many organizations have moved or are moving to SCRUM. SCRUM certification seems very much in demand.

2.) PMP – Project management certification seems pretty in demand as well.

Being out of work, even when it happens for all the right reasons, is difficult. I’ve been picking up bits of consulting work but I’m very much a mission oriented guy and being part of a team is central to my makeup. It’s a bit like holding your breath while waiting for to find the RIGHT THING !

Stay Calm and Carry On – It’s nothing personal. 

Even when your sure your age was a determining factor that kept you from getting an offer, don’t let it get to you. A number of the organizations that told me “I wasn’t a fit”, even tough I felt like a TECHNICAL match, forced me to agree, if THEY had an issue with the age difference between me and the rest of their team – I probably WOULD be unhappy with their culture.

Hopefully some of the tips above will help other folks – especially the more senior professionals in my readership.

At 52 I don’t feel AT ALL like I’m in the late stages of my career, quite the opposite.  I have young children at home so I’m planning on at least an other 20 years building great software solutions.

I’d love to spend them all 20 at my next employer, but you never know what the future will bring.  Building your parachute now will help you land softly if you even find yourself back in the job market – especially if your “over 50“.

My dev stack is better than your dev stack !


I’m preparing a presentation for a large consulting firm on architectural options for a massively scalable, bi-directional real time application.

I’ll post about the technology and the architectural choices in the near future but I’ve been chuckling at most of the content that I’ve been reviewing and though I’d spill a few thoughts about it.

Specifically I’ve been looking at “alternative” choices that might be uniquely ideal for this particular use case.

As a basis for understanding the challenge…. Up to half a billion users (yes, billion with a B) sending an update to the server once every 3 minutes and retrieving a stat structure every one or two minutes.

About six months ago I started mapping this use case scenario to Node.JS and NoSQL (Redit or MongoDB).

There are  a few pretty big / high profile on-line properties already using Node.JS in production.

But, mining through articles and on line conversations has reminded me to the religious zeal with which many developers defend their choice of developer stack.

Node.JS is not SINGULARLY unique in it’s non-blocking architecture but it is somewhat unique in that it it’s FUNDAMENTAL PREMISE is non blocking, that it’s syntax is JavaScript (the Google V8 engine) and that it is INNATELY web (not requiring a separate http server.

What’s I’ve been chuckling at is how threatened certain camps of mainstream developers seem so threatened by the emergence of any new technology in their space.

In response to article on Node.JS .NET developers jump in to try to convince you that you can do the same thing in .NET using Async, Threads and customizing the IIS pipeline (just follow these 40 steps.)

Java developers start talking about NIO as though it’s the same thing as Node.JS.

PHP devs point you at ReactPHP

Python developers start talking about Async I/O and threads, etc, etc, etc.

But what’s wrong with just accepting that there is a new technology that’s very good at a specific category of use-case?

Ok, I’ll admit I never loved programming in Java, but I spent a decade at Microsoft digging C#. I also did PHP there and ended up Zend (“The PHP Company”). I spent a year and a half at Mozilla with is mostly a Python shop and I still like all three.

But I don’t need any of those to be the right answer for every software development challenge.

Too often I see dialog from a .NET developer who needs every solution to be only .NET  or from a Java developer who needs every answer to be Java.

For the last 13 years I’ve worked for organizations that manufacture a specific set of developer technologies. I frequently donned my “application/solutions architect” hat to help companies answer the question “what is the right approach for solving THIS business problem”. Even when I was working for a company who’s success was based on a technically bias answer to those sorts of questions, sometimes I answered in the alternative. (How fun it was to explain to my Microsoft management that I recommended PHP for a project 🙂 )

It’s my personal opinion that many folks close their minds to this “best mapped use case” approach because technology grows and evolves so rapidly many of us just give up on the idea of staying on the “front edge”  of  of the software development industry. In some ways we’ve gone from looking for that silver bullet to trying to convince folks that the stuff we are already good at IS THE SILVER BULLET.

All of this I suppose by way of encouraging you to open your mind and spend a little time looking at how emerging technologies might provide better solutions to some of the problems you solve in your day job.

I’ll post the technical blueprint for the above referenced architecture using Node.JS and NoSQL in the near future.

Thoughts: What is a technical evangelist?

I’m in between jobs after spending 15 years as a developer evangelist.

Last week I lost out on a position for a REST API Developer Evangelist role that I had interviewed for primarily because I lacked in-depth knowledge of a specific PHP API that I had never used.

I’m not going to name the company because I like their product and the well known developer that I interviewed with, but it started me thinking about the role of technical evangelist and how technophiles often confuse the nature of the role and it’s success.

A number of other people with extensive developer evangelism experience have shared with me in the past that they were rejected out of hand for what they believed was a lack of “bit level” experience.

Lets start with understanding what a Technical Evangelist is (and from here on in I’ll be specifically referring to Developer Evangelism). The Technical Evangelist’s role ( for a software vendor as opposed to a consultancy) is to produce two sets of results.

1.) Net New Adoption
2.) Increased Customer Satisfaction & Dependence

Technical Evangelists that represent consulting companies have a bit of a mission. That of presenting the technical expertise of their firm in the hopes of selling its services.

Even technical evangelists that don’t represent a specific company still have the goal of encouraging adoption of the technologies that they evangelise (usually because it’s the one THEY have chosen).

You will often hear Developer Evangelists describe themselves as “Impartial Trusted Advisors”, and becoming “trusted” is a great way for a technical evangelist to increase their influence but in actuality, there is no such thing as a truly “impartial” technical advisor.

So this bears the question, what does it take to be a really successful Technical Evangelist and how does that translate to a really valuable technical evangelism program?

Sure, a technical evangelist need a strong technical acumen. When I joined Microsoft to do Technical Evangelism for .NET it was an unreleased product. I’d played with it for about a week before I started the interview process at Microsoft. When I joined Mozilla to catalyze HTML5 App Evangelism I was far from a client side expert. After all, one of the fundamental tenants of ASP.NET (before MVC and Razor) was that you didn’t do client side work. It was all drag and drop.

So in taking various evangelism roles that focused on technologies in which I was not omnipotent, how did I succeed?

The dictionary includes a definition of an evangelist as : “a zealous advocate of a cause”.

This is true of Technical Advocates as well.

Remember that I suggested the primary goals of a technical evangelist are to deliver “net new” adoption and increased user (customer) satisfaction.

The technical evangelist has secondary goals as well, like product feedback, support costs reduction, customer specific problem solving, direct sales opportunity support, etc. and some of those can be facilitated by low level expertise, but in general – bits and bytes hacking is of secondary value.

I mean, once you have written a for loop, they are pretty much in the same whether you’re writing C#, PHP,JavaScript, Python, etc.

I suggest that you don’t think about Technical Evangelism as “here’s what my product can do”, but rather “look what you can do with my product”. It may sound like a semantic nuance at first blush, but it’s not.

Let me share a couple of examples.

In 2001 when I started working to drive ASP.NET adoption (.NET was in Beta havng been previewd at the 2000 PDC) I focused on Web Services. The big deal about Web Services was not the technical details of building or calling a service in ASP.NET becuase ASP.NET and Visual Studio made the syntax pretty much the same as working with any .NET object.

What resonated most with the (literally) thousands of developers I presented .NET to was not the new / diferent ways they could do things with Microsoft’s shiny new technology, it was how the simplicity of .NET would let them change the KIND of development they could do. How they could build features and applications that were impractical or impossible with earlier tool sets.

In 2008 we (Microsoft) released the ASP.NET AJAX extensions and the initial uptake from developers was “different” than we expected. The reason, I felt, was that while we were showing developers “how” to use the new “APIs”, we weren’t really doing anything to help change their thought process in regards to ASP.NET based problem solving.

After all, ASP.NET developers weren’t used to thinking in terms of how world wide web apps really work, their model at the time was really designed to emulate the “client server” paradigm. The idea that an application could have functionality apart from “full server round trips” was foreign.

So I built a series of 30 or 40 concise videos with sample code that demonstrated “AJAX Patterns”. Patterns like “Predictive Fetch” , “Partial Page Updates”, “Display Paging”, “Incremental Display”, “After Processing” and “Persistent Communications” ( What mad people excited was not new ways to do old things, it was NEW THINGS that could do in general.

The right content, demonstrations and sample code made people say “I need to move to .NET because I can easily build great apps (or great features into my apps) with that tool set.

While some amount of technical expertise was prerequisite, it wasn’t a deep expertise that made the evangelists on my team successful. To the contrary, I think only a couple of the folks on my team of a dozen or so ever developed really deep expertise. What made them great technical evangelists was their mix of technical aptitude and exceptional communication skills.

As a team we learned to answer the questions prospective customers had, even if they were as yet unasked. We learned to match customers needs with the capabilities that our products could provide and we learned to “shorten” the learning curve by creating content and giving presentations made complex problems and solutions simpler – rather than getting lost in the weeds of technical minuta.

So (IMO) Technical Developer Evangelists are …..

– Engaging speakers and recruiters
– Pre Sales Engineers
– Post Sales Support Engineers
– Solutions Consultants
– Cheerleaders
– Coaches
– Social Directors
– Authors
– Organizers
– Managers (or events or projects)
– Applications Developers

Have you even met great developer evangelist ?

What made him or her great in your eyes ?

Life is a series of near misses !

“I believe life is a series of near misses. A lot of what we ascribe to luck is not luck at all. It’s seizing the day and accepting responsibility for your future. It’s seeing what other people don’t see and pursuing that vision.” – Howard Schultz, founder of Starbucks

Choosing AbiWord as the Word Processor for Blogging.


For the past few years I’ve created a long list of topics I wanted to blog about but the day to day demands of my job prevented me from finding the time to actually do the writing.

Now that I’m“in between adventures”, I’m working on blogging more and I hope, what ever I do next career wise, I’ll be able to write regularly again.

For blogging I generally use WordPress, though I also write content that gets published on Joomla & Drupal sites.

Embedded editors tend to be compromises at best and when I write I want to use a word processor. Yes, I know, how 1990s.

I generally have a number of writing efforts under way simultaneously, some are under way for hours, others for many weeks.I find WordPress (etc.) drafts to be a sub-optimal choice for work in process version management.

I also need to write off line. Why? I fly (a lot), I have active children and I live in the country where even cellular data services is not ubiquitous.Horse riding lessons,singing lessons, gymnastics, soccer, school play rehearsals, etc, etc add up to a LOT of potential writing time.

My needs for blog writing are not that complex, I want a word processor loads quickly and has a fast UI,has goods pell checking, supports hyper-links and can save as HTML.Since I also use Linux, Windows and Mac, I want to be able to move my documents easily between platforms.

There are lots of those (MS Word, LibreOffice, OpenOffice, Apple Pages) so what’s the problem.

Well the problem is that all the“big”ones pollute the HTML when they save the document. Microsoft Office is famous for he mess it makes of HTML.

Lets look at the output of a document saved by html from LibreOffice Writer

Here is a snippet form the CSS that LibreOffice Writer Writer creates.

.P1 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }
.P2 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }
.P3 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }
.P4 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }
.P5 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }
.P6 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }
.P7 { font-size:12pt; font-family:Liberation Serif; writing-mode:page; }

And here is a snippet of the HTML mess it produces in the same file.

Note that even basic paragraphs have custom classes and Writer generates them for html paragraphs even if nothing changes from one paragraph to the next.

And, of course, the html is ugly.

Since some will ask.....

Yes, I considered going back to Microsoft. I think they
are doing some interesting things and the recent changes in senior management
should be good for Microsoft's developer focus over the next few years.

No, I didn't get the job. The heaviest focus
for the position was on driving apps into the Windows Phone Store and
engaging college students. I don't have any apps in the Windows Phone Store,
wasn't really a Silverlight guy and am 53 years old.

But the interview process caused me to update my look at
Microsoft developer focused strategy and the  state of affairs of Windows
Phone 8 and the mobile apps development landscape.

Enter AbiWord. AbiWord is a light but well featured word processor available for Linux, Windows and Mac.

It’s fast, supports the features I want and DOES NOT pollute the markup it generates when I save as HTML.

Now lets look at the HTML created by AbiWord when I save a document as HTML.

p, h1, h2, h3, li {
	font-family:'Times New Roman';

Note the more standard use of CSS ad the absence of custom classes.

And, the simple, formatted HTML.

      For the past few years I’ve created a long list of topics
         I wanted to blog about but the day to day demands of my job
         prevented me fromfinding the time to actually do the writing.


That makes is EASY for me to do my writing in the AbiWord word processor, save as HTML, then publish in WordPress, etc. with minimal work required to customize the markup for my specifc blogging platform requirements.

Why Windows Phone has a future.

A couple of weeks ago I interviews with the field developer evangelism group at Microsoft New England.

Since some will ask…..

Yes, I considered going back to Microsoft. I think they are doing some interesting things and the recent changes in senior management should be good for Microsoft’s developer focus over the next few years.

No, I didn’t get the job. The heaviest focus for the position was on driving apps into the Windows Phone Store and engaging college students. I don’t have any apps in the Windows Phone Store, wasn’t really a Silverlight guy and am 53 years old.

But the interview process caused me to update my look at Microsoft developer focused strategy and the  state of affairs of Windows Phone 8 and the mobile apps development landscape.

According to Business Insider, Windows Phone & Skype lose Microsoft about a half a billion dollars per year. Meanwhile, Microsoft’s revenue from the sale of Android Phones tops two billion dollars.

This makes sense if you think about it because Microsoft’s revenue on Android phones is basically patent insurance. Android manufacturers pay Microsoft in agreements that keep Microsoft from suing those manufacturers for what Microsoft claims are patent infringements present in Android. Thanks means the per device cost to Microsoft is ZERO and the revenue is 100% profit.

So as I look at Microsoft’s huge focus on growing the Windows Phone market share I’ve been thinking about WHY Microsoft would bother. I mean Android is king and enjoys something like 1.5 million activation EVERY DAY!  With Microsoft being paid between $5.00 and $10.00 per Android handset, that seems like a ton of net new profit for Microsoft with absolutely no ongoing investment necessary to sustain that revenue stream.

So why would Microsoft bother to continue to sink money and time into a phone operating system on which they have spend many billions of dolars to develop and market only to achieve 5% (USA) market share to date.

I think there are several reasons.

1.) Microsoft controls the licensing fees for the Windows Phone OS and their per devices licensing fee is greater than the patent fee they receive from the sale of Android phones.  So, the more new Windows Phones they can sell and the more they can displace existing phone customers, even Android users, the larger the per device dollar figure they receive.

2.) There are SEVERAL ancillary revenue streams that come with winning the device market share for Microsoft

Microsoft charges developers an annual membership to submit apps to the store and takes 30% of all app revenue.

The greater the use of Windows Phones the greater the demand for apps. Microsoft’s Visual Studio, Expression and MSDN sales go up.

Microsoft’s developer tools simplify the integration of Microsoft Azure based cloud services with will make their use preferential to other cloud services.

3.) There is a combinatorial benefit across form factors in that today I can share large portions of code across Windows Phone, Tablet, and Phone devices. (And it appears that Microsoft will continue the runtime convergence that makes this possible.)

4.) Microsoft’s Android patent revenue trick may not last forever. The actually validity of Microsoft’s patent claims have not been really tested in court. Especially outside the USA, Microsoft may not find courts favorable to their patent claims.

So it’s good for Microsoft but is it good for me, the developer, if Microsoft succeeds in making Windows Phone successful at the expense of Android or iOS?

I have enough experience with the iOS and Android development tool stacks to comfortably say the Windows Phone 8 development experience puts the others to shame, but event the best development experience may not be interesting to me if the market share hovers at 5%.

IDC says Windows Phone 8 is the fastest growing mobile phone operating system. I’m not sure that means anything though. When your competitors have 96.1% of the existing market share, virtually any growth in your market share makes you the fastest growing.

Still, there are compelling reasons to develop for Windows Phone and there are reasons to think Microsoft might continue to grow the Windows Phone market share.

1.) Windows users are used to paying for premium software (and Android users are notoriously not). So developers may experience better financial success with apps in the Windows Phone Store than in the Android / Google Play store or the saturated Apple Store.

2.) The hardware is better. Yes, I know you may want to argue about this but if you look at the cool new devices coming out of Nokia (which is being acquired by Microsoft) and the sheer pace of new device appearance, he cool hardware factor has to go to Microsoft’s favor.

3.) Desktop Synergy. Microsoft still owns over 90% of the desktop market share. Yes, I know that only 10% of that is Windows 8 but it still leaves Microsoft with the customers ears and the PC manufacturer relationships to keep their hold on the desktop user (especially “consumer” users).

4.) With Xamarin’s products I can take my Microsoft code and target Android, iOS and OSX users as well.

So as of today, the reach opportunity on mobile is Android and the revenue opportunity slights favors Android but if Microsoft gets Windows Phone 8.1 & 9 right, if it gets the legacy Windows Desktop upgrade story right and drives the OS and Tablet prices down (I know, some big ifs) Microsoft has a good chance to become a really significant player in the mobile space.

Enough so that, while I probably won’t be deploying FirefoxOS or Ubuntu Phone apps for my upcoming applications venture, I’m definitely adding Windows Phone to iOS and Android in my mobile plans,

My last days at Zend.

This weekend I told a developer friend that I would be leaving Zend in a couple of weeks.

His response was, “wow, when I talked to you at ZendCon you were really bullish on Zend”.

I was, and even tough I’m leaving, I still am.

I know that sound’s like PR spin, but it’s not. Zend has some GREAT products and I’ll keep using them.

So, if the products are great and the company is growing, why am I leaving?

Well, I’m a “developer” guy. That’s my thing.

I’ve been developing software, or working on developer related products and communities for over 30 years.

Zend will always be involved in PHP development technologies like Zend Studio and Zend Framework – but Zend Server is the product that pays the bills.

In the last year we’ve come to understand that Operations (DevOps) is where Zend’s Enterprise Server has it’s strongest value proposition. With this understanding Zend has devoted a great deal of engineering resources to enhance the Zend Server offering with a new and growing collection of Continuous Delivery integration patterns.

To do a great job engaging the right potential audience for Zend server, Zend’s primary community strategy needs to move in the right (operations / CD) direction.  Zend has always focused on developers and they assure me that won’t change, but the focus for Zend Server will be at a higher level. VP of Development / VP of Operations.

I’m not an ops guy 🙂

Sure, I could spend a year developing operations center experience and “faking it” – but I don’t want to BE an operations guy. And Zend doesn’t need a operations and continuous delivery expert a year from now – that conversation has already started. (

I joined Zend because it’s co-founder Andi Gutmans has been a friend for many years.

When the my needs and experience are no longer a match for the company’s needs and opportunities, its a bit sad, but the right choice is obvious.

And so, February 14th will be my last official day at Zend.
My friendships will stay in place, I’ll keep using Zend’s Products, and I’ll still be at ZendCon 🙂

A quick note of thanks to my coworkers at Zend. Especially Andrea for the laughs, Mathew, Zeev, Guy & Natalia for all the technical support and Maurice – the tireless & expert developer !

So what will I be doing next ?

As of today, I have no idea. 🙂

I’ll be looking for a full time gig, doing some contract writing & video work in the meantime and writing some code (something my duties over the past few years have forced me to do less of than I would have liked.)

I’ll be doing some Drupal development and I have a few mobile apps in mind for WM8, IOS & Android.

Maybe I’ll even have time to get back to blogging.

In the meantime, if you have any ideas for me ?

Building a VM Infrastructure for Continuous Delivery Demos

Zend has been doing a lot of work in the Continuous Delivery Space for PHP applications.

See the “Zend Blueprint for Continuous Delivery”

And I’m building out a “demo” infrastructure in virtual machines

Any comments of suggestions ?

Should I keep or switch to

So here is my first question for my readers.

Shoudl I retire and start a new blog?

I’ve blogged at for a decade and I created the MisfitGeek persona becuase Microsoft (where I worked at the time) wasn’t known for straight talking technical folks who would give developers the best advice even if the best answers we’re made by Microsoft.
MisfitGeek was intentionally irreverent and intended to speak to a rogue audience.

Years ago I secured the domain name which I always thought would be a great blog identity. I choose not to use my name ( because I prefer to keep my personal (social / political) writing and my technical writing separate.

Since I’ll be blogging about HTML5, Android, iOS, Linux, DataBase, WIndows, general software development, and patterns and practices – in addition to PHP, Zend Server and Zend Studio – it’s seems like would be a good choice.

I would keep on line for archive use and also continue to tweet as @MisfitGeek and I would swap my feedburner links so no change to your readers would be necessary.

So you tell me ………..

1) Make the switch and start fresh at

2.) Keep

Saying good-bye to 2012

The last week of the year is always a quiet one. Most people take holiday but most years I prefer to use the relative quiet time to catch up, reflect on the last year and think about what I want to accomplish in the year to come.

2012 has been a great, stressful, fun, frustrating educational year. Having started at Mozilla in late 2011 after spending 10 years at Microsoft, Mozilla has been an adjustment. Mozilla has nearly doubled it’s employee compliment since I started. The ethos of the organization has morphed from a primary focus on the browser to building FirefoxOS, an HTML5 phone operating system and the accompanying apps platform and marketplace.

I did a lot of coaching, business, strategy stuff this year and not as much technical work as I normally have done in my developer community work.

Though I don’t make “New Year’s Resolutions” I do have a to-do list of work items that I want to focus on this year.

  • Start doing How-Do-I videos again. (HTML5 & PHP) 
  • Blog at least once a week.
  • Start sharing all my code on GitHib.
  • Conference Talks (I only did a few this year).
  • Contribute to at least one Open Source Project
  • Embrace the Cloud (starting with moving my blog to a could host).
  • Renew my interest in iOS and write my first native  iOS app.
  • Organize my social media presence (separate my work and my personal identities)

Technically over the last year I focused almost exclusively on the client which is funny because I’ve always been a “server side” guy. In 2013 I plan to divide my focus between client technologies and the server interaction patterns that make for great app experiences.

First up – a two day camp on migrating apps to FIrefoxOS.

What do you plan to focus on differently in 2013?

Is Intellectual Property Security a Myth ?

Is intellectual property protection a myth?

In a word, yes, sort of, at least in a technically acruate sense.

Last week I had a conversation with a developer who told be that his company would never develop an HTML5 app because his intellectual property was far too valuable to share with anyone who wanted it.

Of course, upon further discussion, like most of the developers that have said this to me over the years, what he was really concerned with is software piracy, but lets talk about the former first.

Developers, like the one I was talking to above, insist that their distributed applications be compiled so that their source code is “secured”.

Ok, 1999 called to say it misses you ! 🙂

I was working at Microsoft when we released the beta versions of .NET. Included in the SDK was a decompiler. Developers around the world went nuts because all their source code would be stolen !

The truth of the matter is that source code is retrievable from compiled applications on all popular computing platforms. Just a bit of crafty googling will find you de-compilers for C#, Java, Visual Basic, C/C++ and a plethora of other languages.

These will turn your executable binaries into source code. Which tool you use would depend on the type of file you are decompiling which can be determined by headers in the files themselves.

The common response is that the code is not the same as the original source code, and that is true, it may be harder to read (or it may be easier) but either way the “intellectual property” would be exposed.

And there are other ways to get source code for an app too.

You will also find disassemblers that turn an executable binary file into assembly code. They basically convert the executable machine instructions into platform specific Assembly code instructions. If assembly code is not your thing you could them run a source translator to convert the Assembly into another language like “C”.

Of course this still doesn’t deliver the exact source code written by the developer. The resulting source code may not even be recompilable without modification, but again, the “Intellectual Property” has been retrieved.

There are very clever tools like the Holodeck Debugger that allow a skilled hacker type to view in real time what instructions are being executed by the operating system. (Holodeck is an AMAZING tool for good guy developers too !)

It’s possible to implement an encrypted operating system (file system, memory, runtime, ect.) that could decrypt programs in isolation for execution, but characteristics of such an operating system would make it unsuitable for general consumer use.

So, when we talk about intellectual property protection in our applications it’s important to understand that what we are really talking about is just increasing the difficulty level involved in stealing our code or using it in meaningful ways that oppose our desires.

.NET and Java developers who felt the need solved this problem by using pre-compilation obfuscators. The obfuscation process converted the source code to a product that, while syntactically valid, made no sense to the human viewer.

When decompiled the hacker has access to only the OBFUSCATED source code. The intellectual property was still in there, but for all intents and purposes, still secret. The process of reverse engineering code delivered after this obfuscation / compilation was too time consuming to be of interest. This makes the intellectual property secret in a practical sense, it not a purely technical one. Some obfuscators even produces source code that would feail recompilation attempts.

Likewise, people have been securing the logic and the content of the web for a long time. Obfuscators exist for HTML, CSS, and JavaScript. If you’re a web developer you have certainly cracked open a page or a downloaded a JavaScript file and seen huge strings of hex digits. Those were probably a method of obfuscation.

For example, the following simple JavaScript program:

var a="Hello World!";
function MsgBox(msg)

When obfuscated becomes this.

var _0xf979=["\x48\x65\x6C\x6C\x6F\x20\x57\x6F\x72\x6C\x64\x21","\x0A",
"\x4F\x4B"];var a=_0xf979[0];function MsgBox(_0xa221x3)
{alert(_0xa221x3+_0xf979[1]+a);} ;

Using the application will expose what it does but viewing the source code does dot expose HOW it does it.

There are really two things that people are interested in defending against. One is people using their software for free, the other is people stealing their source code which is to say the algorithms that are specific to their applications.

If you’re build an app using web standards (HTML5/JavaScript/CSS) you need to decide how much “protection” is enough to satisfy your concerns.

Of course the most secure method is to keep the parts of your logic that need to be secret on the server. You can modify your application’s architecture so that some functionality is only available when an internet connection is present.

You can use obfuscated client side assets to confuse prying eyes from easily hacking the APIs. Of course, if an even higher level of security is necessary, you can further restrict access to the APIs by using SSL and a per request token based authentication mechanism.

Similarly, once you have done the above you can use similar methods to assure that the user of your app is authorized to use it by periodically requiring an authentication handshake. (Mozilla apps will provide an API to help the developer do exactly this using Persona and the MozApps receipt system.

Many organizations have discovered that these concerns are never realized when their apps become public but above are a few ideas that you can use to make stealing your code more difficult. Remember, there is no such thing an an app that can’t be reverse engineered. But you can make them work for it !

How will HTML5 “apps” affect the app store eccosystem ?

I noticed with interest a new story last week that The New York Times Pulls App from the BlackBerry store. On the one hand, The New York Times has a great mobile web site and Blackberry devices have a super  HTML stack, but it got me thinking.

Though HTML5 has not reached a state of API evolution such that apps built with HTML5 can do everything that a native application can do, the gap is rabidly narrowing and, in many cases, the technology is already “good enough” to meet the developer’s needs and reap the benefits of open web development.

Mozilla has been building an HTML5 apps strategy for some time.

Google recently expanded it’s apps strategy with a “packaged” apps initiative.

Microsoft has a new web based model for Windows app building (though a proprietary one).

Missing is an HTML5 installable app strategy for Apple devices but you can use tools like PhoneGap to package an HTML5 app for the Apple store.

New York Times leaving the Blackberry store behind is only a single case, but as HTML5 capabilities evolves, lower volume app store will likely experience an decrease in store specific support. After all, pulling support for a specific store doesn’t meaning leaving customers behind.

It even seems like the pace at which the evolution of the HTML5 APIs might accelerate with the W3C and the WhatWG dividing their concentrations.

I’ve been making a living writing code for 30 years and, as an industry, we have always been looking for ways to “wrote once – run everywhere” – or at least to maximize code reuse.

I personally think HTML5 will be the closest we have ever come as an industry – at least on the front end, and I like the fact that the more we move logic to the client tier, the more simple the server side can become, thereby eliminating the need for overly complex infrastructure and applications on the back end.

So I’m curious, how do YOU think HTML5 is progressing? Are yo using, or planning to use HTML5 specific features? What parts are most interesting and important to you?

Where are you Joe ?

I’ve had a couple of email recently asking what I’m up to.

Which, of course, means that I’ve been remis with my blogging.

I’ve been traveling, sick, growing ever sicker of tooth problems, etc. – but I’ve also been immersed HTML5 App building and helping organizations all around the world get started in building Apps for the Mozilla App store. (

I still get an email or two a day from people who are just realizing that I’ve left Microsoft.

I’m planning to getting back to writing articles and doing videos in the next few weeks. Though I won’t be doing ASP.NET.)

So, feel free to post your thoughts on what content I should work on.

I’m planning an HTML5 podcast as well.



I Moved ! – Selecting a New Hosting Provider

I woke up this morning to a series of email and Twitter messages letting me know that my web site ( was gone !

My site was (until this afternoon) hosted at Site5. ( Now, I’m going to tell you what happened and how Site5’s process makes them an undesirable choice for my needs. Before I do that – a disclaimer. Site5 is a pretty good service with good folks working there. They did restore my site and engaged me in public discussion on Twitter about the event and their desire to help me. I don’t “blame them” per se. They have emailed asking to discuss what happened and how they could improve their services.

Running a high quality, low cost hosting service is very difficult, especially the “service” part. The hosting business is based on low margin and high volume. Each support person on parole causes a distinct increase in the shared hosting site density required to turn a profit. I do sympathize.

So here is what happened.

After receiving notices from my Tweeples that my site was down I logged in to my Site5 hosting account and they had opened a support ticket telling me they had turned off web access to my site due to “excessive CPU utilization”.

My Site5 account is “Unlimited” storage and bandwidth, but it’s a shared account, so if my disk space / band width use causes too much CPU use – it’s a problem.

There is no phone number for direct support so I went to the Site5 site to use “on-line” chat. Unfortunately, Site5’s on-line chat was “not available”.

So I added a reply to the support ticket and waited.

Site5 later replied that my site was turned off due to too many requests for the index.php page of my WordPress blog from a single IP address in Hungary. They explained that they only turn off a site as a last resort and they had to do it because it was a shared account and the CPU use was effecting the performance of other sites on the machine.

Fair enough.

Now, my web site isn’t important, like, say FEMA or CNN, but it’s part of how I feed my family so a default support policy of unplugging my site because ONE IP ADDRESS is spamming my site with requests seems like a really poor support policy.

It’s also not the first time I’ve experienced a DoS attack against one of my blogs and I’ve never had a host simply turn off my site as a result. While Site5 support said it was a “last resort” no one could tell me what steps had been made BEFORE turning off my site to attempt to solve the problem.

Not only was my site unplugged, but it was done in an “ugly” way. Visitors did not get a temporary landing page telling them there was a temporary problem, visitors didn’t even see an error. It just looked like the site had been deleted.

Site5 first suggested that the inex.php page was the problem and it was probably because I had added a new plug-in to my WordPress instance. They instructed me to try installing a cache plugin for WordPress. (I hadn’t added a plugin to WordPress since it’s original installation.)

Then they explained that they had identified the inbound request flood from a single IP address – which again made me wonder what other actions had been attempted before executing the “last resort” of unplugging my site.

I later got a detailed explanation of how difficult it is to identify attacks in real time. I’m sure the person who emailed me was not aware that 5 of my 10 years at Microsoft were spent focusing largely on cyber-security and I thought offering to help him implement a strategy to identify such attacks would not be well received. In fact, when I ran Microsoft’s ASP.NET site we identified DoS attempts on an almost daily basis and other “entry level” hosting providers have been able to do so with my accounts as well.

I was also told that even if they had identified the source of the issue they would block an IP address because that could be “bad”.

Still, it wasn’t this one time issue – in and of itself – that caused me to change service providers.

I was worried about the NEXT TIME.

Site5 turned my site off as a “last resort” but wasn’t able to explain what other steps were attempted.

Visitors to my site received NOTHING – no, “Temporarily Off Line” message, nothing !

Doesn’t that mean that anyone who was so inclined could cause anyone else’s site, if it was hosted at Site5, to be turned of by simple flooding it with requests. Even when the requests stop, my site is still down. Why not block the IP spammer ?

Anyway, I kept trying to gat someone on support chat, sometime later I did. I was told that Tier 1 did not have authority to actually make changes to my account (like turn web access back on) and that someone else was “looking into” what was going on, but customers weren’t allowed to talk to “those” support people.

I also found it bothersome that the problem was being looked into only AFTER turning my account off.

After some dialog I understood that the on-line support people serve as middle-men who can not touch an account and that “higher level” support staff and managers do not talk to customers on the phone or chat with them directly. My only recourse was to wait until someone replied to my question on the support ticket.

After complaining via the support ticket system and an ongoing conversation on twitter, the service manager emailed me to say that he was sorry and he explained that, while they could tell the problem was coming from a Hungarian IP Address after the fact, apparently their real time monitoring is not sophisticated enough to identify such an attack in real time. He also told me that they wouldn’t block an IP address under such circumstances as that might have negative results, though I can’t see how they feel turning of my entire site was a less negative result that blocking a single IP address that had been identified as flooding my site.

As I’m 100% focused on the HTML5 Apps space this is especially problematic for me. Turning a site off completely could have cascading negative effects if I’m using that site to host an App being distributed through store and would make it easy for competitors and objectors to kill my App’s success simply by spamming my home page. (Which, by the way is so trivial easy to do, and script kiddie can do it and it’s pretty easy to do it anonymously as well.)

So, while the folks at Site5 were very nice, the fact that turning off a site in this manner, in response to a fairly common issue – coupled with the fact that there is no way to interact in real time with someone who has the authority to make a change on my account – simply makes this level of service less than my minimum requirement.

This is especially true as I start developing guidance for Apps developers and making hosting recommendations.

I don’t mean to sound overly harsh about Site5. Most people wouldn’t ever experience this problem. My Mom’s blog doesn’t get that much traffic and she’s not likely to attract the attention of someone who would try to mess with were web site. I wouldn’t hesitate to recommend Site5 with those criteria.

But, service needs vary.

So – I’m researching a number of options for hosting HTML5 “Apps” but in the mean time I needed to move my site to a host where the events I experienced today would not be repeated.

Over he past decade I’ve used hosting services from more than a dozen companies, most of the economically priced ones have been poor performers in the customer service and up-time departments.

Though I already have a reseller account at another hosting provider (which I’ve had for 6 or 7 years) I originally set up an account at Site5 because they advertised unlimited bandwidth and I was leaving Microsoft so I needed a place to host podcast audio files.

I made a list of features I wanted in a hosting company and discovered that one of my existing hosts already met my criteria and I’ve had 7 years of great service experience with them.

So, what is my hosting criteria ?

  • A wide variety of Individual Shared, Reseller, Virtual Private and MANAGED Virtual Private, and Dedicated account options with multiple levels for each and reasonable pricing at each level
  • The ability to move domains between account types and assistance available to do so.
  • The ability to have my own custom NDS names.
  • Support for developing apps with PHP, Python / Django, Perl, Ruby Rails, and NODE.js
  • Multiple Database options
  • A guaranteed service level (99% up time, etc)
  • A support ticket system.
  • On-line chat support that is ALWAYS manned.
  • Telephone support options for when things are really critical.

Then there are some additional “nice to have” items.

  • Shared SSL Support
  • Individual SSL options
  • Source Control Hosting Options
  • Free default WebMail
  • Customizable Control Panel
  • Some kind of domain / account manager
  • SSH access

It turns out that I’m already using a hosting company that meets all those critera – though I didn’t realise it until yesterday.

The company is A2 Hosting –

Now let me be clear. I’ve been using A2 for 6-7 years. I started using them while working at Microsoft so I kept my use of their Linux based hosting pretty quiet. A2 has never provided me with any incentive to endorse them in any way, they don’t know I’m writing this, and I have always paid full retail prioce for the services that I have received from them – so my experience as a customer has been the same that you or anyone else is likely to experience.

When I signed up for my A2 “reseller” account it was because I wanted to host a bunch of little web sites and didn’t want to have a bunch of different accounts. Though I have a reseller account, I only use it to host my own sites. I choose A2 because I though their reseller account offered a lot for a very reasonable price. Because of the way that I started with them I guess I always thought of them as a “low end” provider.

I signed up for Site5 because of their unlimited bandwidth option.

As I started yesterday researching an alternative, I remembered the great service I’ve received from A2.

My A2 account is a “low cost” account, and there HAVE been issues and down time. But in all the years I’ve used them any issue has been solved quickly.

There is always someone in the on-line chat support and that someone can actually solve problems. IN fact, the chat based support people are so good – in all the years I’ve hosted with them I’ve never had to call the 24/7/365 phone based tech support.

They have always known what was happening and what the eta to fix it was – or they could do it themselves.

I couldn’t remember the last time I had been to the A2 web site – they’ve added lots of services.

They now have hosting starting at $3.35 a month (unlimited disk and bandwidth) all the way up to high end, managed, dedicated servers with Cloud options.

So I moved my blog before it was even back on line at Site. It took me about 30 minutes to get all the content,the code and the database moved. There was one thing I couldn’t figure out because the DNS change had not propagated yet, but I chatted the on-line support and Erin had the answer (thanks Erin) !

My web sites are often PHP apps like WordPress or Drupal but my Apps stuff is moving towards Node.js and Python – I was thrilled to discover that A2 supports both. 🙂

So for now I’ve consolidated all my hosted stuff to A2. (I still need to choose a Cloud based PaaS provider for some work.)

I’ll be using A2 for a bunch of my Apps learning content since my account gives me the flexibility to create sub domains for all the test apps I want to build. Heck, with Virtual Private instances starting at $13.95 per month I could even host test Apps with Java back ends if I really wanted to.

Anyway, I though this was a fairly significant experience and that sharing it might be useful to some of my readers.

Choosing a hosting company is a bit like cheering for your favorite sports team.

Either : Mine is the best and yours sucks!

Or: Yours sucks and mine sucks TOO !

And: If you ask me tomorrow I may feel differently about mine !

The FuBar Meeting Room !

I guess the FuBar room at Mozilla is for solving the really difficult problems 🙂


Mozilla at the JFK Airport.

A coworker took this while walking through JFK.

I thought it was cool so I’m sharing it 🙂

HTML5 App versus HTML5 Page – What’s the Difference ?

It’s happened several times this week.

I heard someone say “There no difference between an HTML5 App and a Web Page / Web Site”.

While a web page could be an App, I think it’s a gross over simplification to say that they are the same thing.

Fundamentally, an HTML5 App should be more that simply a saved web page.

Yes, the HTML5 Off-Line API lets you create an application manifest to specify assets to be downloaded so that you can access those assets when the host device is not connected to the internet.

I clever application will understand when no network connection is available (See navigator.OnLine) and will tailor it’s behavior based on the network state.

Supporting “sometimes connected” experiences will likely require slightly more complex architectural design too. For example, web “sites” that work with data simply don’t work if the browser connection to the internet goes away. A line of business App that supports both connected and disconnected scenarios could determine the network state and, if not connected, store application / transactional data locally and then sync when a network connection becomes available.

Though that work flow and the eventing mechanism to support it is non-trivial, it can be abstracted into a common data I/O layer.

As you think about Apps supporting different network states you will think of any number of scenarios where you would implement custom logic  for on-line and off-line conditions.

Consumer research constantly tells us that consumers have very distinct, and different, perceptions of what an “Application” is and what a Web Site / Web Page is.  Apps should have a host integrated presence. For example, on most hosts I should be able to launch the application from a shortcut or icon. A process manager (like on Windows of Linux) should know the App identity.

Another big part of the intended App experience is the idea that we can write an application one time and run it on any device that we choose. As an industry, we have been trying to accomplish this forever.

Using “Web Standards Technology” we will define our user interface structure with HTML and write our imperative client logic in JavaScript.

We can write different CSS styles to custom tailor the aesthetics to whatever devices we want without touching the logic.

The “App” can be served up from a server and run ion a browser or run on the desktop using a Web Run Time.

Applications that have a server interactions will speak HTTP and JSON or XML so you can implement that data access (and any additional server side logic) in pretty much whatever language on whatever platform you like. This model solves another problem that we are always trying to solve and that is turning the World Wide Web back into a real Client / Server Network by federating real logic to the clients computing device thereby taking as much load as possible off of our servers.

The cross platform nature of HTML5 / Standards Based Technology has become important in a way that it has never been in previous generations of computing.

A decade ago cross platform meant writing your application once and being able to run it on Windows and Unix. The “platform” we were talking about was really the Operating System. Sure the hardware was different, but to the application developer the underlying hardware didn’t matter. This is no longer true and the difference between hardware hosts is greater than ever before.

Good applications will sometimes need to offer different functionality on different devices and will sometimes need to implement some features in a device specific manner in order to offer the same experience no matter what device the application is running on. Since it is commonplace for users to own and use multiple different devices to access the World Wide Web it will be important for developers to make their applications experience as similar as possible across devices.

Take, for example, an application that helps the user find something close to them. If the App is running on a phone or other 3G/4G enabled device that device will have a GPS built in to the hardware. If the App is running on you Mac Book Pro (or other laptop) it’s not likely  that a GPS will be present so the developer will have to provide an alternate mechanism for any geolocation functionality.

To do this I could use the GPS is there is one available on the host device but us an IP based Web Service if the device has no GPS but is connected to the internet.

If you are wondering how you would get access to that GPS, or,  for that matter camera, mic, or any other device specific hardware, well I’m glad you asked.

THAT is what the Web Run Time (or WebRT) will do.

Today’s modern browsers create a “sandbox” to limit what code delivered from the Web is allowed to do on the host machine. This concept of restricting the functionality of “untrusted” application code is not unique to browsers. Adobe AIR & Flash, Sun /Oracle Java, Microsoft .NET and many other technologies do this sort of thing.

The “Web Run Time” will (eventually) have a collection of standard APIs that expose all of the common hardware types that applications developers will need access to in order to build rich applications using Standards Based (HTML5/CSS3/JavaScript) Technology.

And the Web Run Time will free the developer from the browser “chrome” so an App will look like (and be) it’s own thing – and not just something the user can use inside Firefox or Chrome or IE.

So, maybe it’s just me, but I believe that thinking about HTML5 based “Apps” as simple HTML pages (that may get cached off line) is a pretty narrow view of what the next generation of Web powered applications could look like.

Speaking at Conferences – a New Beginning !

On the right side you see badges from the conferences I was involved with at Microsoft.

On the left – my first badge as a Mozilla employee.

I’m leading a developer engagement initiative at Mozilla that is focusing on “App Building” using HTML5 and other standards based technologies.

Got a conference? Let me know !!

What’s wrong with Microsoft ?

I left Microsoft a few weeks ago after ten years in the Web Developer Tools and Platforms group. Leaving a company after that long is kind of like a divorce. You’re a little sad, a little anxious, a little angry.

However, I think it’s wrong to start with the premise that there  is anything “wrong” with Microsoft. One could argue that this is just a time of growing pains for the company.

I must note before I continue that what follows is nothing more than my personal opinion, it’s just observation and conjecture based on my experience.

Microsoft grew to dominance in a very different technological era than the one we live in today.

AT&T was once absolutely dominant in the telecommunications industry, it slid almost into obscurity and it has since rebuilt itself to become a significant participant in a re-invented industry.

The question as it pertains to Microsoft is, does Microsoft need to do that today, and is it capable of doing so?mismanaged

Microsoft’s success was more than just a matter of being in the right place at the right time. Bill Gates made clever decisions during a perfect storm or circumstances that made the personal computer both possible and viable. But Bill Gates is not making the decisions at Microsoft any more. Microsoft Windows and Microsoft Office grew to dominance in a time when the personal computer was the entire industry. Now, I’m not suggesting that Microsoft didn’t make smart choices and investments along the way and I’m not saying that they didn’t develop some outstanding products because they did.

So, what’s different now? What are the new challenges?

When I last heard a statistic on the subject, something like 65% of Microsoft’s residual revenue stream was produced by Windows and Office, which I’ll collectively refer to as “the desktop”. We could make the argument that these two sets of products are really a single product line as they are inextricably bound and marketed to a single customer base via a unified strategy. Microsoft still has market dominance in the desktop, though it has started to lose some of that majority percentage to Apple, Linux, and non-PC based computing.

But the state of the desktop is becoming a problem for Microsoft. I predict Windows Vista will be looked back on as the biggest disaster in Microsoft’s history, and not because it was technically bad. In fact I don’t think it was technically bad, but I think as a product it was terribly . Microsoft started talking about Windows Vista and advertising it’s features far before it was sure it could even deliver those features. Ultimately it didn’t deliver some of the features that were most anxiously anticipated. Microsoft also failed to properly engage OEMs and ISVs to insure compatibility of existing hardware and application software.

Window 7 was an improvement, but Windows Vista had done it’s damage. Millions of users discovered that they didn’t actually need to upgrade their operating system just because Microsoft published a new version. The poor publicity of Windows Vista fueled an acceleration of new Apple Mac purchases and a bump in adoption of Linux on the desktop. People purchased new Windows based Personal Computers and “upgraded” Windows Vista to Windows XP.

Windows XP is still the most popular version of Windows and this is symptomatic of a bigger problem. When it comes to both Windows and Microsoft Office, the existing, and even older versions of the software are “good enough”. The more the products evolve, the more the development teams need to stretch to add new features and the less the average user needs those new features. Those features don’t always justify the cost of an upgrade.

Should I upgrade Windows and Office with features I probably don’t need or should I use that money and go buy a new iPad ?

Read the rest of this entry »

My first few days at Mozilla

I had planned on this post being a description of the process of leaving Microsoft and why so many people are leaving this summer / fall. I still plan to write about what’s happening at Microsoft from my perspective. I think its important for developers to know the risks that Microsoft’s problems and decisions hold for developers.

But, I need to skip ahead first and talk about my first week at Mozilla.

When I started looking for my “post Microsoft” challenge I had very few preconceived notions as to what that would look like. I knew only three things for sure.

I wanted to work for a company that was deeply involved in real innovation and who’s work product and brand I could be truly proud to represent.
I wanted to work in a role and an organization in which I could have a profound and positive effect on the organizations mission.
I wanted to work for and with people that I would spend time with even if no one were paying me to.

Though I was leaning towards Open Source, I wasn’t close minded about any specific set of technologies.

I found very little happening in the Microsoft technology space. Plenty of companies that were using .NET to build there internal line of business applications and a few ISVs but the only real concentration of companies hiring .NET professionals seemed to be consulting / contract programming shops and most were looking for business development sales guys or project managers. (Jobs I could do but probably not love.)

At the same time I was reaching out to companies well known for various forms of technical innovation.

I started talking to Adobe, but they seemed to be struggling. Communication was sporadic and the company even closed down for a week as a cost savings effort during my dialog with them.

I had brief conversations with the likes of Google and Amazon who are both doing really interesting things, but who both would have required an immediate relocation to the silicon valley, which was not completely out of the question but would have been difficult.

I reached out to Canonical and Attachmate/Novell/SuSe in regards to positions they had listed and got no reply what-so-ever.

Three organizations quickly progressed to serious discussions and interest (at least on my part – one was outside of development technology).

The first was Red Hat. Red Hat is an amazing organization and I started talking to their OpenShift team. OpenShift is an Open Source PaaS (Platform as a Service) offering that lets you build and deploy applications for the cloud using the same tools and development stack that you would use to develop your application for a traditional client server environment. Even cooler is that the PaaS cloud stack is also Free Open Source so if you chose to you could use it to build out your own private cloud infrastructure.

But then I met a recruiter at Mozilla (Reggie Levesque)

Reggie reminded me of a silicone valley version of the recruiter who put me in the Marine Corps. Not just enthusiastic but really motivating.

I must have interviewed with at least a dozen people at Mozilla and I never knew when I was talking to someone which of a number of positions that person was looking at me for.

The interviews, which were really more conversations took a different form than your average job interview, which was my first indication that Mozilla is a different flavored place.

I was asked questions like, “what do you think of HP’s discontinuation of WebOS and what do you think it means to the web it’s users?”  And, “what sorts of things do you think need to change in the web development space to maximize the value of the internet to every person on the planet ?”

Yea, these guys (and gals) think pretty big !

I have to confess that I didn’t really know that much about Mozilla before I flew out to Mountain View. To me Mozilla was just the folks that built FireFox, that’s all.

It turns out that Firefox is not the central focus of what Mozilla does, it’s important, of course, but it’s just one tool that helps the real mission. People at Mozilla don’t even refer to Mozilla as “the company” they refer to it as “the Project”, and the project is a big deal. I was in a break out today where about 70 employees were surveyed as to what brought them to Mozilla as an employer and nearly ALL specified their desire to contribute to “the Mission” as the primary motivating factor in coming to work at Mozilla.

Mozilla is not a corporation in the practical sense, it is a non-profit organization.

“Mozilla’s mission is to promote openness, innovation and opportunity on the web.”

And let me tell you, they take the responsibility of their chosen mission very seriously.

My first day as a Mozillian was the first day of the organizations “All Hands” week held this year at the san Jose convention center. Talk about getting your hair blown back (insert bald joke here).

It feels a little like a big family, people are so outgoing, scores of people have just stopped my in the halls or came up to me to introduce themselves because I’m an unknown face.

One thing that surprised me is how individualized everything is.

First thing I day one was issued hardware day.

What kind of tablet do you want, we have Asus and Samsung in stock?

Do you want a Mac Book Pro, a Mac Air or A Lenovo X220 ?

People run whatever OS they want, Mac, Linux, even Windows (some folks run XP other run Windows 7)

Office Apps ? Use whatever you like. Client for company email? Use whatever you like.

There is an amazing lack of hierarchy here everyone seems to collaborate equally with everyone else equally. It also seems like anyone can calibrate on any project they are interested in and no conversation is closed to anyone in Mozilla. (Very different from the Windows 8 gag order I experienced over the past year).

Yes, I’m rambling…..

I’m just excited. This feels like working in a think tank again and the web development technologies that are being worked on here are amazing.

So, I’ll looking forward to getting home and getting back to blogging and recording.

What kinds of things are you interested in me focusing on ?

The only real requirement is that it’s Open Technology !

After seeing the so many amazing things that can be done with HTML5 in the demos this week, I was thinking about writing some patterns based web programming tutorials, but you tell me what you all are interested in.

Thanks 🙂

My last day at the evil empire – free from the borg collective !

After TEN YEARS, effective immediately, I am resigning from Microsoft.

It’s been a hell of a ride and I’ve worked for some GREAT folks. 8 direct managers in 10 years. (I only choose 3 of them)

  • Mike O’Neil (now at New Horizons) – I LOVED working for you. You are the best manager that I’ve ever had. You pushed me hard and I was proud of the work you drove me to achieve. I’d follow you into a burning building my friend. THANKS !
  • Rick Green (now at Intel) – I’ll always be grateful to you for convincing me to come work for you instead of those other guys. It was a “wicked” year.
  •  Scott Guthrie, I loved following you and being a champion for the technologies that you led.
  • Pete Brown, my current manager, you’re a great guy, an Honest Man,  and I will always appreciate your efforts ! (We had some fun too !)

I worked for 1 of 2 other folks about whom I can only say “shame on you”.

Microsoft has changed so much (TOO much) in the past ten years.

I intend to blog more about why I (and so many others) am leaving Microsoft in the near future. It will be nice to have the freedom so say whatever I want in a blog without being censored and having my job threatened.

As I talked to companies about my next role I told each I had only three immutable criteria:

  •  I want to work for an organization that is LEADING innovation in its field and holds a brand that I can be truly proud to represent.
  •  I want to work in a role where I can really help people and have a positive measurable effect on the organization’s mission.
  •  I want to work with people I would hang out with even if no one were paying me to.

I feel think I hit the lottery !!!!

I have accepted an amazing position and will be starting MONDAY ! (Why wait.)

I’ll save the actual announcement for my next blog post but I’ll gibe you some hints.

– I’ll be exclusively working with Open Source Development Technologies.
– I won’t be running Windows on my daily use desktop.
– I won’t be wearing my Microsoft shirts at the event I’ll be speaking at.
– I’m selling my Windows Phone 7
– I’ll still be blogging at

Any guesses ?

My Home Office is a REAL Office.

On a flight this week I mentioned to the person sitting next to me that I had worked from a home office for the past 15 years and they were surprised that the distractions of working from home didn’t interfere with getting my work done.

In my case, my office is in a separate building across the drive-way from my house. It has separate power, heating, air conditioning, internet access, alarm system, video surveillance, and killer guard dog 🙂 .

Above is were I spend most of my day. It’s about 4 or 5  times the size of an average cubicle and there is room for 4 of these areas.

I calculate that I could comfortably house 10-12 people

I have too much hardware 🙂 but keep some of it for retro testing. The CRTs are heavy but all high resolution.

Geeks need a great library, and yes “junior”, I know about e-books. Everyone in my family owns a Kindle but I’m old school and there is something about holding a “real” book that still appeals to me.

I have a separate A/V area with sound dampening for recording podcasts and other audio.

Note the green screen and studio lighting for video production.

The down side of have an office that is a 20 step community from home is that it’s easy top spend too much time there !

Developing Rich Applications for the Diverse Internet

It wasn’t that long ago that building an application targeted at broad consumer market didn’t involve many difficult choices. You built either a Windows application or a Web application. If you wanted a disconnected experience, Windows owned virtually the entire connected consumer story so they only decisions that you needed to make were about language, IDE, methodology, etc.

Those were the days.

For some time I’ve considered building a sporting community based business. I’ve been giving it more serious though lately and realizing that changes in the computing technology landscape have made selecting strategy for such a business / application a complex thought process.

As we evolved the ASP.NET web site, we were concerned with scale and performance, and with features and content, but we had the luxury of a pretty targeted audience.
Building a community experience for a broad audience is more complex especially if you want your strategy to include a rich disconnected experience.

Yes, yes, I know about HTML5, and it is promising, but not just yet. What it will ultimately delivers is yet to be determined.
Windows still owns the large majority of desktop market share but the Mac is now statistically significant Mac users cannot be ignored by business’s who seek to engage the largest possible customer audience.

There is no really GOOD solution for developing a desktop application with a single source code base that runs on both Windows and the Mac, and then there is Linux.

There are some choices.

Adobe AIR runs on both Windows and Mac as does Microsoft’s Silverlight but Adobe recently discontinued Linux support which makes AIR’s future a question mark and Silverlight has never run on Linux. Silverlight’s future on the Mac is also a question mark and Novell’s discontinuation of the Mono team adds additional variables.

There is Java, which seems to be enjoying a bit of renewed growth recently, probably as the result of the popularity of Android.
Which, of course, brings us to an even bigger issue: internet users are not necessarily PC users any more. “Mobile” devices represent a slight majority of internet users and that percentage is rapidly growing.

Read the rest of this entry »

POLL: Do you care if demo code REQUIRES an active internet connection ?

Sorry, this poll is closed.

9 Reasons to consider Internet Explorers 9 (IE9)

1. IE9 is the fastest adopted beta in IE browser history.  With over 40M downloads and a usage share on Windows 7 well over 2% globally, IE9 adoption has more than surpassed expectations.

2. IE9 is enterprise ready.  IE9 has the highest LOB compatibility pass rate of any product in MSIT dogfood history –  99% – coupled with one of the lowest IE helpdesk contact rates (number of helpdesk calls/number of installs) to date.  And for our customers, IE9 is ready to go with their Windows 7 deployments.

3. IE9 has the fastest JavaScript engine in the industry.  Script is one of many factors in performance. On a commonly used micro-benchmark, IE9’s improved JavaScript performance now holds the top spot in the industry, an improvement of almost 18 times from IE8.

4. IE9 is the only fully hardware-accelerated browser.  All graphics, video and text in IE9 are hardware-accelerated.  We re-architected IE9 to take full advantage of the Windows PC.  IE9 was the first to introduce this concept and other browsers have been scrambling to catch-up.  See the difference for yourself.

5. IE9 treats your favorite sites like apps.  The site is the center of attention in IE9’s new frame.  When you pin a site to the taskbar, your experience is even better.  Over 250 of the world’s top sites have already taken advantage of Jump Lists, notifications, and thumbnail previews to make their sites more app-like.  Web site publishers are seeing close to a 50% increase in engagement from their IE9 customers through pinned sites. 

6. IE9 protects against 99% of socially-engineered malware.  Malware is the #1 threat on the internet today.  With Microsoft SmartScreen and the new SmartScreen application reputation feature in IE9, no other browser comes close in protecting consumers from these real-world threats.  IE9 is 33 times better than Chrome and over 5 times better than Firefox. 

7. IE9 is the only browser with integrated online tracking protection for consumers.   Microsoft changed the browser and industry landscape with the introduction of IE9’s Tracking Protection, providing the only built-in browser solution protecting consumers today.

8. IE9 is leading with site-ready HTML5 support.  IE9 is all in when it comes to delivering developers new standards-based capabilities with HTML5.   Microsoft co-chairs the W3C HTML5 working group and during the IE9 release has contributed almost 6000 test cases to the W3C and international standards bodies.  Currently, IE9 has the best conformance with W3C HTML5.

9. IE9 has had the strongest press in IE history:   Here is a small sample of what reviewers are saying:


Is it the end for the AJAX Control Toolkit ?

This is the kind of blog post that usually gets me in trouble.

I’ve started a series on replacing Ajax Control Toolkit features with jQuery.

In the most recent installment, “Implementing Textbox Watermarks with jQuery”, I had a few comments that question the “demise” of the ACT and the logic behind the emphasis on using jQuery, which I’d like to address.

What follows is MY personal opinion and NOT Microsoft’s official position.

There are two “parts” to the traditional ASP.NET WebForms Ajax experience.

The “core” which includes things like scriptable web services, the Update Panel control and the script manager. None of that is going away. If you’re using it, you’re safe and you can continue to use it if you like.

The Ajax Control Toolkit (ACT) -  [ Download HERE ]

The ACT was always intended to be an Open Source project, not a Microsoft “product”.

It is, and will continue to be Open Source. You can use the binaries, which are current with builds for ASP.NET 3.5 and 4.0, you can make changes and additions and build your own binaries, and you can make contributions back into the project to make things work the way YOU want.

The ACT, in my opinion, was a fantastic idea that came strong out of the gate, but very quickly dropped into a groove and stayed there.

As a library the ACT came out as something like a 0.8 release. While pretty solid, many of the controls had obvious enhancement needs and desires.

As an Open Source project, the ACT hasn’t really taken off.

I was invested in Open Source long before I came to Microsoft ten years ago. It’s how I originally became labeled the “Opinionated Misfit Geek”.  I’ve always felt there there were strong opportunities for both OSS and Commercial Software and opportunities to mix the two.

I think Microsoft has struggled with finding a great Open Source model that works for us/them. This is a very common problem for commercial entities who’s business model is not service or support based.

I also think that a majority of our customers view “Open” as “Use Freely” but lack the time or interest in contributing code back into an otherwise “open” project.

If I had a dollar for every time someone has said to me “Microsoft should just do [ fill in the blank here] – you guys have more money than you know what to do with.”

Sure, Microsoft is big and we’re profitable. But the economy is TOUGH and we’re profitable these days because we work HARD at being fiscally responsible.

We travel less, we keep old hardware longer, we work longer hours because we staff more leanly, etc, etc. It’s easy for large companies to get caught off guard . It almost happened to Apple, and it almost happened to IBM.

In Developer Division, we have a TON on our plate. The guys who wrote the Ajax Control Toolkit were really needed in many other places (Silverlight Toolkit, MVC Toolkit, Razor Helpers, etc)

So, the ACT was always intended to become community driven open source.

In hindsight, I’m not sure that’s what our customers wanted, but it seemed like a great idea at the time.

So why jQuery?

Change can be frustrating. It is often hard to find time to learn something new, especially when you already know a way to do the thing you need to get done.

In my opinion (did I mention that all of this was not official Microsoft positioning ? ), the move to jQuery is brilliant.

Here is some of my reasoning in no particular order.

  • As a community, jQuery is ROCKIN’ tons of code, articles and help out there.
  • There is a plugin t do almost EVERYTHING
  • Once you learn a bit of jQuery you don’t do JavaScript without it.
  • Much of the ACT has nothing to do with AJAX, it’s Client Side UI.
  • It’s good to get things that don’t need server side logic off the server.
  • jQuery UI work is portable from WebForms to MVC to WebMatrix, etc.

In truth, you don’t even need to learn to write jQuery code to get a lot of use from jQuery plugins. Many folks have emailed to tell me they have just copied my code and used in in their web page.

So let me pose a question to WebForms developers (who, by the way are between 60% and 80% of the folks developing on the Microsoft Web Platform).

  1. Would you want and use sever-side controls to implement UI features using jQuery ?
  2. Would you contribute to such a project ?

I’m not personally sure I see the value but if YOU do, I’ll research it.

Would you make better use of a one stop directory of samples and plugins for ASP.NET developers ?

You tell me !

In the meantime, if you wanna see a high end example of how really powerful a jQuery based front end can be, checkout the work being done by the Pattern’s & Practices team (

Don Smith gave me a detailed tour of the project’s code and architecture and when they are doing with jQuery is AMAZING. Crack it open !

Who to follow if your staying up to date with ASP.NET !

Ever wonder who you should follow is you wanted to stay on top of the ASP.NET team’s ongoing work.

Here is the list of “Mover’s and shakers” !

Web Deploy, MSBuild, ASP.NET web project: Sayed Ibrahim Hashimi

Twitter – @sayedihashimi

Blog –

HTML & CSS editors, Optimization: Mads Kristensen

Twitter – @mkristensen

Blog –

Visual Studio & ASP.NET: Vishal Joshi

Twitter – @VishalRJoshi

Blog –

ASP.NET Design View: Jorge Gabuardi

Twitter – @jorgegabuardi

ASP.NET: Scott Hunter

Twitter – @coolcsh

Blog –

MVC / NuGet: Phil Haack

Twitter – @haacked

Blog –

Web Pages / Razor: Erik Porter

Twitter – @humancompiler

Blog –

Web Platform and Tools Community: Scott Hanselman

Twitter – @shanselman

Blog  –

Web Forms / jQuery: Damian Edwards

Twitter – @DamianEdwards

Blog –

Scaffolding / Mobile: – Steve Sanderson

Twitter – @stevensanderson

Blog –

HTML5 versus Silverlight–Is Silverlight Dead?

In a world NO, NO, NO !

I got this email from a developer that I have corresponded with for several years.

I know this guy to be smart and experienced, so this is not a “newbie” question but rather an example of how difficult it is to understand the new technology that is constantly emerging in the software development industry and what they mean for our future work and choices.


Sent: Friday, February 18, 2011 12:00 PM

To: Joe Stagner

Subject: Html 5 causing Silverlight Dev to End?


I heard from someone that Html 5 is eliminating the need for Silverlight, such that Silverlight development might stop. Any truth to this???


In the interest of transparency, I don’t work in in the Silverlight team. I’m not even the Silverlight guy on my team, but I am a technical strategist and have been developing web applications since before Windows even had a TCP/IP stack !

What follows is MY opinion and may not exactly “jive” with Microsoft Official position.

> Note to Tim Heuer, Hey old buddy – I’m sure you’ll email me if I’m WAY off base Smile 

HTML5 is interesting – period.

I’m building developer guidance right now using HTML5, but HTML5 is NOT a Silver Bullet.

Certainly there are some scenarios for which HTML5 feature will displace the need for a RIA type plugin like Silverlight.

In most cases though, I don’t think this is true.

What HTML can “do” – Silverlight can do really well !

In my humble opinion,  I’m not sure that we (Microsoft) have done a great job demonstrating the high end of what can be done with Silverlight. The more advanced the application scenario, the more Silverlight excels.

Late last year there was a lot of noise on the web suggesting that Microsoft was disinvesting in Silverlight.

I know it’s hard to believe, but everything you read on the internet is not necessarily true Smile 

So, what are some of the scenarios that I personally would require Silverlight.

Audio / Video

Yes, I know, you can play video with HTML5, welcome to the 1990s Smile 

I need to do MUCH MORE than just “play” video.

Example: Completely separate from my job at Microsoft I create training and educational video for athletes. I want offer that video on a web site but don’t want that video to be swiped, edited, copied, etc all over the web.

HTML5 does not support DRM or other media related security initiatives so remove most of the media produced by the Movie, Television, and Training Industries from use with HTML5 (as well as mine.)

What’s more, I need to do A LOT MORE then just play video. I want to record usage data, allow user annotations, insert context specific ads, links, etc, and much more which means I WANT a custom player that can make my user’s video experience ROACK.


Historically, most browser applications are really single tier. All the executable logic runs on the server and the browser just displays the results.

We’re finally starting to catch up and architect web applications with “Federated Logic”.

It only makes sense. Lets run as much code as we safely can in the browser so as to off load the required processing power from our servers to the clients computer.

HTML5’s facility to enable this is present, but inferior.

True, JavaScript execution has been a point of focus in HTML5 compliant browser implementations and HTML5 has “Web Worker” Processes. (It’s acually a seperate spec –

Web Workers, in particular, are very interesting but require certain restrictions in terms of interacting with the User Interface. This is another example of how HTML with fit well in certain scenarios and not others.

There is also the issue of source code protection which is virtually impossible in JavaScript.


HTML WebSockets was my favorite feature. Unfortunately it looks like WebSockets won’t make it into the final HTML5 specification. In fact – it’s a whole different spec That means it’s implementation may vary from browser to browser if it gets implemented at all.

Silverlight has a complete network stack today and it works in all the most popular browser currently in use. 

Off Line

HTML5 has Off-Line application considerations.

An offline application cache and local storage will suffice for some applications but if you think about such usage scenarios a little further things start to get more complex.

For example, if our application implements a rich user interface using AJAX techniques, as users today expect, what happen to those interactions when the user is off line. Can you really just “turn them off”, or do you need to provide a set of disconnected logic?

We might be ale to do this, but if our application will be use significantly off line (as well as on) Silverlight offers significant advantages. (If you haven’t toured Silverlight recently Silverlight now has a strong Out-Of-Browser capability (meaning run as a desktop app, no browser involved) .

Touch / Multi Touch Interfaces

User interaction continues to evolve and Computers, Tables, and Dedicated devices often lend themselves to Touch or Multi-Touch User Interfaces. Lets plan ahead, shal we?

WebCam / Microphone

Tack specific applications, social networking, etc. ?????  Cool.

And More.

Work with Ink? call the Operating System’s API ? Silverlight.

And lest we forget. Silverlight is THE applications development model for Windows Phone 7 applications (though if you’re building games you may be using XNA)

Windows Phone 7 is enjoying rapid success and growth. Not only does that alone insure the continued evolution of Silverlight, but the ability to share code between your Phone, Browser and Desktop Applications.

So no Phil….

HTML5 will enjoy enthusiastic adoption but will not eliminate Silverlight. In fact, as HTML5 helps us push the edges of web applications design and architecture, the opposite might be true. We may find ourselves envisioning more and more functionality for which Silverlight is the ideal enabler. Tags: ,

Internet Explorer 9–RC Impressions

Did you try the IE9 “beta”.

We’ve come to expect too much from “beta” software.

I couldn’t use the IE9 beta in front of my children.

It made me say a lot of bad words Smile 

Since I’m doing a lot of HTML5 work when the IE9 release candidate dropped I figured I’d give it another spin.

Viola ! IT ROCKS ! It’s Fast, the Crashing is GONE, and I’m digging it.

I’ll be doing some IE9 specific guidance.

It the mean time – hear are some resources to get you started with IE9 too !

Internet Explorer 9 Guide for Developers

Internet Explorer WEB Developer’s Guide

Internet Explorer 9 Keynote Address (Streaming)

Internet Explorer 9 “Test Drive” Demos

Internet Explorer 9 – Features 

Internet Explorer 9 – Get it HERE Tags: ,

10 Reasons Developers Should Blog.

Chris (a developer friend) sent me a message on Twitter today ( @MisfitGeek ). He was trying to explain o his wife why he spends time blogging and wanted some suggestions as to why blogging is worth the time.

Ok Chris, here you go.

1.) Blogging is a great way to get feedback on your code. When you publish code on your blog it’s like a peer code review with hundreds of friends. You can’t help but improve your coding skills and THAT is an investment in your own professional future.

2.) Keeps you learning. It’s easy to get into a rut doing “what you do” which the stuff tat you already know. In the software development business, that’s professional suicide. When you blog you get to explore new technologies and concepts that you are not yet immersed in with your “day job”. You also learn about things like SEO, RSS, etc. Staying current is part of maintaining your market value and especially in the tough current economy, that’s a good thing.

3.) You get your own Crisis Support Team. One person can’t know everything. I can’t tell you the number of hours that I’ve saved by posting some obscure problem on my blog only to have a reader share a solution with me that would have taken me forever to stumble upon by my self.

4.) You blog becomes your own personal information data base. Can’t remember how you solved that problem ? What was the like to that cool gadget ? It’s all saved on you blog. You

5.) You blog is your door to the social network. Find a job, hire a new developer for your team, learn about interesting events. The more popular your blog becomes, the more folks will want you to know about what they have going on.

Read the rest of this entry »

To Podcast of Not ? You tell me.

So, my team sort of got reorged again.

We are now the community wing of the Developer Guidance organization (the same group than contains Patterns and Practices).

In truth, I was less than enthusiastic about the last two reorgs I went though, but this one could turn out to be a great thing.

As I’m planning, I’m again going to ask you all the question.

Should I start podcasting again?

Here are some of the podcast series that  I’ve been considering….

1.) What and Why? Each episode I’ll track down the right person and get then to answer a tough question like "What Data Access technology should I choose and why ?"

2.) The Codeplex Podcast. Each episode I’ll highlight a .NET Open Source Project and the folks who make it happen.

3.) The week in review – a 10-15 minute review of notable news in the Software Development Industry.

4.) Other – You tell me ???

Please take the Poll HERE –

ASP.NET Developers–What are your FIVE biggest learning pain points ?

Ok ASP.NET Dudes and Dudettes…..

From a learning perspective, can you share with me your 5 current “Learning Pain Points” ?


1.) Choosing between ASP.NET MVC, Web Forms, and WebMatrix

2.) Integrating jQuery into my ASP.NET Application ?

3.) Building REUSABLE code libraries ?

4.) Learning how to implement REST based Features in ASP.NET

5.) Deciding whether to use Silverlight in my ASP.NET Application.

I just made those up but you get the idea.

You can post YOUR 5 here or send them to my at this link –

THANKS for your input !

How to become an MVP.


I don’t work for the MVP Program, but I do get asked this question frequently.

“How do I become an MVP ?”

Being a Microsoft MVP is not a program that you sign up for. It’s a recognition for a person’s community involvement over a year’s time.

There is no guaranteed way to be selected, but I can give you a basic strategy as to how to get in the running !

There are 3 things to know about how MVPs are selected.

  1. MVPs are categorized by technology. There are ASP.NET MVPs, Dev Security MVPs, MS Office MVPs, etc.
  2. The Team tries to identify MVPs in every geography where we do business. In some areas the pool of potential MVPs for a particular technology is very large. In others it is quite small.
  3. Community activity AND contribution in what the selection committee is looking for.

So what constitutes “Community Participation and Added Value?

Well, here are some of the activities you might peruse.

  • Answer questions in the Microsoft forums for the technologies that you are interested in. This is easy for Microsoft to measure and the forms are frequented by Microsoft folks and the other MVPs for each technology.
  • Blog! – Preferably on a Microsoft Web Site (thought not required)  since, in general, your blog posts will be easy for the Microsoft MVP folks to find and count, plus, your blog posts will get the widest possible readership.
  • Contribute to a .NET based Open Source Project.
  • Speak on Microsoft te3chnologeis at Industry Conferences.
  • Write Magazine or Webzine Articles.
  • Write a book or books.
  • Do a Podcast.
  • Comment on the blogs of Microsoft Product Team Members

Also, connect with the Microsoft people who work in your local Microsoft office. Seek out the folks that work with the technologies  that you are interested in and engage. The more they know about your work in the technical community, the more they can gage your standing and make recommendations to the MVP selection process.

I hope some folks that hope to one day become Microsoft MVPs will find these useful suggestions to help get them on the path !

Would you use an Off-Line Learning Application ?

Over the years I’m done hundreds of videos showing tips, tricks, techniques and methods for building ASP.NET applications.

One drawback of videos, especially as we move toward Hi-Def is that there is still much of the world’s developers lack the bandwidth to view streaming videos.

Some folks have he band width at work but not at home, etc.

So lately I’ve had this application in my head.

It’s a Windows Desktop application (and maybe a Windows Phone 7  application) that starts as large index into Developer content.

The content would be organized into “curriculum based learning” so that it could be referenced piece by piece or by a group as a syllabus.

Off course the index would all be searchable by category, tag, and keyword.

The app could contain and deliver video, audio, code, and written content and be capable of interactive learning modules (finish he module take a quiz, etc.)

The application would manage downloading in “the background” as bandwidth was available. (Either via an http server configured for presumable downloads or via a pre-seeded BitTorrent.

When all the assets for the curriculum are downloaded the user would get a notification that the material is ready for them.

New content would be feed by RSS/RDF and the application would sync an on line profile so that uses could keep track of what materials they have consumed and what they have not.

Anyway, it’s a rough idea and I wanted to ask people what they thought of it?

Blog Comments Re-Enabled.

I’ve turned comments back on (please feel free to comment.)

Thanks to @Meligy for the reminder.

I had to turn them off after several days an automated comment span attack.


I guess I suck.

🙂 Why is it that folks that wanna complain seem to always lack the courage to identify themselves of provide contact information?

Note to anonymous keyboard warriors.

1.) Consumption of web content is OPTIONAL and free. It you dislike, don’t consume.

2.) Constructive criticism and advice is always welcome. Inane vialness is not.

3.) A a general rule you should not write anything that you would not have the courage to say to me if you were standing within arms reach.

3.) If you want to be insulting, have the courage to include your real name and email address (and if you are really trying to be insulting, include your phone number and street address 🙂 )

It may be a new year – but some things haven’t changed.

You have contact request!

I Don’t Understand
From: NV (

I don’t get it. Your videos are helpful, but I can’t figure out if you like the sound of your own voice, or if you just have problems being a professional presenter. Can’t you just STFU and present rather than talking tons on tangents and repeating yourself constantly. Also, how about getting a foam filter to put over your mouth-piece so that we don’t hear those nervous, exaggerated plosives blowing-up your microphone every time you try to expressively explode from one of your own PERSONAL hold-up points. It can’t be that hard to relay what you’re trying to say without twitching the mouse around the screen nervously so much – in fact, trying to calm down, focus, maybe do a little scripting / outlining *might* help a bit. Otherwise, once I get past this crap (which you’re not showing any improvement over time), when I can stand to sit through your inane commentary, your videos are somewhat helpful (though cursory – if you really focused, you could pack much more of a punch).

You were sent this message because you are listed as an Editor on the site Misfit Geek

BTW – This is posted for fun. I get many great email from developer friends all over the world and there are far more “Good Guys” than there are jerks 🙂

Man there is just SO MUCH to learn in .NET 4.0 !!!!!


2009-10-13 16-15-10.188 - Copy

Sharing a tiny career milestone.

Working at Microsoft has been GREAT. I’ve been here for 8 years.

But it’s hard too.

For a decade before I joined Microsoft, I ran the show. Here, I’m just a peon, and not being on campus often means not being “inside” which creates several barriers to success. 

There is the politics, the constant org changes, the haters spanning your blog, the travel. (Not to mention the cut in pay 🙂

Today I had a bit of a cool thing happen.

Last night I installed Visual Studio 2010 Beta 2 – which I’m VERY excited about.

Today I fired it up to start working on some new videos and the top item in the “Latest News” page was an item about my latest video. 

Trivial, i know, but my spirits valued thy boost !!

Is Adobe the new Favorite Hacker Victim ??

I open several PDF files every day !

Check out these latest attack statistics from CNet


Microsoft has always been the Hack Attacker’s favorite victim, but in recent years we’ve made it harder and harder to successfully attack Microsoft products.

And so, the bad guys are diversifying their efforts – and Adobe seems to now be in their cross hairs.

[ Click HERE to tread the article on CNet News ]

The Lawyers want to take over Quality Control ?

“The first thing we do,” said the character in Shakespeare’s Henry VI, is “kill all the lawyers.”

InfoWorld reports that lawyers want to be able to sue software developers for shipping software that is not perfect. Even free and open source software.

It’s such a bogus idea that even Microsoft and the Linux Foundation agree…..

Here’s an odd couple: Microsoft and the Linux Foundation. These two organizations, normally on opposite sides of almost any issue, agree that a new set of guidelines making software vendors liable for knowingly shipping buggy software is badly off base.

[ Click HERE to read the InfoWorld Article ]

Linus Torvalds: Microsoft Hatred is a Disease

I’ve been doing “Open Source” stuff for a decade, but I work at Microsoft (They don’t call me Misfit for nothing.)

There are a few folks in the so called Open Source Community that viscerally HATE Microsoft. Personally I consider this a chosen form of stupidity.

I love working at Microsoft and I love many of our products, and I dislike some of the others.

I love and use many non-Microsoft products, and hate others.

But I do so based on the products attributes.

Lest we forget what the original Open Source thing was all about,

Linux Magazine reports on some interesting Linus Torvalds comments…

I’m a big believer in “technology over politics”. I don’t care who it comes from, as long as there are solid reasons for the code, and as long as we don’t have to worry about licensing etc issues.

I may make jokes about Microsoft at times, but at the same time, I think the Microsoft hatred is a disease. I believe in open development, and that very much involves not just making the source open, but also not shutting other people and companies out.

There are ‘extremists’ in the free software world, but that’s one major reason why I don’t call what I do ‘free software’ any more. I don’t want to be associated with the people for whom it’s about exclusion and hatred.”

There is not a single word here that I can disagree with. While I think it’s perfectly acceptable to for the Free and open source community to be a little more vigilant when it comes to Microsoft’s forays into this world, the outright blind hatred is nothing but a detrimental force that holds the Free and open source community back.


I agree that it’s driven by selfish reasons, but that’s how all open source code gets written! We all “scratch our own itches”. It’s why I started Linux, it’s why I started git, and it’s why I am still involved. It’s the reason for everybody to end up in open source, to some degree.

So complaining about the fact that Microsoft picked a selfish area to work on is just silly. Of course they picked an area that helps them. That’s the point of open source – the ability to make the code better for your particular needs, whoever the ‘your’ in question happens to be.

Does anybody complain when hardware companies write drivers for the hardware they produce? No. That would be crazy. Does anybody complain when IBM funds all the POWER development, and works on enterprise features because they sell into the enterprise? No. That would be insane.

So the people who complain about Microsoft writing drivers for their own virtualization model should take a long look in the mirror and ask themselves why they are being so hypocritical.

It’s always refreshing to hear someone level-headed discuss issues like this. I guess this is also the reason why, after so many years, Linus is still the undisputed benevolent dictator of

More questions on Professional Development Reading Habits

Vaibhav emailed me yesterday with some questions about [ this blog post. ]

In truth, I have slowed my technical reading since having children in preference to non-technical books, but I’ve been getting back to Tech Books recently as I have some “catching up” to do.

I’ve had hundreds of email about this blog post so I though (with Vaibhav’s permission) I’d answer his questions “out loud” sort of speak.

I’ve been thrilled by the response and enthusiasm about “reading” technical books.

One thing that makes our profession unique is that the problems that we solve, the tools that we use, and the nature of the solutions that we provide are ALL constantly changing.

“New learning” is in integral part of being (and staying) successful in Software Development.

Here is Vaibhav ‘s email …..

Hi Joe

How are you doing? Many thanks for the many inspirational articles on your website (

A big ‘thank you’ especially for the blog post – “I’m asked, how did you learn what you know ?”. I am quite sure that this article will be like a ray of light in the tunnel of darkness for those who would like to follow in your foot steps and be as technical competent as you are.

Joe, in this article you mention the following:-


For much of my your career I made myself read at least one technical book per week (if I finished early I would start another or read a business or personal development book.


Joe, can you provide some insights or tips on how are you able to finish a technical book in one week. It would be really helpful if you can answer the following questions:-

  1. What is the average time do you spent on a technical book, say, consisting of 500 pages or so?
  2. How much hours at the minimum do you devote to reading the technical book?
  3. Do you type in the code samples given in the book or you download the code from the associated website and execute the code?

No matter how hard I try, it takes me ever and ever to finish reading a technical book. The actions which are responsible for making my technical book reading this longer are as under:-

  1. I have a habit of underlining/highlighting the text in the book, which I feel is either important or is a good candidate for reference.
  2. I do practice the code samples given in the book, by typing the code by hand. Somehow I believe, I know this might sound stupid, that by typing the code, I am actually reinforcing the concepts in my brain.

Please advise if you follow any patterns or something to finish your technical reading faster.

Kind regards

Vaibhav Sharma

My answers……

1.) What is the average time do you spent on a technical book, say, consisting of 500 pages or so?

It’s impossible to say. 8 hours ? 100 Hours ? Some books are easy to read, others can be hard (becuase they’re poorly written, or because they are simply PACKED with data to be assimilated.

There are a couple of things that I do to try to “keep the rhythm”.

  1. I never EVER fail to finish a book. If I finish the first chapter, I commit to real the whole thing. There are acceptations for truly terrible books or books that I find to contain more than a little incorrect information, but this is my rule for ALL books (technical and other).
  2. Choose Titles Carefully. Sometimes I think authors are paid by the page. More pages doesn’t NOT necessarily mean more INFORMATION.
  3. Alternate. I’m between HARD books, read easy ones. After a 900 page book, read a 180 page book (or 2).
  4. Read EVERY NIGHT. Even if it’s only a few pages, build the habit.
  5. I always have 2 or 3 books going at any time. 1 Technical, 1 Fiction, and 1 Non-Fiction. Each night I read some of the Technical book FIRST !  Tech books require more brain power so I read some of a Tech book first. As I get more tired I switch to a pleasure book that has less need for detailed retention.
  6. Kindle – I still read Tech books on Paper but I do other reading on the Kindle as much as I can. It’s instant on and I can add to my daily reading time by getting in 15 minutes waiting for the kids, etc.
  7. Buy Fiction as Audio Books – I can listen at night long after my eyes get too tired to read. There are TONS and TONS of books on CD or downloadable as MP3. I can also listenwhile I mow the lawn, work around the house, etc.

2.) How much hours at the minimum do you devote to reading the technical book?

I don’t set a fixed number of hours per week.  But if my week lacks progress, then the following week I will “MAKE UP” time in the following week. (Reading at night and large energy drinks go very well together. 🙂 )

3.) Do you type in the code samples given in the book or you download the code from the associated website and execute the code?

NO ! – Not the first time I read a book. For me, continuity improves my learning experience so I head the book cover to cover 1st and then I might play with the samples. (This might also be why yo have trouble finishing many of the books that you start.)

4.) I have a habit of underlining/highlighting the text in the book, which I feel is either important or is a good candidate for reference.

I used to do this in every non-fiction book that I read. Now I almost never do. I’ll only highlight something because I need to go back to it later and I want it to be easy to find later.

5.) I do practice the code samples given in the book, by typing the code by hand. Somehow I believe, I know this might sound stupid, that by typing the code, I am actually reinforcing the concepts in my brain.

For me, I don’t need to enter the code to commit the concept to memory. I will almost never take the time to hand enter a book’s source samples, but I will often download the code when it’s available. Most often, I do this so that I can try variations on the original code.

I’m asked, how did you learn what you know ?

I got this email today from Mark…..

Hello Joe,

First may I say thank you very much for all the information that have published on I have learnt allot from it. I do follow you on twitter although I am interested to know how you started out, how you gained experience to the point that you are a Senior Program Manager for Microsoft. If you are able to spend any of your time replying to this message I would be very grateful.

Many thanks


I get an email like this every few weeks so I thought I’d blog the reply with some tips.


I began as an accidental programmer when a business my father had an interest in purchased a CNC machine and had problems programming it. Through my career I worked on Main-Frames, Mini-Computers, and Micros/PCs doing everything from device drivers to reports to UI work.

I also did the “management thing, and the start-up thing, before joining Microsoft to be a geek, I was the President and CEO of a publically traded company in New York (right on Broadway !)

When thinking about your question I jotted down some “tips”.

Hope they help.

1.) Spend your beer money on books.

For much of my your career I made myself read at least one technical book per week (if I finished early I would start another or read a business or personal development book.)  I’m an old dude, so I like paper, but there are lots of free book son PDF (like Microsoft’s Patterns and Practices publications) – I’m also a huge Amazon Kindle fan and am about to trade in my Kindle 1 for the new Kindle DX. Not only does it hold 3500 books but it has a native PDF reader and you can get magazines and blogs!

I’m always amazed at how many people I meet that do NOT read proactively. The majority of my technical knowledge (and all my knowledge for that matter) is the product of proactive reading.

When you read,  spread your wings. If you’re a web developer, don’t just read about ASP.NET or VB. Read about database design, read a book on how TCP/IP works, read about load balancing, you can fill in a lot of blanks by reading outside your box.

2.) Be an insomniac or addicted to caffeine.

Everything takes time and there isn’t enough of it. I force myself to read every night, even if I can only keep my eyes open for 15 minutes. Like most of the things we want to accomplish in life, “getting it done” include creating a behavior that becomes an ingrained part of our schedule.

I normally have 3 books going, One technical book (right now it’s Julie Lerman’s Programming Entity Framework ), one non-technical educational or personal development book, (I just finished The Fall of Carthage), and one book just for fun, right now I’m reading Orson Scott Card’s “First Meetings”)

Since I’ve had children, I’ve needed to commit to getting up a bit earlier (before the girls) and eliminating a few of my less productive activities. I just remind myself that continuing to learn is investing in my professional future and therefore my families security.

3.) Always have two jobs.

I’ve always had a second “job”. Often my 2nd job does not pay much (or at all). I also try to make my second job focus on something that I don’t do in my REAL job. Sometimes they are little things, like a few months ago I wrote a Silverlight article for PHP Architect Magazine, last year I served as technical editor for  “ASP.NET AJAX in Action”. Making commitments outside your comfort zone is great for personal and professional growth,

4.) Fight with your boss.

You need to be artful with this one. It doesn’t mean hate your boss (or make him hate you) but it means push back on decisions, look forward from a business and technical perspective and question the standard way of doing things. When we started the team that is now the STO Developer Community Team at Microsoft and decided to include multi-media content in our initiatives we did this and invented the How-Do-I video format. (Casual, NO POWERPOINTS, topically atomic, etc.). This format had never really been done at Microsoft before. It’s now the most cost effective type of developer interaction we have, has (I think) the highest satisfaction rating, and not only is every part of Microsoft doing How-Do-I videos, but tons of our partners are doing them too.

5.) Have a ONE-A-DAY policy.

This one is simple in principle but much harder in practice.

It goes like this……

You never, ever, ever put your head on the pillow at night until you have done 5 things. You do this EVERY day and you can never use anything on the list twice.

  1. INTENTIONALLY Learn 1 thing.
  2. Do 1 thing to advance your career.
  3. Do 1 thing to improve your personal life.
  4. Do 1 thing to help someone else be great.
  5. Tell someone that you love them / care about them, etc. (someone you didn’t tell yesterday.)

These things can be as simple as making a phone call or an email, but never let a day go by that you fail to perform all five.

6.) Quit your job.

Yep, you read that right. Now, don’t be stupid. Stay employed, but if your job gets intellectually stale, or technically irrelevant of antiquated, and you can’t work with your manager to improve the situation, go find a better gig !

You should try to NEVER leave a job that you have been at less than a year, but a couple 1 – 2 year gigs won’t kill your resume, can really boost your salary and contribute to your professional diversity.  (I’ve been at Microsoft and only quit once. (ScottGu ordered me to stay 🙂 )

7.) Work in Developer Support.

I served as the Support Director for a compiler company called JPI (Jensen Partners International). Niels Jensen was one of the three original founders of Borland and later founded JPI and built C, C++, Pascal, Modula-2, ADA, etc. compilers for DOS, Windows, and OS/2. I worked at JPI until the company was acquired by Clarion,  I primarily supported ISVs helping them get and keep their products working with TopSpeed compilers but also worked with “high profile” partners and customers.

When it comes to DIVERSE learning, support (solving other peoples problems) is like drinking from an op[en fire hydrant.

If you don’t want to get a job in developer support, answer questions in support forums like the ones at

Not only will it “pump up you knowledge”, but it will really increase your presence in the developer community and bolster your resume value.

8.) Start a company.

As al alternative to #3, start your own small company.

Even if it’s as simple as a company that sets up web sites for your local community organizations, it gives you a chance to make a couple of bucks and learn how a company runs, plus, you’ll have to spread your “technical wings” as your customers make requests.

Though I now work at a “big” company, I’ve done many startups and also worked with VC organizations helping other start-ups.

Someday, I’ll get involved in another start up.

9.) Attend “Geek Stuff”.

If you can swing it, go to PDC, Tech Ed, MIX. Or, smaller event like Code Camp, The Heartland Developer Conference, etc.

If you can’t afford those, go to local user groups, 1 day or 1/2 day events at you local Microsoft Office (or whatever other company does them.)

Attend free webcasts (Microsoft does thousands of them !) Even watch pre-recorded ones.

They are free, easier than reading, and not only educational, but often catalyst for thought !

10.) Teach / Speak / Write

Commit to put yourself and your work in front of other people.

This is a bit painful in the beginning 🙂 but you’ll quickly get motivated to REALLY know your stuff and it’s a great way to get recognized as a developer expert in your chosen fields,

Who knows, you may even end up in your perfect job, making good money doing exactly what you want to be doing !!!

Patterns and Practices of Lean Software Development

J. D. Meier emailed me this week to ask my opinion on “Lean” and referred me to [ THIS POST ]

For almost 30 years (yes, I wrote my first program for money in the 70’s as a teenager) I’ve been a “practical” geek. I don’t invest much in methodologies, or teh business / development fad of the era. I’ve seen dozen of Silver Bullets come, and go. Only to be replaced by the newest “holy grail” of software development,

Here is a quote from the blog post ……

A central concept in Lean is that planning, executing, and delivering work in small batches minimizes waste. The ideal limit of working in small batches is the single unit. Creating one piece at a time with zero waste is the ideal of one-piece flow.

Though I haven’t seen the process articulated before, many MANY software development teams use this process for building great applications, though perhaps calling it by a different name or even no name at all.

When it comes to process, sometimes, less – is more.

If a team produces great applications  that are delivered on time and within budget, are secure and meet the organizations / customers needs – isn’t the use of a heavily academic process irrelevant?

Check out the post and let me know what you think.

Should I delete my blog ?

Someone recently pointed me to a forum post where I was being “attacked” about my blog.

Working with the public has some rewards, but there are allot of simply nasty people to deal with 🙂

Normally I don’t even respond to a post by someone who wants to be insulting while hiding behind the anonymity of a profile with no name and a gmail address.

(Especially one from a “member” who hasn’t contributed to the community enough to break 100 member points.)

But since it’s now “out there” recorded for permanent posterity, I’ll explain and ask YOU.

Unlike some of my peers, much of my job is behind the scenes. This morning, for example, I spend 5 hours replying to email from both customers, and internal Microsoft people with needs, requests, questions, etc.

Part of my role is to stay on top of and understand the “state of the industry”, and very often I blog “news items” that I think are important for developer to be aware of.

Many folks tell me that these “quickies” are useful to them as they might not have otherwise been aware of the item.

We have lots of bloggers who do good “tutorials”, and some of the most popular technical blogs have included LOTS of news items (like Robert Scoble’s when he was at Microsoft)

For tutorial work I prefer to do videos, they seem popular (I’ve probably had nearly 10 million downloads)

There are only 100 hours in a week.

So my friends, how would YOU like be to spend my time.

  1. Delete my blog spend all my time on videos ?
  2. Delete my blog and write sample code?
  3. Blog long tutorials when ever I can find time and forget the news stuff ?
  4. Do whatever I want ?

So, if you were my boss, what would you have me do with my time that is most valuable for the Microsoft Developer Community ???

Please feel free to email me directly if you don’t want to post –

And on the 4th day there was light…..And heat, and INTERNET ACCESS !

We got lucky. Though there are still 200,000 homes in New Hampshire without power, ours came back on today.

Thought the power surge blew the power supply/motherboard in my Media Center PC 🙁

I got concerned email from Microsoft (Thanks Natalie & ScottGu) and from local friends (thanks Ron & Jon) and friend as far away as Iran (thanks Armin)

So, I’ll be back up to speed by tomorrow.

So… The damage.

  • $1000 for Generator, gas, extension cords, batteries,  and ancillary gear.
  • $ ??? – For a replacement computer
  • 11 impressive bruises from falling down a full icey flight of stairs in the dark 🙂

It’s amazing what we take for granted.

Since there are still so many local families without services, we’ve opened up our home to a couple of local families to come stay until their own power is back.

Many thanks to all for your interest!

My Lenovo Story – It only takes ONE person !

I got lots of email about my Lenovo post and tweets yesterday.

Lenovo never did answer the phone.

Even the internal Microsoft Lenovo Reps never followed up.


“Mark” from Lenovo read my blog posting and emailed me.

When I replied he immediately phoned me.

Not only did he commit to ship me a new keyboard, but he spent time with me on the Lenovo web site to determine exactly which phone number I called so that he could follow up at Lenovo to improve both the phone response and the web site.

Now I know some of you are saying, “yea, but you work for Microsoft and I’ve had bad service from you guys, so you have nothing to complain about!”

Bad service at Microsoft makes me furious and I literally spend hours every day “servicing” developers who contact me from all over the world. All the guys I work with at Microsoft feel the same way I do about helping our customers.

So, it’s not when systematic things (like a phone system problem or a web design mistake) cause a terrible customer support experience that makes me nuts, it’s when that bad experience is followed by apathy !

“Lenovo Mark” (I do know his real name but didn’t ask his permission to publish it so I’ll call him “Lenovo Mark”) took an enthusiastic approach to solving what was a simple problem.

Though he offered to have an on-site tech to my office “next day”, I declined since all I needed was a replacement keyboard.

Mark shipped it over night. It arrived before 10:00AM today, it took 5 minutes to install and I’m typing on it right now.

No company is perfect, but even the actions of one person reveal the “culture” of a company.

If I hated my Lenovo Laptops, I suppose it would matter less to me, but I LIKE the hardware.

Thanks to Mark for turning a horrible support experience into a great one !


It turns our I was on hold with a SALES line. After looking up my warantee information I clicked in a call link labeled services whihch was not, in fact, for “service” as in technical support, but as in the sale of “services”.

Upon more detailed searching I did find a list of “Technical Support NUmbers”

Mark challenged me to try THAT support call and see how long I waited !

I called three times.

I NEVER got put on hold, and the longest it took me to get to a real human service representative was 70 Seconds (Note, that’s SECONDS not minutes.)

Though I did spend 4 hours on hold with Lenovo – it was not with Technical Support !

Could the web site have been more clear – yes.

Could the copious verbal messages on the service sales live provided some iodentification that would have suggested I was in the wrong place – yes.

Could the Lenovo customer been a bit smarter – ok, yes : )

It almost makes me look forward to the next time I need support.

Dear Lenovo – Is hardware support a conspiracy ?

Some time ago I bought a top-of-the-line Lenovo T61 Laptop for personal use (meaningt not a Microsoft Asset).

I paid for the 3 year, on-site, warranty.

This weekend one of the keys popped off the keyboard, and then a poped anoth one tryingf to get the firts one back on. It looks like the bracked that the key(s) mount to is broken (it’s really flimsey) and needs to be replaced.

So I called Lenovo support…..

And waited on hold for more than an hour – then finally gave up.

This morning I called back and here I sit, listening to a message about how my call is important to Lenovo – FOR OVER AN HOUR.

So, if anyone from Lenovo reads this, I have a question.

Is your hardware support upgrade option a conspiracy ?

I mean, if you never answer the phone it’s all profit, right.

IN the mean time I guss I need to start shopping for another hardware vender.

What makes me Frustrated by Design ?

I received an email yesterday asking why I was “Frustrated by Design”.

Well. When I joined Microsoft in 2001 I had just sold a company and didn’t need a job for financial reasons (my wife and I have had children since then, so now I actually HAVE to work).

I had actually planned to start another company but the Sept 11th terrorist attacks happened in 2001 and changed my plans.

I could have gone to work for either IBM or Microsoft and I choose Microsoft because I thought it would be more fun.

And, because I hate when people just sit back a complain about what other SHOULD have done without being will to “put their feet in the pond” themselves.

My friends all thought I was nutz and asked me about my decision to join Microsoft, “You spent 20 years being part of the solution, what makes you want to go be part of the problem !?”

It’s very liberating to work for a company when you can actually afford to get fired 🙂

It’s part of my wiring to be a little idealistic. Joining Microsoft I still believed that one person could make improvements and drive changes.

One of my managers in the early years at Microsoft (Mike O) observed that I was constantly frustrated when a group would simply be satisfied with the status quo. He said that I was “Frustrated by Design”.

Seven years later I’m STILL Frustrated by Design, but still an idealist.


What does my team do anyway ?

Last night I was catching up on the day’s Twitter exchanges when I can across a conversation between two Microsoft employees.

One of the participants was a member of my team and another was member of the Microsoft “field” DPE organization.

The “DE” was telling the guy on my team that “whether he liked it or not, he working in a marketing role”.

I thought, man, if that DE was so clueless about what my team does, then tons of our customers don’t know what my team does either.

I suppose it makes sense. For years it was just me and the team owner (Simon Muzio).  It’s only been in the last year that we became a full blown team.

The confusion in the aforementioned conversation might start with the fact that a DE (Developer Evangelist) IS a marketing role. A DE’s job is to drive awareness and adoption of Microsoft Developer Tools and Platforms.  Their salaries and activities are primarily funded by a marketing organization.

They do this, for the most part, in very concise geographic areas. For example, there are New England DEs who focus exclusively on developers and customers in the New England geography. (Though there are some “Corporate DEs” who focus on specific technologies with no geographic restriction.)

Now, the DE role has changed in recent years and continues to do so. DE’s are no longer measured on sales impact; they don’t track their revenue impact, etc. But their role is to be expert in Microsoft’s Developer Technologies, to engage customers in their geographic areas, primarily in 1-to-many activities and increase the adoption rates of Microsoft’s products as well as increase the satisfaction levels f our developer customers.

That’s not what my team does.

We don’t really have a team name as yet, though internally we are sometimes refer to as ScottGu’s Secret Ninja Army ☺

Simon Muzio manages my team and apart from our general charter we have the agility to do what Scott Guthrie thinks is important on a week-to-week basis.

My team consists of the following folks:

•    Joe Stagner (Me) – Focusing on Web Technologies with specialties including Security, Scale and Performance, Non-Microsoft Web Developer Technologies, interop, and relative business issues.
•    Jesse Liberty – Focusing on Slverlight
•    Tim Heuer – Focusing on SIlverlight (Tom and Jesse divide up areas of Silverlight)
•    Steven Walther – Focusing on ASP.NET MVC
•    Scott Hansleman – I’m actually not exactly sure what Scott does but he moves between technologies and focuses a lot on unreleased technologies.
•    We have a collection of great support staff that does things like media production and web site management.

So, apart from each of our technological specialties, WHAT do we do and how do we differ from “Developer Evangelists”.

First, we are actually ON The product teams, our salaries are paid from R&D not sales and marketing. This means that our focus is different than that of Developer Evangelists.

Yes, we also do a lot of 1-to-many activities, but to a different end than driving sales and adoption

Our role is two fold.

1.)    To communicate product details and strategy (and thereby catalyze real and full understanding of the technology’s intent) directly from the folks who design and develop the products
2.)    To ACTIVLY solicit feedback from developers, to aggregate that feedback and present it to the product feature teams and thereby by shape the developer products that we are developing today and that we will develop tomorrow.

The 1-to-many activities that we do are, in large part, simply the vehicle that we employ to connect with many, many developers in order to gather the data we need to positively affect the product our teams build.

While all Microsoft employees are interested in customer satisfaction and adoption, my team’s positive results in these areas might be thought of as by-products of the ongoing conversations that we MUST have with customers in order to bring much needed data back into the development process.

They are not the end target result of our activities.

While both teams are important to the Microsoft Developer community, I think this difference is very important, both for developer customers to know, and for DEs to  understand.
DE work primarily with the product that we release.

Our team’s role is to help DETERMINE what those products should be.

Anyway, that’s what our team does (I think 🙂 – might be different next week.

Questions ?

Some Geeks have way too much free time on their hands !

The LAST thing I wanna see at the airport.

One of my flights to ZendCon08 was delayed 2 hours last week.

This is the last thing I want to see at the customer service counter where people are all trying to reschedule their connections.

I was wearing a “Microsoft DevDiv” shirt.

Not to Windows Team, in the next service pack to all versions of Windows, figure out how to blank the blue  screen after 60 seconds 🙂

Why don’t we ever to really cool give-a-ways !

Technorati Tags:

We always give away lame stuff like squishy balls.

Check out the cool gadget Sybase was giving away at #ZendCon08

A tiny remote controlled race car.

We need to get more creative with our free stuff 🙂

I guess EVERYONE isn’t a Chrome Fan 🙂

Interesting commentary about the REAL business goals of .Chrome

Read – CNN Review: Google’s Chrome needs more polish

Is this a Visual Studio IQ Test ?

 Note that the IIS component list of items to install is EMPTY !!!

And, I WAS running as Admin !

The real problem was that a CGI process that I was playing with stopped IIS.

Sometimes we gotta laugh at ourselves 🙂

Man I wanna be a kid again ……..

I’ve pulled over 80 hours this week, doing all te normal stuff and writing a bunch of somewhat tricky PHP Code (and really missing C#)

Meanwhile, my Wife and children are hanging out in Southern California.


Jill sent me these this morning, looks like they’re having a blast.

Great reminder of why I work hard !!

Peace through Code ?

Meet my friend Armin He’s the handsome your Iranian dude wearing the MSDN Event Would Tour Tee-Shirt shown here at Kandovan in a city called Trabriz.

Armin and I have been pen-pals for a couple of years now. We met when Armin emailed me to ask a programming question.

Now a senior in High School he is starting to pick up programming projects and planing for University.

Over time we have come to discuss much more than programming. We mail about life in our respective countries, family, freedom, and the meaning of it all.

It’s been great for me to learn about the Iranian people from someone that is NOT The American press.

And a great reminder that governments and “people” are two completely different things !

Moer proof that Code CAN solve everything !!!

The flip side of Open Source ?

There is a reason they call me the Misfit Geek 🙂

I’ve been doing PHP work for almost 10 years and I’ve worked at Microsoft for 7 of them.

When I talk about Open Source, it’s not form a “religions” perspective. I’m interested in the applications, the people and the business model.

A PHP friend, Wez Furlong,  share a passion for making things that were necessarily designed to work together do exactly that. Wez is a pretty big figure in the PHP world and we did a panel together a few years ago at MIX in which Wez brilliantly described Open Source as “Itch Driven Development”.

The point is, it’s the community need that drive the success of an Open Source project, no matter what the underlying technology.

This one died.

Check out my next blog post for a not on a COOL project that is alive and well !

How I got started in programming.

Well, Dave Ward tagged me in Michael Eaton’s software development meme that’s been going around.

As far as blog-chain-letters go, this is a great one. It’s interesting to see how many diverse backgrounds lead us in the same direction.

How old were you when you started programming?

13 (33 years ago as of this writing.)

How did you get started in programming?

In 1974, there were no personal computers. My school got a very basic “programmable” calculator. It was about 8 times this size of today’s laptop computers, had the equivalent of 8 16Bit registers and a collection of math operations. This was my introduction to programming and I was hooked.

Shortly after a business that my father was involved in purchased a NC programmable lathe that folks were having some trouble figuring out how to “program” and it because my summer job. Programs were stored on punched tape.

Then in 1979 I got my hands on a MITS Altair 8800 CP/M Computer. Then I bought a used Osborne 1, follow by a Televideo TS-802 (a real work horse for it’s day) and then a Kaypro II “Portable”. 

Just after turning 18 I was off to Grumman Data Systems institute to learn business programming.

What was your first language?

My REAL first programming languages were proprietary machine dialects, but I started programming on the CP/M machines in Basic and Assembly at the same time. (Both of which I hated.)

I quickly switched. I got my hands on a copy of dBase II and did lots of application programming in that. Also, back in those days the “programming community” was largely underground, and a buddy hooked me up with a bootleg copy of PL/1 for CP/M. Once I was able to get it converted from the 8″ floppy that it arrived on to a 5 1/4″ inch floppy that my TS-802 could read I was off and running and hooked on PL/1.

I used PL/1 for many years and even did some IBM Mainframe PL/1 after my adult software career progressed.

What was the first real program you wrote?

I suppose it depends on what you call a “real program”. The NC algorithms were “real”.

The first “application” that I wrote was a Customer Management application written in dBase II for a local Travel Agency. The cool part was that, in addition to keeping a database and including a reporting module, it drove a model and did synchronization with the airlines “Sabre” system by modem (at 300 baud)!

What languages have you used since?

Wow, lets see if I can make a list.

Assembly, Basic, PL/1, Cobol, Fortran, Algol, APL,  JCL, “B””C”, Pascal, Gorlan (Gordon’s Language) , LISP, ADA, Modula-2, Modula-3, Oberon, Logo, Forth, Rebol, RPG, Smalltalk, Haskel, Snobol, Java, Perl, Prolog, Postscript, JavaScript, TCL,  J++, “C++”, Delphi, Objective-C, PHP, Python, C#, Visual Basic, Ruby

Oh my !

My favorites ???  PL/1, Pascal, ADA, Delphi, Visual Basic, C#

What was your first professional programming gig?

I did a bunch of little summer stuff before my first FULL TIME job.

My first full time gig was with Honeywell Information Systems on their international logistics systems. Big GCOS Mainframes, working in many different programming languages but mostly COBOL and huge IDB hierarchical databases (relational databases hadn’t caught on yet.)

If you knew then what you know now?

Duh !  I would have gone to Cambridge MA and hung around Harvard until I convinced Bill Gates to drop out and start a company with me 🙂 !!!!!!

What is the one thing you would tell new developers?

Technical details are just technical details. If you want to build a great career, use technology to solve big BUSINESS problems.

What’s the most fun you’ve ever had … programming?

I spent a year or two working on investigative systems for federal law enforcement agencies. It’s STILL the most interesting stuff I ever saw. (And it was mostly written in Clipper ! – But I was rewriting it in VB and Delphi)

Whew. Is that over yet?

Well, that’s how I got started. Thanks for tagging me, Dave.

Now I gotta go write some code !!

The Everlasting Question – Should I choose VB.NET of C#

 I got an email last night from Eduardo.

Eduardo “Love’s VB.NET”, but is concerned about his long term career prospects because he keeps hearing about C#.

The Pie Chart from the Telerik Survey suggests that C# has surpassed VB.NET as the .NET language of choice. For the record, I don’t think this accurately reflects the division. I would guess that it’s more like 55% VB.NET and 45% C#.

People ask me all the time why I choose VB.NET instead of C# for my videos. The truthful answer is, I don’t. I use VB because ScottGu asked me to use VB.NET.

At first, I was a bit queased out 🙂 – I first started programming in “C” in 1978 and C++ in abut 1988-1989. So languages of “C” flavor like Java and C# are just familiar to me.

It took me about a week before I was I stopped thinking about the syntax I was coding in.

I just don’t think the choice between C# and VB.NET really matters.

The one statistic that does matter is that companies seem to be paying C# developers more than they want to pay VB.NET developers. I suspect that this statistic, like most, is irrelevant if taken on face value alone.

It’s possible, even probable that the C# programmers they hire have more of a systems programming background in C++ or an enterprise development background in Java so that C# is the syntax flavor of choice, but that flavor choice is a byproduct of their skill set and it is that skill set that earns them more money.

If a company pays C# developers more than VB.NET developers for no other reason than syntax choice, I’d probably choose to work for another company as I prefer to work for really smart folks 🙂

I’d be surprised if anyone could suggest a business application to me that REQUIRED it be written in one language over another (at least for non-business reasons.)

To me, the choice between VB.NET and C# seems a much less significant one than the industry seems to want to make it. It’s a stylistic choice. A philosophical choice. Even an artistic choice. But not really a NECESSARY choice.

Sure, TO ME, C# code “looks better”. And FOR ME, coding in VB.NET is a bit faster. Since I’m happy to switch back and forth, I lean toward building class heavy back ends in C# and front side stuff in VB.NET (though not always).

The power is in the .NET framework and in the productivity of Visual Studio. Does that make VB.NET and C# just the duck tape that ties them together ? 🙂

Below are some links to articles that discuss the VB.NET versus C# issue.

In the mean time, Eduardo, write great applications in which ever language best suits you and let those applications be the strength in your resume. Not the syntax flavor they are written in.

Murray “Flash” Gordon has a great VB and C# Comparison on his blog [ Click HERE ]

Wikipedia also has some good information. [ Click HERE ]

Nigel Shaw has a good article at The Code Project with some sound conclusions. [ Click HERE ]

Jeff Atwood at Coding Horror also has a good post. [ Click HERE ]

The Pie Chart above is from the Telerik Survey [ Click HERE ]

Yahoo Browser Plus

I installed Yahoo’s Browser Plus and run it though it’s paces today (few passes as they are in the current preview.)

This download is a quick 4 Megs and it installs the  VC++ 2005 Redistributeable.

Due to what are primarily described as security concerns the use of BrowserPlus is currently restricted so that it will only run of Yahoo’s own web properties.

There are 2 demos…..

  1. A File Uploader
  2. An IRC client
  3. A JSON Inspector.

Clearly we, as web developers, have a growing understanding that we need more than what the browser offers, at least in specific scenarios.

But why Yahoo Browser Plus.

Yahoo more or less describes the effort as a philanthropic one, built and offered up for the good of the rich web, but I wonder is there some value I’m missing.

Silverlight and even Flash seem to me far more feature rich and, for that matter Google Gears and JavaFX also seem more promising.

It’s the new web so I’m always interested in what it will take to build the next great ASP.NET application.

Check out and let me know what I’m missing.

Some in the press say Ozzie is not the guy ?

 In a piece in eWeek’s June 2, 2008 issue, Darryl K. Taft writes about Microsoft making an offer to Grady Booch in the pre Ray Ozzie days. He goes on to suggest that while he personally is not criticizing Ray and he has “much respect” for the guy, some of his colleagues say he is “not the guy”.

Note to the press (who, in all honesty, I most frequently hold in contempt)……

Give Ozzie his go before you start judging what he may or may not accomplish after Gates steps away from Microsoft’s day-to-day.

In my opinion, Ray Ozzie is better choice to assume the role of technical strategist at Microsoft anyway.

Ray Ozzie’s record includes great, innovative technical ideas which were realized in the form of successful software PRODUCTS.

Lotus Notes, like it or hate it, was THE thing in it’s day and is still well used. One could argue that it’s decline came only after IBM acquired Notes and failed to evolve it as it’s user base required.

Groove was also a visionary product that filled a gap not only in the “technology industry” but in Microsoft’s product portfolio.

Ray has had suitable time to adapt to the culture at Microsoft  and be advised by BillG prior to his pending Microsoft status change.

On the inside, it seems that Ray is more and more coming into his own as a technical thought leader inside the company.

I henceforth put a one year moratorium on all Ray Ozzie second guessing by any writer who has not himself (or herself) conceived a technologic innovation who’s gross sales do not stand today in excess of $100,000

Replace your crummy boss.

I’ve had some good manager and I’ve had some really, um, bad managers.

In my seven years at Microsoft I’ve had 5 managers and would works for four of them again (meaning they were great !) I can’t say that about other work experiences in my career.

My boss is awesome, but if he weren’t, I’d go to work for Brad Abrams.

Brad is a Principal Group Manager in the ASP.NET Development Organization here at Microsoft.


If your are a .NET STAR! and you want to replace your current boss with someone great to work for…..

[ Click HERE to read about opportunities on Brad’s Team ]

Instead of buying Yahoo …….

Wendy Tanaka wrote an interesting piece in THIS Forbes on line article where she suggests that negotiating with Yahoo may not be worth the hassle and she suggests some other things that Microsoft could choose to do with the $40 Billion.

Here are some of her suggestions.

–Hire 40,000 engineers, at $100,000 apiece, for a decade

–Acquire Facebook (estimated to have a market value of $15 billion), along with just about any other meaningful social networking site, including MySpace, Bebo, Hi5 and LinkedIn. There would still be enough money left over to pay some consultants to help with integration.

–Spend eight times more than Google did last year to acquire traffic–and presumably make traffic more pricey for Google, to boot.

–Hire 80 million workers in China to do nothing but click on Microsoft properties and related ads for 10 years.

–Promise a free Big Mac to everyone who clicks on a Microsoft ad–and give away 14 trillion of ’em.

JavaScript is Inevitable !

 You’ve heard it. JavaScript is not a REAL programming language.

Well, it is NOW. Programming in JavaScript is inevitable.

And why not.

  • It is ubiquitous. (Supported by all major browsers.)
  • It supports good Object Oriented Development.
  • There is TONS of code out there.
  • There is a rapidly growing collection of rich, high quality JavaScript Frameworks and Libraries available.
  • It’s been good enough to be implemented out of the browser in client technologies like Flash (ActionScript is for all intents and purposes ECMAScript, which is the new name for JavaScript)and SilverLight 1.0)
  • And, Server side technologies like Aptana’s Jaxer

While I concede that “Web 2.0” technologies like SilverLight 2.0 (Programmed in C#, VB, or any .NET language), and Flash/Flex, and JavaFX have a strong place in the future of the web….. programming the DOM with JavaScript is here to stay.

I think we need to stop trying to avoid JavaScript and start embracing it, even if only for it’s universal availability.

Microsoft is embracing JavaScript

  • We’ve added great development and debugging support fir JavaScript in Visual Studio (see links below.)
  • We’ve developed a GREAT set of JavaScript Extensions that are server independent, free, and open. [More Info Here]
  • Created a JavaScript friendly controls framework. [ See videos #62, #63, and #64 HERE. ]

So, if your ready to take JavaScript beyond the basics, here are some of my favorites to get you started.

Some Books on JavaScript beyond the syntax !

Some JavaScript Tools

Aptana IDE (A GREAT, free AJAX IDE, great for JavaScript even if you’re not doing AJAX)

Antechinus JavaScript Editor

SplineTech JavaScript Debugger

Internet Explorer 8 Beta (With great built in developer tools.)

Some Microsoft JavaScript Links

Microsoft JScript Blog

Microsoft JScript Reference

Video: JavaScript Debugging in Visual Studio 2008

Video: JavaScript Intellisense in Visual Studio 2008

A few better than average JavaScript Web Sites

W3 Schools JavaScript Tutorials

JavaScript Kit

Dynamic Drive

How Scott Guthrie gets so much work done.

I’ve known Scott for almost 10 years but when he hired me a few years ago I had no idea how much work he gets done.

Apart from managing the teams that deliver a dozen products for Microsoft, he travels and speaks everywhere, writes these detailed blog posts, and seems to know everything that’s going on everywhere. (Like if the site if down for 40 seconds in the wee hours of the morning.)

Well, I’ve finally figured it out !

Check out this rare photo that PROOVES

This explains ALOT !

Finally a bit of Love for Microsoft

Here a nice bit of “understanding” from eWeek.

Click HERE for the article.

Is Comcast censoring my internet content.

I read today this alarming report on Yahoo News that Comcast admits to censoring and blocking Internet use of its subscribers.

(Story here.)

My specific complaint is that where I live, Comcast is the only broadband provider. If there were an option that would provide me with the same speed, I’d consider switching. They are expensive, and their support varies widely (sometimes super – sometimes not).

So since they have a local monopoly, should they be restricted from dictating my USE ?

Or, shouldn’t I get a discount for packets I request and they refuse to send?

I pay over $100 a month for Internet access from Comcast and that’s WITH the multi-service discount (they are also the only cable TV provider I have access to.)

As an interesting side note. Early this week I saw a Television news clip about this web site

I went to the local Comcast where Bob Garfield and his readers and poster express their frustrations with the customer service quality at Comcast.

A couple days ago I went to the local Comcast service office because (without telling me) Comcast changed their protocols so that the Cable receiver boxes they lease to me can no longer order pay-per-view events (Like the UFC).

I’ve order, been charged for, and NOT been able to watch several shows and been told by Comcast customer service on each occasion, “Sometimes there is a problem with the feed”.

It was ONLY when I searched the web for other people having problems ordering the UFC on Comcast and called Comcast service that they admitted, “oh yea, those boxes are like 10 years old, they don’t work with our PPV network any more” that I knew I needed new boxes.

Since I had to make the drive anyway, I thought I’d get new cable modems. One of my Broad Band Comcast Internet connections was needing to be reset (un-plug the Cable Modem) once or twice an hour.

So I showed up to the Concord, NH Comcast service office with all my hardware.

At first it seemed strange to me that the lines of people waiting for service stood in front of bullet-proof glass barriers that went all the way to the ceiling (and I flashed back to the TV story about bad Comcast customer service.)

The woman who was at the counter (when it was finally my turn) was rude-as-could-be. She was apparently mad that I came in with multiple tasks that needed to be solved. But, we got all the changes done.

When I got home and plugged it all in. NOTHING WORKED.

None o the cable boxes worked (I have 3). All channels on all three TVs showed a message “Service Not Authorized”.

When I tried to browse to ANY web page, all my computers redirect to a Comcast page that said either:

“Your operating system is not supported.” (Linux)

“Click here to download software.” (Windows)

The “software” was this huge .exe. No one can tell me why I need it, what it contains completely, and no one will PROMISE me that it does not contain software that does not compromise my privacy in any way.

So, I called Comcast tech support.

The guys I got were AWESOME! I wish I could remember their names. (One for TV and one for Internet)

They’re fixed ALL my problems quickly and politely.

My Internet problem seems GONE and this weekend I’ll have UFC on PPV !

Now – how do I find out if they are censoring my Internet without trying to download something illegal ?

Maturing.NET Code Base

I saw my first preview of .NET in 1999 and that means to me that the code base of the .NET development community includes code that is approaching a decade old (not considering code that was pulled forward from pre .NET code.)

In the post DOT COM era where fiscal responsibility continues to increase and the software development life-cycle continues to DECREASE, there is a growing focus on re-tooling our existing intellectual assets.

One way to do this includes code-refactoring. (See Wikipedia Explanation here.)

Visual Studio 2005 includes some code-refactoring features (start here) and Visual Studio 2008 / ORCAS takes it to the next level (read here). 

There are even some cool FREE refactoring tools available like the one that Brad writes about here.


It’s called NDepend (a commercial product.)

You know that I’m a tools (really all software) junkie and I get lots of software to evaluate and provide feedback on.

I’ve been putting NDepend through its paces for a while and I think it ROCKS.

In addition to MASSIVE refactoring, it does things like Code Quality Audits, Build Comparisons, Naming Rules, Multi Thread rationalization (COOL !), and tons more.

One of my favorite features is Code Query Language (CQL).

CQL lets me use a SQL-Like vocabulary to ask semantically specific questions about my code base.

Things like “Tell me which public methods cold be private” or “Show me all the public methods with more than 30 lines of code.”

When I first started to use NDepend I approached it as a tool to understand and improve existing code (usually that someone else wrote), now that I’m learning more about what it can do I find myself using it to analyze and improve the new code that I’m writing.

You can even plug it into Visual Studio with Reflector.

You can download a trial or apply for Open Source use here.

Hope you’ll check it out.

Why are the How-Do-I Videos in Visual Basic ?

I get asked this question ALLOT !

Actually, the question usually comes wrapped in explicatives, or phrased less as a question and more as a command.

We actually do the recordings in VB for a few reasons.

1.) There are more VB programmers than C# developers (though the gap is narrowing.)

If we did them all in C#, I’d get even more email !

2.) VB is easier to read and understand.

We always provide the source code in BOTH VB & C# for your convenience.

Visual Basic is more verbose, so, though it may make C# purists a bit queasy, it should be easily understood by than. C# is more terse, therefore, perhaps a bit more difficult to understand (especially by folks who don’t program in it.)

3.) If we took time to record each video twice (once in C# and once in VB) we could only do half as many.

I’m asked: "Can you separate M$ lip service from fact for us? "

I’ve received a great number of emails in response to my “Scoble Gap” post.


The first that has prompted me to white included this question.


“Can you separate M$ lip service from fact for us?  That has to be the toughest part of your future.”


By this I assume the poster is refereeing to Microsoft MARKETING.

I’m not a fan of most marketing, ours or anyone else’s. But, it’s a necessary part of business. Marketing’s role is to advise the consuming audience of the potential benefits and values of the product they represent or “market”.

As geeks, we often see most marketing “collateral” as too many words containing little or no information.

It’s a hard balance, at Microsoft we have marketing folks that are really non-technical, and then we have folks that work in marketing capacity that are very technically competent (Brian Goldfarb).

It’s not what our marketing says that worries me. It’s when our people, especially our executive management are fully buying our own “stuff”.

MS Haters probably see this as arrogance. I see it more like a parent as he/she looks at their own children and have to work to set aside personal bias and proactively look for “areas that could use improvement”.

I have “that type of discussion” frequently inside Microsoft, now I’m just committing to make most of those opinions public.

So, call us out on what you think is “lip service” by emailing me though my blog – I won’t shy away from topics. J

Why would anyone Scrum?

I just read “The Enterprise and Scrum” by Ken Schwaber and I’m left with a single burning question.


Don’t get me wrong, I’m not talking about starting a new company or product unit and basing that new entity on Scrum practices. To the contrary, if I were starting a product development effort from scratch I WOULD.

I’m talking about re-factoring an existing software development organization who has historically used conventional Software Development Lifecycle practices (which means some variation of Waterfall methodology) to use Scrum.

Schwaber states in the first couple of chapters that you will loose a fifth of you staff, including a fifth of your management and your organization will be in turmoil for a year.

In this day and age, “Internet Time” where a year is three months long, what existing organization of any size could tolerate such an interruption to their business.

I’ve used what I’ll call “Scrum Like” process before on small teams over which I had complete control, which, I think from a Scrum purist perspective is an oxymoron. 

I’ve been taking some time to re-inform myself after the software development team Microsoft’s Developer Community Web Properties (,,  , suggested that they adopt a Scrum process. (That team is an independent third party.)

After reading the book I can’t figure out how we could do it and all keep our jobs.

One of the other fundamental tenants professed in Schawber’s book is “Never CHANGE Scrum”.  Don’t adopt it to your company’s process, don’t ease into it, don’t even change the vocabulary (role names, etc.) 

This all leaves me very conflicted ad Ken Schwaber is a very smart guy, a definitive voice on Agile Software Development Processes and one of the Developers of Scrum.

Joeological belief : Agile Software Development == GOOD

In this day and age for most software development purposes Agile is not only good, it’s necessary. We simply don’t have time to spec and test things in advance to the Nth degree the way we did in the 70s and 80s and I even believe that Agile architectures at both the Macro and Micro levels are an imperative in today’s successful software shops.

But Scrum ?

Not that it’s not a good idea, I’m just wondering if there is any evidence on the survivability of refactoring existing development organizations, especially those of any real size.

So subscribing gurus, what is YOUR experience on converting a development team to Scrum ?

The Scoble Gap ?

Robert Scoble and I have had agreements and disagreements. It’s not only one of the things that make me like him but one of the things that make him a “voice” in the industry.

Reflecting on Robert’s time at Microsoft, he was famous for the opinions that he shared but also of primary value was his service as a conversation catalyst.

I think Microsoft has been missing and needing more of each since he left, so I’m going to try to change and increase they way I blog.

I am not suggesting that I will try to fill Roberts “Microsoft Blogger” shoes. Just that I will try to follow his lead and be a catalyst for discussion and HEALTHY controversy. This is harder than it probably seems to the average individual blogger. Blogging when you work for a large company, especially one that is in the news all the time, is a risky thing. Apple, for example, simply doesn’t let its employee’s blog at will. (I was told this at the On Line Community Summit in Sonoma CA last week.)

Microsoft encourages it. Robert Scoble paved the way and did it without really restricting the subject matter of his blog. He was heralded for doing what most other companies would have fired him for.

Heck, if Rory Blyth can’t get fired from Microsoft for his blog J then I’m guessing that I’ll probably be OK.

In the years that I’ve been blogging casually at Microsoft, I’ve been asked a number of times to remove a blog post, only once from my own management organization.

In all but one case I declined, prepared to take the consequences. The one time that I did remove it was when the request came from ScottGu. It was not censorship (if it was – I’d be working somewhere else today.) His was a sensible request as my post was a link to an article that I had posted without the appropriate accompanying opinion. I was assuming the idiocy of the article would be obvious to my readers, I was wrong about that and so the link was being interpreted as an endorsement which was NOT what I wanted.

So, what do I plan to blog about? Well, I’d like to do more technical blogging about Web Technology, but much of the new stuff will be opinion on technology and its use, the business of technology, Microsoft and other business entities.

Finding that fine line between humility and confidence can be difficult for Type “A” personalities. That said, I have clocked a lot of miles in the technology industry, and the popular opinion (at least in the sphere on my communication) is that this experience makes my opinions somewhat valuable and somewhat unique.

Where are a few biographical bullets:

·         I earned my first programming paycheck 33 years ago. (Programming an NC Machine by manually setting the operation instructions via a large mechanical switch collection.)

·         My last employment before joining Microsoft in the fall of 2001 was as the President and CEO of a publically traded (CNRS) technology firm in New York City.

·         I’ve a principal in several startup companies some I owned, others I served in various roles such as VP of Engineering, Director of Consulting Services, VP of Product Development, etc.

·         I have been involved in both sides of the venture capital process. Sometimes representing the organization requesting the capital, sometimes performing technical diligence for the organizations providing the funds.

·         Over the past 20 years about half the time I have served in roles that included business and people management and the other half I have serves as (primarily) an individual technical contributor.

·         I have worked in, shrink wrap product, services/consulting, and enterprise computing organizations.

·          My time has been fairly equally divided between Microsoft, Java, and Open Source development technologies.

I joined Microsoft in 2001 with a strong belief that I would stay for only one year.

After selling the company that I built during the .COM boom to USWeb/Cornerstone and completing the contractual obligation to stay with them for one year, I took a bit of time off and had planned to start another company. I have a commitment for venture capital to start a Web Services based company and had an appointment to finalize the first round of funding on September 13th 2001. Two days after the terrorist attacks in New York City.

I had sort of ongoing conversations with IBM and Microsoft and Microsoft seemed more flexible in terms of my in-office time (the Boston commute is terrible) and seemed like a more fun place to work.

Also, IBM in 2001 was pretty much all Java and really hadn’t “seen” the non-Java, non-Microsoft development world yet.

What’s more, I had seen early private previews of .NET and its potential was clear to me even in those very early builds.

During the interview process at Microsoft, Rick Green, who headed up all of Microsoft’s Developer outreach efforts in New England at the time, asked me “Describe the perfect Microsoft job for you”.

In answer I said, “I just want to be a geek, I want to hang out with other geeks and I want no actual responsibility whatsoever”.

Eventually he phoned me and said, “Ok, I think I’ve got that job for you.”  I spent my first year and a half as a technology and business advisor to the ISV community. It was very interesting work and I focused on working with companies that did not primarily develop with Microsoft’s development stack.

Eventually Microsoft changed that role to focus on working with “named” ISVs like Peoplesoft, etc. and that wasn’t really my cup of tea. About the same time Microsoft decided to expand MSDN to include the MSDN Events team. So, I joined up and spend several years traveling around the USA and presenting to developers (Microsoft and non-MS). I loved the job, my management, and (most of) my peers.

But, no success goes un punished. Pat Hays, the brain trust behind Microsoft Across America was persuaded to join Microsoft Japan, and Mike O’Neal, my direct manager got promoted to a level where he had no direct reports. I loved working for “Mike O” as we called him and the new organization lacked the “juice” for me and stopped being fun. When Mike decided to take a break from managing “people”  (I guess we burned him out), I decided to leave and started to talk with various groups at Microsoft about what I might do.

I received a number of offers and really wanted to go to work for Bill Hilf (I really smart guy who leads much of Microsoft competitive platform strategy), but we couldn’t work out an arrangement that didn’t require me to move to Redmond.

I have little against the Seattle area. It’s beautiful on the eight days a year that it doesn’t rain. My reasons for not relocating are economic.  I was married and divorced as a young guy which made most of my early adult years a real economic struggle. I re-married in my late 30s and my wife Jill and I have two beautiful your children.

Since I built my house during the .COM boom (and before I joined Microsoft and shaved a couple hundred thousand dollars off my salary J ) he life in the kind of home we want to raise our children in.  We sit on a six acre lot on a dirt road and most of the house is paid for. As such, my wife doesn’t need to work (though she has recently joined DTSNH) and we can afford to send our kids to a very good private school without it severely compromising our lifestyle.

Being a great parent and husband is my 1st priority, so multiplying my mortgage by 6 or 7 hundred percent and adding a third to my cost of living just to be where the action is at this stage of my career just doesn’t make sense.

So, I resigned from Microsoft. But….. Just when you think you’re out… They pull you back in!

The plan was to go to SPI Dynamics. We handle had formal discussions, but they were where I wanted to go and they wanted me. 

My buddy Brian Goldfarb mentioned to ScottGu that I was going to leave Microsoft and Scott rung me up and asked if we could spend some time together at Dev Connections the follow week. (We were both speaking there.)

I spent an afternoon talking with Scott and a number of his senior staff and a couple days later Scott phoned and said he wanted me to come to work for him. When I asked him what I would be doing his response (paraphrased) was “Just say yes and we’ll figure it out”.

You only have to meet Scott once to know he’s the kind of guy you would bet on, so I did. I accepted his offer with no job description, no manager, no team designation, no salary or other compensation discussion, and no real performance objectives other than the resonation of the conversations that we had had up to that point.

That was two years ago. I got a manager (Simon Muzio), he’s awesome and I got the better end of the deal since knew nothing about me when Scott plugged me into his organization. I even have a “loose” job description, though what I actually do doesn’t bear a great resemblance to what’s written in our HR system. In some ways I’m Scott’s (and Simon’s) mouse. I just do what they want me to do.

It works for me. There is GREAT stuff about the job and not-so-great stuff about the job.

It lets me influence Microsoft products and culture without having to manage a group of people, which I like.

My renewed blogging efforts will be an attempt to increase those influences.

I expect on occasion to come under fire by both Microsoft and the IT community at large. Hopefully, the product of that conflict will be good for everyone, and I will be able to stay at Microsoft until a time of MY OWN choosing J

Getting Tech Support is like getting a divorce !

  • Every conversation is excruciatingly painful.
  • You even wanna strangle the people that are on YOUR SIDE.
  • When it’s over you’re left with less than you started with !!!!!

I know tech support is a hard job.

I know it’s hard to communicate from the other side of the world when my first language is your second language.

I know my patience is less than perfect (especially when I’m not getting my job done.)


This week my laptop died. (A Toshiba M5)

So, I called our Help Desk (on the other side of the planet).

[Help Desk] Hello, Sir, What is your name.

[Joe] May mane is Joe,

[Help Desk] So, You’re name is Joe?

[Joe] Yes, My name is Joe.

[Help Desk] What is your email alias.

[Joe] My alias is joestag. J-O-E-S-T-A-G

[Help Desk] So, your email alias is joestag?

[Joe] Yes

[Help Desk] So that’s J-O-E-S-T-A-G

[Joe] A-yup !

Basically it went on like that for 1/2 an hour and THEN I got to tell him about my problem.

My M5 doesn’t detect any USB Devices. I’ve tried a fresh install of Vista, I’ve tried 8 different USB devices…….

[Help Desk] So, your having trouble with your USB Device, what kind is it?

[Joe] Sorry, did I mention that I’ve tried 8 different devices?

[Help Desk] Did you try re-installing Vista ?

[Joe] Um, Ya !

[Help Desk] Ok, I’ll send someone over, what building are you in?

[Joe] I’m not on campus, I’m in New3 Hampshire.

[Help Desk] I’m sorry Sir, you’ll have to take it to a Microsoft building.

[Joe] Have a nice day !!

SO ……………………………………………………………….

I called Toshiba directly and after confirming that I’m still under warranty, we went through most of the same questions as I did with the help deck (well the technical ones anyway), and they told me to take it to the nearest Toshiba service center.

1/2 away in Nashua NH, no problem.

When I got there they had good news and bad news.

The good news was that they were in fact an authorized Toshiba service center.

The bad news is that they were starting to move to a new location in a couple of days and it would be a few WEEKS until they could get to my Laptop.

[Joe] Have a nice day.

I stopped at a CompUSA on the way home and bought a new Gateway Desktop .

…. and I still have NO IDEA how to get my Toshiba Laptop Fixed !!


Free at Last, Free at Last (Or Verizon Wireless You Still Suck, Part FINAL)


Just use a search engine and search for Verizon Wireless Sucks and see what you get.

I wrote a blog post few years ago titles “Verizon Wireless You Suck”. Since then I’ve received several HUNDRED email and comments with people sharing similar customer service nightmares with me about Verizon.

So… Last week I was in Redmond (I live n the East Coast but my job is based on the West Coast) and my phone wouldn’t work. After 2 hours with tech support they admitted they made changes that broke my access. This happens about once a fiscal quarter.

On the flight home I read “Smart Phone and Pocket PC Magazine” which was reviewing the new Windows Mobile 6 phones they are offering.

So when I got home, I decided to get the new device and give T-Mobile a try.

So, I went to the local Verizon Wireless center and asked them to cancel my accounts. NOPE ! We can’t do that.

But they did give me account information that my PC-Card data account was still under contract.

So I called Verizon Wireless directly.

Mind you, I have 4 Verizon Wireless Lines, have been a customer for TEN years and spent @ $20,000 with them in those 10 years.

When I said, “Hi, my name is Joe Stagner,my number is 123 and I’m calling to cancel all my accounts, can you guess what they said ?

OK, we’ll charge you $350. Have a nice day. (I should have paid $175 to terminate my PC Card account but it turns out that even though all my phones were out of contract they associate the PC Card with a phone and apparently charge you double for termination, or something, he representative couldn’t really explain, but at that point I didn’t care What it cost.)

So nice to be a valued customer  

Now I know, some people have had fine experience with Verizon Wireless – just not anyone that I know.

Later – I’ll post about the great experience I had atthe T-Mobile store in town.

And as a side note – wile I was in the T-Mobile store, FOUR other people came in and opened accounts so they could drop Verizon Wireless.

Free at last, FReE AT LAST !

UPDATE: Those Guys at Ektron !

2 Days ago I posted about my woes trying to contact Ektron.

Well, the folks ar Ektron are REALLY connected to the developer ecosystem.

It think I’ve recieved an email from almost EVERYONE  at Extron.

I have a demo next week (that even the CTO is going to join).

I’m excited about seeing the product, it looks great – and it’s cool that theyu are so plugged in and responsive. It’s a hint that their customer service is likley to be really responsive.

I’ll update you all after the review.

Merrill Lynch says I’m either Porn or I’m a Hacker :)

Merrill Lynch

Does YOUR compnay think I’m porn  ??

Send me a screen-shot !

When Technology Hurts the Business !

I’ve met the Ektron guys several times at various events and they make a super product (CMS400)  – not to mention have some very cool stuff on their site.


I wanted to take a closer look at the product (ad discuss some other opportunities) so I went to their web site and used the sales department’s email alias listed on their web site.


Here’s what came back to in me:


Delivery has failed to these recipients or distribution lists:

5.2.2:  Your e-mail was not delivered to all intended recipients. The recipient’s mailbox is full so they will need to delete items in order to be able to receive e-mail again. You may be able to reach the recipient with a smaller message size. 


The following organization rejected your message:


I know, I know, stuff happens, but left we forget – customers rule.


I had a discussion with my manager last week (Simon Muzio) in which he thought I was a little nuts about my email habit.


While I get about 1000 email a day – my rule of thumb is that I don’t put my head on the pillow until I can see ALL my unanswered email with out scrolling the in-box window in outlook. (Which sometimes means late nights !)


Anyway – hope someone at Ektron reads my blog  

The Register = Technology’s National Enquirer

There has been a lot of noise about the MVP scandal.

It got Slashdotted here –

It got “Registered” here –

Now I know that I’m old fashioned……..

I’m over 40, I work, I vote, pay taxes, don’t cheat on my wife, love my kids, work hard, tell the truth, etc…..

I have many social and professional peeves, irresponsible journalism is one of them – and “The Register” is a poster child for slanted sensationalistic reporting.

The folks at the Register join the “Fun to Hate Microsoft” club over at SlashDot in their contention that – it’s cool to hate Microsoft for doing what businesses do, and it’s generally OK to break the law, but your should feel OBLIGED to break the law if you get a chance to screw Microsoft.

So for THOSE folks, a few reminders.

1.) When you violate a legally binding agreement, you break the law.

2.) When you knowing break the law, you  INVITE the consequences for the actions that YOU CHOOSE.

3.) When you are given the benefit of the doubt and advised that you are in violation of your agreement, remember, someone just did you a favor.

4.) When you ACCEPT an agreement (like a EULA or a Partner Agreement) YOU AGREED TO IT’S TERMS.

5.) A product that is sold for $135 to $10,000 (100 user pack) IS NOT A “HOBBY”, it’s a BUSINESS.

One may not AGREE with the details of a contract (EULA), I’m not sure I “agree” that Microsoft should prohibit add-ins for Express.

But, whether one agrees or not is completely irrelevant.

It’s pretty much a universal concept that we don’t get to pick and choose the laws that we agree with and ignore the rest.

We don’t get to say, I need to comply with the GPL, but not Microsoft’s EULA.

Likewise, we don’t get to say, stealing cars is illegal, but I call an exception today because I don’t think THAT GUY doesn’t deserves THAT CAR so I should be able to steal it and not be punished for car theft. The law is the law.

I don’t agree with everything in Microsoft policies, I don’t agree with some of the GPL, and as such, I have the right to DECLINE them.

BUT – rules are rules.

If you ask me, it’s just stupid to commit to an AGREEMENT – BREAK the agreement – then cry and whine when your actions have consequences.

The Impact of the Web & Social Networking.

Are you considering Social Networking as you design your applications ?

Interesting Fact : 1 of every 8 couples married in the USA last year met on-line.

Education Priority in the USA ?

Nintendo spent $140 Million in R& D in 2002.

The US Government spent less than half that much in research and innovation in education.

Why are airlines such a mess ?

So here I sit in an airport again.

LaGuardia this time in NYC (Ajax World ended yesterday)

Every flight I’ve been scheduled on in the last 2 weeks has been either canceled or delayed. (A total of 7 cancelations.)

Judging by the announcements, there are more late or canceled US Air flights than there are ones that are leaving on (or close to) time.

The “reasons” vary. No crew, maintenance, no plane, bla bla bla.

I wish 2 things.

1.) When the airline screws up and costs me time, they should have to compensate me somehow.

2.) The rest of us should be able to call ouselves if we atain the average performance level of the airlines.

Some of the fun ?

Most of the airline reps seem to have no interest is solving the problems that their company creates, most airlines don’t even HAVE customer service stations in airports anymore. (Or they are only staffed from 9 – 5).

On the up side – the more air trvael hurts the more popular LiveMeeting gets.

Still, it sucks to spend 1/4 of your work week sitting in an airport, looking for a place to plug in your laptop and wishing you were home playing with your children.

The Best Steak Anywhere !


I happened to get into a conversation at Ajax World with the CTO of a medium sized company with a pretty large infrastructure that is considering moving from Java to .NET

After the days events went up the block from the hotel to Morton’s. The BEST Steak-house in the country (says me  )

The Food is awesome, the service is great, and George is the best bartender on the planet.

Check them out. There are about 35 of them around the country but the Mid-town Manhattan location is my favorite. On 5th avenue, but the entrance is on 45th around Madison.

Windows Vista vs. Hotels

I found this tidbit on Steve Riley’s blog.

Windows Vista vs. hotels

At many TechEds this year I’ve presented information about the new TCP/IP stack in Windows Vista. One of the important advances is its automatic performance tuning. With some of the early pre-release builds of Windows Vista, people were reporting problems with public Internet connections, most notably in hotels. Some of the routers used in hotels don’t properly implement the specifications for receive window tuning; the symptom looks like failed DNS requests when trying to browse the Web.

We made some changes to the stack and to Internet Explorer to detect non-conforming gateways and adjust accordingly. And indeed, I’ve seen the problem pretty much disappear. However, the gateway in a hotel I visited in South Africa still exhibited the problem, and when I disabled the auto-tuning Windows could finally connect.

I suspect that most of you won’t encounter this using the RTM build. If, however, on rare occasion you do, here is the command you can issue to disable automatic tuning:

netsh interface tcp set global autotuninglevel=disabled

You can abbreviate netsh commands to the first three letters like this:

netsh int tcp set glo aut=dis

Be sure to re-enable the setting when you aren’t on the hotel’s network:

netsh interface tcp set global autotuninglevel=normal

Or, using the shortened method:

netsh int tcp set glo aut=nor

FoxPro will always be dear to my heart.

As a younger (single) guy, FoxPro helps me buy lots of big-boy toys !

In my day jobs I wrote C, C++, Assembly, Pascal, ADA, Modula2……

But nights and weekends I wrote FoxPro.

It was the perfect “small business” application environment and I fould lots of “on the side” consulting work in FoxPro.

But, .NET is the furture. So if you’ve decided it’s time to move ahard, here are a couple of resource links for you.