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