Anthropic just released its most powerful model to date. I have been working with it and wanted to share some initial thoughts on the model.

Continue Reading

This article covers some advanced techniques you can use to debug memory leaks in Ruby.

Continue Reading

Over the years one of the most complex issues we have had to deal with at Discourse was flaky tests, in this post I would like talk a bit about the various patterns we have come across and ways we tackle this issue.

Continue Reading

My i3 window manager setup

over 5 years ago

It has been about 3.5 weeks since I moved from Windows to Linux, during the switch I also moved to using the tiling i3 window manager. I would like to tell you a bit about it.

Continue Reading

I stuck with Windows 10 as my primary OS for 6 years, despite being a Ruby developer. In this blog post I would like to cover why this happened.

Continue Reading

Effectively dealing with logs is a critical skill you should hone. In this blog post I will cover how we handle web application error logs at Discourse, both in production and in development.

Continue Reading

Often in development we have an annoying message in our console that we simply can not find the source of, here is a little trick you can use to hunt messages like this down.

Continue Reading

In this post I would like to cover a severe, extremely hard to debug vector for memory bloat in Ruby which can be triggered by the PG gem.

Continue Reading

Current patterns in Active Record lead to enormous amounts of resource usage. Here is an analysis of Rails 5.2

Continue Reading

How we manage schema changes at Discourse minimizing downtime

Continue Reading

It is very likely your Rails application is full of duplicate strings, here are some tricks you can use to get rid of them.

Continue Reading

How we instrument Rails at Discourse and how you can, too.

Continue Reading

How do you go about debugging high CPU usage in a production Rails system?

Continue Reading

What is the fastest and most elegant way to instrument a method in Ruby?

Continue Reading

Chrome recently pushed out support for Brotli, in this post I will cover what this means to you.

Continue Reading

WebSockets, caution required!

almost 9 years ago

WebSockets seem to be gaining a resurgence, suddenly they are sexy again. I think this is the wrong message.

Continue Reading

Recently, I discovered a performance regression on a very common page on Discourse. This post documents my approach and specific fixes I applied.

Continue Reading

Tools, tips and techniques for diagnosing and fixing Ruby memory leaks

Continue Reading

Announcing rubybench.org

almost 10 years ago

Announcing rubybench.org

Continue Reading

Speeding up Rails 4.2

almost 10 years ago

Optimising Rails 4.2 using Flame Graphs and Memory Profiler

Continue Reading

Continue Reading

Vintage JavaScript begone

over 10 years ago

One major issue all “one page” JavaScript apps have is updating clients, this is how I solved this for Discourse.

Continue Reading

Wishing for a long running ruby benchmark.

Continue Reading

Commenting powered by Discourse

almost 11 years ago

Lessons learned moving commenting to Discourse

Continue Reading

Demystifying the Ruby GC

almost 11 years ago

The Ruby GC may seem exceedingly complex to some, in this article I try to shed some light on it.

Continue Reading

I just added some helpers that allow you to easily perform live restarts of unicorn processes with zero downtime.

Continue Reading

Discourse in a Docker container

almost 11 years ago

Recently I spent some time working on a Docker container for Discourse to ease our deployment story.

Continue Reading

This Blog is now 100% powered by Discourse

Continue Reading

The number #1 productivity killer for me is the trivial inconvenience, it does not stop me from working… just make my job very frustrating.

Continue Reading

Analysis of performance issues in Ruby can often be fairly complex, in this post I cover a new technique you can use with MiniProfiler.

Continue Reading

Do you smoke test?

over 11 years ago

I just introduced the first smoke test for Discourse. Reasoning, techniques and lessons learned.

Continue Reading

iOS6 is out, and with it an essentially broken maps app, here are my thoughts on this matter.

Continue Reading

MiniProfiler Ruby Edition

over 12 years ago

For the last few months we have been working on a version of MiniProfiler for Rails, here is the low-down

Continue Reading

Leaving Stack Exchange

over 12 years ago

I am leaving Stack Exchange, why this happened and what is next?

Continue Reading

Recently I embarked on a mission to find and and build tools for dealing with broken links on the Stack Exchange network, here are some things I learned.

Continue Reading

While preparing for my talk at Codemania I started filling my slides with links, clearly not something that scales. So, instead, here is a big list of interesting tools and resources that can help you journey through the murky waters of web performance.

Continue Reading

Learn about a change introduced in the 2.6.39 kernel that has huge impact on your users perceived web performance.

Continue Reading

We are pushing a 2.0 public release of MiniProfiler, the following post describes most of the awesome changes.

Continue Reading

Stop paying your jQuery tax

over 12 years ago

The last script holding in your header is usually jQuery, learn how to move it to your footer and why you should.

Continue Reading

A common issue many users have with Dapper is the ability to insert records into a database, in this post I cover some options and a solution I developed.

Continue Reading

In this post I cover the history, diagnosis and eventual repair of some erratic performance we were experiencing at Stack Overflow.

Continue Reading

