gentoo/vms suck

Ok, so I really want to like Gentoo Linux. Really, rather a lot. And I even wrote a post about how awesome VMs were. But here’s the issue of the hour.

I wanted to try gentoo, because I was kind of sick of having to fight with ubuntu/debian to get at more contemporary packages. Having a distribution that’s really picky about these things when I’m not running a server, and capiable of deciding if I want to install something is… anoying. Espically when I’m likely to install it myself, the “stability feature” seems downright painful.

And I’m in the process of testing things out so it seems fair to give one of the “rolling” release cylce distributions a test drive. Ok, so here’s what happened.

There aren’t--that I can find--VMs with pre-built Gentoo desktop installations in abundence like there are for ubuntu. Which means I have to install it from scratch. Except that that’s really finkey and I’ve thusfar screwed up in a couple instalations. Once by not reading the instructions correctly and setting some weird keyboard layout that I couldn’t recover from, and this second time because the network wouldn’t connect in the virtual machine so there wasn’t a display manager aside from xdm, and while I’m good with the shell, I’m not that good with it.

I think I should attempt to get a good solid install into the VM before I order hardware for real, but this last issue seems to be more an issue of “tycho fighting with the vm engine” rather than “tycho fighting with linux” so that’s helpful, at least a little.

Rethinking git-mail

Last month I told you all about this funky new way way I’ve been downloading email, using the git version control system, rather than traditional POP or IMAP. I wanted to write a post with an update to how this system works and how I’ve changed the system and how I think I will change the system.

Everything I said in the last post is still most true to be honest, though I did tweak it a bit in response to the comments, to make sure there aren’t performance related issues. It’s not perfect. Here’s the biggest problem:

In git, pushing to a non-bare repository is tedious, and potentially troublesome. Pushing to bare repositories are in contrast, much simplier. Indeed most of my stress--and the complication--in the initial solution was bound up in this fact. Bare repositories are basically the versioned database parts of a git repository without the files, which is ideal for a server where you’re pushing commits/data to. The reason why pushing to non-bare repoistories is hard is becasue when you push to a non-bare the files aren’t updated (on the theory that someone might be using them, and there might be uncommited changes.)

The reason why I’d need to do this? The “origin” repository, which in all other situations would be a bare repository, needs to have an “index” (files) becasue all of the mail lands on the server (as files) in the origin repository.

The obvious solution to this is to keep a second remote repository, and this how ikiwki solves the problem for ikiwiki wiki’s stored in git repositories. So here’s a description of how this new system would work:

1. Email arrives on the server and procmail begins to filer it delivering it to: 2. ..a git repository called ~/mail which is a clone of ~/domain.com/git/mail.git/. 3. I keep a clone of domain.com/git/mail.git/ on all of my computers/workstations/shell accounts.

Here’s how the sync sequence goes. Though I could probably wire something up with git hooks (is there even a pre-pull hook?), I’m not sure that that gains us anything in particular for this setup, so I’ll just assume that v.2 of git-mail will work the same as v.1, and live in a shell script that:

  1. Pull from domain.com/git/mail.git/
  2. Commit all local changes. (involves removing deleted files and adding new files, git’ll handle the renames impicitly).
  3. Push local changes to domain.com/git/mail.git/
  4. ssh into the server. and have ~/mail/ pull from ~/domain.com/git/mail.git/ commit all changes push to~/domain.com/git/mail.git/
  5. Pull from domain.com/git/mail.git/

Basically the idea is:

  • Always pull from the bare/“root”/centralized repository, commit any local changes and then push to the local repository.
  • Even though this system, like most git systems, in truth, have a centralized repository, all of the “children” repositories are equivelent, even though one repository is special because it’s where new data enters the system. This, as my previous attempt has shown, isn’t strictly speaking, necessary, but it does make things better.
  • Given all this, if I needed to start using fetchmail locally for some reason to check a pop account, I could without needing to worry about syncing problems. It makes sense for mail to “enter” on the server/centralized for semi-obvious reasons, but it’s not a requirement by any means.

