Beyond the Button

A blog about how museums can use technology, media, and the web.
From the webteam at the Science Museum of Minnesota

programming

Tools of the trade

courtesey Ard Hesselink
This Friday I thought I would post on some of the tools that our web/media group has been using lately.

Assembla

Writing code is hard. Writing code in a group that might not even be on the same floor, building, or state is much harder. Assembla is a set of the key collaboration tools that programming teams need, all rolled into one off-site package. SVN, Trac, a wiki, and even Scrum reporting tools. We initially used it as a stop-gap measure while we got our own SVN server up. Now we're finding it hard to tear ourselves away.

IRC

IRC (Internet Relay Chat) has been around for a long, long while, but we hadn't really thought of it as a work tool until real recently. After two of our finest web/media developers returned from the 2008 DrupalCon, they informed us about a whole 'nother world of Drupal support and discussion living on the IRC channels. I tried it out for a couple of hours one Sunday I was amazed at how much live help was out there for some complex stuff I was trying to figure out. I'm on a mac so I use Colloquy to get on Drupal's IRC channels. Obviously this isn't Drupal specific. There are many channels for the topic you are currently banging your head over right now.

ScreenKeys

What's cooler than a button? A button with a little display built in. Screenkeys are little programmable LCD screens in buttons and switches. These could be quite fun for customized and changing content. The options for control in a game could change every time a visitor plays. We aren't using these yet but I just threw them in for fun.

Any of all those crazy acronyms throw you for a loop? Post a question about how we are using these tools and I'll try and fill you in.

How I ended my search for the perfect programming font

Are you spending hundreds of hours starting at ugly code? No I'm not insulting your PHP, ActionScript, or VisualBasic abilities, I just think you might need to pick a different font. After lots of searching, testing, and frustration I picked the lovely ProFont. Here's why.

Typography isn't just for designers

I regularly agonize over a font choice for some piece of media design. A bad font can make copy hard to read and confusing. However, one day I realized I had never considered the fonts I was starting at in my code. Since I would be spending lots of time starting at gobs of text that look like gobbledegook to the average viewer, I thought I should do some research into what makes a good programing font.

Precision please

A programing font should be precise. Every character counts in programming. I needed a font that made it real easy to tell the difference between commonly confused characters: O0ilLI1. I didn't want to have to squint to see if that variable was an l or an i, or maybe an O instead of a Zero.

A programing font should also be monospaced. That is, every character in the font should get the same width so that multiple lines of code line up no matter what characters you have typed. This is especially important for comment blocks, lists of variables and arrays, as well as tabbed conditional statements.

I also wanted something that was simply easy to look at. Several of the fonts I tested looked blury at large sizes or pixelly at small sizes. I needed to pick something that was going to do my eyes some favors.

ProFont to the rescue

After testing several fonts I've finally settled on ProFont. I use it in BBEdit and my command line program (iTerm, a great replacement for OSX's default Terminal). I am mostly a Mac person but I even use ProFont when I am trying to hammer out some old code in VisualBasic on a Windows machine from time to time.

ProFont does a fantastic job distinguishing between all those easily confused characters, has good monospacing, and sizes well so I can view it small or zoom it extra large when I am showing code to a group.

Many other options exist out there and people are pretty religious about their choices. Here are several resources that you should consider in your search for the perfect font:

  • Monospaced fonts - A list of programing fonts ranked by the author's preference. This site contains image samples of the different fonts which helps a ton in checking them out.
  • More programing fonts - Another list of fonts with some other favorites not listed above.
  • Anonymous - A great font by Mark Simonson. This was my runner up that I really tried to use for some time. However, it isn't truly monospaced on some characters and comment blocks appeared all wonky with it. I really wished I could have settled on this one.

Nerdy PHP upgrade post

Here at the museum we are starting to upgrade all of our servers and web code to PHP 5. We primarily use a mix of PHP and MySQL to drive just about everything in our web code (with a few minor exceptions).

Here are a couple of the resources I have been following to understand the problems and advantages we will see from upgrading.

PHP's Migration manual - Start at the source. PHP.net's tips of what to look for in your upgrade.

What's all this OOP stuff about? - Discussing some of the Object Oriented Programing aspects of PHP5.

An impetus for change - On February 5, 2008 a bunch of tools that are built on PHP will stop supporting PHP 4 all together. Drupal, the content management system we use here for many of our sites, is one of the participants. So um, yeah, we sorta HAVE to upgrade. Not that we were holding out or anything, but this is a good motivator. Follow the link to watch a slightly ominous countdown ticker.

10 things you (probably) didn't know about PHP - Not necessarily about upgrading but a great list of, "wow, I didn't know it could do that," tips for PHP. Several of these are only available in PHP5.

11 cool things about PHP that most people overlook - Another good list of obscure tips for useful code in PHP5.

ps - Yes, I know we are woefully behind the times and that PHP6 is just around the corner, but hey we work at a non-profit, give us a break.

Syndicate content