Under the hood of the new Azure Portal

20 September 2014 Posted Under: azure
For the last year and a half, I've been part of the team that's building the new Azure portal - and it's been quite an experience. A lot has been said about the end to end experience, the integration of Visual Studio Online, and even some of the new services that have been released lately. All of that's awesome, but it's not what I want to talk about today. As much as those things are great (and I mean, who doesn't like the design), the real interesting piece is the underlying architecture. Let's take a look under the hood of the new Azure portal. Read More

Switching from Wordpress to Jekyll

17 July 2013 Posted Under: jekyll
Over the last few weeks, I've been slowly moving my blog from Wordpress to Jekyll. The change has been a long time coming, and so far I couldn't be happier with the results. I thought it may be interesting to make the ultimate meta post, and write a blog post about my blog. You can take a look at the source code on GitHub. Jekyll takes a bit of a different approach to serving up a blog. Instead of the traditional model of hosting an active web application with PHP/Ruby/.NET/whatever and a database, you simply post static pages. Read More

Scalable realtime services with Node.js, Socket.IO and Windows Azure

30 January 2013 Posted Under: azure
Wazstagram is a fun experiment with node.js on Windows Azure and the Instagram Realtime API. The project uses various services in Windows Azure to create a scalable window into Instagram traffic across multiple cities. The application is written in node.js, using cloud services in Windows Azure. A scalable set of backend nodes receive messages from the Instagram Realtime API. Those messages are sent to the front end nodes using Windows Azure Service Bus. The front end nodes are running node.js with express and socket.io. Read More

5 steps to a better Windows command line

28 November 2012 Posted Under: tools
I spend a lot of time at the command line. As someone who likes to code on OSX and Windows, I've always been annoyed by the Windows command line experience. Do I use cmd, or PowerShell? Where are my tabs? What about package management? What about little frivolous things like being able to resize the window. I've finally got my Windows command line experience running smoothly, and wanted to share my setup. Here are my 5 steps to a Windows command line that doesn't suck. Read More

WebMatrix and Node Package Manager

07 September 2012 Posted Under: WebMatrix
A few months ago, we introduced the new node.js features we've added to WebMatrix 2. One of the missing pieces from that experience was a way to manage NPM (Node Package Manager) from within the IDE.

This week we shipped the final release of WebMatrix 2, and one of the fun things that comes with it is a new extension for managing NPM. For a more complete overview of the WebMatrix 2, check out Vishal Joshi's blog post.

Read More

WordPress and WebMatrix

09 June 2012 Posted Under: WebMatrix
After releasing WebMatrix 2 RC this week, I'm excited to head out to NYC for WordCamp 2012. While I get ready to present tomorrow, I figured I would share some of the amazing work the WebMatrix team has done to create a great experience for WordPress developers. For a more complete overview of the WebMatrix 2 RC, check out Vishal Joshi's blog post. Read More

Node.js meet WebMatrix 2

07 June 2012 Posted Under: WebMatrix
After months of hard work by the WebMatrix team, it's exciting to introduce the release candidate of WebMatrix 2. WebMatrix 2 includes tons of new features, but today I want to give an overview of the work we've done to enable building applications with Node.js.

