Archive for August, 2009

Podcast – Tim Heuer on SIlverlight 3

Tim Heur, Silverlight Community PM, on Silverlight 3 !

 In this episode – The Misfit Geek talks with Tim Heur, SIlverlight PM, on SIlverlight 3, how SIlverlught ROCKs and application scenarios that might be being overlooked

 Resources ……

 I’m still getting the hang of it all and I don’t have audio engineers, production staff, or SPONSORS !

If you are interested in advertising, have suggestions, or advice…. Please CLICK HERE and send them to me. 


Download Now !

Download MP3Download WMADownload WMA-FiDownload ACC

Winston Churchill said – “Democracy is the worst form of government except for all those others that have been tried.”

This sums up by blog experience with GraffitiCMS.

As many of you have emailed me, my blog has been having problems for about a month.

The default install of GraffititCMS has just crumbled over the increased traffic. It does down and my server needs to be rebooted (restarting IIS doesn’t always fix the issues.)

Files get locked and my server needs to be rebooted.

The stats tables get screwed up and my server needs to be rebooted.

I try to do comments admin and my server needs to be rebooted.

I’ve used DasBlog and BlogEngine.net and they are both super, but the versions I used did not support a true "database” which I desire. (BEN Now Supports a database provider model)

I used .Text but quit when Telligent pulled it into Community Server. .Text forked to become Subtext, which is super, but I couldn’t find themes I liked. Also, I worried a little about the future of Subtext since Phil is SOOOO busy at Microsoft. (He seems to be keeping up !)

I might have used Community Server but Rob Howard (Telligent) advised me against it as the next version really won’t be “single user friendly”.

I prototypes a migration from GraffitiCMS to WordPress. It sort of worked, GraffitiCMS seesm to have allowed some crap to slip though in my comments so I’d have to write a bunch of filtering to get it to really work, plus, I really want my blog to be extensible in ASP.NET and MySQL PHP driver performance on Windows is not good (WordPress does not support other databases out of the box.)

So, I found Al’s post here and  I migrated my Database for GraffitiCMS from VistaDB to SQL Server (Express).

Speed for complex tasks like comments admin has more then doubled and some of the things that were just plain broken seem fixed.

PLEASE email me if you see any anomalies etc. with my blog.

ASP.NET MVC – Is WebForms the VisiCalc of Web Development?

If you’re an “old geek” like me, you remember a number of software products that “changed the world”.

VisiCalc was THE spreadsheet of the day !  It might have done 2% of what Excel 2010 does, but when it was released it was an AMAZING innovation.

And how about DBase II (first released for CP/M) ?

It wasn’t the first database in the world, nor was it the first programming language, but it was an amazing innovation for the developer of the day that has evolved into forms that the original dBase creators probably never envisioned !

And then there was Turbo Pascal !!!!

When I got my first copy of Turbo Pascal it was pure genius. I think I paid $80 for it for my Televideo 802 CP/M machine. Up until then I was coding in assembly. The “C” compiler at the time was about $1,900 and the ADA compiler was like 5 GRAND !

The Turbo Pascal IDE (Editor) Debugger, Libraries etc. were state of the art back in the day, the best the world had ever seen. But it bore little resemblance to the Delphi products available today.

So what does this have to do with ASP.NET and WebForms?

Well, the point is, developer needs evolve. Perhaps faster than any other profession.

When ASP.NET was first designed, the majority of business application created were not web applications and the world was full of “Client / Server” developers.

We did Visual Basic, PowerBuilder, and Delphi. We built workgroup applications in Microsoft Access, FoxPro, dBase, Paradox, Notes, Excel, etc.

All these approaches to software development use the same “paradigm”. Forms, Events, and code that manipulates them.

Enter the World Wide Web.

My first web applications were CGI applications written in “C” and running on “Heavy Metal Unix”. 

My code had to do EVERYTHING – MY CODE needed to handle all the HTTP gook as well as generate the HTML to be returned to the client.

Later, when JavaScript came along, that same “C” code had to generate and embed JavaScript.

Now, we got it done, but 90% of our time was spent on plumbing.

Worse yet, doing this kind of web development required pretty detailed understanding of HTTP, HTML, Cookies, JavaScript, etc.

This took time to learn, and time to write – a lot of time. Meanwhile the world wide web EXPLODED in popularity.

All the technology players scrambled to meet the needs of developers who were moving to the web and needed to do it in a hurry.

Microsoft did a short lived effort IDC/HTX and then Classic ASP, Netscape did Live Wire.

Classic ASP was super and enjoyed great popularity, but only because it was less bad than all the other options :)

Enter ASP.NET and Web Forms.

ASP.NET/Web Forms was a perfect match for the skill set of the day (2001/2002) and was exactly what the industry needed at the time.

It delivered a developer “paradigm” that was very closely aligned with what developers were using. (VB, Delphi, PowerBuilder, Access, FoxPro, dBase, etc.)

– Forms, Events, Handlers, Libraries.

No need to know anything about HTTP, HTML, DHTML, JavaScript, etc.)

All the tough plumbing stuff was accessible in a huge base of well factored libraries, handled by the runtime, or done for you by Visual Studio.

It was perfect, and it’s acceptance was meteoric !

Then about 8 years later, Microsoft started showing ASP.NET MVC.

The “uber-geeks” and ALT.NETers were all over it and condemned Web Forms to a quick demise.

Some even suggested that Microsoft was conceding than WebForms was a mistake.

NOT !!!!!!

Web Forms was EXACTLY what we needed at the time, and it was massively successful in helping companies around the world take thousands of applications to the Web.

And then the Web, along with it’s users, matured, and they did it in “internet time” where a year is three months long. That’s a lot of evolution.

Today, more and more applications NEED access to the HTTP stack, they NEED to contain features and behaviors that can only be implemented in custom JavaScript (or Silverlight or Flash)

Like all development scenarios, developers get started doing meaningful work with the tools at hand and then inevitably start to “get under the covers”.

ASP.NET MVC does NOT hide you from the plumbing of the web. It doesn’t, for example, add state to HTTP’s innately stateless nature. To the contrary, in embraces it.

From my perspective, this makes product development from ASP.NET Web Forms to ASP.NET MVC a natural platform progression.

The ASP.NET Team is continuing to evolve Web Forms because many, many developers will continue  building great applications using Web Forms, and may never crack open MVC. There are new features in Web Forms 4.0 and there will be in 5.0 as well.

The ASP.NET team is also continuing it’s work on ASP.NET MVC. This is not to the EXCLUSION of Web Forms, but is an answer to the natural evolutionary needs of web developers.

Some developers will love the ASP.NET MVC way, other hate how much of the detail they need to code themselves when ASP.NET Web Forms just “gives it to them”.

And…. Some folks love working in the classic GOF MVC pattern. Others don’t like feeling “constrained” by a specific implementation structure.

I spent last week on campus (Microsoft headquarters where the ASP.NET is built!)  and spent much of my time meeting about the products and features the ASP.NET team will be delivering AFTER ASP.NET 4.0

More evolution – but don’t panic !

The new stuff will very cool and compatible (if you’re going to PDC or MIX you may see sneak peeks) – but most of all SIMPLE and POWERFUL !

Everyone always wants to talk about innovation, but clever evolution is every bit as exciting to me (and the lines between the two are grey anyway)

As for me, I’ll still be doing Web Forms, but I’ll be learning MVC and I’ll be chomping at the bit waiting until I can start showing you the V.after_4 stuff !

After a week looking at some longer term plans for ASP.NET – I’M PUMPED to be on the best train for web developers !!!

 

Technorati Tags: Microsoft ASP.NET MVC Future

I figured out how to solve Americas national debt problem.

Yesterday on a motorcycle ride I figured out how to solve America’s national debt problem.

Fine every fool that throws a lit cigarette but out a car window $1000 !!!!!!

PHP Linux Windows ASP.NET Performance – Redux !

UPDATE: This is a followup – please read the roogiional – and remember, these tests are NOT Microsoft official and NOT endoursed by my Employer.

Last week I posted some comparative performance result that I got from comparing the relative performance of PHP on PHP 5.2 to PHP 5.3, PHP on Linux to PHP on Windows and PHP to ASP.NET.

First, I want to thank the PHP community for their responses. With only a few exceptions the PHP community proved that they are not a bunch of teenage jealous (anymore :) ? ) but rather a group of professionals, confident in their work and ready to engage in respectful dialog.

A couple of my friends in the PHP community (See: to Andi Gutmans & Brandon Savage) took exception to the perf results – and for fair reason.

