note:

I'm writing this post for all of the wrong reasons. I've had this "write a post about pitfalls of org-mode," on my org-agenda for weeks, with a list of "ways I'm not doing things right in org-mode." One of those pitfalls, the main one in fact, was "you're living too much in the agenda view, and not thinking of your org-files as working documents and outlines onto themselves."

And because I'm living too much in the agenda view, I'm writing a post (that I need to write, but have been hesitant to write for a while) mostly to get it off my todo list.

This is certainly an acceptable way to work, and I think todo lists mostly exist in order for their items to be completed and checked off. At the same time, I've said (and I keep saying) the beautiful thing about org-mode is that it allows you to plan and process your projects in a way that makes sense for project planning without centering your process on "actionable items," which is good for doing things but less good for planning things.

And so I've been failing at keeping the "planning" and the "doing" as separate thought processes. Note to self: do better with this.

The second pitfall is in the "org-refile" functionality (C-c C-w), which allows you to send items and subtree's to other parts of your org-agenda files. I think part of the problem is that I don't really get how it was intended to be used, and as a result when I try to use it, it doesn't work. (I tooled around in customize, after I wrote this and found: that the following bit (in custom-set-variables) to help, bunches:)

  '(org-refile-use-outline-path (quote file))

When I want to refile something, I think to myself "it should go to x file, under which heading, hrm... lets see what's there..." And my options are presented to me in [Heading]/ (filename.org) format. The problem is that org is thinking backwards from me, and as a result I end up miss-filing things, or not using the refile as much as I should because it doesn't really work for me. Hrm. Not sure how to hack this.

In anycase, back to working.

note:

In light of my otherwise fried state of mind, I would like to present a list of things that I dislike. Because I'm snarky like that.

  • HTML emails. I've yet to send or receive an email that really requires rich text formatting provided by HTML emails. While multi-part emails (which send multiple copies of the same email in rich and plain text) are a good thing, it's a huge pain in the ass to get an email (particularly a long email) three times, just for the pleasure.

  • Sites that recreate twitter without adding any useful features or discussion. It's as if the dimwitted internet people said "holy shit, if we give people 140 characters to say banal things on our site maybe we'll get traffic like twitter," except this isn't how the internet has ever worked (or worked well.)