Optimizing ASP.NET MVC3 Routing

about 13 years ago

In this post I outline the process and method we used to optimize routing at Stack Overflow

Continue Reading

Using rather simple techniques I practically eliminated all of the spam on this blog, here is a technical explanation

Continue Reading

In this post I demonstrate how to extend the ASP.NET error page with additional information about the SQL that failed.

Continue Reading

In this post I explain how I ported a rather tricky page to dapper, it highlights usage of a new helper called SqlBuilder, that lives in Dapper.Contrib

Continue Reading

Finding views in ASP.NET MVC3 is an often overlooked performance concern.

Continue Reading

In this post I work through one method you can use to get controller, view and partial render times in an MVC3 app.

Continue Reading

I am very happy to re-announce the MVC mini profiler, used in production at Stack Overflow.

Continue Reading

I have been spending a fair amount of time tuning Stack Overflow, in this post I will walk through the process of tuning a single page.

Continue Reading

Does the world even need another ORM?

Why we took a step back at Stack Overflow and wrote our on mini ORM

Continue Reading

At my new job I have been looking at better ways of highlighting recent interesting answers.

Here is a list of answers I came across in July that I found interesting.

Continue Reading

Diagnosing runaway/high CPU in production .Net apps has always been a dark art reserved for the true master debuggers.

No longer.

Continue Reading

Got Flare?

about 15 years ago

A little bit about my new bug tracker. Can tracking bugs be fun?

Continue Reading

I love rspec, and wanted to see what happens if you bring it to .Net, here is a tiny step by step guide to writing your own rspec tests for a C# project.

Continue Reading

Our new startup, Media Browser

over 15 years ago

After a lot of thought and research I have decided to see if we can make a business out of Media Browser.

Continue Reading

Media Browser / Video Browser has always been free "as-in-beer":http://c2.com/cgi/wiki?FreeAsInBeer and free as-in-speech.

Will it remain free?

Continue Reading

About some upcoming feature for Media Browser.

Continue Reading

We just changed the way our source code is licensed, this post covers the reasons and details of the changes.

Continue Reading

I am going to try to post a little bit about my adventures refactoring Media Browser. In this post I am covering a some aspects of entity resolution.

Continue Reading

In this post I offer a streamlined mechanism for debugging Vista Media Center plugins in Visual Studio.

Continue Reading

For the last few weeks I have been forced to use a very slow website. This has left me feeling very demoralized. This is why.

Continue Reading

Earlier this week I lost my old trusty server which hosts www.samsaffron.com and www.mediabrowser.tv died.

I decided to migrate all the data to a new VPS (virtual private server), here is a sketchy account of how this all happened.

Continue Reading

Deadlocked

about 16 years ago

In SQL Server a SELECT statement can deadlock against an UPDATE statement without being in a transaction. Why does this happens? What is a good approach to SQL Server deadlocks?

Continue Reading

Recently, I had to support a rails server which is deep behind a firewall. Here I offer a somewhat sketchy account of how I am able to support it.

Continue Reading

Why I started off Video Browser, where it is today, and what are the future plans.

Continue Reading

In general when generating rss feed in Rails you will be using the builder library, it can be fairly slow unless you take special care.

Continue Reading

Watch out when you use ActiveRecord eager loading, it has the potential to wreak havoc if you are not careful.

Continue Reading

A new release of Video Browser contains a few bug fixes

Continue Reading

I just posted a new version of Video Browser that support “by genre” and “by runtime” sort options for movies.

Continue Reading

Yet another way to enumerate through Enumerables if you are using the prototype javascript library.

Continue Reading

On Rails, I find myself quite often fixing up an old migration early in my projects, at this point I already have a bunch of data in my database and I would like to keep it.

So I created a Rake task that takes care of this.

Continue Reading

I just posted a new version of video browser in my download section!

Continue Reading

In this post I would like to give you all the information you need to get started with Ruby On Rails, on Windows. I will cover the tools you need, the resources you need and some tips.

Continue Reading

Writing your own blog software is an ideal first exercise when faced with learning a new web platform.

Continue Reading

Hello World

almost 17 years ago

Continue Reading

Video browser, is a little plugin for Vista MCE that let's you browse your videos the way they were meant to be browsed.

Continue Reading

Goodbye Altiris

about 17 years ago

Well, it’s that time to change jobs. Goodbye Altiris.

Continue Reading

Video Browser for Vista MCE

about 17 years ago

This is a post about my first attempts with Video Browser.

Continue Reading

IDisposable in Ruby

about 17 years ago

An example implementation of the IDisposable pattern in the Ruby language.

It looks much nicer in Ruby.

Continue Reading

Implementing the UPSERT (insert or update) pattern in MS SQL Server can be tricky. In this post I explore the various advantages and disadvantages of various implementations.

Continue Reading

Continue Reading

Continue Reading

Keep it simple

over 17 years ago

4 different embedded databases offer 4 different APIs to create a database.

Continue Reading

Testing .NET embedded DBs

Continue Reading