The problem is that you have to keep two copies of all your mail folders plus the history (which becasue of delta storage and compression isn’t as much as you’d think) on your server, and I haven’t tested things, so I’m not sure how it fares on the time. On the one hand there’s more disk time involved in the new setup, on the second hand there’s more chatter between the machines in the old setup, so I don’t know how it works interms of speed, but from where I’m sitting, it cannot be worse than IMAP. Can’t be.

writing reports

I’m still writing, even though I’ve been in a very clear Critical Futures kick of posting lots of old material. I think I might post another one of the Trailing Edge stories soon, just to switch things up, after another Knowing Mars story. But that’s beside the point. So I’m writing this new story. It’s good fun, and there are lots of things about this story that I absoutly adore. The theory is interesting, the characters are a hoge podge of old favorites (sort of), the setting is great fun, and I really like the shape of the plot.

I’m not writing about it on the blog because I think it’s too introspective, and I don’t want to overthink things, and I’m not sure it’s going to end up on Critical Futures, and so forth. But I wrote a sentence which makes me smile, so I thought I’d post it here.

Such strict adhearance to parlaimentray rules wasn’t incredibly common and tended to irritate the old timers, who were firmly of the opinion that procedure was to be used as a precision instrument, not a blunt object.

I have something of a fascination with parlimentary systems and procedures, and I think it’s sort of an interesting setting for part of a story. You have the sense that something “important” is happening (even if it’s not,) you have a bunch of smart folks who we can imagine might be prone to saying sort of witty things to/at eachother, there’s conflict, and there’s a great likleyhood that absurd things can happen.

Having said that, I’ve been dragging on this scene, which I know will be fun to write once it gets going. But it hasn’t yet. In due time. In due time.

Work Mode for Mutt

So I have a new quandry. I have one computer (a nice, pretty new MacBook Black, that does everything I want and then some.) and I have two lives. No not like that, but my computer is both the place where my paying work gets done, and it’s the site of much of my creative output happens. Now, keeping work and play separate is a challenge for many people, even when who have different tools, but it’s a particular challenge in my enviroment.

My biggest concern is that if I’m constantly aware of what’s happening in my work email box, I feel like I’m always working, and it makes it hard to concentrate on writing these blog posts. And the inverse is true too: if I get a message to a non-work related listserv it’s hard to let that linger when I’m working.

Now arguably the solution to this would be to have two different email accounts and systems. Except that I use mutt, and procmail and my favorite text editor to write email and I really would have a hard time abiding by another solution. Also adding the need to check another email box wouldn’t really fix my problem, because there’s a chance that I could miss something crucial in real life if I unplugged from one email or the other. So the two accounts solution is basically out of the question.

I just need a simple way to control my “context” (in the Getting Things Done terminology) vis a vis my email box. So here’s what I cooked up. I should disclaim that I use the mutt-ng build of mutt which includes a sidebar in the mutt interface.

Basically what you need to do is have two different .muttrc files (where your settings live), one for “work” and one for “play” (I called it “standard”) But rather than have two possibly divergent files, here’s what I’ve done.

Split your .muttrc into two parts. The first includes everything that includes refrences to mailboxs. Those lines look like this: mailboxes =<mailboxname. In a second file put everything esle.

Name the everthing else file .muttrc_core and put it either in your mail folder or in your home dirrectory. Duplicate the mailbox folder so there are two copies, and edit each one to suit. You probably want your drafts/sent/inbox folders in both contexts, but not your work mailboxes or your hobby listservs. Lets name the files, .mailboxes_work and .mailbox_standard, and put them in the same place as the “core” file.

Now here comes the trickery. In $HOME/.muttrc put the following:

# All the good Mutt settings
source /path/to/.muttrc_core
# which mailboxeses to list in the sidebar
source /path/to/.mailboxes_standard

And in a file named .muttrc_work

# All the good Mutt settings
source /path/to/.muttrc_core
# which mailboxeses to list in the sidebar
source /path/to/.mailboxes_work

