Neat Tools

A Visible Pile of Favorite Fieldstones

I’m a programmer at heart, even though I no longer program professionally. Why? Because I love to program. It gives me satisfaction. So, from time to time, I have to think up little hobby projects that are simple enough for me to handle, but engaging enough to still my lust for coding for a few hours. Here’s my latest one.

As a writer, my intuitive style of writing has always been to just sit down and start writing. From time to time, I suddenly boot up my Mac, fire up a plain text editor and start writing. Shortly thereafter, I have an article ready.

Sounds great, right? The problem is that it happens very infrequently. In fact, it happens so seldom that I’m still a pretty inefficient writer. If I was efficient, I would have published my first book by now, for example.

So, to increase my efficiency, I try to use Jerry Weinberg’s fieldstone method. In its essence, it is very simple. You make sure you always have pen and paper nearby to capture thoughts, ideas, quoutes, facts and other pieces of data and information that come your way. You work regularly to structure these “fieldstones”, and in the end use them to build your final text.

The method gets its name because, apparently, this is pretty much like building a fieldstone wall. When you build such a wall, you don’t go around looking for the next perfect stone that will fit right into the wall. Instead, you gather all stones that might be useful. Then, once you have a reasonable pile to work from, you build the wall using the stones. Without this method, you would probably be looking for the next perfect stone forever. Or at least for too long, like I do with my writing-only-when-inspired style of writing.

To be clear, using the fieldstone method does not mean writing about things I don’t feel inspired by. In fact, this is probably Jerry’s main lesson in his book about the method - Weinberg on Writing: The Fieldstone Method. Write only about things you want to write about is a piece of advice that makes perfect sense to me. For me, the fieldstone method is a way of making sure I have the stuff I need right by my side whenever I feel the inspiration coming on, like it just did when I decided to write this blog post.

Here’s my current inspiration. For handling my fieldstones, I use a tool called Dropbox for backup and synchronization. Dropbox makes sure I have my fieldstones handy on any computer I log on to. I write in a plain text editor, TextMate. However, today I realized that my collection of text snippets could use a bit more transparency. They lie there in their folder, all silent and waiting, and I sometimes forget that I need to wake them up from time to time and shuffle them around and improve them a bit. So I decided to pretend to be a programmer again for a short time.

I recently installed GeekTool, which I use to show Twitter postings from people that I follow right on my desktop. It occured to me that I would like my fieldstones to communicate with me in the same way. I want them to show up on my desktop, so that I am reminded of and inspired by them. My idea was to write a little script that could process my fieldstone collection, find the most recently changed files, then find the most recently added headlines in those files, and post them on my desktop. I mark up my texts with Textile, a very simple markup system. Headlines for example, always start with the h1, h2, h3 or h4 tag, followed by a dot and a space. I typically add a timestamp as the last part of the headline. So, it shouldn’t be too hard to filter out the most recent headlines and show them in a neat little desktop feed.

While programming this script, I started looking at my fieldstones with more awareness of how I structure them. I discovered that I use headlines without timestamps quite often. Because of this, I changed my mind and decided that simply listing the ten most recently edited fieldstone files was quite enough. While doing this, I also learned that something in my solution doesn’t handle Swedish characters well. For now though, my on-screen list is good enough, even though å, ä, ö, and some other esoteric characters are garbled. It reminds me of which files I’ve been working on most recently. A small thing, but I think it will help me find more fieldstones that fit well with the writing I’m most focused on right now.


#!/usr/bin/env ruby -wKU

require 'find'

fieldstone_folder = "PATH_TO_MY_FOLDER_ON_DROPBOX"
files_to_show = 10

fieldstone_files = []
recent_files = []

Find.find(fieldstone_folder) do |path|
  if FileTest.file?(path)
    fieldstone_files << [path, File.ctime(path)] unless /Fieldstones.tmproj/.match(path)
  end
end

by_change_date = Proc.new {|x, y| y[1] <=> x[1]}
paths_only = Proc.new {|i| i[0]}

recent_files = fieldstone_files.sort(&by_change_date).first(files_to_show).collect(&paths_only)

recent_files.each do |path|
  match_file_name = /#{fieldstone_folder}(.*)(?=\.txt)/
  file_name = match_file_name.match(path)[1]
  puts file_name
end

My Most Loved Mac Software