In my tests I declined to install PHP op-code caching for my tests because its not installed on some of the hosts I use and is not built in to PHP (yet – though I understand it will be in a future version and is part of Zend’s free Community Edition Server)

Andi, Brandon, and other pointed out that in business application deployment, most PHP shops use op code caching, so I installed it on Linux and Windows and re-ran most of the tests.

Note that the PHP 5.3 with APC tests were run on a clean Debian 5 setup on the same hardware and running the same code. I moved to Debian because building on Ubutu was giving me dependency fits. You’ll note that the performance delta between Ubuntu and Debian was negligible.

You can click on the image below to see the whole updated times table.

8-13-2009 9-26-43 AM

[ Click here for the whole table. ]

Some items showed a small improvement in performance, some stuff up to 25% faster, but overall it was far less than I expected.

Some things ran slower with APC but I attribute that to simple machine variance. (Note, the numbers in the table are NOT the first page run. I loaded the page, refreshed twice to make sure to hit the cache and then took the numeric results.)

Some folks suggested that these weren’t “fair” tests.

I disagree.

An empty loop test or an empty function call, for example, is very important because the results indicate language or platform OVERHEAD. That overhead is addition latency in page delivery and this, if it exists, is an important consideration.

A few of my PHP friends concede the accuracy of the results but made very insightful comments.

I’ll paraphrase them here.

  • The amount by which ASP.NET is faster than PHP doesn’t matter to me. PHP is simply my preference and it’s fast enough in my applications.
  • Sure, ASP.NET might be faster in raw execution but in my web applications I can easily buy that performance back with good page and JavaScript practices.
  • I build on Drupal and I know PHP best so what I might need to spend on more hardware I make up for in developer productivity.

These are all excellent points !

Though I think the tests that I’ve run so faw are fair, they are incomplete and their incompleteness prevents us from seeing the whole story.

Contrary to the couple of inevitable allegations that I’m “just” a Microsoft shill. I’m doing this because I want to KNOW.

My last tests revealed things like PHP file access and MySQL access on Windows has real performance issues and this information was received by the various teams involved here at Microsoft. They are following up and hopefully the data will directly result in improvements.

So – HERE IS YOUR CALL TO ACTION.

Use the contact form http://misfitgeek.com/contact/ and tell me what tests you would like me to run in order to grow my test suite in ways that you think are fair and meaningful.

Here are some of what I’m planning.

  • Real Page tests – loops, calls, and object instantiation are one kind of test, but full page rendering is another meaningful benchmark.
  • Load tests – can one environment or another handle more simultaneous requests.
  • During Simultaneous requests, does one stack degrade performance more than another.
  • In the above context – how much does 64 bit matter on each platform

I hope you’ll send me your suggestions.

Technorati Tags: Microsoft Windows C# ASP.NET PHP Linux Performance Benchmarks
  •  

Telerik Extensions for ASP.NET MVC

datepicker

One of the big strengths of ASP.NET is the huge number of high quality 3rd party augmentations to ASP.NET.

Well, the venders are starting to show ASP.NET MVC Offerings.

[ Check out Telerik’s HERE ]

 

Technorati Tags: Microsoft ASP.NET MVC Telerik Controls

A New Web Developer IDE from the folks at JetBrains

8-12-2009 12-10-19 PM

The guys at JetBrains make a good Java IDE and now they are making a Web / PHP IDE

You can try the Beta Here !

http://www.jetbrains.net/confluence/display/WI/Web+IDE+EAP

Technorati Tags: php ide editor

Those Slackers are at it again – Stackoverflow Inspired Open Source Clone

Sonu Kapoor (DotNetSlackers.com) is working with Andrew Siemer to create a create a series of articles to recreate the StackOverflow website (of course with the permissions of the SackOverflow guys).

The first article went live yesterday and others are coming very soon.

I thought I would share this with you in the hopes that you will get involved.

Here is the first article:
http://dotnetslackers.com/articles/aspnet/Building-a-StackOverflow-inspired-Knowledge-Exchange-Introduction.aspx

Here is the index (under construction):
http://dotnetslackers.com/projects/StackOverflowInspiredKnowledgeExchange/

The source-code will be hosted on codeplex:
http://knowledgeexchange.codeplex.com/

Comments on my recent benchmarks.

Overall I’ve been pretty impressed with the reactions to my first round of PHP/Linux/Windows/ASP.NET performance tests.
I’d like to comment of the comments  

