<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>dialectical futurism</title>
 <link href="http://tychoish.com/feed/index.xml" rel="self"/>
 <link href="http://tychoish.com/"/>
 <updated>2010-09-01T13:21:32-04:00</updated>
 <id>http://tychoish.com</id>
 <author>
   <name>tycho garen</name>
   <email>garen@tychoish.com</email>
 </author>

 

 <entry>
   <title>Covered In LaTeX</title>
   <link href="http://www.tychoish.com/2010/08/covered-in-latex"/>
   <updated>2010-08-31T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/08/covered-in-latex</id>
   <content type="html">&lt;p&gt;Although I haven&amp;#8217;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&amp;#8217;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&amp;#8217;s better!), it becomes easier and more cost effective to just jump the gun and by commodity hardware and use a system that&amp;#8217;s designed to support this kind of software (managing a large selection lots of free software packages on OS X can become cumbersome).&lt;/p&gt;

&lt;p&gt;So why LaTeX? What&amp;#8217;s the big deal? Why do I care now? Well&amp;#8230;&lt;/p&gt;

&lt;p&gt;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 &lt;code&gt;pdflatex&lt;/code&gt;) and it generates the &lt;em&gt;best&lt;/em&gt; looking PDF in the world of your document. You get full control over things that matter (layout, look and feel) and you don&amp;#8217;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, &lt;em&gt;you never have to figure it out again.&lt;/em&gt; 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&amp;#8217;s a &amp;#8220;compile&amp;#8221; step in the document production process, which means changes aren&amp;#8217;t often immediately recognizable, but I don&amp;#8217;t think this is a major obstacle.&lt;/p&gt;

&lt;p&gt;Word processing and document preparation is a critical component of most common computer users. At least, I&amp;#8217;d assume so, though I don&amp;#8217;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&amp;#8217;re able to work. It&amp;#8217;s advanced, and a bit confusing at first, but I&amp;#8217;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&amp;#8217;t limit functionality.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;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&amp;#8217;s interest) that the proper stack for getting started with LaTeX would consist of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A TeXlive distribution. You need the basic tool kit including pdflatex, TeX, Metafont, LaTeX, and BibTeX.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;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 &lt;em&gt;real&lt;/em&gt; text editor.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Some sort of macro or snippet expansion system. TeX is great. But it&amp;#8217;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.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;A template management system. This probably needn&amp;#8217;t be a formal software system, but just something to organize and store the basic templates that you will use.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the rest is just learning curve and practice. Onward and Upward!&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>Console Use for the Uninitiated</title>
   <link href="http://www.tychoish.com/2010/08/console-use-for-the-uninitiated"/>
   <updated>2010-08-13T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/08/console-use-for-the-uninitiated</id>
   <content type="html">&lt;p&gt;I have a computer, an old laptop, that I mostly use as the foundation of my stereo system. It&amp;#8217;s just a basic system with a few servers (a web server and the music player daemon), and it doesn&amp;#8217;t have a running window manager. This configuration usually doesn&amp;#8217;t bug me: I connect remotely and the computer sits under the couch, but since my recent move I&amp;#8217;ve not had a network connection at home and I&amp;#8217;ve defaulted to playing music and managing the system from the console.&lt;/p&gt;

&lt;p&gt;This works just fine for me. The virtual terminals aren&amp;#8217;t noticeably different from the terminal I get over ssh (as you would expect/hope), except now I have to walk across the room. The people who listen to music with me haven&amp;#8217;t yet been other terminal geeks, and so I&amp;#8217;ve taken on the role of stereo whisperer. Until a friend looked over my shoulder and wanted to change the track. Using the console is sometimes (often) a slippery slope.&lt;/p&gt;

&lt;p&gt;I realized immediately that this situation was much more conducive to learning to use the console than the kinds of introductions to using the console that I&amp;#8217;ve typically written. The commands we used were very limited: the &lt;code&gt;mpc&lt;/code&gt; program that acts as a simple command-line client to the music player daemon (&lt;code&gt;mpd&lt;/code&gt;) and &lt;code&gt;grep&lt;/code&gt;. We also used the pipe operator.&lt;/p&gt;

&lt;p&gt;There are thousands of commands on most Linux/UNIX systems and remembering all of them can be a bit challenging. The console is a limiting environment basically you can do one thing at a time with it, and you don&amp;#8217;t have a lot of leeway with common errors. At the same time, there are a great number of programs and commands that a beginner has &lt;em&gt;no way&lt;/em&gt; of knowing about or knowing when to use. Legitimately, the console is both too limiting and expansive to be &lt;em&gt;quickly&lt;/em&gt; accessible to the uninitiated. &lt;strong&gt;Starting with a very limited selection of commands is way to break through this barrier.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The terminal environment is also very &amp;#8220;goal-oriented.&amp;#8221; Enter a command to generate some sort of output or result and then repeat. At the end your system will have done something that you needed it to, and/or you&amp;#8217;ll learn something that you didn&amp;#8217;t already know. When you&amp;#8217;re just trying to learn, all of the examples seem fake, contrived, and bothersome because many people already have an easy way of accomplishing that task using GUI tools. Learning how the terminal works, thus, needs a real example, not just a potentially realistic example.&lt;/p&gt;

&lt;p&gt;The great thing, I think, is that once you have a &lt;em&gt;need&lt;/em&gt; to learn command line interaction, it makes a lot of sense even to people who aren&amp;#8217;t die-hard geeks: Commands all have a shared structure that is fairly predictable and inconsistencies are apparent. Perhaps most importantly the command line&amp;#8217;s interaction model is simple: input a command and get a response. Advanced users may be able to bend the interaction model a bit, but it is undeniably parsimonious.&lt;/p&gt;

&lt;p&gt;It seems, in conclusion, that the command-line is easy to learn for the new user for the same reason it is beloved by the advanced. Ongoing questions, include:&lt;/p&gt;

&lt;p&gt;If this kind of realization were to catch on, how might it affect interaction design in the long run? Might &amp;#8220;simple to design&amp;#8221; and &amp;#8220;easy to use&amp;#8221; move closer together?&lt;/p&gt;

&lt;p&gt;Is there a way to build training and documentation to support users who are new to this kind of interaction style?&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>Collaborative Technology</title>
   <link href="http://www.tychoish.com/2010/08/collaborative-technology"/>
   <updated>2010-08-05T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/08/collaborative-technology</id>
   <content type="html">&lt;p&gt;I agreed to work on an article for a friend about the collaborative technology &amp;#8220;stuff&amp;#8221; that I&amp;#8217;ve been thinking about for a long time. I don&amp;#8217;t have an &lt;a href='http://www.tychoish.com/archive'&gt;archive&lt;/a&gt; that covers this subject, but perhaps I should, because I think I&amp;#8217;ve written about the technology that allows people to &lt;em&gt;make things&lt;/em&gt; with other people a number of times, though I have yet to pull together these ideas into some sort of coherent post or essay.&lt;/p&gt;