Facebook is coming out with "usernames," I've gotten an invitation to microblog on niche-social networking site, and everyone seems hard set on reimplementing this whole "status" thing a la twitter in the beginning, without any thought of interpretation (a la laconica) or doing something cool like jaiku-style threads, let alone the next big thing.

  • Malformed emails. Dudes. Sending a plain text email is really simple, there's no excuse for it to look like your cat took a nap on the tab key. I'm not chiding anyone for neglecting to test every email "blast" they send (because I'd be that lazy) but I am chiding folks for not testing it once. Writing a text file and sending it isn't that hard.

  • Reimplementation of email. I really hate getting facebook messages, and direct messages on [microblogging service], and each and every other fucking social networking site. Just send me email. Real email. It works, I have a good process for dealing with it, and I don't have to screw around with anything. Thanks.

  • The Twitter Fail Whale. Dudes. There was a while about a year ago, when a bunch of geeks were sitting around and thinking, "you know this twitter technology is going to be really cool, and there are a lot of possibilities here," and there were, and I suppose there still are, but the truth is that I see the fail whale several times every day, and most of the cool things that I wanted to see in twitter two years ago and then a year ago (real xmpp support, track, federation, custom filtered feeds (a la LJ-style friends' filters),) still haven't materialized. I think the addition of OAuth is a great thing, but it's a baby step.

  • The continued prevalence of IRC. Dudes discover jabber/xmpp. Thanks. A while back, I had a lot of nostalgia for IRC, and its true that IRC has a lot of history and is a standard to be reckoned with, but jabber is so much more elegant, secure, and provides features (persistence, logging, independence, etc) without having net-splits and complicated ad hoc registration schemes.

That's all for now. What do you hate about the internet?

note:

I watched the Helvetica movie a few weeks back and I wanted to say, friends, it changed my world.

For those of you haven't heard about Helvetica, which I suspect covers most of you (however, I suspect more of you have heard/seen this movie than the general public, because I think you all are just that cook. at any rate,) it's a documentary that covers design, typography, modernism, post-modernism, and contemporary trends in art/design, all vis a vis the now-52-year-old typeface "Helvetica" which had a profound impact on the last half-century of visual culture.

For real. 90 minutes of a movie about a font face.

And you think this might be boring or get old after a while, but somehow it doesn't. And not only does it not get old, it soaks into your perceptions for a long time afterwords.

The thing about helvetica, perhaps its largest strength, is that it blends into the background, that it's value-neutral, and that it is all over the freakin' place. Seriously. The side effect of this is that we don't end up "seeing" it very much, and the movie shines a light on Helvetica and suddenly I've found it possible to see it everywhere. Everywhere.

And if nothing else, I think its sort of cool to be able to see differences and depths in this thing that sort of exists to be neutral. So that's cool.

And. That's about it.

Stop looking at me like that.

essay:
on git: in two parts

A post about the distributed version control system "git" in two parts.

Part One: Git Puns

My identi.ca buddy madalu and frequent commenter here posted a few weeks ago the following notice:

#ubuntu-one... No thanks! I'll stick with my home-brewed git + server + usb drive solution. My git repos breed like rabbits!

Which basically sums up my opinion on ubuntuone. But I thought that the "my git repos breed like rabbits" was both accurate (git repositories are designed to be replicated in their entirety), and a sort of funny way to put it. And being the kind of person that I am, I decided to see what other (potentially dirty) puns I could make about git. Here's what I came up with:

what did one git repo say to another git repo? pull my diff

what did mama git say when she found her remote in his room making new branches? octopus merge this instant!

what did one git remote say to entice another remote to branch? it's ok we can just tell them we were cherry picking later.

what did dr. git say when a repo complained of bloating? git gc

I should point out that these four puns all demonstrate a factual feature of git, though the "pull my diff" isn't exactly what happens.

"Octopus Merge" is the method that git uses when there are a lot of divergent branches (more than three) that need to be merged together. Similarly "cherry picking" is a way to manually select what changes get merged together if you're not ready to do full merges, and git gc is the cleanup script that goes through and re-compresses and prunes the database so that your repo works faster and with less disk space.

Anyway, I'm out of puns, you all are welcome to join in.

Part Two: Atypical uses of Git.

I'm sure I've written a bunch here about how I'm not really a programmer, and while this is true I do use git a lot. In part I think this is because git is really mostly an ad-hoc file system and also given how I write, the kind of writing I do isn't that different from programming.

So aside from storing my writing projects, and my orgmode, I do things like store all of my mail directories in git. Which you might think is kind of weird, but the truth is that it makes keeping lots of computers in sync a rather simple proposition, and its damn fast.

I also have a directory I call "garen" (but used to call "main") that is basically my home directory. It has all my emacs lisp files, most of my non-mail related scripts, various configuration files. and so forth. It started out as a backup and workspace for smaller projects, but it's since morphed into "that one thing I need to have of my computer in order to actually work." When I was setting up the server it took a thousand things that might have been huge headaches and made them non-issues. Here's what this repo looks like:

  • emacs/ This is where my emacs-lisp files all live. I have a 'init.el' file which is basically the standard .emacs file, and a 'gui-init.el' file for code that I only want to run if I'm running desktop where I'll be running non-console emacs frames. As a result on my machines my .emacs file looks like this:

(load "~/garen/emacs/gui-init.el") (load "~/garen/emacs/init.el")

With the first line commented out if needed. End result, emacs loads the same everywhere, no thinking.

  • scripts/ I add this to my path, so that any little bit of bash script that I want to be able to use is accessable and the same on all my machines.

  • configs/ Generally my format is to have config_file.machine_name, for example: bashrc.leibniz. In the case of the bashrc, I have a ".common" file that has everything that all my machines need, while the machine specific files have everything that's... well specific, and a source statement for the common file. So my "real" .bashrc looks like this:

source /home/tychoish/garen/configs/bashrc.leibniz

And everything stays in sync between the machines. How cool is that.

That's sort of the most important thing. The great thing is that this makes setting up a new user account on a server, or a box itself a piece of cake.

Food for thought!

note:
note:
note:
essay:
essay:
essay: