• On Dec 16, 2008
    by Joshua Allen

    Oxite: Putting Your Design Front and Center

    If you're a professional front end web developer, you care deeply about web standards and professional best practices like semantic markup, unobtrusive JavaScript, and CSS. And you're used to seeing Microsoft's web products painted in a not very flattering light regarding these best practices. It's practically cliche to see a litany of standards validation errors on a random Microsoft web site; especially ironic on web sites which are intended to sell the Microsoft web platform. And if you've been in this industry for any amount of time, you probably know people who have turned down contracts with clients who demand that the site be developed in ASP.NET or Sharepoint, because of a perception that "it's impossible to use ASP.NET to produce clean, semantic markup".

    While some of these past criticisms were warranted, things are changing rapidly. With the release of Oxite and the accompanying articles, you have everything you need to accept ASP.NET projects without abandoning professional web standards and practices. Oxite is the first and only ASP.NET based open-source CMS and blogging engine that encourages you to do "standards first, markup first" web site creation; a professional best practice on other platforms like Django, Ruby on Rails, and PHP. Nishant's article takes you step-by-step through "standards first, markup first" web site creation and the process of leveraging Oxite. And Molly's article can be used to convince skeptical business decision makers who might not yet be sold on standards-first web site creation.

    It's Our Job

    In the past couple of years at Microsoft, we've redoubled our efforts to support web standards. Examples include IE8 passing Acid 2, Visual Studio supporting JQuery, Expression Web built from the ground up to support web standards, and our web services stack baking in REST and JSON support. Because of our unique market position, Microsoft has a unique obligation to interoperability. In fact, Steve Ballmer and Ray Ozzie recently made it official -- it's our commitment and responsibility.

    So, if respect for web standards is Microsoft's official policy, why is it still so common to see skepticism regarding Microsoft products and web standards? This may be due to some lingering historical bias, but this alone isn't sufficient to explain the perception. The simple truth is that there are still plenty of sites and projects out there which don't produce clean, semantic markup (let alone markup that validates). I think this can largely be explained by historically different perspectives.

    For starters, many of the most vocal and influential .NET developers come from a background similar to the people in the Enterprise Java community (in fact, many are converts from EJB). For them, the markup and JavaScript are a side-effect of the backend code, and the most important priority is to factor the server-side object model, state management and code as elegantly as possible. The server code is the starting point and purpose, and the markup is essentially a "necessary evil" that is used to connect the code with an end user.

    Conversely, people coming from a professional front-end web development focus tend to see the markup (and JavaScript and CSS) as the most important part of the application. Elegant semantic HTML plus unobtrusive JavaScript make your application future-proof, open the door to automation, accessibility, and numerous other benefits. To these professionals, the server side code is less important -- a necessary evil that exists to connect their elegantly factored client markup and code with a database or other service.

    This isn't to say that one perspective or the other is "wrong", but it does help explain the historical dearth of focus on "standards first, markup first" samples on the Microsoft web platform. When the most vocal and prolific community members have historically seen professional web standards as being secondary to server-side code factoring, it's not surprising to see their samples, recommended practices, and products reflect those priorities.

    Enter Oxite

    We created Oxite, first and foremost, to show how easy it can be to support professional web standards best practices on ASP.NET. Nishant's article walks you through the process we used, and you'll notice that it's very similar to the best practices you would follow in Django, Ruby on Rails, or PHP. Don't ever let anyone tell you that ASP.NET is a different beast -- it *is* possible (and easy!) to start with clean semantic markup and have it emerge from the framework unscathed.

    In addition, we created Oxite to be something that you can download and use in your own projects. We provide source and a liberal license, so you can use and modify the software how you like. We provide you with fully working code, so that you don't need to become a backend coder yourself, but it's exciting to see people from the community already creating tutorials and providing information about how to extend and improve Oxite.

    Finally, you should know that there are other CMS and blogging platforms available for .NET, and Oxite isn't intended to be a competitor or replacement. One of the most exciting things we've seen as a result of the Oxite launch, is renewed attention to "standards first, markup first" functionality across the board. While the other engines don't claim to be focused on "standards first", you can fully expect that some will be tweaked soon to encourage and support professional front-end web engineering best practices. The positive feedback from those of you doing "standards first, markup first" development has been encouraging, and will undoubtedly influence all of us who build platforms.

    We’d love to hear what you think. Is there room for a "markup first" CMS running on ASP.NET? What direction would you like to see Microsoft products move regarding web standards?

  • A Bright Future for Software

    It seems like everywhere you turn these days, there is more bad news about the global economy. Bankruptcies, layoffs, and bailouts continue to mount. We are hearing the words "recession" and "depression" more frequently than ever before in our lifetimes. The truth is, the world is in the midst of a severe economic crisis, and the end isn't yet in sight. But if you do software, web development, or media, you have good reason to be hopeful about the future. This is the time to hunker down and continue growing your skills and experience, because what you do will be more important than ever.

    Unlike some of the other industries hard-hit by the crisis, we've already been through this before. The information technology sector alone lost 700,000 jobs when the Internet bubble burst in 2000. These were permanent job losses, never to be recovered, and even the most pessimistic estimates predict only a fraction of the losses this time around. Our industry is paranoid by nature, and we've watched a number of failed business models go by the wayside since 2000, while new models have emerged. There will still be some painful lessons to learn before the worst is over, but our industry as a whole is much stronger than we were 8 years ago.

    The real reason for hope, however, is the nature of software itself. Software is one of the most scalable forms of human value creation ever achieved. When you write a piece of software, your skill and effort can benefit thousands, millions, or hundreds of millions of people with almost no incremental cost to you. Web developers understand this intuitively. Facebook expends almost zero incremental effort to propagate new features to 100 million users. The same holds true of traditional skrinkwrap companies. Adobe Software, who spend heavily on research and development, still enjoy 80% profit margins when expenses are accounted for. Microsoft, Google, and Apple enjoy similarly high margins, and it's not because we are geniuses -- it is because software is such a superbly scalable way to provide value.

    This wasn't always a matter of common agreement. There was a serious debate in the 1990s about the value of software. Some companies felt that software was simply free "bait" that could be used to sell hardware. Those companies are now defunct. And most importantly, companies like Google and Apple (and of course, Microsoft) who focused on software, have done well. This isn't to say that hardware is defunct -- back in 2004, Steve Jobs famously explained that the iPod is simply "software in a box". The complete experience requires you to purchase the proprietary hardware and pairs you with the iTunes software service, but these are essentially mechanisms to prevent piracy. The real competitive advantage is in the software. The mobile handset companies who have done very well, all realize that their hardware is a mechanism used to sell their software experiences, and not vice-versa. Likewise, Google's crown jewel, the pagerank software, is kept secret from most Google employees and is hidden behind a service, yet can benefit millions of users by being made available over the web.

    You already know that creating software is hard. Skilled user experience professionals, developers, and testers don't grow on trees. Traditional software (whether in a file, in a box, or in a cloud) will be more important than ever, and the massive changes taking place in the world economy will present some new opportunities for skilled people to contribute to the common good. Software will be needed to help fill the holes left by the decline of mainstream news organizations. Software will be needed as spending on energy independence increases drastically. Software to make healthcare more efficient, software to help citizens connect more effectively with government and social programs, software to educate, inform, and inspire. Yes, software will be more important than ever. There may be lean times ahead for all of us, but there is no better time to start getting better at what you do.

    So, what are the trends in software that get you excited about the future? Where do you think the biggest challenges and opportunities lie? We'd love to hear from you. And don't forget to subscribe to the RSS feed or follow mixonline on Twitter to get future updates.

  • Embrace Smallness

    Embrace Smallness

    In a world of super-sizing and "Go Big or Go Home!' tag-lines, it is sometimes hard to go against convention and embrace your smallness. Success appears to be made of quantity more than quality. I tend to believe that you can be successful by embracing your smallness.

    Smallness requires you to focus on what is important.

    For example, our team is small. We cannot afford to do every thing. When you try to be good at everything, you find yourself not being good at anything. It is better to focus on the important things and do less, than to try to do it all.

    Smallness allows you to change quickly.

    Question: what can change course faster, a battleship or leisure boat? Have you ever tried pulling a meeting together with 9 people to make a decision? I once tried, and the only hour where everyone was available was 8am, 2 months away. Smallness can help create nimbleness.

    Big organizations can embrace their smallness too.

    Just because you are in a large organization does not mean you cannot take advantage of smallness. You can break up big teams into smaller ones. You can look for the right behavior, not incremental behavior. You can apply constraints that force you to be more innovative. For example, ask yourself questions like "What if we didn't have a budget for marketing, what would we do?" or "What if we had to cut 50% of our upcoming feature set, what would we keep?"

    Smallness can make you define success in a different (and sometimes better) way.

    Many web sites look at quantitative measures for success. They may look at page views and consider success when they reach the 1M daily visitors mark, but is that the right measure of success? If you have an e-commerce site or a portfolio site, you don't want a high bounce rate, you want customers! Take time to think what success should be, you will be surprised how qualitative it just might be. Albert Einstein had a sign on his wall at Princeton that said: "Not everything that counts can be counted, and not everything that can be counted counts."

    Smallness can help to create a personal connection.

    People don't connect with faceless entities. They connect with people. Social networking is huge because of this. With smallness, people can learn about you, your opinions and ideals and connect with those things. There are great examples in my opinion of folks who have embraced their smallness like 37signals and our own local Jackson Fish Market.

    So let me ask you web designers and developers, how have you embraced your smallness?

  • Three Examples of People Extending Oomph

    Since we released Oomph last month, we've seen some exciting uptake from the community as people take the Oomph script and make it available in interesting ways:

    WP-Oomph

    Meitar Moscovitz has made a WordPress plug-in called WP-Oomph. The plug-in injects the Oomph script into your WordPress blog posts for you.

    WP-Oomph

    GreaseMonkey Script

    Pascal Van Hecke implemented the Oomph script for GreaseMonkey, which is a plug-in for Firefox that does javascript injection. He has it hosted up at User Scripts.

    GreaseMonkey

    Bookmarklet

    Lastly, a thread on the Codeplex discussion resulted in making Oomph a bookmarklet which works across browsers.

    Please let us know if there are any other Oomph implementations or extension so we can let people know about them.  And thanks to all who have helped to spread Oomph thus far!

  • Oomph Live at the Microsoft Professional Developers Conference

    I will be speaking about Oomph at the PDC, which you can see up on the PDC sessions page. Tim, the designer on the project, will be there as well as Thomas, our fearless leader. We'd love to meet with folks if you are down in LA, so please feel free to get in touch if you'll be there.

    Here's more on the session itself (formatted as an hCalendar using the event Windows Live Writer plug-in.)

    Oomph: A Microformats Toolkit @ PDCMicroformats are about enhancing the web, representing data using HTML. Targeted at web developers and designers, Oomph makes it easier to create, consume, and style Microformats. Oomph is an amalgamation of applications: an Internet Explorer Add-in written in C++; a cross-browser HTML overlay written in JQuery; a Virtual Earth visualization that geocodes on the fly; a set of beautiful CSS styles; and more. Hear how and why we built it, as well as how you can be part of the burgeoning Microformat movement.Wednesday, October 29, 2008 3:00 PM to 4:15 PM
    Los Angeles Convention Center
    1201 South Figueroa Street
    Los Angeles, California 90015  United States

    I'll also be hanging at the client track lounge on Tuesday. From what I understand, Scott Hanselman, Jesse Liberty, and some other interesting MS folks will be there at that time as well. Here's that event formatted as an hCalendar as well!

    Hanging Out at Track Lounge Tuesday, October 28, 2008 3:00 PM to 6:00 PM
    Los Angeles Convention Center
    1201 South Figueroa Street
    Los Angeles, California 90015  United States

    UPDATE: We're back from the PDC and sorting through how all the announcements will affect our plans for Mix Online.  The folks over at our sister site, Channel 9, did a great job of getting all the sessions recorded and posted.  As such, our talk about Oomph is now available for viewing and can be found here.

  • Oomph Video

    Here’s an eight minute demo of microformats and Oomph, so you can get a taste of what we’ve built:

    <a href="http://video.msn.com/video.aspx?vid=b205ba06-8956-423c-adf2-4d25c959afa1" target="_new" title="Oomph: A Microformats Toolkit">Video: Oomph: A Microformats Toolkit</a>
  • MIX Online, The Next Chapter

    You probably noticed the site looks a little different today than the last time you visited.

    MIX Online has been a community site for web designers and developers who believe that the web is a great place for innovation. In the past, the site has given you a varied perspective of what is happening on the web, a view into our conference called MIX, and interviews with amazing people with incredible ideas and stories on how you can take advantage of the web.

    But we were not content with resting there. We began thinking about how we could make MIX Online even better based on your feedback, audiences at our sister event, and people who have never even heard of MIX. We wanted to continue to be practical, conversational, innovative, unexpected and open.

    Our site will continue as a community site for web designers and developers who build and believe that the web is a great place for innovation.

    Here are some of the changes we have made based on your feedback:

    • We will take more of a scenario focus around emerging web trends. For example, Microformats is an interesting movement in the web community and we want to introduce you to it and give you some practical guidance around it.
    • We will continue to have our traditional blog, but we are renaming it under the heading "Opinions" that provides a more natural conversation with our small team.
    • We will provide practical articles with each scenario we cover that are written by people in the community, not always Microsoft's perspective.
    • We are providing freely downloadable, open source, and immediately useable prototypes. We not only encourage you to use these prototypes for your own projects, but to also submit code to the prototype project on CodePlex.

    We have a sister conference called MIX. We hope you have the opportunity to attend and continue to engage with us before, during and after the event.

    Please take the opportunity to visit, give us your feedback and ideas, download prototypes, subscribe, and most of all: keep talking to us, we are listening.

WE HAVE OPINIONS, and this is where we let them loose. We'd not afraid to share our opinion, and expect the same from you.

We’d love to hear your feedback. Want to contribute? Write us.