Progress Reports

I wish there was a good way, in the context of a blog post or some other convenient digital media, to regularly say: "I've done some things, you may be interested in them," and "I'd like to do some things, here are some notes of what I think I'd like to be working on in the next little bit." I've yet to find a good way to get in the habit of writing this kind of post.

My instinct is to have something that I can template and automate pretty strongly so that I can mostly focus on doing things rather than writing blog posts about doing things. Or as is presently the case, blog posts blog posts about doing things. Oy. Ideas and suggestions on this topic would be most appreciated.

So what have I been up to? Well...

  • I got back into writing fiction this week after several weeks away. I was in a difficult part of the story and life got very... full... and I stopped writing regularly. These things happen, but it's good to be back at least some.

    After the work I did just last night, I realize that I'm much closer to the end of this novel than I had thought. Even if things go very slowly for the next few months, I think I'll be able to get this thing done by the end of May. I just have to write about a thousand words to finish Chapter 11, and there are three to four little vignettes in chat per 12 to wrap the whole thing up. And it's going to be awesome.

    I'm super excited to be done with this project and to be able to spend some time cleaning it up and making it an awesome text, but also being able to work on making other things I've written better, and to be able to write new things, with my undivided attention.

  • I've updated the /posts/anti-rodentia and the associated discussion page with some changes that I think make the system work much better.

  • I've upgraded to Firefox 4, which I really like a lot: it's much faster, it's much more minimal (visually) which is great. Also all of my plugins and extensions work without issue. Good job!

  • I went through a blast from my past when I pulled together the queer theories page, which does some--at this point utterly redundant--definitional work about what it means to be queer, and potential limitations on queer identity/politics in the era of a broadly defined queer.

  • I've started adding recurring tasks to keep me on track with writing and posting entries to this post. This means I don't end up posting things months after I write them. As was the case with Mutt Sucks Less, a post I wrote many months ago and posted with some revisions last week.

  • I made a folk page for frequent comm enter and discourse participant Matt Lundin that includes a snippet which makes a list (and RSS feed!) of all pages that link to "madalu" or are tagged with "madalu" (his handle). You can see this by editing the page, and use it when making your own folk pages. Which you should totally do.

Have a good weekend!

Mutt Sucks Less

I use a mail client called mutt. The quality of this software may largely explain my opinion this post on the continued relevance of email

I think mutt warrants a bit of extra attention for two reasons. First, because I think there are enough people out there who don't use mutt who could and perhaps should, and I'd like to do a little encouraging; and second,like all fundamentally wonderful pieces of software, mutt can teach us something important about what makes technology great and pleasurable to use.

Working with any new kind of software is always a challenge. It is unfortunate that "features" and "functions" are the currency by which we judge software. Which is unfair to both the technology and ourselves, as the utility and quality of these features/functions depends on a number of subjective/individual factors. That said, with regards to mutt, my list is as follows:

  • Mutt is agnostic on the editor question. I suspect the fact that I could use any text editor I wanted to write email was probably my original reason for switching to mutt in the first place. It's amazing what a sane editing experience can do for the overall experience of writing emails.
  • Support for PGP/GPG encryption. Signing and encrypting emails with PGP is probably only a minor advantage, and of limited actual utility, but I think it's important and valuable to have this capability in your email client. After all, the success of PGP depends on a crowd effect: if it's easy, sign all your email and hope that others will join you. Mutt makes this easy, which is a good thing indeed.
  • Mutt operates independently of mail transmission protocols, which are universally flawed. In many ways, by not including support for mail transmission, mutt is more useful and more flexible than it would be if it was designed to handle mail transmission. Having said that, recent versions of mutt have internal support for IMAP/POP/SMUT. Not that I'd use it or recommend that you do use it and I suspect most mutt users don't either.
  • Mutt operates independently of mail storage format: you can maintain complete control over your mail data, and store email pretty much however you like. While this may be a burden to some, I'm somewhat controlling when it comes to data storage and preservation, and I think email archives are incredibly important. And I'm a weirdo about email storage.
  • Mutt's "sidebar patch" isn't even a part of the core of the software, but it's absolutely crucial to my experience of the software. Basically it gives you a heads-up-display of your mailboxes and tells you at a glance: if there are new messages and how many messages (new, flagged, read) are in an mailbox. While it eats into some screen real estate, it's generally unused screen space and it's more than worth the expenditure of pixels.
  • Mutt runs on console and can be compiled on pretty much any contemporary UNIX-like system. Chances are there are packages for most operating system. So I feel pretty confident that I'll pretty much be able to use mutt no matter what kind of system I end up using. Also console apps generally run pretty well in screen, which makes them accessible (and persistent) across the internet.

