Switched to Hugo from Wordpress

It’s been a relief to move away from the bloat of WordPress. I decided to use Hugo and host all of the content in Github. I am even able to use Github Actions to manage the continuous integration/delivery of the source to Github Pages all entirely for free. While Github Pages, and Hugo both generate static html pages, I was able to enable comments, via utteranc.es which stores the comments in Github as issues....

<span title='2019-12-11 21:53:00 +0000 UTC'>December 11, 2019</span>&nbsp;·&nbsp;1 min

5 things you probably didn't know about .NET WebSockets

As most of you probably already know WebSocket provides full-duplex communication over a single TCP connection. .NET 4.5 added support for WebSockets as part of the BCL. In this article I am going to talk about few of the subtleties that you need to think about. Connection upgrade is somewhat expensive WebSocket connections are initiated as traditional HTTP connections. The client then usually requests an “upgrade” to a WebSocket session, this upgrade process is relatively expensive....

<span title='2013-04-13 23:45:28 +0000 UTC'>April 13, 2013</span>&nbsp;·&nbsp;3 min

Building a service execution pipeline

Most software built today have a notion of a client and a service. This is even more true with mobile/web applications because you want your client apps to do as little as possible, and your service to do most of the heavy lifting. This allows you to improve your service without requiring constant client updates. Also since you have a single service that serves potentially various native clients (iOS, Android, or Windows Phone), being able to update it independently of your users gives you a clear competitive edge....

<span title='2013-04-08 05:19:13 +0000 UTC'>April 8, 2013</span>&nbsp;·&nbsp;9 min


Sebastian Junger (pronounced Younger) was on Bill Maher last night. Junger is an award winning Afghanistan war correspondent, and director, and his latest documentary Which way is the front line from here? has been proclaimed a success at the Sundance Film Festival this year. During the interview Bill asked why war felt like an addiction to some soldiers. In particular, what psychology drove this behavior? To that Sebastian responded: “The consequences in war are huge....

<span title='2013-04-07 05:37:43 +0000 UTC'>April 7, 2013</span>&nbsp;·&nbsp;2 min

Introduction to Machine Learning

In most computer science programs, machine learning is usually a graduate level course. It’s a specialization within the field of artificial intelligence, which is often thought of as a theoretical study than practical applications. But yet, machine learning today is used heavily to solve problems. Our team for instance, uses it to build acoustic models for speech recognition. It’s no longer a theory, it’s applied science. But if you wanted to start in this field, which I suspect is going to play a major role in software in the future, where do you start?...

<span title='2013-04-01 07:39:37 +0000 UTC'>April 1, 2013</span>&nbsp;·&nbsp;1 min

.NET and Node.JS - Performance Comparison (Updated)

Update (3/31/2013 - 11:41 PM PST): This article has been updated! As most readers have commented the node.js async package is not asynchronous, which is what the original article was based on. I made an assumption I should not have. I have since rerun the tests taking this into account, as well as some of the changes recommended by Guillaume Lecomte. I have decided to update this existing post so that there’s no confusion in the future with the data....

<span title='2013-03-26 08:57:39 +0000 UTC'>March 26, 2013</span>&nbsp;·&nbsp;7 min

Improving Wordpress site speed on IIS

One of the first things I did when I started this blog was to change the way static files are cached by IIS to improve site speed. Static files are things that aren’t going to change, things like CSS, JavaScript, images, documents, and so on. With IIS this is actually quite easy to achieve, you can start by making the following change to your web.config: <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> </staticContent> </system....

<span title='2013-03-24 19:03:14 +0000 UTC'>March 24, 2013</span>&nbsp;·&nbsp;1 min


Came across this wonderful quote from Jeff Hammerbacher: “The best minds of my generation are thinking about how to make people click ads”. I won’t get into the details of what the implications of this are - but I think you can figure it out.

<span title='2013-03-20 17:34:58 +0000 UTC'>March 20, 2013</span>&nbsp;·&nbsp;1 min

Composition over Inheritance

There are several ways to extend the behavior of a class. One of my preferred approach to extending behaviors is composition, and that is what we are going to talk about today. Let’s start with a simple example of inheritance: public class Search : ISearch { IEnumerable<SearchResults> Search(Query q); } public class Related : Search { IEnumerable<RelatedEntities> Related(Query q); } So in this simple example, we extend Search and create Related - which provides some additional functionality....

<span title='2013-03-09 01:37:44 +0000 UTC'>March 9, 2013</span>&nbsp;·&nbsp;2 min

Azure service monitoring

Monitoring your Azure services couldn’t get easier. Windows Azure recently released a capability to test connectivity of your service (REST or website) from over three continents. It’s super simple to setup. Login to your azure management console, add your website URL to monitor and select up to three locations to monitor from: With that you can start getting response time, and uptime reports (my uptime was 100% so I didn’t show it here): In this case, Violet is Chicago, Blue is Hong Kong, and Green is Amsterdam....

<span title='2013-03-08 01:09:37 +0000 UTC'>March 8, 2013</span>&nbsp;·&nbsp;1 min