Warning: include_once(/home/public/articles/wp-content/plugins/akismet/) [function.include-once]: failed to open stream: Unknown error: 0 in /home/public/articles/wp-settings.php on line 473

Warning: include_once() [function.include]: Failed opening '/home/public/articles/wp-content/plugins/akismet/' for inclusion (include_path='.:/usr/local/php5/lib/php/') in /home/public/articles/wp-settings.php on line 473
Uncategorized | Ryan Kohn

Archives for Uncategorized

Debug Windows services in C# using reflection

[This example is for .NET 3.5 and Visual Studio 2008]
I recently had to fix a bug in a Windows service written in C#. Unfortunately, Windows services are not straightforward to run in debug mode. This led me to try two solutions that I found lacking. I ended up using a relatively simple and flexible method [...]

How to close the last/only tab in Firefox 3.5

I recently downloaded the latest version of Firefox. I quickly discovered that one of my favourite features was gone: the ability to close a tab if it’s the only one open.
It’s turns out that the feature isn’t missing; it’s just no longer enabled by default. I figure this makes sense since a fresh install of [...]

Trusting your users is hard for you, but good for them

Default options should handle the most common, most trustworthy case.
Gmail got this right when they stopped asking for confirmation for users’ actions and started allowing people to undo them instead. For example, most of the time, I am sure I want to trash that email, so asking for confirmation does nothing for me; my default [...]

Grow great software without getting hung up on the past

Smart people can invent solutions to problems you don’t actually have yet. The problem is, it’s easy to think of problems you don’t have yet. Stopping to solve them all now is a recipe for paralysis.
– Chip Morningstar, Smart People Can Rationalize Anything
It’s important to focus on your current difficulties. And if you don’t have [...]

Using a Database to Store Transient Data

The Motivation
Off The Clock was initially built to analyze phone usage data pulled from a database, but I also wanted to be able to analyze transient data. Storing transient data in a database is a great way to accomplish this; it allows the analysis code to treat the transient data as if it were persistent, [...]