&lt;p&gt;This has been my major post-graduation intellectual challenge. I have interests, even some collected research, and no real way to turn these half conceptualized projects into a &amp;#8220;real paper.&amp;#8221; So I&amp;#8217;ve proposed working with a friend to collect and develop a report that&amp;#8217;s more concrete and more comprehensive than the kind of work that I&amp;#8217;ve been attempting to accomplish on the blog. Blogging is great, don&amp;#8217;t get me wrong, but I think it leads to certain kinds of thinking and writing (at least as I do it,) and sometimes other kinds of writing and thinking are required.&lt;/p&gt;

&lt;p&gt;Regarding this project, I want to think about how technology like &amp;#8220;git&amp;#8221; (a distributed version control system) and even tools like wiki&amp;#8217;s shape the way that groups of people can collaborate with each other. I think there&amp;#8217;s an impulse in saying &amp;#8220;look at the possibilities that these tools create! This brave new world is entirely novel, and not only changes the way I am able to complete my work, but how I look at problems, and make it so much easier for me to get things done..&amp;#8221; At the same time, the technology can only promote a way of working it doesn&amp;#8217;t necessarily &lt;em&gt;enforce&lt;/em&gt; a way of working, nor does any particular kind of technology really remove the burdens and challenges of &amp;#8220;getting things done.&amp;#8221; More often perhaps new kinds of technology, like distributed version control, is responsible for increasing the level of abstracting and allowing us (humans) to attend to higher order concerns.&lt;/p&gt;

&lt;p&gt;Then, moving up from the technology, I think looking at how people &lt;em&gt;use&lt;/em&gt; technology in this class allows us to learn a great deal about how work is accomplished. We can get an idea of when work is being done, an idea of how quality control efforts are implemented. Not only does this allow us to demystify the process of creation, but having a more clear idea of how &lt;em&gt;things are made&lt;/em&gt; could allow us to become better makers.&lt;/p&gt;