Onward and Upward!

Desks and Stationary Mobility

This is a post about mobile technology in an unconventional sense. I think I'm probably an extreme "mobile" technology user: I ride a lot commuter rail and use my laptop extensively on the train. Then, I work on a laptop all day. In the evening, I often do at least a little additional work, again on the same laptop. There is, after all, always writing (like this post!) to fill any remaining free time.

I'm not a terribly typical mobile user. My main "mobile device" is a little ThinkPad (and sometimes a larger ThinkPad,) running Linux and a lot of Lisp (emacs and otherwise.) It's not ideal for every situation: there are times when I just can't bare to open the laptop again or it's unfeasible (and there's always the Kindle for times like those.) Most of the time it works well.

It's hard to omit discussion of the "tablet" and the iPad. For me, the fact that tablets are not general purpose computers is a huge deterrent. This is probably not the case for everyone, though there are lots of shades to this debate. I think the more interesting question is not "do people need general purpose tablets?" and more "how will more ubiquitous embeded-type systems effect the way people will approach 'general purpose' computing environments" from here on out? Honestly, this in computing practice has already happened, but I think it will continue to pose important questions for users and developers as it continues.

The struggle, for me, revolves less around the question "how do I work remotely?" and more around "how do I also work when I'm at a desk?" The adjustment can be hard: For a while, I was so used to working on the train, and in random chairs, that I had a hard time focusing if the computer wasn't actually on my lap. Bad ergonomics is only the start of this.

The current solution is to set up desks and workstations that use the same laptops and systems so that I'm not perpetually switching between fixed computers and mobile computers. I'm also keen for these desks to have their own appeal: bigger monitors, nice keyboards, and easy to attach power cords. I've also attempted to tie together all of the "I'd like to switch between laptop-mode and desk-mode," functions (e.g. network connection, monitor attachment, window layout) into easy to trigger operations, so I can get started more quickly. Nice. Seamless. Efficient.

The lessons: There are many ways to maintain technical (cyborg) coherence despite/during geographical movement and sometimes that technology isn't particularly cutting edge. Sometimes the best way to break yourself of a habit you don't like is to play a game with yourself where you establish a more attractive option. Finally, a very small change or automation can be enough to take something difficult and make it much easier or something unpleasantly and make it workable.

Anti-Rodentia

I hate computer mice. A lot.

The closest I've gotten to liking a pointing device is an acquiescence to the TrackPoint on the laptops I use. That's the little red dot in the middle of the ThinkPad keyboards. My problem with computer mice is the context switch between "typing-mode" and "mousing-mode." Moving between the modes is jarring and inefficient. I've been using StumpWM and other similar window managers for years now and as my need for the mouse decreases my irritation with needing to use a mouse increases.

I've been struggling for a few months with a bit of a problem: Several months ago I got a new bigger ThinkPad, a T510, while it has my beloved TrackPoint there is also a TouchPad. After years of only using laptops with the red dot, this was very disconcerting. How did I keep from triggering the touchpad with my wrists? Couldn't I just turn the damn thing off?

I did, and everyone who tried to use the computer after that was dismayed, and I didn't care. Except, I found out that, apparently, disabling the touchpad also disables all non-TrackPoint pointers. So when I plugged the laptop into the docking station, the external mouse didn't work.

Blast.

The solution to disabling and enabling the mouse on the fly, that follows isn't as pretty as I'd like, but it works.

UPDATE: Turns out that my original procedure only appears to work. I've made the following modification to the toggle-mouse script, using a stock xorg.conf file.

File: /usr/bin/toggle-mouse

#!/bin/sh

TOUCHPAD=`xinput list | egrep "TouchPad" | sed -r 's/.*id=([0-9]*).*$/1/'`

if [ xinput list-props "$TOUCHPAD" | egrep -o "[0-9]$" | head -n1 -eq 0 ]; then xinput set-prop "$TOUCHPAD" "Device Enabled" 1 elif [ xinput list-props "$TOUCHPAD" | egrep -o "[0-9]$" | head -n1 -eq 1 ]; then xinput set-prop "$TOUCHPAD" "Device Enabled" 0 else xmpp-notify "Your mouse is probably screwed up somehow" fi

Test the output of "xinput list | egrep "TouchPad" | sed -r 's/.*id=([0-9]*).*$/\1/'", and inspect "xinput list" to make sure that the value of $TOUCHPAD is the xorg id of the touchpad (or other device) that you want to disable.

I'd actually recommend not putting this in /usr/bin/, but just so long as it's in the path. Then run toggle-mouse at the command line. You may need to run this as root-suid, for your system system is configured. Tweak the TOUCHPAD variable as needed.

If you have a better solution, I would be terribly interested in hearing about it.

Covered In LaTeX

Although I haven't used LaTeX much in the past few years, it was one of the primary tools that hastened my shift to using GNU/Linux full time. Why? I'd grown sick of fighting with document preparation and publishing systems (e.g. Microsoft Word/Open Office), and had started using LaTeX on my Mac to produce all of my papers and documents that needed to be output to paper-formats. Why switch? Because after a certain point of having every tool you use be Free software (because it's better!), it becomes easier and more cost effective to just jump the gun and by commodity hardware and use a system that's designed to support this kind of software (managing a large selection lots of free software packages on OS X can become cumbersome).

So why LaTeX? What's the big deal? Why do I care now? Well...

LaTeX is a very usable front-end/set of macros for the TeX typesetting engine. Basically, you write text files in a particular way, and then run LaTeX (or pdflatex) and it generates the best looking PDF in the world of your document. You get full control over things that matter (layout, look and feel) and you don't have to worry about things that ought to be standard (titles, headlines, citations with BibTeX, page numbering, hyphenation). The best part, however, is that once you figure out how to generate a document correctly once, you never have to figure it out again. Once you realize that most of the things you need to output to paper are in the same format, you can use the same template and be able to generate consistently formated documents automatically. There's a "compile" step in the document production process, which means changes aren't often immediately recognizable, but I don't think this is a major obstacle.

Word processing and document preparation is a critical component of most common computer users. At least, I'd assume so, though I don't have good numbers on the subject. In any case, I think it might be an interesting project to see how teaching people how to use LaTeX might both improve the quality of their work, and also the way that they're able to work. It's advanced, and a bit confusing at first, but I'd suspect that once you got over the initial hump LaTeX presents a more simple and consistent interface: you only get what you tell it to give you and you only see the functionality that you know about. This might make the discovery of new features more difficult, but it doesn't limit functionality.

I'm not sure that this post is the right space to begin a lesson or series on getting started with LaTeX, but I think as a possible teaser (if there's interest) that the proper stack for getting started with LaTeX would consist of:

  • A TeXlive distribution. You need the basic tool kit including pdflatex, TeX, Metafont, LaTeX, and BibTeX.
  • A Text Editor with LaTeX support: emacs, TextMate, etc. Plain text can be difficult and cumbersome to edit unless you have the right tools for the job, which include a real text editor.
  • Some sort of macro or snippet expansion system. TeX is great. But it's also somewhat verbose, and having an easy way to insert text into your editing environment, both for templates but also for general operations (emphasis, notes, etc.) is incredibly useful, and reduces pain greatly.
  • A template management system. This probably needn't be a formal software system, but just something to organize and store the basic templates that you will use.

And the rest is just learning curve and practice. Onward and Upward!

Focus and Context Switching

This post is inspired by Cory Doctorow's Inventory about the technology he uses for his work and ongoing personal angst and gadget lust.

For the past six months or so I collapsed my entire computing existence into one, single, computer. It's a nifty Thinkpad x200, a small laptop with just the right balance of usable screen space, sufficient computing power, and great build quality. And when I say "everything," I mean it. I hook it up to a monitor and keyboard at the office and do my day-job (technical writing/sys admin stuff) on this system, I have a similar "desktop" situation at home, and I write fiction, do all of my email, write and blog posts, off of this system. I even have development web servers running here.

In a number of ways it's great, and I wouldn't trade this for the world. Everything just works the way I want it to, and I never have to worry that I've left some important edits to a file on a system elsewhere. Everything is always with me.

Now to be fair, I have additional computers. My old(der) desktop at home keeps backups of files, plays music, and does a number of other tasks. I have (and use) the server that this and other websites run on for some tasks, and I have another instance at the office that manages some work functions, but despite their varying physical distance from me at any given point, my interactions with these computers is always as if they're remote. When I use a computer, it's this one.

Now there isn't a real problem here, except that from a workspace and mindspace perspective the context switching can be somewhat complicated and frustrating. While I've got most of the kinks worked out of the docking (monitors and keyboards) process figured out, it takes me a few moments to settle into or out of "laptop-mode" or "workdesk-mode" or "homedesk-mode." While not having to worry if my files are all up to date, it's also somewhat distracting for all my different projects to be open all the time. The article I'm working on for work is always open and a few key presses away from the novel I'm working on or the latest in-progress blog post.

Again, this isn't a really huge issue, but it means that when I get somewhere and want to begin working I have to take a deep breath, and spend a moment or two getting going again. These do fit into the category of "first world problems," and I'm not sure if there's a really easy solution. I've toyed with a number of resolutions to this angst:

  • Distribute my existing machines such that I have a machine that lives at work and a machine that lives at home so that I can just sit down at a desk and start working without shenanigans. Given the available hardware, this might mean that I'd spend most of my time using systems that I'm not particularly fond of.
  • I've toyed with having a "tycho writing laptop" that wouldn't have a web browser installed, for more distraction free writing. I've got my old laptop set up to do this, but I'm not likely to take it anywhere (i.e. for the commute,) so it might make sense to get a little netbook for the train for this function, but that seems like overkill.
  • I might redistribute more of my workload to servers rather than doing everything on the laptop. I'm thinking about having the terminal sessions that I use for email primarily live in screen sessions elsewhere.
  • I've thought about getting a second laptop, (like my main system at the moment,) both for redundancy and to help reduce the cost of switching between various contexts.

As I've been toying with this, I've been making a number of tweaks to my work flow to help address the pain of context switching, most of which are too trivial and too specific to outline here. Mostly I've been tweaking some customizations, improving how I use virtual desktops. While these tweaks have improved things greatly, better internal system management doesn't solve the underlying issues: it takes time to reconnect to networks, to close tabs in the web browser, to get to the relevant files open in emacs, and navigate to the proper desktop. All the while other contexts (other files, other virtual desktops,) lurk nearby.

And figuring out how to solve this problem involves a certain amount of "head game" for me: avoiding having "the old laptop" be the primary computer for a given task, making sure that I don't need a network connection for essential tasks. Assorted other weirdnesses.

If anyone recognizes features of this angst that in their own work they've managed to resolve, I'd love to hear about your setup.

Ritual, Velocity, and Getting Things Done

I finished chapter eight of the novel that I've been working on for... Oh? Way. Too. Fucking. Long. And you want to know how I'm even comfortable asserting that I'm done with the initial draft of Chapter 8? I wrote an entire scene from Chapter 9 without saying "wow, I need another scene in Chapter 8 so that the story works out." Because I've finished Chapter 8 at least three times, but this time I'm pretty sure. There are a couple of interesting, or at least quasi interesting factors that I think are worth some attention.

For starters, I made some progress on the novel. I know that I don't have endless time to write fiction, and in addition to a day job that requires a bunch of my time and brain cycles, I write the blog, and work on other side projects: fiction, programming related things, the Cyborg Institute, dancing, singing, and occasionally sleeping. These are all projects that are important to me, and I think create value for me (and I hope in their own ways, you as well) so I don't want to sound as if I'm complaining about being too busy and overextended (perhaps I am), but as a result I think I'm being pragmatic to accept a slower pace of development.

At the same time, damn I need to finish this thing. It's good, I'm finally back in a place where I don't hate the story, but at the same time I'm very aware that I've learned a lot.

And perhaps that's the problem with taking so long to finish novels. Not so much that writing is a race, but if you aren't able to pull it off in a reasonable period of time, say 12 months, or so by the time you get to the end, you know so much more about the way you work about how to put together stories, and how to write, that creating a cohesive work becomes an actual challenge. At least for me, the thing I probably want more than anything right now, is a chance to work on other fiction projects, to take the lessons that I've learned from writing this story and apply them to writing other projects. I have a great idea for a new story laying around in a text file, but I'm not touching it yet.

The two most important things about being a writer, as far as I'm concerned, are actually writing things (done!) and finishing things (at which I think I get a middling B). So just starting new projects at whim, isn't exactly an option either. So in light of all this, what's my strategy? Fairly simple...

I've set a recurring task in my org system to write 100 words a day on the novel. Just 100 words. And if I know it's not going to happen I can mark the task as "skipped" or do it "late." But the truth is that 100 words is the kind of thing I can do in only a few moments, so it's not only a regular reminder to write, but also an eminently reasonable goal. Not only do 100 word segments add up (in a way that 0 word segments never do,) but the real trick is that in my mind I'm not trying to write very much, just enough to get started. If I don't, at least I've made a little progress. If I do, then all the better.

In addition to the regular writing task for the fiction project, I've also started keeping a journal using this method. I've also created a recurring tasks for keeping the journal, and I find this method tends to have a positive effect on my productivity. To-do lists are great for remembering and prioritizing tasks when you have a lot of balls up in the air, but they often fail at tracking real life in a reasonable way. The journal provides a good way to keep track of, and recognize the importance of all the things that we spend time doing, but that don't often have an opportunity to be captured into the to-do list before they get done. I think of it as a sort of inverse-to-do list.

It doesn't always work, of course. There are days when I don't get to either one of these tasks, and there are some days where I catch up on one or the other of them. But it's a good practice, and I focus on the things that are important: actually producing something and then also building and maintaining a habit.

Because I don't know how else things get done. Not that I'd be unwilling to listen if you have a better solution. See you in comments...

Time Management

I've not written here about time management and productively very much recently. I'm a pretty busy guy, I work a lot, I live an hour away (minimum) from my social life, and I have a lot of things simmering in various stages. While I might accept the challenge that I'm spreading myself a bit too thin (I'm working on it!) I feel like the largest challenging isn't that my attention is too divided, or even that I don't have enough time to do the things I want to do.