If you want to skip all of this and just get a download link (it's free!), here you go.

Read More

Building a user map with SignalR and Bing

12 October 2011 Posted Under: asp.net
Building asynchronous real time apps with bidirectional communication has traditionally been a very difficult thing to do. HTTP was originally designed to speak in terms of requests and responses, long before concepts of rich media, social integration, and real time communication were considered staples of modern web development. Over the years, various solutions have been hacked together to solve this problem. You can use plugins like flash or silverlight to make a true socket connection on your behalf - but not all clients support plugins. You can use long polling to manage multiple connections via HTTP - but this can be tricky to implement, and can eat up system resources. The Web Socket standard promises to give web developers a first class socket connection, but browser support is spotty and inconsistent. Read More

Using MSBuild to deploy your AppFabric Application

20 July 2011 Posted Under: azure
As the hosting of applications moves from our local staging environments to the cloud, one of the areas that needs to improve is the ability to include deployment in our automated build processes. Using the June CTP AppFabric bits, Visual Studio does an excellent job of enabling developers to design, build, and deploy AppFabric applications. However, the current tools do not provide a way to integrate these tools into a standard, repeatable build process. The goal of this post is to outline the steps necessary to integrate automated AppFabric deployment into your build process, and show off some of the REST API features we’ve built into the Application Manager. Read More

FRINK! - the Reddit client for tablets

18 April 2011 Posted Under: projects
Frink! is a mobile client for the web site Reddit. It is designed specifically to be used with tablets, taking advantage of gestures in a unique user interface. Right now the app is available in the BlackBerry App World. Read More

The Cause and Effect of Google's h.264 Decision

20 January 2011 Posted Under: video
Last week Google announced on their chromium blog that they're dropping support for the h.264 codec, in favor of the open source Ogg Theora and WebM/VP8 codecs. This is yet another snag in the messy attempt to unify the playback of video in HTML 5, as we now find the Read More

Bootstrapping image based bookmarklets

28 December 2010 Posted Under: web
Over this holiday break I had the interesting opportunity to write a bookmarklet for a friend who runs a comic based website.   Instead of just manipulating the currently loaded page, the bookmarklet needed to send a list of images to another site.  Often when writing bookmarklets, we tend to only think of loading our code in the context of a HTML content page.  How often do you test your bookmarklets when the browser is viewing an image?  In this article I am going to go through the code I used to bootstrap my bookmarklet script, and discuss some of the interesting challenges I experienced along the way. Read More

Virtual Labs

22 December 2010 Posted Under: projects
When a student takes a course in chemistry, it is often accompanied by a hands on lab. After sitting through a lecture, and performing homework, students need to reinforce the learned concepts by doing. Why should technology education be any different? VTE Virtual Labs provide a sand-boxed environment for students to practice interacting with simple or complex ephemeral computing environments. These environments may be designed by a course instructor or instructional designer to promote learning by interacting with a real (as real as it needs to be) system. Especially useful for security research, these systems may contain full environments including domain controllers, mail servers, web servers running various versions of Windows or Linux. You can even configure internal routing and switching between virtual hosts. Students can install malware, viruses, bots, hacking tools, anything they want - and when they're finished, the environment is completely disposed, with no harm done. Read More

Using Ant with Adobe Flex - Part 1

15 December 2010 Posted Under: flex
So why would we want to use ant to build our flex projects?  Flash Builder does a great job of building our actionscript and mxml.  But it does not do a great job of integrating into our existing automated build frameworks.  For those of us who have been writing Java in an enterprise environment, Ant is common knowledge.  If you've spent any time working with the Microsoft .NET platform, you may have been exposed to NAnt or MSBuild.  The idea is that we need to have a reliable, repeatable build process that can execute outside of the context of our development environment.  For my team, this means an independent build server (in my case, a virtual machine).  An independent build server means nightly builds, and software that can run without the user at the keys. Read More

Virtual Training Environment

13 December 2010 Posted Under: projects
The Virtual Training Environment (VTE) is a Learning Management System designed at the Software Engineering Institute of Carnegie Mellon University. This system is designed to provide students and instructors with a self managed ecosystem, including user generated content and aspects of social networking. It may be used for independent learners, synchronous instruction, or semi-synchronous instruction. Courses may be built using SCORM content, RECast presentations, podcasts, demos, quizzes, surveys, assignments, or virtual labs. Read More


13 December 2010 Posted Under: projects
RECast is a video playback system designed at the Software Engineering Institute of Carnegie Mellon University.  This system focuses on providing students with a with an experience as close as possible to sitting in the actual classroom. Let's face it - training is a hassle. On site classes are expensive, require travel, and require everyone to learn at the same time. RECast aims to fix this problem by providing the same material online with a unique learning experience. RECast combines an ASP.NET MVC back end with client elements including JQuery and Adobe Flex. Read More