Sep 242011
 

Recently, I needed to implement a minimal web server in C#. The .NET HTTP classes worked great, but there’s nothing built in to provide MIME types (other than looking in the registry, which I don’t trust to be complete/consistent). So I extracted the data from the Debian /etc/mime.types file for anything with a file extension and created a simple static class to do lookups for them.

Usage examples:

1
2
3
4
5
6
7
8
9
10
11
// do a lookup
String mimeType = MimeType.Get(".jpg");

// the dot is optional
String mimeType = MimeType.Get("jpg");

// non-existent extensions will return the default application/octet-stream type
String mimeType = MimeType.Get(".foo");

// you can also provide an explicit default type
String mimeType = MimeType.Get(".foo", "text/plain");

You can download MimeType.cs or view it in-line below.

Continue reading »

Aug 132011
 

Attention: This version of the SeekBar is obsolete, check out the new version instead

While working on my Android implementation of the Dislexicon, I realized I would need a SeekBar preference to adjust the text-to-speech speed. I found a couple of SeekBar prefs online, but none of them fit my needs. Specifically, I wanted it to:

  1. Appear on the main preference screen, instead of a separate window accessed via a button
  2. Fill the entire width of the screen
  3. Allow a minimum value other than zero

Here’s what I ended up with, as it appears in Dislexicon:

SeekBar Preference

Continue reading »

Jun 052011
 

I’ve released a new version of Weatherspect, primarily because the weather data source it uses, Weather::Underground, isn’t working at the moment. The new version includes a fixed version of Weather::Underground. It also has turkeys and pumpkins for thanksgiving, and the ability to control how many things are walking around the screen.