Things I Write

Augmented Reality Icebreaker

Posted on 11/1/2011 at 8:04pm

Analyzing Website User Behaviors with F#

Posted on 10/30/2011 at 10:41pm

A large retailer with about 1,400 locations throughout the United States wanted to personalize the experience of their flagship website. However, personalization options were limited since a third-party vendor was managing users' account information via a white-label online retail application.

Since my team developed the site and managed the hosting, we had access to any information that we could gather directly through the website. By tracking an anonymous user's behavior alone, we captured enough data to target the site to the user’s interests. Using this data, we accomplished two basic goals:

  1. Change the content of the site based on how users' segmented themselves via their behaviors
  2. Discover trends among site users

The web site was written in C#, using the .Net MVC framework. A custom user-segment definition and tracking framework handled behavior tracking and logging, segment scoring, and user interface changes. For user analysis, an F# program was written to parse and mine the log files that accrued over a 6-week period.

The Power of F#

Using F# and the interpreter built into Visual Studio, I was able to create a very robust reporting application in under 200 lines of code; there is a clear ease-of-development advantage when it comes to data analysis. Additionally, there are two factors that differentiate F# from other approaches:

The power of F# became clear as I was presenting my analysis to my client, the Director of Marketing. While I had put together a PowerPoint presentation of the results, I also loaded my reporting application into the F# interpreter and kept Visual Studio open in the background. As I was sharing the results with the client, he asked a question about the amount of traffic received by a particular content callout that wasn’t in the presentation. I switched over to Visual Studio, typed a quick declaration into the interpreter, and immediately had the results up in a fashion that required no explanation; his question was answered in seconds.

BUILD conference day 3

Posted on 9/16/2011 at 3:01am

That's a wrap! I've got time to attend a couple more sessions tomorrow before I jump on a plane, but for the most part, my BUILD experience has come to an end.

Some parting thoughts/observations:

There was SO MUCH information presented at BUILD; it would take months to parse through all of the presentations. I narrowed my focus to a few areas: Visual Studio enhancements, Windows Azure, Asp.Net, and the Windows 8 platform. I can't wait to bring home what I've learned; I also can't wait to show off my fancy new Windows 8 tablet.

Windows 8 probably won't be officially released for another year; those of us that were given an early copy on the Samsung tablet are truly privileged. It's time to start making some killer Windows 8 apps; let's corner the market now while we still can! :)

BUILD conference day 2

Posted on 9/15/2011 at 1:05am

Another big day at BUILD. Today was all about developers. The keynote showcased a lot of enhancements to the frameworks and tools we use to create everything from websites to 3D games. To cap it off, Steve Ballmer (CEO of Microsoft) took the stage and delivered a great pep talk. He outlined the larger strategic vision that Microsoft is pursuing among its separate lines of business (Windows, Productivity, Cloud, Mobile, etc.) and left off by declaring the forthcoming Windows 8 era the "era of the Windows developer."

After the morning's keynote, I attended a series of breakout sessions devoted to Visual Studio 11 (the upcoming version of our development environment), Asp.Net and HTML 5, and new features in Windows Azure (Microsoft's cloud computing platform).

Some takeaways:

Whew. There's more on the way tomorrow.