Now, the trickery, open up your .bash_profile or .bashrc (which ever you use…)

alias muttw='mutt -F /path/to/.muttrc_work'

And you’re done. Now you have to intentionally open up your work email, so you don’t feel like you’re always on call, but you get the delightfullness of only having to worry about one email account, particularly if you’re good about choosing which email boxes go in which folders, and about using procmail to filter out most of your email in the right ways.

You might also imagine how you could use a similar fix to control how you address email based on work/home context, or even estabilish different commands for various key bindings based on context, and the best part is that al all of your core settings stay the same and are centrally located in one place. How nifty is that?

VMs For All

In my post/rant about IM clients, I mentioned that I was running a Ubuntu instalation in a VM instance on my MacBook. I am in fact, not crazy, and I’d even go so far as to recomend this experience for most other people. Here’s why:

First off, virtual machines let you save state in snapshots. So, as a general practice make a backup snapshot when you get your computer set up (which you save for safe keeping), and then again at regular intervals (every week, say), and then a third one just in case before you change any setting that might screw things up. That way, if things get really bad, you have a known good setup, something working that’s no more than 7 days out of date, and protection against botching your system in an upgrade. This isn’t as backing up your data, (which you should also do) but it’s important to do anyway.

The second great thing about virtual machines is that they let you sandbox the operating system. But you like your operating system sans sand? Me too. Conventually we run our operating systems “on the metal” and our operating system is in charge managing all the hardware interactions, but in virtualized instances the VM software does all this for you, and the “guest” operating system runs in an isolated enviroment. What this means is that you can move a virtual machine from one computer to another (mine’s 6.3 gigabytes, I could put it on a flash stick!) without any problems. Also, if you have some sort of driver problem on your host operating system, the VM isn’t subject to that, and you won’t get intsability from crapy drivers (exactly). And if you’re using the VM for testing and you manage to screw up something crucial the VM is the only thing that crashes.

Not to mention that you can generally start, stop, and pause virtual machines at will, so say you’re working on things in a virtualized linux, but need to run OS X system updates, you can puase your work in the VM update the system, restart and then unpause the VM and be right where you stoped.

Sweet!

VMs have become more popular/prevelent in the last several years as Macs have started running on the same x86/“intel” hardware that PCs have been running on for years. If Macintosh hardware is just pretty looking PCs with only one mouse button, it makes it easy (and tempting) to want to virtualize OSes on desktops, particularly as for people switching from Windows to OS X, who either need to use their existing software or who just want something familar near by. And the great news is that since virtualization has been used for years in servers, the programers are pretty good at writing the software.

So it seems to me, that VMs might be the way that we all interact with our desktop computers in a few years. There are a lot of useability/backup benefits, not to mention the portability ability, and it could also improve operation, depending on who gets stuck with managing the metal/hardware. I think the possibilities are pretty endless.

Onward and Upward!

On Scarcity

Economics heretofore1 has been based upon scarcity. I mean this is a pretty plain idea. We pay for computer hardware, because there’s presumably more pieces of computer hardware than there are people who want it. And the Apple Store/NewEgg takes our money because money isn’t limitless. Supply and demand. Pretty basic.

So this doesn’t hold true on the internet, and of software in general. How come you ask? But you just paid thousands of dollars for the latest Adobe package? Lets take a little trip together, shall we?

