Tuesday, October 24

My internet provider’s DNS servers are slow. At least, this is what I had come to believe when I set out in search of better ones. Aside from the fact that fast, reliable, public nameservers are scarce, I came away with more questions than I went in with.

I run a small network in my home using a D-Link 802.11g router which lets me set nameservers that override any defaults that might otherwise have been garnered from my internet provider. My wish was to find a pair of addresses that I could query for once and for all and use them as my default servers at the router level.

A search for “public+name+servers” uncovers OpenNIC’s Public Name Servers but their site confuses me, especially when I read directly above a list of server addresses that,

...users may not query these servers directly, as they are intended for terminating recursive queries by the user’s nearest Tier 2 server.

If users aren’t permitted to query them, why are they listed on the public dns server page? What happens if I do use them—will I get in trouble? Further down in the page, there is a list of Tier 2 servers but there are none geographically close to me. Still, I tested them anyway and concluded that they were slower than my provider’s.

Nearing the brink of extreme frustration, I stumbled across a service called OpenDNS, a free provider of the very DNS services I was looking for. They’re fast. Really fast. And they also provide nice-to-have features like phishing protection and spelling correction. They achieve great query speed by maintaining an ultra-large cache and and impressive geographical coverage area, meaning your queries don’t have to look very far in search of an answer.

Their website is also well-designed and easy to use. There is nothing even remotely confusing about it, which is rare among the sites of similar contenders in the DNS space. Easy to follow, image-based instructions for changing the DNS servers are provided for nearly every router in existence, so finding your router and updating your entire network is a breeze. If you don’t want to do this at the router level, or if you have a portable computer, like I do, and want to use OpenDNS from wherever you are, instructions are provided for configuring any operating system.

If you’re looking for faster DNS services, do yourself a favor and give them a go:

Scribbish for Mephisto

Tuesday, October 17

Mephisto is the new hot blogging engine for Ruby on Rails. And now, thanks to DeLynn Berry Scribbish is the newest addition to the already sweet list of Mephisto themes available.

The Scribbish page has been updated—go ahead and download it.

If you’re interested in the bleeding edge, we’ve created a ‘mephisto’ branch in the svn repository:

Balloon: svn configuration for Rails

Tuesday, October 17

I just created my first balloon! Balloons are web pages that double as Ruby programs.

This magical balloon will automatically configure your subversion repository for a new Rails project. It goes like this: make a new Rails project in a working copy directory, inflate the balloon, and presto! Your repository is configured.

Here’s what the balloon does:

  • Adds all files
  • Ignores files in tmp/ and log/
  • Creates a sample database.yml and ignores the original
  • Sets permissions for log/ and public/dispatch.*
  • Tells subversion which files should be executable

This won’t automatically check in changes; you must check them in yourself.

Here’s the Ruby that makes it all possible.

require 'fileutils'

def ignore(path, pattern='*')
  `svn rm #{path}/#{pattern} --force`
  `svn propset svn:ignore '#{pattern}' #{path}`

# Backup the database.yml file
FileUtils.cp 'config/database.yml', 'config/database.yml.tpl'

# Add all the files
`svn add . --force`

# Ignore stuff
ignore 'config', 'database.yml'
ignore 'tmp'
ignore 'log'

# Copy database.yml back
FileUtils.cp 'config/database.yml.tpl', 'config/database.yml'

# Set the correct permissions for logs
FileUtils.chmod 0775, 'log'

# Set permissions for dispatchers
%w{rb cgi fcgi}.each { |ext| FileUtils.chmod 0755, "public/dispatch.#{ext}" }

# Tell subversion which files are executables
`svn propset svn:executable ON public/dispatch.* script/process/*`

I no longer care about 800x600

Wednesday, October 11

This site’s design (Scribbish) looks much better at a width of 900px. Which violates the minimum screen resolution guidelines I’ve been employing since 1999. But no more! I’ve decided that I just don’t give a shit about people with screen resolutions less than 1024×768px. I mean, come on. This is the future.

I hereby declare 1024×768 to be the new minimum. Tell your friends.

I’m not alone here. I’ve noticed more and more sites doing this, especially those that cater to an audience of programmers and other tech-minded individuals. One that comes immediately to mind is InfoQ. There are others. I’ve seen them. I just can’t remember any of them right now.

Cameron Moll has touched on this topic recently.

Let’s face it: The jump from developing for 800×600 to 1024×n is inevitable; not only inevitable, but just around the corner, too.

See Optimal width for 1024px resolution for his thoughts on what the new perfect width should be.

Even Jakob Nielsen is an advocate of going wide, and who are we to argue with the so-called “usability Pope” (He displays that quote on his homepage. Really. Also note that his photo is the most prominent thing on the page. And there’s a link right under it pointing out the fact that high-resolution photos are available for download, of which this one is my favorite, but of course, there are several).

Anyway, here’s his current resolution recommendation

Optimize for 1024×768, which is currently the most widely used screen size. Of course, the general guideline is to optimize for your target audience’s most common resolution, so the size will change in the future. It might even be a different size now, if, say, you’re designing an intranet for a company that gives all employees big monitors.

See his Alertbox writeup, Screen Resolution and Page Layout for the full report.

So, yeah. Quoted-Printable is now among the wide. And it looks so much better. Especially the code sections with their pretty syntax coloring. Wouldn’t you agree? The changes to Scribbish are in svn. See the download page for instructions on checking it out.

All Hallow's Eve

Thursday, October 05

Check out this pretty syntax highlighting! James Wilford was kind enough to contribute it to Scribbish, and I made the colors match TextMate’s All Hallow’s Eve theme.

Here is some random code (from HAML, actually) to show it off:

require File.dirname(__FILE__) + '/engine'

module Haml
  class Template
    def initialize(view)
      @view = view

    def render(template, local_assigns={})
      assigns = @view.assigns.dup

      @view.instance_eval do
        assigns.each do |key,val|
          instance_variable_set "@#{key}", val

        local_assigns.each do |key,val|
          class << self; self; end.send(:define_method, key) { val }
      end, :scope_object => @view).to_html

Syntax highlighting is available in the Scribbish svn repository. Instructions for checking out the code are on the download page.