&lt;p&gt;The todo list, then, is something like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Condense the above into something that resembles a thesis/argument.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Become a little more familiar with the git-dm (&amp;#8220;data mining&amp;#8221;) tool that the Linux Foundation put together for their &amp;#8220;state of Kernel development.&amp;#8221;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Develop some specific questions to address. I think part of my problem above and heretofore has been that I&amp;#8217;m saying &amp;#8220;there&amp;#8217;s something interesting here, if we looked,&amp;#8221; rather than. &amp;#8220;I think w kind of projects operate in x ways, where y projects will operate in z ways.&amp;#8221;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Literature review. I&amp;#8217;ve done some of this, but I&amp;#8217;ve felt like I need to do even more basic methodological and basic theory reading. And even though an unread &lt;em&gt;Patterns of Culture&lt;/em&gt; is on my bookshelf, I don&amp;#8217;t need to read that to begin reading articles.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That&amp;#8217;s a start. Feedback is always useful. I&amp;#8217;ll keep you posted as I progress.&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>Saved Searches and Notmuch Organization</title>
   <link href="http://www.tychoish.com/2010/07/notmuch-organization"/>
   <updated>2010-07-30T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/notmuch-organization</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve been toying around with the &lt;a href='http://notmuchmail.org/'&gt;Notmuch Email Client&lt;/a&gt; which is a nifty piece of software that provides a very minimalist and powerful email system that&amp;#8217;s inspired by the organizational model of Gmail.&lt;/p&gt;

&lt;p&gt;Mind you, I don&amp;#8217;t think I&amp;#8217;ve quite &lt;em&gt;gotten&lt;/em&gt; it.&lt;/p&gt;

&lt;p&gt;Notmuch says, basically, build searches (e.g. &amp;#8220;views&amp;#8221;) to filter your email so you can process your email in the manner that makes the most sense to you, without needing to worry about organizing and sorting email. It has the structure for &amp;#8220;tagging,&amp;#8221; which makes it easy to mark status for managing &lt;em&gt;your&lt;/em&gt; process (e.g. read/unread, reply-needed), and the ability to save searches. And that&amp;#8217;s about it.&lt;/p&gt;

&lt;p&gt;Functionally tags and saved searches work the way that mail boxes in terms of the intellectual organization of mailboxes. Similarly the ability to save searches, makes it possible to do a good measure of &amp;#8220;preprocessing.&amp;#8221; In the same way that Gmail changes the email paradigm by saying &amp;#8220;don&amp;#8217;t think about organizing your email, just do what you need to do,&amp;#8221; not much says &amp;#8220;do less with your email, don&amp;#8217;t organize it, and trust that the machine will be able to help you find what you need when the time comes.&amp;#8221;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I&amp;#8217;ve been saying variations of the following for years, but I think on some level it hasn&amp;#8217;t stuck for me. &lt;strong&gt;Given contemporary technology, it doesn&amp;#8217;t make sense to organize any kind of information that could conceivably be found with search tools.&lt;/strong&gt; Notmuch proves that this &lt;em&gt;works&lt;/em&gt;, and although I&amp;#8217;ve not been able to transfer my personal email over, I&amp;#8217;m comfortable asserting that notmuch is a functional approach to email. To be fair, I don&amp;#8217;t feel like my current email processing and filtering scheme is &lt;em&gt;that&lt;/em&gt; broken, so I&amp;#8217;m a bad example.&lt;/p&gt;

&lt;p&gt;The questions that this raises, which I don&amp;#8217;t have a particularly good answers for, are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Are there good tools for the &amp;#8220;don&amp;#8217;t organize when you can search crew,&amp;#8221; for non-email data? And I&amp;#8217;m not just talking about search engines themselves (as there are a couple: xapian, namazu), or ungainly desktop GUIs (which aren&amp;#8217;t without utility,) but the proper command-line tools, emacs interfaces, and web based interfaces?&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Are conventional search tools the most expressive way of specifying what we want to find when filtering or looking for data? Are there effective improvements that can be made?&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;I think there&amp;#8217;s intellectual value created by organizing and cataloging information &amp;#8220;manually,&amp;#8221; and &amp;#8220;punting to search&amp;#8221; seems like it removes the opportunity to develop good and productive information architectures (if we may be so bold.) Is there a solution that provides the ease of search without giving up the benefits that librarianism brings to information organization?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>



 <entry>
   <title>Gear Mongering</title>
   <link href="http://www.tychoish.com/2010/07/gear-mongering"/>
   <updated>2010-07-27T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/gear-mongering</id>
   <content type="html">&lt;p&gt;At the end of the day (or even the beginning,) I&amp;#8217;m just another geek, and despite all of the incredibly (I&amp;#8217;d like to think at least) reasoned ways I think about the way I use technology, I occasionally get an old fashioned hankering for something new. We&amp;#8217;ve all had them. Perhaps my saving graces are that I do occasionally need new things (computers wear out, cellphones are replaced, needs change), and the fact that I&amp;#8217;m both incredibly frugal and task oriented (rational?) about the way I use technology.&lt;/p&gt;

&lt;p&gt;But I&amp;#8217;m still a geek. And gear is cool. Thoughts, in three parts.&lt;/p&gt;

&lt;h2 id='part_one_phones_and_the_htc_evo'&gt;Part One, Phones and the HTC EVO&lt;/h2&gt;

&lt;p&gt;I&amp;#8217;ve been using a Blackberry for 18 months, and I&amp;#8217;ve come to two conclusions: blackberries are great and they have the &amp;#8220;how ot integrate messaging into a single usable interface.&amp;#8221; I was skeptical at first, and it&amp;#8217;s very simple, and I&amp;#8217;ve never quite gotten my email to function in an ideal way, largely because I think the Blackberry works really well for email. It&amp;#8217;s everything else that I might want to do with my phone that I can&amp;#8217;t, and I&amp;#8217;d probably like to: I have an SSH client and it&amp;#8217;s nearly usable. Nearly. I have IM clients, that are nearly functional. Nearly.&lt;/p&gt;

&lt;p&gt;When I got the Blackberry, is and was the most important communication I was doing. I worked for a very email-centric company, and I wanted to be able to stay in the email-loop even when I was off doing something else. These days, IRC and XMPP are a far more central feature of my digital existence, and I tend to think that it&amp;#8217;s not an Internet connection if I can&amp;#8217;t open SSH. I&amp;#8217;m also switching on a much longer public-transit focused commute in the next few week, and being able to do research for writing projects will be nice. I&amp;#8217;m not sure what the best solution is exactly, though the HTC EVO is a pretty swell phone.&lt;/p&gt;

&lt;p&gt;As the kids these days say, &amp;#8220;Do want.&amp;#8221;&lt;/p&gt;

&lt;h2 id='part_two_infrastructural_computing_and_home_servers'&gt;Part two, Infrastructural Computing and Home Servers&lt;/h2&gt;

&lt;p&gt;I&amp;#8217;ve fully adopted an &lt;a href='http://tychoish.com/archive/technology/'&gt;infrastructural approach to technology&lt;/a&gt;, at least with regards to my own personal computing. That was a mouthful. Basically, although I work locally on the machine that&amp;#8217;s in front of me (writing, email, note taking, collaboration,) much of the &amp;#8220;computing&amp;#8221; that I interact with isn&amp;#8217;t actually connected to the machine I interact with directly. In some ways, I suppose this is what they meant when they said &amp;#8220;cloud computing,&amp;#8221; but the truth is that my implementation is somewhat more&amp;#8230; archaic: I use a lot of SSH, cron, and a little bailing wire to distribute computing tasks far and wide, and the process of moving &lt;em&gt;everything&lt;/em&gt; in my digital world from a laptop that I carried around with me everywhere (college,) to a more sane state of affairs has been a long time coming.&lt;/p&gt;

&lt;p&gt;Right.&lt;/p&gt;

&lt;p&gt;The long story short is that aside from a machine (my old laptop) that&amp;#8217;s at capacity powering my &amp;#8220;stereo,&amp;#8221; I don&amp;#8217;t have any computer&amp;#8217;s at home aside from my laptop, and I tend to take it everywhere with me, which makes it unideal for some sorts of tasks. Furthermore, without an extra machine setting around, file storage, some kinds of backups, are somewhat more complicated than I&amp;#8217;d like. So, I&amp;#8217;m thinking about getting some sort of robust server-type machine to stick in a corner in my apartment.&lt;/p&gt;

&lt;p&gt;Not exactly sure what the best option is there. I&amp;#8217;m burdened by: frugality, sophisticated tastes, and the notion that having quality hardware &lt;em&gt;really does matter&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;More thinking required.&lt;/p&gt;

&lt;h2 id='part_three_more_laptops'&gt;Part three, More Laptops&lt;/h2&gt;

&lt;p&gt;So I might have a laptop related illness. Back in the day, laptops always seemed like a frivolity: underpowered, never as portable as you wanted, awkward to use, and &lt;strong&gt;incredibly expensive&lt;/strong&gt;. Now, laptops are cheap, and even the Atom-based &amp;#8220;netbooks,&amp;#8221; are functional for nearly every task. I tend to buy used Thinkpad Laptops, and as I think about it, I&amp;#8217;ve probably spent as much on the three Thinkpads, all of which are still in service, as I did on any one mac laptop.&lt;/p&gt;

&lt;p&gt;The thing about my current laptop is that when you think about it, it&amp;#8217;d make a &lt;em&gt;decent&lt;/em&gt; home server: the processor has virtualization extensions, the drive is fast (7200 rpm) and it can handle 4 gigs of ram (and maybe more.) What more could I want? And I distributed things correctly, the &amp;#8220;server&amp;#8221; laptop could be pressed into service as a backup/redundant laptop, in case something unforeseen happened.&lt;/p&gt;

&lt;p&gt;Or I could dither about it for another few months, and come to some other, better, fourth solution.&lt;/p&gt;

&lt;p&gt;Onward and Upward!&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>Creating Useful Archives</title>
   <link href="http://www.tychoish.com/2010/07/creating-useful-archives"/>
   <updated>2010-07-22T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/creating-useful-archives</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve done a little tweaking to the &lt;a href='http://tychoish.com/archives/'&gt;archives for dialectical futurism&lt;/a&gt; recently, including creating a new archive for &lt;a href='http://tychoish.com/archive/science-fiction'&gt;science fiction and writing&lt;/a&gt; and being who I am this has inspired a little of thought regarding the state and use of archives of blogs.&lt;/p&gt;

&lt;p&gt;The latest iteration of this blog has avoided the now common practice of having large endless lists of posts organized by publication month or by haphazardly assigned category and tag systems. While these succeed at providing a complete archive of every post written, they don&amp;#8217;t add any real value to a blog or website. I&amp;#8217;m convinced that one feature of successful blogs moving forward will be archives that are curated and convey additional value beyond the content of the site.&lt;/p&gt;

&lt;p&gt;Perhaps blogs as containers for a number of posts will end up being to ephemeral than I&amp;#8217;m inclined to think about them, and will therefore not require very much in the way of archives, Perhaps, Google&amp;#8217;s index will be sufficient for most people&amp;#8217;s uses. Maybe. I remain unconvinced.&lt;/p&gt;

&lt;p&gt;Heretofore, I have made archives for tychoish as quasi-boutique pieces: collections of the best posts that address a given topic. This is great from the perspective of thinking about blog posts as a collection of essays, but I&amp;#8217;ve started to think that this may be less less useful if we think of blogs as a collection of resources that people might want to have access to beyond it&amp;#8217;s initial ephemeral form.&lt;/p&gt;

&lt;p&gt;Right now my archives say &amp;#8220;see stuff from the past few months, and several choice topics on which I wrote vaguely connected sequences of posts.&amp;#8221; The problem with the list of posts from the last few months is that beyond date, there&amp;#8217;s not a lot of useful information beyond the title and the date. The problem with the topical archives is that they&amp;#8217;re not up to date, their not comprehensive even for recent posts, and there&amp;#8217;s little &amp;#8220;preview&amp;#8221; of a given post beyond it&amp;#8217;s title. In the end I think the possibility of visiting a topical archive looking for a specific post and &lt;em&gt;not&lt;/em&gt; finding it is pretty large.&lt;/p&gt;

&lt;p&gt;In addition to editorial collecting, I think archives, guides, or indexes of a given body of information ought to, provide some sort of comprehensive method for accessing information. There has to be some middle ground.&lt;/p&gt;

&lt;p&gt;I think the solution involves a lot of hand mangling of content, templates, and posts. I&amp;#8217;m fairly certain that &lt;a href='http://wiki.github.com/mojombo/jekyll/'&gt;my current publication system&lt;/a&gt; is probably not up for the task without a fair amount of mangling and beating. As much as I want to think that this is an problem in search of the right kind of automation, I&amp;#8217;m not sure that&amp;#8217;s really the case. I&amp;#8217;m not opposed to editing things by hand, but it would increase the amount of work in making any given post significantly.&lt;/p&gt;

&lt;p&gt;There is, I suspect, no easy solution here.&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>In Favor of Simple Software</title>
   <link href="http://www.tychoish.com/2010/07/in-favor-of-simple-software"/>
   <updated>2010-07-13T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/in-favor-of-simple-software</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve spent a little bit of time &lt;a href='/2010/07/focus-and-context-switching'&gt;addressing some organizational and workflow angst&lt;/a&gt; in the past few weeks, and one thing I&amp;#8217;d been focusing on had been to update and fine tune my emacs (text editor) and irssi (irc/chat) configuration. Part of my goal had been to use &lt;a href='http://cybione.org/~irssi-xmpp/'&gt;irssi-xmpp&lt;/a&gt; to move all of my chat/synchronous communication into one program; unfortunately I&amp;#8217;ve not been able to get irssi-xmpp to build and function in a fully stable way. This is probably because &lt;a href='http://identi.ca/notice/39470130'&gt;I&amp;#8217;m hard on software&lt;/a&gt; and not because of anything specific to the software itself.&lt;/p&gt;

&lt;p&gt;In any case, this lead me to come to the following conclusion about these programs, as they are probably the two most central and most heavily used applications in my arsenal, and without a doubt are the applications that I enjoy using the most. I scribbled the following note a few days ago in preparation for this entry:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In many ways the greatest advance or feature that these programs provide isn&amp;#8217;t some killer feature, it&amp;#8217;s a simple but more powerful abstraction that allows users to interact with their problem domain. Emacs is basically a text-editing application framework, and provides users with some basic fundamentals for interacting with textual information, and a design that allows users to create text editing modalities or paradigms which bridge the divide between full blown applications and custom configurations. By the same token, Irssi is really a rather simple program that&amp;#8217;s easy to script, and contains a number of metaphors that are useful for synchronous communication (chat.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And we might be able to expand this even further: these are two applications that are not only &lt;em&gt;supremely&lt;/em&gt; functional, but are so usable because they are software projects that really only make sense in context of free software.&lt;/p&gt;

&lt;p&gt;I want to be very careful here: I don&amp;#8217;t want to make the argument that free software isn&amp;#8217;t or can&amp;#8217;t be commercial, because that&amp;#8217;s obviously not the case. At the same time, free software, like these applications needn&amp;#8217;t justify itself in terms of &amp;#8220;commercial features,&amp;#8221; or a particular target market in order to remain viable. It&amp;#8217;s not that these programs don&amp;#8217;t have features, it is that they have every feature, or the potential for every feature, and are thus hard to comprehend and hard to sell. Even if it only takes a use over a short period of time for users to find them incredibly compelling.&lt;/p&gt;

&lt;p&gt;The underlying core extensibility that both of these &amp;#8220;programs&amp;#8221; have is probably also something that is only likely to happen in the context of open source or free software. This isn&amp;#8217;t to suggest that proprietary software doesn&amp;#8217;t recognize the power or utility of extensible software, but I don&amp;#8217;t think giving users so much control over a given application makes sense from a quality control perspective. Giving users the power to modify their experience of software in an open ended fashion, also gives them the power to break things horribly, and that just doesn&amp;#8217;t make sense from a commercial perspective.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s probably also some hubris at play: free software applications, primarily these two, are written by hackers, with a target audience of other hackers. Who needs a flexible text editing application framework (e.g. emacs), but other programmers. And the primary users of IRC for the past 8-10 years have largely been hackers and developers and other &amp;#8220;geek&amp;#8221; types. irssi is very much written for these kinds of users. To a great extent, I think it&amp;#8217;s safe to suggest that when hackers write software for themselves, this is what it looks like.&lt;/p&gt;

&lt;p&gt;The questions that must linger is: why isn&amp;#8217;t other software like this? (Or is it, and I&amp;#8217;m missing it in my snobbishness,) and where is the happy medium between writing software for non-hackers and using great software (like these) to &amp;#8220;make more hackers.&amp;#8221;&lt;/p&gt;

&lt;p&gt;Onward and Upward!&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>Focus and Context Switching</title>
   <link href="http://www.tychoish.com/2010/07/focus-and-context-switching"/>
   <updated>2010-07-08T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/focus-and-context-switching</id>
   <content type="html">&lt;p&gt;This post is inspired by &lt;a href='http://www.locusmag.com/Perspectives/2010/07/cory-doctorow-what-i-do/'&gt;Cory Doctorow&amp;#8217;s Inventory about the technology he uses for his work&lt;/a&gt; and ongoing personal angst and &lt;a href='/2010/07/gadget-lust/'&gt;gadget lust&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For the past six months or so I collapsed my entire computing existence into one, single, computer. It&amp;#8217;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 &amp;#8220;everything,&amp;#8221; 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 &amp;#8220;desktop&amp;#8221; 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.&lt;/p&gt;

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

&lt;p&gt;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&amp;#8217;re remote. When I use a computer, it&amp;#8217;s this one.&lt;/p&gt;

&lt;p&gt;Now there isn&amp;#8217;t a &lt;em&gt;real&lt;/em&gt; problem here, except that from a workspace and mindspace perspective the context switching can be somewhat complicated and frustrating. While I&amp;#8217;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 &amp;#8220;laptop-mode&amp;#8221; or &amp;#8220;workdesk-mode&amp;#8221; or &amp;#8220;homedesk-mode.&amp;#8221; While not having to worry if my files are all up to date, it&amp;#8217;s also somewhat distracting for all my different projects to be open all the time. The article I&amp;#8217;m working on for work is always open and a few key presses away from the novel I&amp;#8217;m working on or the latest in-progress blog post.&lt;/p&gt;

&lt;p&gt;Again, this isn&amp;#8217;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 &amp;#8220;first world problems,&amp;#8221; and I&amp;#8217;m not sure if there&amp;#8217;s a really easy solution. I&amp;#8217;ve toyed with a number of resolutions to this angst:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;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&amp;#8217;d spend most of my time using systems that I&amp;#8217;m not particularly fond of.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;I&amp;#8217;ve toyed with having a &amp;#8220;tycho writing laptop&amp;#8221; that wouldn&amp;#8217;t have a web browser installed, for more distraction free writing. I&amp;#8217;ve got my old laptop set up to do this, but I&amp;#8217;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.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;I might redistribute more of my workload to servers rather than doing everything on the laptop. I&amp;#8217;m thinking about having the terminal sessions that I use for email &lt;em&gt;primarily&lt;/em&gt; live in screen sessions elsewhere.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;I&amp;#8217;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.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As I&amp;#8217;ve been toying with this, I&amp;#8217;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&amp;#8217;ve been tweaking some customizations, improving how I use virtual desktops. While these tweaks have improved things greatly, better internal system management doesn&amp;#8217;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 &lt;em&gt;other contexts&lt;/em&gt; (other files, other virtual desktops,) lurk nearby.&lt;/p&gt;

&lt;p&gt;And figuring out how to solve this problem involves a certain amount of &amp;#8220;head game&amp;#8221; for me: avoiding having &amp;#8220;the old laptop&amp;#8221; be the primary computer for a given task, making sure that I don&amp;#8217;t need a network connection for essential tasks. Assorted other weirdnesses.&lt;/p&gt;

&lt;p&gt;If anyone recognizes features of this angst that in their own work they&amp;#8217;ve managed to resolve, I&amp;#8217;d love to hear about your setup.&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>Fan Fiction is Criticism</title>
   <link href="http://www.tychoish.com/2010/07/fan-fiction-is-criticism"/>
   <updated>2010-07-06T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/fan-fiction-is-criticism</id>
   <content type="html">&lt;p&gt;&lt;em&gt;Thanks to &lt;a href='http://skiffyandfanty.wordpress.com'&gt;Shaun Duke&lt;/a&gt; for inspiring this little rant.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I must confess that I&amp;#8217;m mostly uninvolved in the world of fan fiction these days, though I have traveled in &amp;#8220;fanish&amp;#8221; circles at various points in my past. It&amp;#8217;s not because I don&amp;#8217;t think fans have interesting things to say about literature and media, or that I don&amp;#8217;t think what&amp;#8217;s happening in fandom important and fascinating. No, I&amp;#8217;m mostly withdrawn because I have too much on my plate and participating in fandom doesn&amp;#8217;t really contribute to the specific goals I have at this moment. But I sometimes feel that way about social science.&lt;/p&gt;

&lt;p&gt;In any case, I&amp;#8217;d like to put forth the following arguments for viewing fan fiction as a form a literary criticism rather than a literary attempt in it&amp;#8217;s own right:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fan fiction is a form of literary criticism. Sure it&amp;#8217;s casual, sure it&amp;#8217;s written in the forum of a story, but the fan fictioner and the critic both write from the same core interest in interpreting texts and using varying readings of texts to create larger understandings of our world.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;The fact that fan fiction looks like a story, is mostly distracting to what&amp;#8217;s happening in these texts. Fan fiction, has always been written in communities. The people who read fan fiction are largely the people who write fan fiction. Fan fiction inspires&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;The quality of fan fiction is also largely irrelevant to the point of whether fan fiction is worthwhile. More so than other forms of writing, fan fiction is less about the technical merits of the text, and more about the discursive process under which the texts are created. Better quality writing makes better fan fiction, certainly but I don&amp;#8217;t think fan fiction &lt;em&gt;centers&lt;/em&gt; on those kinds of values.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Copyright, and the &amp;#8220;intellectual property&amp;#8221; status of fan fiction is also sort of moot. It&amp;#8217;s true that if we&amp;#8217;re being honest fan fiction impinges upon the copyright of the original author. At the same time, fan fiction doesn&amp;#8217;t really hurt creators: people aren&amp;#8217;t confused that fan fiction is &amp;#8220;real fiction,&amp;#8221; fan fiction by and large doesn&amp;#8217;t divert sales from &amp;#8220;real fiction,&amp;#8221; and so forth. Sure, it&amp;#8217;s a bit weird for some others to find other people playing in their sand boxes, but the truth is that authors have never had a great deal of control over what happens to their work post-publication, so it&amp;#8217;s fair.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, I think that fan fiction accomplishes something that are incredibly powerful and worthwhile that &amp;#8220;normal&amp;#8221; fiction cannot accomplish. Writing fan fiction can be, I&amp;#8217;d wager, an incredibly effective educational experience for new writers, particularly genre fiction writers. By providing a very fast feedback loop with an audience of readers and writers (and lovers of literature and story telling.) Not to mention the fact that because fan fiction tends to be somewhat ephemeral and there&amp;#8217;s a wealth of inspiration and impetus for fiction, fan writers can write &lt;em&gt;a lot&lt;/em&gt;, and if they choose in a very productive sort of way.&lt;/p&gt;

&lt;p&gt;And that is almost certainly a good thing.&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>The Overhead of Management</title>
   <link href="http://www.tychoish.com/2010/07/the-overhead-of-management"/>
   <updated>2010-07-01T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/07/the-overhead-of-management</id>
   <content type="html">&lt;p&gt;Every resource, every person, every project, every machine you have to manage comes with an ongoing cost. This is just as true of servers as is it is of people who work on projects that you&amp;#8217;re in charge of or have some responsibility for, and while servers and teammates present very different &lt;em&gt;kinds&lt;/em&gt; of management challenges, working effectively and managing management costs across contexts is (I would propose) similar. Or at least similar enough to merit some synthetic discussion.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s basically only one approach to managing &amp;#8220;systems administration costs,&amp;#8221; and that&amp;#8217;s to avoid it as much as possible. This isn&amp;#8217;t to say that sys admins avoid admining, but rather we work very hard to ensure that systems don&amp;#8217;t &lt;em&gt;need&lt;/em&gt; administration. We write &lt;a href='http://www.debian.org/'&gt;operating systems&lt;/a&gt; that administer themselves, we script procedures to automate most tasks as much as possible (the Perl programing language was developed and popularized for use of easing the administration of UNIX systems,) and we use &lt;a href='http://www.puppetlabs.com/'&gt;tools&lt;/a&gt; manage larger systems more effectively.&lt;/p&gt;

&lt;p&gt;People, time, and other resources cannot be so easily automated, and I think in response there are two major approaches (if we can create a somewhat false dichotomy for a moment:)&lt;/p&gt;

&lt;p&gt;On the one hand there&amp;#8217;s the school of thought that says &amp;#8220;admit and assess management costs early, and pay them up front.&amp;#8221; This is the corporate model in many ways. Have (layers upon layers of) resources dedicated to &lt;a href='http://www.tychoish.com/2010/02/managing-management-costs/'&gt;managing management costs&lt;/a&gt;, and then let this &amp;#8220;middle management&amp;#8221; make sure that things get done in spite of the management burden. On servers this is spending a lot of time choosing tools, configuring the base system, organizing the file system proactively, and constructing a healthy collection of &amp;#8220;best practices.&amp;#8221;&lt;/p&gt;

&lt;p&gt;By contrast, the other perspective suggests that management costs should only be paid &lt;em&gt;when absolutely necessary&lt;/em&gt;. make things, get something working and extant and then if something needs to be managed later, do it then and only as you need. On some level this is inspiring philsophy behind the frequent value of favoring &amp;#8220;working code&amp;#8221; over &amp;#8220;great ideas&amp;#8221; in the open source world.&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt; Though I think they phrase it differently, this is the basic approach that many hacker-oriented start ups have taken, and it seems to work for them. On the server, this approach is the &amp;#8220;get it working,&amp;#8221; approach, and these administrators aren&amp;#8217;t bothered by having to go in every so often to &amp;#8220;redo&amp;#8221; how things are configured, and I think on some level this kind of approach to &amp;#8220;management overhead&amp;#8221; grows out of the &lt;a href='http://agilemanifesto.org/'&gt;agile&lt;/a&gt; world and the avoidance of &amp;#8220;premature optimizations.&amp;#8221;&lt;/p&gt;

&lt;p&gt;But like all &amp;#8220;somewhat false dichotomies,&amp;#8221; there are flaws in the above formulation. Mostly the &amp;#8220;late management&amp;#8221; camp is able to delay management most effectively by anticipating their future needs (either by smarts or by dumb luck) early and planning around that. And the &amp;#8220;early management&amp;#8221; camp has to delay &lt;em&gt;some&lt;/em&gt; management needs or else you&amp;#8217;d be drowned in overhead before you started: and besides, the MBA union isn&amp;#8217;t that strong.&lt;/p&gt;

&lt;p&gt;We might even cast the &amp;#8220;early management&amp;#8221; approach as being &amp;#8220;top down,&amp;#8221; and the &amp;#8220;late management&amp;#8221; camp as being &amp;#8220;bottom up.&amp;#8221; If you know, we were into that kind of thing. It&amp;#8217;s always, particularly in the contemporary moment to look at the bottom-up approach and say &amp;#8220;that&amp;#8217;s really innovative and awesome, that&amp;#8217;s better,&amp;#8221; and view &amp;#8220;top-down&amp;#8221; organizations as &amp;#8220;stodgy and old world,&amp;#8221; when neither does a very good job of explaining what&amp;#8217;s going on and there isn&amp;#8217;t inherent radicalism or stodginess in either organization. But it is interesting. At least mildly.&lt;/p&gt;

&lt;p&gt;Thoughts? Onward and Upward!&lt;/p&gt;
&lt;div class='footnotes'&gt;&lt;hr /&gt;&lt;ol&gt;&lt;li id='fn:1'&gt;
&lt;p&gt;Alan Cox&amp;#8217;s &lt;a href='http://slashdot.org/features/98/10/13/1423253.shtml'&gt;Cathedrals, Bazaars and the Town Council&lt;/a&gt;&lt;/p&gt;
&lt;a href='#fnref:1' rev='footnote'&gt;&amp;#8617;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</content>
 </entry>



 <entry>
   <title>Jekyll Publishing</title>
   <link href="http://www.tychoish.com/2010/06/jekyll-publishing"/>
   <updated>2010-06-29T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/06/jekyll-publishing</id>
   <content type="html">&lt;p&gt;I wrote about my efforts to &lt;a href='http://www.tychoish.com/2010/06/jekyll-and-automation/'&gt;automate my publishing workflow&lt;/a&gt; a couple of weeks ago, (egad!) and I wanted to follow that up with a somewhat more useful elucidation of how all of the gears work around here.&lt;/p&gt;

&lt;p&gt;At first I had this horrible scheme setup that dependent on regular builds triggered by cron, which is a functional, if inelegant solution. There&amp;#8217;s a lot of tasks that you can give the appearance of &amp;#8220;real time,&amp;#8221; responsiveness by scheduling more brute tasks regularly enough. The truth is, however, that its not quite the same, and I knew that there was a better way.&lt;/p&gt;

&lt;p&gt;Basically the &amp;#8220;right way&amp;#8221; to solve this problem is to use the &amp;#8220;hooks&amp;#8221; provided by the &lt;a href='http://git.cyborginstitute.com/?p=tychoish.com.git;a=summary'&gt;git repositories&lt;/a&gt; that I use to store the source of the website. Hooks, in this context refer to a number of scripts which are optionally run before or after various operations in the repositories that allow you to attach actions to the operations you perform on your git repositories. In effect, you can say &amp;#8220;when I &lt;code&gt;git push&lt;/code&gt; do these other things&amp;#8221; or &amp;#8220;before I &lt;code&gt;git commit&lt;/code&gt; check for these conditions, and if they&amp;#8217;re not met, reject the commit&amp;#8221; and so forth. The possibilities can be a bit staggering.&lt;/p&gt;

&lt;p&gt;In this case what happen is: I commit to the &lt;a href='http://git.cyborginstitute.com/?p=tychoish.com.git;a=summary'&gt;tychoish.com repositories&lt;/a&gt; a script that synchronizes the appropriate local packages runs and publishes changes to the server. It then sends me an xmpp message saying that this operation is in progress. This runs as the &lt;code&gt;post-commit&lt;/code&gt; hook, and for smaller sites could simply be &amp;#8221;&lt;code&gt;git push
origin master&lt;/code&gt;&amp;#8221;. Because tychoish is a large site, and I don&amp;#8217;t want to be rebuilding it constantly, I do the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; #!/bin/bash 

 # This script is meant to be run in a cron job to perform a rebuilding
 # of the slim contents of a jekyll site. 
 #
 # This script can be run several times an hour to greatly simplify the
 # publishing routine of a jekyll site.

 cd ~/sites/tychoish.com/

 # Saving and Fetching Remote Updates from tychoish.com
 git pull &amp;gt;/dev/null &amp;amp;&amp;amp; 

 # Local Adding and Committing
 git checkout master &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
 git add .
 git commit -a -q -m &amp;quot;$HOSTNAME: changes prior to an  slim rebuild&amp;quot;  &amp;gt;/dev/null 2&amp;gt;

 # Local &amp;quot;full-build&amp;quot; Branch Mangling
 git checkout full-build &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp;
 git merge master &amp;amp;&amp;amp; 

 # Local &amp;quot;slim-bild&amp;quot; Branch Magling and Publishing
 git checkout slim-build &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp;
 git merge master &amp;amp;&amp;amp; 
 git checkout master &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 &amp;amp;
 git push --all

 # echo done&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then on the server, once the copy of the repo on the server is current with the changes published to it (i.e. the &lt;code&gt;post-update&lt;/code&gt; hook), the following code is run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; #!/bin/bash
 #
 # An example hook script to prepare a packed repository for use over
 # dumb transports.
 #
 # To enable this hook, make this file executable by &amp;quot;chmod +x post-update&amp;quot;.

 unset GIT_DIR
 unset GIT_WORKING_TREE

 export GIT_DIR
 export GIT_WORKING_TREE

 cd /path/to/build/tychoish.com
 git pull origin; 

 /path/to/scripts/jekyll-rebuild-tychoish-auto-slim &amp;amp; 

 exit&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When the &lt;code&gt;post-update&lt;/code&gt; hook runs, in runs in the context of the repository that you just pushed to, and unless you do the magic (technical term, it seems) the &lt;code&gt;GIT_DIR&lt;/code&gt; and &lt;code&gt;GIT_WORKING_TREE&lt;/code&gt; variables are stuck in the environment and the commands you run fail. So basically this is a fancy &lt;code&gt;git pull&lt;/code&gt;, in a third repository (the one that the site is built from.) The script &lt;code&gt;jekyll-rebuild-tychoish-auto-slim&lt;/code&gt; looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; #!/bin/bash
 # to be run on the server

 # setting the variables
 SRCDIR=/path/to/build/tychoish.com/ 
 DSTDIR=/path/to/public/tychoish/
 SITENAME=tychoish
 BUILDTYPE=slim
 DEFAULTBUILD=slim

 build-site(){
      cd ${SRCDIR}
      git checkout ${BUILDTYPE}-build &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
      git pull source &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
      
      /var/lib/gems/1.8/bin/jekyll ${SRCDIR} ${DSTDIR} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
      echo \&amp;lt;jekyll\&amp;gt; completed \*${BUILDTYPE}\* build of ${SITENAME} | xmppipe garen@tychoish.com

      git checkout ${DEFAULTBUILD}-build &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
 }

 build-site; &lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This sends me an xmpp message when the build has completed. And does the needful site rebuilding. The &lt;code&gt;xmppipe&lt;/code&gt; command I use is really the following script:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; #!/usr/bin/perl
 # pipes standard in to an xmpp message, sent to the JIDs on the commandline
 #
 # usage: bash$ `echo &amp;quot;message body&amp;quot; | xmppipe garen@tychoish.com
 #
 # code shamelessly stolen from:
 # http://stackoverflow.com/questions/170503/commandline-jabber-client/170564#170564

 use strict;
 use warnings;

 use Net::Jabber qw(Client);

 my $server = &amp;quot;tychoish.com&amp;quot;;
 my $port = &amp;quot;5222&amp;quot;;
 my $username = &amp;quot;bot&amp;quot;;
 my $password = &amp;quot;&amp;quot;;
 my $resource = &amp;quot;xmppipe&amp;quot;;
 my @recipients = @ARGV;

 my $clnt = new Net::Jabber::Client;

 my $status = $clnt-&amp;gt;Connect(hostname=&amp;gt;$server, port=&amp;gt;$port);

 if (!defined($status)) {
    die &amp;quot;Jabber connect error ($!)\n&amp;quot;;
 }
 my @result = $clnt-&amp;gt;AuthSend(username=&amp;gt;$username,
    password=&amp;gt;$password,
    resource=&amp;gt;$resource);

 if ($result[0] ne &amp;quot;ok&amp;quot;) {
    die &amp;quot;Jabber auth error: @result\n&amp;quot;;
 }

 my $body = &amp;#39;&amp;#39;;
 while (&amp;lt;STDIN&amp;gt;) {
    $body .= $_;
 }
 chomp($body);

 foreach my $to (@recipients) {
     $clnt-&amp;gt;MessageSend(to=&amp;gt;$to,
             subject=&amp;gt;&amp;quot;&amp;quot;,
             body=&amp;gt;$body,
             type=&amp;gt;&amp;quot;chat&amp;quot;,
             priority=&amp;gt;10);
 }

 $clnt-&amp;gt;Disconnect();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Mark the above as executable and put it in your path somewhere. You&amp;#8217;ll want to install the &lt;code&gt;Net::Jabber&lt;/code&gt; Perl module, if you haven&amp;#8217;t already.&lt;/p&gt;

&lt;p&gt;The one final note. If you&amp;#8217;re using a tool like &lt;a href='http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way'&gt;gitosis&lt;/a&gt; to manage your git repositories, all of the hooks will be executed by the gitosis user. This means that this user will need to have write access the &amp;#8220;build&amp;#8221; copy of the repository and the public directory as well. You may be able to finesse this with the +s &amp;#8220;switch uid&amp;#8221; bit, or some clever use of the gitosis user group.&lt;/p&gt;

&lt;p&gt;The End.&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>The Meaning of Work</title>
   <link href="http://www.tychoish.com/2010/06/the-meaning-of-work"/>
   <updated>2010-06-22T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/06/the-meaning-of-work</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve started to realize that, fundamentally, the questions I&amp;#8217;m asking of the world and that I&amp;#8217;m trying to address by learning more about technology, center on work and the meaning and process of working. Work lies at the intersection of the all the things that I seem to revisit endlessly: interfaces, collaboration technology, cooperatives and economics institutions, and open source software development. I&amp;#8217;m not sure if I&amp;#8217;m interested in work because it&amp;#8217;s the unifying theme of a bunch of different interests, or this is the base from which other interests spring.&lt;/p&gt;

&lt;p&gt;I realize that this makes me an incredibly weird geek.&lt;/p&gt;

&lt;p&gt;I was talking to &lt;a href='http://twitter.com/aetataureate'&gt;caroline&lt;/a&gt; about our respective work environments, specifically about how we (and our coworkers) relocated (or didn&amp;#8217;t) for our jobs, and I was chagrined to realize that this novel that I&amp;#8217;ve been working at (or not,) for way too long at this point spends some time revolving around these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;How does being stuck in a single place and time constrain one agency to effect the world around them?&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;What does labor look like in a mostly/quasi post-scarcity world?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perhaps the most worrying thing about this project is that I started writing this story in late August of 2008. This was of course before the American/Financial Services economic crash that got me blogging and really thinking about issues outside of technology.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s interesting, and perhaps outside the scope of this post, but I think it&amp;#8217;s interesting how since graduating from college, my &amp;#8220;research&amp;#8221; interests as they were, all work them into fiction (intentionally or otherwise.) I suppose I haven&amp;#8217;t written fiction about Free Software/open source, exactly, but I think there&amp;#8217;s a good enough reason for that.&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m left with two realizations. First, that this novel has been sitting on my plate for far too long, and there&amp;#8217;s &lt;strong&gt;no&lt;/strong&gt; reason why I can&amp;#8217;t write the last 10/20 thousand words in the next few months and be done with the sucker. Second, I&amp;#8217;m interested in thinking about how &amp;#8220;being an academic&amp;#8221; (or not) affects the way I (we?) approach learning more about the world and the process/rigor that I bring to those projects.&lt;/p&gt;

&lt;p&gt;But we&amp;#8217;ll get to that later, I have writing to do.&lt;/p&gt;
&lt;div class='footnotes'&gt;&lt;hr /&gt;&lt;ol&gt;&lt;li id='fn:1'&gt;
&lt;p&gt;I write fiction &lt;em&gt;as&lt;/em&gt; open source, in a lot of ways, so it doesn&amp;#8217;t seem too important to put it &lt;em&gt;in&lt;/em&gt; the story as well.&lt;/p&gt;
&lt;a href='#fnref:1' rev='footnote'&gt;&amp;#8617;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</content>
 </entry>



 <entry>
   <title>There's Always Something New to Learn</title>
   <link href="http://www.tychoish.com/2010/06/theres-always-something-new-to-learn"/>
   <updated>2010-06-17T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/06/theres-always-something-new-to-learn</id>
   <content type="html">&lt;p&gt;Now that I&amp;#8217;m fairly confident in my ability to do basic Linux systems administration tasks: manage web and email servers, maintain most Linux systems, convince desktop systems that they really &lt;em&gt;do&lt;/em&gt; want to work the way they&amp;#8217;re supposed to, I&amp;#8217;m embarking on a new learning process. I&amp;#8217;ve been playing around with &amp;#8220;real&amp;#8221; virtualization on my desktop, and I&amp;#8217;ve been reading a bunch about systems administration topics that are generally beyond the scope of what I&amp;#8217;ve dealt with until now. Here is a selection of the projects I&amp;#8217;m playing with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Getting a working xen setup at home. This requires, learning a bit more about building working operating systems, and also in the not to distant future buying a new (server) computer.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Installing xen on the laptop, because it&amp;#8217;ll support it, I have the resources to make it go, and it&amp;#8217;ll be awesome.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Learning everything I can about LVM, which is a new (to me) way of managing partitions and disk images, that makes backups, disk snapshots, and other awesomeness much easier. It means, some system migration stuff that I have yet to tinker with, as none of my systems currently support LVM.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Doing package development for Arch Linux, because I think that&amp;#8217;s probably within the scope of my ability, because I think it would add to my skill set, and because I appreciate the community, and I want to be able to give back. Also I should spend some time editing the wiki, because I&amp;#8217;m really lazy with that.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I guess the overriding lesson of all these projects is a more firm grasp of how incredibly awesome, powerful, and frankly &lt;em&gt;stable&lt;/em&gt; Arch Linux is (or can be.) I mean there are flaws of course, but given how I use systems, I&amp;#8217;ve yet to run into something show stopping. That&amp;#8217;s pretty cool.&lt;/p&gt;</content>
 </entry>



 <entry>
   <title>The Old Projects Project</title>
   <link href="http://www.tychoish.com/2010/06/the-old-projects-project"/>
   <updated>2010-06-16T00:00:00-04:00</updated>
   <id>http://www.tychoish.com/2010/06/the-old-projects-project</id>
   <content type="html">&lt;p&gt;Before a road trip a, by now, a couple of months ago, I installed a copy of &lt;a href='http://www.nginx.org'&gt;nginx&lt;/a&gt; on my laptop on the hope of doing some web development and working on other projects when I was in the car. For the uninitiated (you mean you don&amp;#8217;t &lt;em&gt;all&lt;/em&gt; write technical documentation for web developers and systems administrators?!?) nginx is an incredibly powerful web server. As of June 11th, &lt;code&gt;foucualt&lt;/code&gt; the server that hosts the &lt;a href='http://www.cyborginstitute.com'&gt;Cyborg Institute&lt;/a&gt; and &lt;a href='http://www.tychoish.com'&gt;tychoish&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is, almost always, I think, a loosing proposition.&lt;/p&gt;

&lt;p&gt;I never get any sort of substantial (or insubstantial) work done during my road trips up-and-down the north east corridor. Not that that&amp;#8217;s a bad thing, but I also expect that there&amp;#8217;ll be more awake-time when I&amp;#8217;m not driving or gossiping.&lt;/p&gt;

&lt;p&gt;And there never is.&lt;/p&gt;

&lt;p&gt;So the web server sat unused for a long time on my laptop, but recently I&amp;#8217;ve been playing with it a bit and I&amp;#8217;ve finally gotten a number of cool things set up. I have a local &amp;#8220;git web&amp;#8221; instance which makes it easier to track progress on local and private projects that are stored in git. Perhaps more importantly, I have set up quick local &lt;a href='http://ikiwiki.info/'&gt;ikiwiki&lt;/a&gt; instances for a number of projects. They&amp;#8217;re easy to configure, quick to setup, and while I suppose I could hack something together in nifty for myself, there&amp;#8217;s something nifty about being able to take an alternate view of some content and also being able to &lt;em&gt;really&lt;/em&gt; preview changes to you work before publishing them.&lt;/p&gt;

&lt;p&gt;Also, and the real reason for this post, is that by virtue of this development, I have revisited a few projects that had been lingering in the home directory of my computer for &lt;em&gt;far too long&lt;/em&gt;. Which has been a powerful and useful exercise.&lt;/p&gt;

&lt;p&gt;By which I mean, it&amp;#8217;s been painful.&lt;/p&gt;

&lt;p&gt;Besides &amp;#8220;the novel,&amp;#8221; which has been the lingering and dragging front burner project for a year, there are a number of quasi-serial stories that have lingered in some state of incompleteness for a couple of years now. I&amp;#8217;m kind of amazed both at how foreign these stories seem to me both in terms of the style (good to know that I&amp;#8217;m a better writer than I was a few years ago,) and also how quickly I can fall right back into the story and tell you every little thing about the world, situation, and moment where I left off.&lt;/p&gt;

&lt;p&gt;The mind is, indeed, an amazing thing.&lt;/p&gt;

&lt;p&gt;Where my strategy for the past year has been to &amp;#8220;plow through and finish the novel,&amp;#8221; I think my tactic this summer will be to move all of my projects forward in some way. Small daily writing goals for the novel, combined with somewhat less regular (but more specific) goals with regards to other projects. In the next two months I want to have a fairly active and varied writing schedule worked out that isn&amp;#8217;t based around the monthly (or so) weekend binges that I&amp;#8217;ve been using for most of the last year.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s the plan at any rate.&lt;/p&gt;</content>
 </entry>



 
</feed>