Rather, I think my biggest challenge at the moment is that I'm not particularly good at using very short blocks of time to get things done. The twenty minutes of free time I have in the morning before work, the time after work when I'm too tired of looking at words to write, but not tired enough to go to bed. One of the great things about having lots of projects is that they're all in different stages and require different kinds attention.

As a result, I'm taking the following strategies in an effort to use time a bit more effectively:

1. Stub out projects during binges, fill in the gaps in the interstitial time.

One of the problems with writing in short little bits and pieces throughout the week, is that writing is often a game of momentum, and it's hard to really build up speed and absorb yourself in a project, however big or small in a few moments. In most cases, the hardest thing to do in writing is figure out "Okay, so what do I need to write here." Given this, it's incredibly easy (at least for me) to become enchanted with the successful binge and the ability to bury myself in a long writing session for hours on end; because that tends to work well, I'm prone to just not trying to write in the interstitial moments.

My approach, recently, and one that I need to pay a bit more attention to maintaining, has been to use binges to start projects, to do a lot of free writing and note taking, and then with things mostly sketched out and "stubbed out" (to borrow a term from the wiki world), it's easier to write things during the week.

  1. Work on keeping the "to do" list more populated.

I suppose this is really an extension of the above, but I sometimes find myself avoiding adding items to my todo list if I'm close to "clearing the decks" (OCD much?) and I sometimes fall out of the habit of really using my todo list as a method for planning my day and week out. Todo lists have three main purposes that I can see: first they help with remembering things that you might otherwise forget. That's not something I struggle with in any major way. The second is to do some organizational work up front so that big and hugely imposing tasks seem much more manageable when you sit down to work. Finally, they should all but moot the question "what should I work on now?"