Unlike physical things--which are often scarce--or data stored on magnetic media (eg. VHS, Beta, 3/4" or Umatic,2 Cassette)--which degrade over time and over generation successive copies--data on the internet doesn’t cost anything to copy and transfer, and all copies are pristine.

I mean it’s true that internet connections cost something, but the costs are fixed, and generally not related to load. The cost to your ISP when you transfer 6 gb a month is just about the same as the cost if you transfer 12 gb. And storage costs something, its true, but it’s incredibly remarkable the speed at which this is decreasing. So computing has some scarcity that’s true, but the cost of computing is fixed relative to the amount of data you you consume/copy, assuming that your data collection never outgrows available storage. Which it might, in which case, there’s some additional cost there, but only if you’re archiving data.

And yet the economy of the internet is dependent upon us paying, in some way, for data. iTunes is all about paying for data, the DRM imposes a false scarcity, shareware/demo software imposes scarcity, websites that distribute content on a subscription model (largely) impose false scarcity on the market.

Which is fine, on some level. I mean on the larger level it sucks, because there are people who who give good money (and time, etc) for what amounts to elaborate fiction. But if we abstract things a bit, we’re simply compensating artists for their time in exchange for music, or programers for their software. But if that’s the case, aren’t there better, more straightforward ways of doing this? Ways that don’t commoditize non-commodities?

The larger point is, I guess, if we’re trying to make a living in a world that’s halfway between a traditional and a post-scarcity economy, there pretty much has to be a better solution than to pretend that post-scarcity isn’t “real.” I mean, it certainly couldn’t hurt. Here’s one idea:

Everyone, as part of their internet service pays some fixed quantity of money every month, and as they amble on through digital life, they give tips to various content producers, and at the end of the month, the ISP (or whoever) divides up the amount and distributes the money.

On the one hand dividing everyone’s 10-20 bucks a month, seems like it would add to not a lot very fast, but, the internet is pretty big, and there are a lot of people around so it’d add up. Also, if this could be implemented to effectively legalize bit torrent across the board and people stopped paying for cable TV hook ups in-favor or big internet pipes? That’s a lot of money. And it would add up.

There are lots of problems with implementation (How do you get the cable companies to let go? How do you process the money, how do you make the system interoperable? etc.) But it’s different. It addresses the need, and it benefits creators and consumers, and it attempts to democratize the payment process while still rewarding quality content.

Thoughts? Ideas? Go for it!

Onward and Upward!


  1. I love distilling the entire history of the largest class of human interaction into two words. ↩︎

  2. Can you tell I once worked in a Film/Media Archive? ↩︎

Progress Report

On Blogging about Interesting Things

Merlin Mann posted this thing on his site, 43Folders a few days ago in his ongoing series about his blog’s midlife crisis (which apparently happens after four years.) Merlin’s disgusted with the “blogging to get attention,” and the sort of digerati/problogger blogging tone that the form has taken in the last 5 years or so. His solution, more or less, is more along the lines of my own recent transition in my own blogging, which as basically been to turn tychoish into a ongoing monologue about the things I’m interested in, and less of a monologue about me.

Now there are exceptions to this, hence the coda blog, but for the most part this has kept me thinking and working, and processing things out there in the world. When I need to process about myself, I have friends and family. The end result: good things, and I look forward to what Merlin comes up with in the future. On tychoish, you can mostly expect me to talk about the same old things: open source software, trends in computer usage, amazing knitting things, with the appropriate dash of literary criticism, and historical doodad. My triad of fair-game topics are still “technology, science fiction, and knitting” but I’m being a little firmer in how I police that boundary.

Having said that…. Here’s some introspective shit that’s been piling up on my list of things to blog about, I figure if I have to blog about it, I might as well put it in one place:

1. I--or my alter-ego, depending on how you look at it--have started a new job this week. if you’d told me about when I graduated from college, I would have laughed at you, but a lot as changed in these past year, and it’s incredibly awesome and pushes me in a direction which I’m really eager to travel in.

2. I’ve started writing a new novel. It’s a great concept, the characters are fun to write and almost instantly came into themselves which is incredibly good. I finished the first chapter, and I started the second after taking a day off, and I’m making good progress, and it’s not like pulling teeth, at all. I like that this happens right after I have a bad couple of weeks where words come very difficultly, something snaps into place and things just work.

3. I got a new desk chair. This is a very very good thing. I am long torso-ed and finding suitable chairs is difficult.

  1. I gotta make time for knitting.

5. The story I’m posting tomorrow on Critical Futures isn’t written by me. How cool is that?

Also I’ve noticed that these coda posts, which were supposed to be short and effemeral, have been anything but. Gotta work on that.

The Mutt of IM

You all probably know that I’m working strengthing my linux/bash chops so that I can build a much needed desktop computer (after going on 6 years of being laptop only, it’ll be nice to have something a… bit bigger.)

It’s not that I don’t like OS X, or Apple, it’s that… I like awesome. And I want larger/more screens. And other than fluid.app, and TextMate, (and adium in a way) I basically live in linux world, with a different desktop enviroment. Also, a really swell desktop setup for a linux box that would do most of what I need would run me, oh, about half the price of an iMac, or less.

So I have a virtual machine instance of Ubuntu running on my laptop, as part of an effort to get used to everything ahead of time. With VM tools beeing as cheap and fast as they are today, I think a lot of people could really benefit from using VMs more. In any case, I’ve been trying apps out and using it to get (more) comfortable with vim and working on solving all of the problems that I’m likely to run into now rather than later. I’ll be reporting on this more in the future, for sure.

While most things have gone pretty seamless, the one program that I use that I haven’t been able to even come close to replacing is Adium. Here’s the thing. Adium is a OS X-ification of a linux program called “pidgin” which, despite boasting a near identical feature set is considerably less…something. While it’s polished and totally operational, it’s not… coherant and maybe it’s only really noticeable in light of using Adium. The problem is that every other IM client for linux is worse. There’s a command line version of pidgin called finch which looks like it’s trying really hard to be a GUI rather than really letting the simplicty of the command line give rise to a clearer interface model. There’s a great jabber/xmpp client called mcabber, but jabber adoption is still really low, and while there are interoperability measures with other protocols, the truth is that most of my contacts are on other systems, and the interoperability transports aren’t incredibly reliable. If someone knows of something that I’ve missed I’d love to hear what people use (and like).

So I was bemoning this (the end of this story is that I’m figuring out a way to live with pidgin), with chris and he said of jabber, “It--like IMAP--is a great idea and a good protocol, the implementations are universally horrible.” (or something like that) and he’s right, and I think this goes for most IM clients. They all, to use a technical term, suck.1 Chris' comparison to IMAP and mail clients reminded me of the slogan of my favorite email client, mutt.

“All email clients suck, mutt just sucks less.”

And it does. I save hours every week using mutt, and I’m no where near a power user (yet.) So the question on my mind is, “where’s the mutt of IM clients?” Here’s what I think it would look like:

  • It would need to connect to AIM, Yahoo and Jabber. This is my personal prefrence. MSN is pretty irrelevant to me, an ICQ these days is AIM. Multiple connections would be good.
  • I think the interface should draw on the mutt with sidebar model. IMs needn’t fill a whole window, and the sidebar works really well.
  • It needs to have some understanding of a tabbed interface. While I understand that many people (and to some degree, myself included) don’t actively particpate in more than one chat at a time, I often have more than one window open at a time. Conversations go dormant, people step out, you have to ask a quick question, there bots on the IM network feeding you (useless) information. Tabs are necessary.
  • It’d be better if the program was able to consistently manage and sync the contact/buddy list, and handle meta-contacts, than be able to do file transfers, or mutli-user chats.
  • Granular access controls. The networks I believe, allow you to set yourself invisible to certian people, and it would be really great to be able to write rules about which buddies got what kind of status/visibility settings.
  • The key to “the mutt of” anything is the ability to take whatever you do, and bind it to a particular key command. So I’d like to be able to have “IM Chris” bound to something, or be able to set various screen names visible or invisible depending on my context or trigger different complex visibility rules.

I think there’s possibility. Thoughts? How do you manage your IM?2


  1. Even my beloved Adium, which operates as expected in most respects is compleatly inconsistent in how it stories and syncs the buddy list to the server. Or doesn’t depending on the weather. Highly annoying. ↩︎

  2. Before anyone gets high-and-mighty about IM being a waste of time and attention, I generally use IM as a phone replacement because I can multi-task it, and becasue it doesn’t have voicemail, and because it’s almost always less awkward. Just saying. n ↩︎