First, while I appreciate the enthusiasm of my .NET friends, the point of my exercise was to give me (and other folks at Microsoft) a starting place to understand some things about the performance of PHP on Windows and of ASP.NET.

If your faith in ASP.NET is incrementally sustained by virtue of this data than I’m happy. If I didn’t think that .NET was a as good as or better than any other technology for building web applications then I wouldn’t be working here at Microsoft.

But …..  It is incorrect and naïve to use this little bit of data to discount PHP out of hand.

I have much more work to do and there are many considerations.

  • These are BASE performance data. It is unwise to take a little bit of favorable data and use it to make sweeping conclusions.
  • There are many more performance factors we need to research.
  • PHP as a core technology easily scales out with hardware additions, hardware can often be considered cheap under the right circumstances.
  • Though my environment emulates my shared Linux host, enterprises will use op-code caching and we should consider this scenario (test results coming soon.)

My goal isn’t to show PHP on Windows is faster than PHP on Linux – my goal is for PHP on Windows to ACTUALLY BE faster. The same with ASP.NET. These tests have provided useful data to some of our internal feature guys already and they are taking action as a result.

Here are some general statements, assumptions, etc and my responses.

  • “I would utilize ASP.net simply because I like the Visual Studio IDE” – I personally think Visual Studio is far and away the very best, most productive developers IDE ever made. But, there are some pretty good ones for PHP. I use Zend Studio, PHPEd, Komodo, Delphi for PHP and all are great. I loathe Eclipse, but Zend has done a good job extending it for PHP Developers.
  • In regards for requests to compare the performance of Classic ASP to ASP.NET – No thanks !!!!!  Classic ASP is not nearly the development technology or EITHER today’s PHP or ASP.NET. To do a comparison is to suggest that folks might do new development in Classic ASP and I couldn’t recommend more strongly that you move n from Classic ASP.
  • 32 bit versus 64 bit ? – The nature of these tests would likely not show any statistically significant differences by the additional address space of 64 bit. In future tests where I add load simulations, I will add 64 bit scenarios to the tests.
  • “PHP is ugly like hell” – Oh, I beg to differ. Classic ASP was MUCH uglier !! You can write terrible and ugly PHP code. As you can write terrible and ugly C# and VB code. On the other hand, you can write very elegant C++ style code in PHP. It is completely a factor of the developers skills and attention to detail.
  • Adding Apache on Windows to the tests. – No thanks. Apache is THE server on Linux but IMO, you’re missing out on a TON of opportunity if you don’t use IIS 7.x on Windows !
  • “Adding a XAML/Silverlight comparison would be a good idea.” – This would be interesting, but a little out of scope. First, the tests would only be interesting if we compared the performance of logic that could be run EITHER server or client side. Then, in addition to the server side execution performance I would need to duplicate the tests in Adobe Flash and JavaFX in order to be really meaningful.  I’ll add it to my list for a later set of tests.
  • “Is there a way to improve the performance of the file copy test on Win2k8 ASP.Net 2 without compromising security?” – Probably not. I think this has to do with the ACL system used by Windows Server. I might test the performance reading and writing files through streams to compare the performance. Some things will just be faster on one side or the other; luckily, mass programmatic file copy operations aren’t too common for web applications.
  • “PHP has always been, and will always be, tailored to semi-professional environments.” – No disrespect, but this is simply bullshit ! There are MANY professional / high quality sites and applications written in PHP and there are many PHP developers who’s work I greatly respect. Professional / Not professional is a factor of the developer’s skill, not PHP or ASP.NET
  • “But Linux is Free” – Well…….  This is a great topic for discussion. I’ll get to it in a bit   
  • “I don’t think it’s fair to compare PHP without an opcode cache… You can’t compare an opcode cache to page caching. .Net has the benefit of using bytecode, while PHP has to parse the file and "compile" for each page request. So you deny PHP the advantage that .Net has” – I agree this test is necessary for completeness, but I’m not sure the logic holds. I tested PHP as you would download and install it. My shared host does not have op-code caching installed. The fact that it’s built in to ASP.NET and not PHP doesn’t make my test unfair, it’s MISSING from PHP. That said- the request is valid and I’m working on it.
  • “Please add Perl, Python, Ruby, etc.” – Someday I might, but these web development options are relatively unimportant (to me) since the developer market share of these are still just a tiny fraction of that held by ASP.NET and PHP. (I am more interested in JSP though.)
  • “if you get around to doing that kind of test, you should probably account for the fact that it typically takes hours to set up and configure a Windows server (while most Linux sysadmins can do it in under 10 minutes).” – This just isn’t true. EXPERIENCED Windows and Linux Admins can do equally impressive things deploying servers within their respective areas of expertise.
  • “Saying that PHP isn’t a "professional" language is just dippy, since nearly all of the largest web sites in the world today were built with PHP.” – It is dippy, but it’s also WRONG to say that “nearly all” are built with PHP. Some are, some aren’t.
  • “Why didn’t you use Zend Page Cache to negate that effect to bring it to an equal footing with ASP.NET?” – As mentioned above. It’s not part of core PHP, the exercise wasn’t to do a bunch of custom stuff to get PHP to be as fast as ASP.NET, though as I mentioned, I’m going to work on an test with Op-Code caching.
  • “What about Mono” – Email Miguel, he probably already has some relevant data.
  • Exo – you’re a jerk   :)
  • “Win + ASP.NET + MySQLWin + ASP.NET + PostgreSQL” – Yep !!! These are in the works !!
     