In any case, a todo list is completely useless when left unmaintained, and underpopulated. There's always something that needs doing, and there's often time to do something. Todo take the thought out of figuring what to do in those spaces, and they can't really do that when they're not kept up to date.

3. Get away from the computer when I've lost the ability to concentrate.

When I'm tired or bored (or both) and don't think I could muster the ability concentrate on a sentence, I rarely muster the courage to get up and do something else. Instead, I usually tab into a web browser and doddle away the evening doing something like refreshing Facebook endlessly, or some-such. While there's nothing wrong with a little bit of harmless perusal of the Internet, it's too easy to get sucked in and then not get other stuff done. I think of this as the "cut your looses strategy." I'm not terribly good at it most of the time, but when it works I'm pleased.

  1. Read more, particularly when I've "run out of words."

At the end of a day, I sit down on the couch with my laptop, and I find whatever emacs buffer open that I'd been hacking or writing away on in the morning (or the previous evening), and I think "Dear god, I couldn't possibly write anything more," which is a fair feeling: I stare at emacs buffers and hack away on words all day as it is, coming home to do more of this, even if the topics are a bit different, is sometimes difficult. I enjoy writing a bunch and find it to be a very rewarding experience so this isn't always a problem, but when it is, it is.

My goal is to avoid waisting time because I'm bored or tired and using this time to read instead. I tend to find reading to be refreshing and I feel like I don't have enough time to read as it is, so this solves a few problems. I think if we look honestly at our days and our goals, most of us might be able to find a way to get the more things done that we want to get done, with such a strategy.

We'll see how that works.