The Mac universe is filled with cheap (or free) little pieces of wonderful software. Here are some that I would not want to work without:

  • Quicksilver. Whenever someone asks me why I don’t just use Spotlight, I know that they still haven’t discovered Quicksilver’s ability to shuffle around files. Quicksilver is so seamless and useful that I feel handicapped whenever I push Ctrl+Space on a Mac without Quicksilver installed.
  • TextMate. A lovely text editor, which I use both for writing (I collect fieldstones using Jerry Weinberg’s “fieldstone method” and organize them in a TextMate project) and for manipulating text. For example, I sometimes export a list of people from our sales system. It usually comes out as a comma separated list of values. In TextMate, it’s easy to create a simple macro to wash away everything I don’t need, and keep only - for example - email addresses.
  • Dropbox. Speaking of gathering fieldstones. Because I wanted to access my fieldstones both from my Mac Powerbook and from my Linux machine at home, I set them up on a Dropbox account. Dropbox is very transparent, and simply shows up as a regular folder on both machines. Anything I drop in my Dropbox folder on one machine is automatically synchronized to the other machine as soon as I turn it on. Simply lovely.
  • 1Password. Remembering passwords is a nuisance. With 1Password, the need to remember them pretty much goes away. The program stores my passwords in an encrypted file, and automatically brings them up and fills out login forms when I tell it to. 1Password integrates even with the Safari 4 Beta I’m using. Whenever I want to login somewhere, I just click the “1P” button, and it digs out the right username and password combination for the site I’m currently on. Once in a while, I switch over to Firefox. When I do so, 1Password tags along and helps me out there too, since it integrates with that browser as well.
What makes these particular programs so great? Below are some of the properties I associate with these successful pieces of software.
  • Transparent. They never pop and disturb me, and when I use them, they simply do what I want them to do without any hassle.
  • Specialized and Useful. They aim to help me with some specific thing, and do it very well. They also solve actual problems.
  • Elegant. They do what they do with style. Because of this, I like them even more than I would if they where ugly but useful.
  • Fitness. These are all examples of software that integrates seamlessly with the system it lives in. For the developer, this could be less than positive if Apple decides the functionality fits in so well that it ought to be integrated into the operating system itself. Apple: if you do - buying the software from the people who made it or hiring the developers is the only right thing to do. We’re talking about software that is so good that it helps sell the Mac itself.
What’s your favorite Mac software, the kind you wouldn’t want to work without?

Python is the New Basic

Dave Winer: “Python is the New Basic”.


gotAPI.com

UPDATE: Bad link snuck through. Sorry.

I found a link to gotapi.com on Jon Tirséns blog. Check it out if you dabble in Rails as I do from time to time. Sweet!


Custom Searching From Inside the Browser

Ever notice that little search box up in the corner in Firefox and Explorer? Of course you have. You’ve probably used it dozens of time to search for stuff on the web, probably using Google.

You may have noticed that you can also search using many other search engines from this field, and that you can add new search engines if you want to.

What I did not know until today, was how easy it is to add support for your own custom searches using the OpenSearch standard. I started out following these guidelines on how to create my own OpenSearch plugin, but soon noticed a link to a neat tool for doing this for me. Using this online tool, it was a breeze to create a Firefox and Explorer compatible search plugin for Metacritic.com, which is an indispensable site that gathers reviews on games, movies and other entertainment stuff. So, now I can search directly on Metacritic from inside my search field in the browser. Neat!


The Visible Planning Calendar

Planning is great. Too bad it’s so hard. Too bad it so often results in weird plans and deadlines that jump around in the calendar like drunken fleas.

Here’s an idea (yet untried by me) for a counter-measure: The Visible Planning Calendar. Goal: to make planning more transparent by at least making dates somewhat less jumpy. Contents: an agile, or at least iterative, development methodology, plus some extra rhytm to it.

Just an idea. Inspired by others. Credit given in pdf above.


Smultron för Mac OS X

Idag hittade jag äntligen en skön editor för Mac OS X som både är gratis och har den rätta Mac-känslan: Smultron.

Tidigare har jag kört en utvärderingsversion av Rails-folkets favorit TextMate, men den gick ut idag. Har också prövat TextWrangler, en gratisvariant av den gamla Mac-trotjänaren BBEDit, men känslan är helt enkelt inte helt rätt. Detta problem gäller inte för Smultron. Efter ett par timmars användning känns allt bara bra. TextMate har fler roliga finesser, men Smultron räcker långt för mig just nu. Pröva!

Uppdatering: till slut har jag fastnat för en version av Vim för Mac OS X. Fullständigt omöjligt att ens komma igång med utan en bra guide, vilket jag sån tur var hittade, men väldigt kraftfullt när man väl ägnat några dagar åt att förstå hur det är tänkt att funka.

Uppdatering igen: självklart är det TextMate man ska köra på Macen. Jag hade faktiskt prövat denna editor som är en favorit bland rails-utvecklare, men inte riktigt fastnat för den. Nu har jag testat igen, och lagt mer tid på mig att utforska alla finesser. Slutsats: oslagbart! Pröva själv.


Create a Calendar

I needed a calendar print-out, and Google found me this excellent site that generates calendars for you, complete with local holidays. And with lots of customization features. Generate, print, and take it to your next planning meeting to scribble on.


Scrum Master Power Tools

If you’re a Scrum enthusiast, chances are you’ve spent some time with Excel, trying to wrestle out burndowns and such. This guy, Jon Peltier, seems to know a thing or two about Excel. Might be a source for inspiration. Remember to keep it simple though: don’t get stuck in Excel like others get stuck in Microsoft Project. It can be dangerously relaxing to just fiddle around with software for a while. Kind of meditative actually.