There were another couple of interesting comments ….
 

“I’m not a developer I’m a user.”

… and

“most of these (PHP)  projects are perfect examples of heavy spaghetti, anti-pattern software.”

From a pure technology perspective, I find .NET to be far more powerful than PHP, but that doesn’t mean PHP is not powerful.

IMO, PHP’s power is in the network of applications and frameworks that are available.

Though many PHP “users” are “real” developers, many are as the commenter suggests, “Not developers, but rather users”.

As to the second quote, sure, I’ve looked at lots of ugly PHP code.  I’ve done lots of work with PHP-Nuke and PHPBB and neither is coded in an elegant or OOP way.

But, both those applications ROCK !!!!  Lots of the PHP-Nuke code is UGLY, but it works !!!  (A lot of the world’s business systems are still running on really UGLY COBOL code.)

I used PHP-Nuke for years and made a habit of sing a code formatter and cleaning up modules or pages as I “touched” them.

Though both PHPBB and PHP-Nuke are “out of favor” I still use and love them. I also now use and love Drupal, Joomla, SMF, and VBulletin, as well as many others.

THIS !!! Is why I’ve been on this 8 year mission to get PHP on Windows working well and to get PHP and .NET working together !!  I wanna use PHP applications and have access to the amazing power that is .NET

So, that’s a lot of rambling, but there is one more topic that I deferred higher up in this text.

TCO ! ?

Craig asks a GREAT question – “ …. isn’t it TCO that counts?”

Yup !

Total “cost” is a factor of SO many thing.

Microsoft can convincingly and truthfully explain to you why .NET offers that best TCO ratio !!!!

The problem is, Zend can truthfully explain to you why PHP offers that best TCO ratio.

Everyone who dislikes the state of ANY technology comparison bails out to fuzzy TCO claims.

I’ll get to TCO data that is perf/scale based (after much more testing.)

I’d be very interested in seeing any REAL data either way.

In any event – thanks for reading. More to come !

[ You can read the original post HERE ]

Microsoft now owns Office.com

Some one sent me this. I have no internal knowledge about it. But it’s interesting food for thought.

Especially when you couple it with this http://news.cnet.com/8301-13860_3-10076883-56.html?tag=mncol;txt

I think this will open up some really interesting opportunities for web developers.

See it for yourself at http://www.whois.net/whois/office.com’

Registrant:
        Domain Administrator
        Microsoft Corporation
        One Microsoft Way
         Redmond WA 98052
        domains@microsoft.com +1.4258828080 Fax: +1.4259367329

    Domain Name: office.com

    Administrative Contact:
        Domain Administrator
        Microsoft Corporation
        One Microsoft Way
         Redmond WA 98052 
        domains@microsoft.com +1.4258828080 Fax: +1.4259367329

    Technical Contact, Zone Contact:
        MSN Hostmaster
        Microsoft Corporation
        One Microsoft Way
         Redmond WA 98052
        msnhst@microsoft.com +1.4258828080 Fax: +1.4259367329

    Created on…………..: 1999-04-19.
    Expires on…………..: 2019-04-19.
    Record last updated on..: 2009-08-04.