03:42 May 12, 2019

That's the thing about these postmodern kids: everything has to be funny.

21:57 May 11, 2019

When people in tech ask if something is "secure", they're often asking the wrong thing. Not wanting to leave my backpack in a car recently, I asked myself the question: "Is the car less secure in a bad area?" In one sense, yes. In another sense, the car itself is equally secure. People often conflate the question.

21:55 May 11, 2019

https://www.stitcher.com/podcast/shelby-scott/scare-you-to-sleep/e/60453456 OMG I'm on a podcast!

17:26 March 18, 2019

signal path is the threat model of music

03:25 March 13, 2019


22:03 March 6, 2019

Cute: https://playtronica.com/

05:16 February 28, 2019




20:13 October 21, 2018

I only bought two synths this year. They're about the same size, about the same price

04:59 July 11, 2018

a new (rental) house, and a new "album" http://k0s.org/sound/synth/ghosttown/zeitgeist.mp3

18:50 July 8, 2018

as an engineer, I don't believe in absolute truths

21:37 May 31, 2018

The war between the mollusks and the arthropods raged on throughout the early eons...

01:57 December 3, 2017

The size of one's world may become the bounding box imposed n=by those around

04:32 November 29, 2017
19:14 October 20, 2017

There is a Fox in San Jose and his name is Arthur

16:26 October 16, 2017

My first Haskell experiment:

Prelude> [x | x <- [1..], x <= 10]
18:29 October 9, 2017

There ain't no silver bullets but there are silver footguns

15:24 September 21, 2017

It ain't almost done until it's done

02:41 August 29, 2017

Review of the MakeNoise Rene sequencer (uncensored)

I waited for a long time to get a general purpose sequencer. While several of my keyboards (etc) have their own sequencer, I have a very heterogeneous system: keyboards, Eurorack, and other. So I really wanted a CV sequencer that could work with everything. Okay, maybe not everything but as much as possible that is CV controlled.

Equally if not more important, I wanted a sequencer that can be manipulated in real time. Whether I'm playing for a recording or for an audience, improvisation is one of the central tenants of my music, so I need to change all the things whenever I want. There's a sequencer as part of Mutable Instruments yarns as well as pittsburgh modular game system, both of which I own....but they're not exactly fun to tweak in real time.

So after long debate through many choices, I went with the Rene. I am not disappointed. I think it is the closest CV performance-driven sequencer on the market today. To start with the candy, it looks awesome: the lights on top of the pots is not only useful, it's hypnotic. Having unquantized and quantized CV outs offers a lot of flexibility.

The ability to control X vs Y clock is cool, and I'll admit that I use it more than I think, but calling it "the world's first Cartesian sequencer" is a bit much. Most of the time, I do patch (say) X clock into one clock generator and the Y clock into a divide-by-4 clock divider and you're back to a classic (but really awesome) 16 step sequencer. But I'm a tinkerer; I'll probably get more creative (read: crazy) the more I play with it and do some really nutsy things, though I'll still probably never really think of "the first Cartesian sequencer" as some crazy advancement in sequencing. If someone invented a 16 step sample+hold that recorded duration and "note" (CV) that you could snap to clock ... or not! ... or mess with widths between steps with CV, now that would be a nextgen sequencer.

On the other hand, the oh-so-Makenoise pressure pads in the back...now those are Sweet! with a capital WEET!. You want a sequencer you can mess with in real time, now that really opens up the windows for me! Sequencer as a jam session? Sure, why not!

Be warned: this has no internal clock. I probably agree it shouldn't, but I have this in a tiny tiny performance rack with just this (large) sequencer and the (also MakeNoise) telharmonic and I'm still trying to figure out a great way to take just these and a decent keyboard in a togo bag.

The pots for setting CV are critical, of course, too, for live perf. My one complaint: they need "clock ticks" of some variety....it is kinda hard to guess, except by hearing it, what note/CV I'm actually playing. You get used to it....sorta, but it sure would be nice for a future edition. I think they go to 4.5 V, maybe 4 quantized, so it's not like I expect every semi-tone marked. At this point, I'd take every octave.

And, as is often my complaint about newer MakeNoise (just to single them out...certainly other companies fall in this category which I won't mention here), the extra modes (top two pressure pads on the right) are extra confusing. I read manuals; I don't memorize them. I'm not a professional musician who has a great excuse, so let's say at most 1 per cent of my time goes to synthesising (albeit, a very much enjoyed 1 per cent). So I haven't played with all the other cool things the Rene can do. I'm sure I will eventually. But they're less accessible without the manual in front of you unless you have a much better memory than I.

02:12 August 21, 2017

Youtube synth playlist at https://www.youtube.com/playlist?list=PL1n7b3m1D5WGaOVIGxiAn36BcQZqtVLKL

P.S. Youtube nor android made this easy for me. I really despise technologies that want commitment. If I invest in 2+2, I don't want to learn later that my 2 isn't compatible with yours

23:10 August 7, 2017

http://k0s.org/stories/figments/grasshopper+cricket.txt The Cricket + the Grasshopper

21:20 July 27, 2017

So I was wrong regarding regex matching https://stackoverflow.com/questions/18729015/determining-whether-a-regex-is-a-subset-of-another

NFAs + DFAs...need to read up on these]

(And I wasn't wholly wrong)

04:28 July 24, 2017

An almost respectable setup:


My state as of phonecall

02:59 July 12, 2017

The sweetest site maybe ever https://www.saveafox.org/

19:32 July 9, 2017

I made a synth album http://k0s.org/sound/synth/songs_of_insects/

For those that prefer SoundCloud, it is here: https://soundcloud.com/user-351792565-513903954/sets/songs-of-insects

There's also an M3U playlist at http://k0s.org/sound/synth/songs_of_insects/songs_of_insects.m3u

Thanks to my wife for the beautiful cover art http://k0s.org/sound/synth/songs_of_insects/songsofinsects.jpg

17:16 June 16, 2017

Congratulations! You just made Ravens happen!


18:29 June 14, 2017

The greatest enemy of progress is being in a hurry

16:02 June 14, 2017

It has been observed that evolution may produce grotesque and harsh effects.

I say, "That's life"

23:24 May 30, 2017

Sometimes I think it's easier for people to get stuck in loops than machines these days

17:02 May 26, 2017

I'm going to learn some machine learning. If I knew it already I've just program a machine and have it learn for me.

04:17 May 18, 2017

The first song off my new album http://k0s.org/sound/synth/rumblejuckus2.mp3

00:18 May 12, 2017

How to make a great eurorack percussion instrument

Take any sound source (I like Jupiter storm because it's spectral and crashy). Hook it to a VCA. Take CV in from one half of makenoise Maths triggered off a clock. Route out to a filter. Put some resonance on it. Adjust knobs to taste

Really Maths is critical. Strictly speaking the VCA probably ain't necessary. For Jupiter storm I'm taking the other parts of Maths to control it's CV as well as the filter

In short, get Maths. It's a must have for eurorack

02:09 May 6, 2017

Today is an important day in a man's life


It's the day I won modulargrid

03:10 May 4, 2017

Free only to my followers http://k0s.org/sound/synth/crosshairs_droplets.mp3

01:02 May 3, 2017

After long debate, I've finally decided the poly synth I want: https://en.wikipedia.org/wiki/Korg_PS-3300

It's too bad that, on top of being unbelievably pricey, they're just not on the market. They are rare.

It's also too bad there aren't really many semi-modular poly synths

03:27 April 25, 2017

A good fun-time project would be building a Eurorack entirely out of http://www.twohp.com/

The interesting part would be building the enclosure

02:58 March 10, 2017

All is sand

23:51 March 1, 2017

my life should be more than an activity board

02:49 February 12, 2017

First spring crickets

17:29 February 7, 2017

Ebeneezer is a Blue Whale that will help with a docker pattern:

< My name is Ebeneezer >
      \                       .
       \                     ==
        \                   ===
       /""""""""""""""""___/ ===
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
       \______ o          __/
        \    \         __/
17:35 February 6, 2017

# Provisioning

/or why I stopped worrying and learned to love the cloud/

When "the Cloud" rose to prominence as a marketing term circa 2008, I thought this was the most glazed over I had ever seen programmers. I mean, really? "The Cloud"? You have computers. You have VMs. What is the point of this "the Cloud"?

Now that it's 2016, I've decided to embrace the term.

The Cloud means that it doesn't matter where you run things. Your laptop is the Cloud. AWS can be your cloud. Or maybe GCE. A bank of servers is the Cloud.

The big difference between your laptop and, say, AWS, is if you want a bunch of computing resources, you're going to have a much harder time scaling up your laptop. Whereas, for AWS, click a button...or run a shell command...or enact an ASG, and poof, more computing resources. Now of course these run somewhere. Somewhere there's a whole bunch of metal-oxide semiconductors etched by very fine wavelengths and doped by ions falling through an electrostatic drop (or what not) generating heat doing computation.

But the point is that it shouldn't matter where your software is run. AWS has some great resources. It also has things I like less. What scares me are AWS-only solutions. Or RAX-only solutions. Or only-in-my-special-datacenter only solutions. Because what I care about is solving problems by developing software. I'll be the first ot say that sometimes -- wait, no, just about always -- you have to special-case something to get something done. Because in the end what matters is solving the problems of the non-hypothetical variety.

## So I thought you said something about provisioning?

I did! So let's just make the claim that modern computing is about VMs. Or, better yet, containers. Now there's nothing in your laptop that directly imposes a limit on the VMs or containers if can host...you eventually just run out of resources. Because, after all, you only have so many logic gates and capacitors and disk platters.

In order to scale arbitrarily, you need programmatic control to spin up containers to the point that you are not capacity limited.

Now, here's where I'm going to learn to love the Cloud and say that, by the same token, software should be irrespective of this provisioning process.

Think salt-cloud. You give it some configuration. It makes an AWS EC2 instance. Or it makes a Rackspace instance. Or you write a plugin and it makes whatever kind of instance you want.

(For the reader: what about a salt-cloud k8 adaptor?)

## Bare metal

00:56 February 6, 2017

Artemis -- a tool for deciphering Socrates' cryptic questions:

Artemis: I wish to know how to use your tool to build a wheel

Socrates: Ah, yes, my tool can be used to build a wheel. Let me tell you how it can make an aquaduct!

Artemis: I only want to know how to build a wheel. Perhaps you can give me some insight into the workings of your tool so I can learn how to build the wheel myself?

Socrates: Did I mention the many virtues of aquaducts? They run for miles, and there are many different kinds.


18:33 February 2, 2017

Are there jobs left that are worthwhile?

I'm in the position of looking for a job. As a veteran of the open-source revolution, the computer job prospects of 2017 look bleak comparatively to a decade ago. Sure, I was young and idealistic. I wanted a job in open source software because it meant something. I wanted a job that could do good because why not? I wanted to work on cutting edge technologies because they're exciting.

Now I'm older. I've added 'Senior' to the front of my 'Software Engineer' title. I want a job where I can use linux as my primary operating system because its easier than the alternatives. I want to work using open-source methodologies because obfuscating information is a waste of time. I care less about how close to the edge the technologies I use are or their promise, rather than are they right for the problems I solve, and whether those are problems that are worth solving. My ideals are largely unchanged; I've just become more realistic in the expectations I can expect from an employer and in the weighing of idealism compared to the prosperity of those close to me in my life.

Are there still jobs left where I can use my skills in whatever capacity to earn a decent wage that aren't in the quiet desparation that has come over the industry? How can I find them? I cannot expect not to compete for interesting problems, but I should be able not to have to. I cannot expect not to work with egos (I'm sure I have some left of my own), but I should expect that this isn't where a lot of effort goes. I can't expect to engineer a better world, but I should expect that my tasked efforts are not too deeply hindered by the fall back into the dark ages of proprietery information.

Anyone know where I can start looking?

04:00 January 17, 2017

First West Oakland Crickets chirping. At the cricket highrise. They are so timid

19:08 January 3, 2017

Because all are one, all dust must become poison

Because all stars are playboys, all stars are the number 3

03:30 November 22, 2016

There's still at least one Cricket

23:58 November 12, 2016

http://k0s.org/thefoxandtheeel/ the epic battle

02:20 September 22, 2016

One of the things I like about teaching is that you may reveal horrors that students will marvel at

16:20 September 15, 2016

The easiest way to not get anything done is to do too many things at once

15:54 August 30, 2016

DevOps is like baseball: it's root, root, root for the whole team

(...not to mention, if they don't win it's a shame)

18:28 August 22, 2016

If you're in deep space, how do you know if you're upside down?

19:02 August 21, 2016

Wonderful news for the Nautilus! https://www.fws.gov/news/blog/index.cfm/2016/4/28/US-Supports-Protections-for-Pangolins-African-Grey-Parrots-Chambered-Nautilus-at-CITES-Meeting

18:43 August 21, 2016

Nautiluses go to high school https://www.tonmo.com/threads/project-nautiluses-go-to-high-school.21305/

Awesome! I'm so jealous!

19:36 June 22, 2016

I have heard that the next generation Lexical Expressions working group, known affectionately as 2LE, is going to abandon their just-in-time compiler

in other words, 2LE JIT to quit

17:50 June 17, 2016

Let not untoward thoughts toward you be foregone, Antigone

01:24 June 15, 2016

Where I work now: http://www.cisco.com/c/en/us/solutions/service-provider/infinite-video/index.html


19:01 June 12, 2016

Saving the Nautilus

I have always been fascinated by Nautilus so I was very happy to find your site and your effort on behalf of these beauties of the deep. I had somehow grown up to think that Nautilus were long extinct, so it was a wonderful surprise to learn that they still swam the ocean but a terrible sadness to read that they were endangered due to human harvesting of their shells. It is heart warming to find http://savethenautilus.com and people that want to help the Nautilus keep chugging along for another 500 million years (or more!).

I recently saw several Nautilus at the Monterey Bay Aquarium Tentacles exhibit: http://www.montereybayaquarium.org/animals-and-experiences/exhibits/tentacles They were amazing to behold, just a transparent pane separating me from so many tentacles extending from their spiral chambers . After a lifetime of thinking that they were gone, I felt as one feels when you meet a legend. Sadly, it was there, after first meeting these marvelous creatures, that I learned that they are endangered. I wrote the aquarium an email 'Nautilus are Headliners' (text available here: http://k0s.org/blog/20150518001007 ), pleading to have the Nautilus, this most tentacled and most venerable of the cephalopods, added to the subtitle of the 'Tentacles ' exhibit. All of the cephalopods are intelligent, fascinating, and personable creatures, though the Nautilus holds a special place in my heart.

I recently bought one of each of your shirts: one for myself and one for my wife. I bought them because I like the art works and because I thought it'd be a good way to help the Nautilus and raise awareness of their plight. I also really like the text : "not just an empty shell". Before I had learned that they were in danger, I had wanted a Nautilus shell. I was dealing with very dated information that stated that most shells washed up on beaches, not the sad modern reality where Nautilus are lured to slaughter for their beautiful shells. I like the idea of the Nautilus giving up their shells when they are done with them before greed and modern diving techniques spoiled it. After finding out that they were threatened, I've been saddened the thankfully few times I've seen Nautilus shells for sale. I was in an antique store recently where, for the only time, I held a Nautilus shell. After seeing the marvelous Nautilus with my own eyes, the shell seemed very empty indeed without the Nautilus inside.

Much gratitude for your website and charity. Since discovering the plight of the Nautilus in recent years, I have been looking for a place where I might contribute towards helping our deep sea friends. Thank you for making this possible, and congratulations on your success and best wishes for more to come. Thank you for helping the Nautilus!

02:04 June 11, 2016

I like to describe my way of thinking as "time-agnostic", because that sounds better than out of order

02:20 June 8, 2016

i held out a year because i was a little miffed that k0s.net was taken... then saw that k0s.org still free...

i was so young and full of ideas

18:23 June 5, 2016

Save the Nautilus http://savethenautilus.com/

15:37 May 27, 2016

after playing with ATV, 4 remotes, 3 audio sources, 2 video sources, and 3 computers yesterday, i've come to a couple of conclusions: 1. home "theatre" is fairly annoying right now, unless you're willing to throw out all components every time you want a new one; and 2. I have completely different tolerances on such things than others

when i do next buy a new system (maybe 10 years) i think I will get a receiver that is also a mixer (or equivalent setup) and video that i can control entirely by computer (preferably HTTP)

04:27 April 17, 2016

If you're relying on your brain to remember things instead of a computer, you're doing computer science wrong

19:49 April 13, 2016

I was thinking about technical debt in some detail and have decided a few components. One can take out technical debt (well, as long as you’re getting paid). Technical debt is often though of “you can’t fix it today so make a hack”, which leads pretty quick to the business of “you can’t fix it because of the hack so hack around the hack” etc. One component in the interest on technical debt is the time and effect (including ensuring backwards compatibility) is taking out the hacks on hacks and the hacks before you implement properly. This is already a high APR. Another component is learning cost. If Jerry Smartcoder has to do something in a new codebase, because complexity equals compclicity times the information density of the problem, he can’t learn the problem. He learns the complex abstraction of the problem. Which is complicated.

21:29 April 8, 2016

I'd vote for Bruce Boxleitner, but any race to elect Tron is going to be negatively charged

02:57 April 7, 2016

civility is dead

...next up, Civilization!

15:54 April 4, 2016

In a world where all people care about are screens, what does one show on the screens?

02:53 March 27, 2016


00:26 March 13, 2016

The only thing you need to know about life:

Life gives you shit and you fucking deal with it!

01:59 March 9, 2016


00:45 March 4, 2016

The most horrible facet of dystopia is when it's not recognized as dystopic

20:15 March 1, 2016

Getting old means not having to take yourself seriously

03:09 February 26, 2016

Sometimes you've got to be sad about a shirt

02:11 February 8, 2016

The railway crickets are waking up

22:31 January 27, 2016

Don't repeat yourself is a principle of information, not of programming

17:19 January 17, 2016

Back then I tried to make art that looked like something. Now I take real things and make them look like nothing

01:03 January 5, 2016

Racing against eventual concurrency - how not to do things

18:39 January 3, 2016

How wonderful is it to be excited every single day about having my best friend to share my life with

23:09 December 31, 2015

You'll never be hugged by more tentacles than if you're hugged by a Nautilus

01:17 December 25, 2015

Cajunman's new girlfriend, a play in one parts

Kevin Nealon: I can't help but notice that you've had a glow about you the past few weeks. What's making you so happy?

Cajunman: Fornication!

KN: Oh, you got a new girlfriend. Glad to hear it. Do you have any concerns with your new relationship?

CM: Impregnation!

KN: That's a big one. I hope you're taking steps to deal with it

CM: Contraception!

KN: And what if that doesn't work?

CM: Abortion!

KN: Any alternatives?

CM: Tubal ligation!

KN: I guess you're just not ready to be a father. Who could blame you? Well, best of luck Cajunman

01:28 December 24, 2015

Nomenclature is worthless

04:09 December 15, 2015


03:12 December 9, 2015


        ^^ -
03:11 December 9, 2015
01:52 November 24, 2015

It is said "information is power". I say it is an agent of usurpation

16:27 November 23, 2015

Heard a cricket chirping last night

02:33 November 21, 2015

If you like crows, you'll love a murder of them : https://youtu.be/D_UkgERe2dI

This was really amazing to see. I got off of MUNI near the ferry building and all of these crows were swarming around. I've never seen this behaviour at such scale, particularly on this coast. What are they all doing? They look like they're having fun and talking to each other. There's well over a thousand crows flying here.

03:07 November 8, 2015

The Crickets are still chirping

05:16 November 4, 2015

Heard one lone Cricket singing near the railway tracks

03:28 November 4, 2015

It's finally here!

Orion's new blog post about World Lemur Day 2015 : http://k0s.org/stories/orion/show_toes_for_lemurs/

22:36 November 2, 2015

Welcome to the world of multitasking where you can do one thing well or several things badly

01:51 October 17, 2015

Our apartment is the only residential building on our West Oakland block. And it's a work-live space. So we're living the dream. Albeit, it's a crappy dream

02:11 October 10, 2015

Roy Batty and the Genetic Drifters


22:49 October 4, 2015

On Securitas and the Dehumanization of Crickets

The most generous way to describe Securitas is low-skilled, probably as low-paid, rent-a-cops that don't actually do much copping. I've seen a parked Securitas car that, in the event of a wreck that occured with a violent punch not ten feet from where they were propping their feet up on the company remained still,without action, while others sped in their vehicles from coming-down crackheads who shouted in unknown mockeries of Chris (sic) Rock. Many times, when smoking in the West Oakland street and on which sits my current abode (if so it can be called, because what in West Oakland can be called a home without friends, a car, and an excuse to get away?), a Securitas pick-up truck (as so is their vehicular choice, so it seems) slowly loop around and stare me down as much as one can from the comfort of a steel-ploymer composite cage without actually looking at me until they weighed the prospect of asking a white boy what they were doing there against their own cowardice and laziness of exiting their vehicle and going to the hassle of having to confront me about my (in their untrainable eyes) questionable whereabouts facing the prospect of me pulling out some for of semi-endoresed identification stating that I, in fact, lived there (If living it can be, despite the luxury price tag, called.)

The only time I have ever actually spoken to a securitas (quote-unquote) officer was in search of one of those few genuine loves I pursue left in life: crickets. Crickets are the most beautiful of insects, and one I identify with intimatelyy. There's a thing called urban crickets: fabulous chirpers that make their homes in the railroad tracks, little cracks where buildings meet pavement, and other unlikely dwellings to makers of the world's eldest symphony, who sing and strum their songs unaged and disaffected by this facade that we, the progeny of machines, have come to believe wholly in. I (amongst others) have a whole mythology around crickets: they seem to be the sweetest of creatures, and the world is richer for them (and for us, the humans? the autopsy will show...). There is a beautiful site -- http://songsofinsects.com/ -- that speaks in terms less loving of these musicians that warms my heart and does not discourage the fostering of a cricker for a single night (given proper food, such as carrots, celery, and oats -- for variety -- and water, of course). Whereby exchange is made for a guest in one's house in chance he may sing... though never, of course, with thought of obligation.

So it was tonight that I ventured alone to the railroad tracks with a cricket cage to rival that in "The Cricket in Times Square" that, after over a year in Oaklana, Securitas sought to not only leave their vehicular sanctuary but confront me.

18:01 September 23, 2015

meet Google Mind . For the small price of 10% of your wetware computing capacity and a few small advertisements in your dream, say goodbye to your keyboard and mouse. Forever.

19:28 September 14, 2015

I felt a drop. It's finally fall.

22:13 August 14, 2015

Never chock up to technical expertise what can be blamed on common sense

20:18 August 9, 2015

"The departure of life is always accompanied with sadness," she spoke in a little girl's voice, "In such dark regard it held its forceible taking by another that murder is undoubtably the most infamous of acts. When it falls upon our littlest ones, such a crack is drawn, through the depths and darkness of madness may be seen, that the hearts of those left behind are rendered asunder and never wholly heal.

"But when a child commits this act, a contrasting shade of the black of shattered innocense takes hold of these self-same hearts. And cast into the pit of treachery are they to fall forever, mourned and hated, their final note struck as the symphony breaks abrupty and there remains on the measure time of grief-laden silence.

"These are the tales of Deadly Children."

02:21 August 1, 2015

I SAT on my ass until I had to ACT

19:46 July 8, 2015


04:51 July 1, 2015

The writing was pitted between two extrema neither of which he realized it was being classified against: it was not surrealistic enough and too prosaic.

01:43 July 1, 2015

It's a good joke, even if it's not actually funny at all

16:47 June 30, 2015

Cisco to acquire OpenDNS


02:53 June 22, 2015

Game, set, match, outmatched.

How's that for a declintion?

01:18 June 16, 2015


23:10 June 15, 2015


15:23 June 12, 2015

Foxes don't lose things; they just might not remember where to find them all the time

23:49 June 11, 2015

What is the point of CoffeeScript?

I often have said that ORMs are written by people that hate SQL even more than me (which, frankly, is hard). I mostly like JavaScript. There are things about it I don't like...but hey, tech choices, right?

Whoever wrote CoffeeScript, on the other hand, completely confuses me. They seem to really hate JavaScript...but probably have to deal with it? I don't know. It seems a DSL that just boggles my mind.

23:07 May 27, 2015

Perfect is the enemy of good. The enemy of good process is mediocre process, however

18:44 May 26, 2015

The words 'my ' and 'legacy ' is contradictory in their juxtaposition

02:27 May 26, 2015

May 26 - Last sighting of our crows (to date)

03:10 May 23, 2015

"I have steadily walked the path for nearly all of my life."

:But have you ever walked off of the path?"

00:10 May 18, 2015

Nautilus are headliners!

Thank you for hosting so many wonderful cephalopods at the Tentacles exhibit. This was our second visit and we came back to see all of our amazing underappreciated armed and tentacled friends.

Some of our favorites are the nautilus. it is enchanting to watch the little chuggers in their reef just doing what nautilus do. they're sometimes described as living fossils, but it is perhaps more fair to say of these most ancient cephalopods that their form works so well the span of their species as compared to ours is greater than our lifetime as compared to a cricket.

We couldn't help but notice their conspicuous absence in your headline for the tentacles exhibit: "The Astounding Lives of Octopuses, Squid and Cuttlefishes Special Exhibition" (from http://www.montereybayaquarium.org/animals-and-experiences/exhibits/tentacles ). Nautilus are headliners! we were pleasantly surprised to see how many patrons of all ages looked on in happy wonder at your nautilus tank. it is good to know we aren't the only people who can relate to these "underdogs of cephalopods" (Dr. Jennifer Basil, in "Teaching Ancient Nautilus New Tricks", https://www.youtube.com/watch?v=PIheRYcm6sI ).

We would beseech you to include the Nautilus amongst the cephalopod family members, on your website, and elsewhere as practicable. They deserve the recognition which can help educating the public about marine life and bring to attention that the Nautilus is threatened by extinction because of human greed for their beautiful shells. If more people knew how endangered these beautiful creatures are, hopefully their plight would improve.

Thank you for including the Nautilus in your tentacles exhibit and raising public awareness about these most amazing invertebrates. We love the exhibit and how much the Monterey Bay Aquarium does for marine life and awareness and respect for the Ocean. We hope you will consider including our friend, the Nautilus, in your headline in its rightful place beside the other cephalopods.

-- an open letter to the Monterey Bay Aquarium

21:07 May 15, 2015


01:42 May 7, 2015

Let's see...a woman, a couple, and a guy with three names. Who's the murderer, I wonder?

00:21 May 1, 2015

Attention Passengers!

The yellow tiles represent a safety zone. They aren't a safety zone, but, symbolically they represent one. Please stay away.

Thank you for your understanding.

21:32 April 13, 2015

Very cute: https://pypi.python.org/pypi/apgl/0.8.1

01:25 April 5, 2015

I used to write blog posts about how pointless it was to write blog posts about these things

20:51 March 19, 2015

Yesterday we heard the year's First Cricket

01:07 March 8, 2015

Colonel Gentleman's list of names of people who travel in order of respectability











22:53 March 7, 2015

Someone should take the email address at@imperialwalk.ar

21:41 March 6, 2015

there is a difference between understanding and empathy

11:19 February 10, 2015

We've almost succeeded in setting up a system whereby we can't succeed

20:19 February 9, 2015


21:10 January 29, 2015


05:19 January 28, 2015


15:23 January 21, 2015

My time is carved into tiny pieces and sold in bulk

20:54 January 4, 2015

It's Berkeley; everything here is a cartoon

09:21 January 1, 2015

To the acapella groups that have done Djangodjango 's Default: you're already taking an artform that is being edged out on one side by barbershop and on the other side by good taste. When you take out the lyrics you give me one less reason to listen (out of one) .

22:01 December 23, 2014

notes to myself are the most boring of all notes

15:18 December 23, 2014

The last 10% of a job is 90% of the job

19:09 December 9, 2014

Does the sea embrace the droplet or the droplet embrace the sea?

13:53 November 21, 2014



13:20 November 19, 2014

she rose from a dreamless sleep. the nocturnal fog had, evidently, pervaded the room. mists rolled, cutting the scant yellow light of the hanging lamp left swaying after turning its switch.

transitioning the haze filled pitch to the bathroom, she drank of the water glass she left for herself for insomniac bouts and bladder relief runs. the mirror returned her blank face, one of thoughts still more contained in dreams than reality.

her image curled her lips in a wry smile. she was not smiling

extradimensional geometries snapped stranding her behind glass, pressed against it, her grinning double granting her one last look before turning and walking out of the bathroom until her shadows on the mist were not seen . though she could feel the glass cold on her fingertips, her sight only evidenced her free form trapped in the mirror, shrouded in mist, the cutting plane just visible in her peripheral vision. drops condensed

14:34 November 18, 2014

You can move in at most one direction well

18:43 November 10, 2014

Loving Canada is basically the same thing as hating the United States

18:22 November 1, 2014

The only thing worse than subcultures is culture

11:52 October 3, 2014


09:21 September 30, 2014

My friend is a very religious atheist

18:19 September 10, 2014

If you want your pre- K philosopher to get an empirical and classical Greek experience (you know what we mean! *) enroll your child at Aris Toddle. ..*today !

08:22 September 7, 2014

People are not the devil they want to be.

17:53 August 25, 2014

Very fine-grained maneuvers with an extremely long lever

16:52 August 12, 2014
18:50 July 15, 2014

Suspension of disbelief

18:48 June 19, 2014

OH - "I can smell you from your picture"

12:03 June 4, 2014

A basic problem of life is that we define things as problems

09:39 May 23, 2014

The only way you can truly trust someone is if you never know where they stand

12:08 May 15, 2014

Are blood oranges like blood diamonds?

19:11 May 13, 2014

Personally, I consider if you have to laugh at a joke, it's probably not very funny.

22:35 May 9, 2014

After my latest Linux upgrade this is all that appears on the screen. Luckily you can type whatever you want in the little box

19:25 May 7, 2014

I hate the internet and I'm just tired of it.

17:51 May 6, 2014

OH: "Cherry peppers are so good you can just, like, eat them."

17:50 May 6, 2014

OH: "Cherry peppers are so good you can just, like, eat them."

17:50 May 6, 2014

OH: "Cherry peppers are so good you can just, like, eat them."

18:42 May 5, 2014

OH: "I'm Gandalf! I'm a song from the 60s!"

19:00 May 4, 2014

life is a bitch goddess waiting to die

18:43 May 2, 2014

Nigh literally ubelievable:

"Wiseau eventually decided to drop the subplot after learning that there was no practical way to film the flying car scene on the production's budget."

The best part is....the subplot that Tommy decided to drop was that of Johnny -- for some reason -- being a vampire. I don't know why this requires a flying car, but, well, anyway...

If you haven't the movie...don't. Please. Seriously.

18:18 May 2, 2014

We have both been touched by the shadow land

20:34 April 29, 2014


11:34 April 26, 2014

re http://k0s.org/blog/20140425204109

I wish I could devote more of my blog to making fun of Scott Thompson

20:41 April 25, 2014

Watching 21 after 24 dies is just depressing.

It's a little like watching Dave Foley and Kevin McDonald without Dave Foley, and instead of Kevin McDonald it's Scott Thompson.

15:28 April 24, 2014

Life is a confidence game. I don't like confidence games.

09:55 April 7, 2014


17:33 April 5, 2014

Story starter: free for the taking

The fog of an October evening occluded the arrival of a carriage to the township of Bronswick so that none could discern through the mists that the townhouse at 18 Merriwether Lane was again to be occupied, save only those neighbors across the way that might have the vantage. The girl of the house, a Miss Anne Danubar, was staring into the gray streets when the clod of horse hooves broke pace and rested. From the carriage stepped two men, an elderly gentleman and a younger, who unlocked the gate to the yard which had never stood unlocked in times rememembered. The driver aided them with their modest luggage and soon they were inside, the carriage leaving.

14:24 April 5, 2014

"Please call the police while it is still too late."

12:05 March 24, 2014

I only date within my own cult

20:09 March 21, 2014

I've been watching American Horror Story: Coven. I basically don't watch TV, but for some reason this one has me hooked. Its not like its that good. It's almost like if instead of a horrible movie, The Craft was a horrible TV show.

14:23 March 5, 2014

about is about doing personality traits in as depersonalized way as possible

09:01 March 4, 2014

I have a Lee-wife! So happy! Sometimes you can get what you want

09:39 March 1, 2014

The world ended and we're still here

09:23 March 1, 2014

Through my life, I have seen traces of the shadow, but I cannot guess the silhouette

19:17 February 23, 2014

OH: "I'm gonna filibuster this bitch"

16:47 February 22, 2014

anagram: Tom Marvolo Riddle:

       m      Lo r d
 o              l                       '
                         d  e
  m    o
16:22 February 20, 2014


21:06 February 17, 2014


22:52 February 14, 2014

Unfortunately, there are two kinds of people in the world...and I'm none of them

10:11 February 11, 2014


22:18 February 10, 2014


13:20 February 5, 2014



11:58 January 30, 2014


18:56 January 26, 2014

Was trying to decide whether to put mplayer or mplayer on a new computer when I read this:


Srsly? mencoder is like...priceless

19:08 January 25, 2014

What's the difference between a shameless plug and growing the brand? About six figures

23:31 January 15, 2014

Are ideas immortal?

...*or ephemeral?*...

(agnostic to time?)

20:33 January 13, 2014

OH: "This is why the intenet makes us no longer care about life."

12:33 January 12, 2014

last backup: http://k0s.org/pictures/specialfx/last_backup.jpg

10:58 January 9, 2014

if i wanted to go to twitter, i'd... shoot myself, i don't know

17:24 December 28, 2013

more people like to listen to my rambling than i do

20:08 December 26, 2013

yelp ate eat24!

16:17 December 26, 2013

everything i hate about blogging = http://www.jeffbullas.com/2011/04/13/are-you-making-these-20-mistakes-on-your-blog/

13:16 December 25, 2013


17:56 December 19, 2013

If baseball is America's pastime, what is America's futuretime?

17:07 December 19, 2013

Evidently google maps doesn't believe that viewing the map is an important part of the site


Thank you, pegman

21:43 December 17, 2013

Caligula is my Drug

19:55 December 17, 2013

To paraphrase Janis Joplin, "'Framework' is just another word for 'don't know what to use.'"

21:45 December 16, 2013

"You runed me" - Lee re http://k0s.org/blog/20131216214423

21:44 December 16, 2013

ᛁ ᛚᛁᚲᛖ ᛚᛖᛖ

18:51 December 16, 2013

"If you deny the intergalactic clown thought-rape conspiracy, that just proves you're a clown yourself." -- Michael Stipe [*]

[*] No, not that Michael Stipe

23:02 December 15, 2013

BTW re http://pastebin.mozilla.org/3787521:

pbmoz.py < `which pbmoz.py`
18:58 December 15, 2013

(with apologies to Ministry ...)

"Soon I discovered that this clown thing was true... Ronald McDonald was the Devil. And Bozo was a thought-rapist previous to his career as a clown."

10:38 December 13, 2013

learning to code https://medium.com/learning-to-code/565fc9dcb329

so true

17:36 December 12, 2013

OH - "You should get a chicken-legged hut"

13:30 December 12, 2013

I have a list of lists ... that's not even maintained well...

that will tell you something about my life

15:37 December 2, 2013

OH: "There is no intelligence in making puns."

10:50 December 2, 2013

?: Did you know that insects are the most common hallucination?

M: Yeah, because I make them think that.

04:19 November 30, 2013


17:47 November 28, 2013


i wish i had more time to read this shit

17:03 November 28, 2013


10:41 November 28, 2013

from trailer: "The Truth about Bustin'"


(Anonymous): "Bustin' used to make me feel good. Then it got that I was bustin' just to feel okay. Now I'm bustin' just not to feel bad anymore. Sometimes -- and I never thought I'd say this -- bustin' makes me feel cheap."

Ray Parker: "Look man...I'll do your song, but in exchange... Well, I hear bustin' makes you feel real good."

21:42 November 26, 2013

"I try not to support coffee that's sold in under 12oz bags"

quote from Lee

22:49 November 17, 2013

No need to complicate it all with things

21:39 November 12, 2013


│cat darkfuturist.pls | while read line;  do echo ${line} : $(($(test  "-e ${line}"\") )); done
Download/02 - Mothersonne.m4a : 0
fsol/Future Sound Of London Dead Cites.mp3 : 0
AphexTwin/Aphex Twin - Drukqs - vordhosbn.MP3 : 0
elliotsmith/16 Bye.m4a : 0
pigface/01 - Flowers Are Evil.mp3 : 0
nin/The Downward Spiral/12 - Reptile.mp3 : 0
sistermachinegun/Sister Machine Gun - This Metal Sky.wmv.MP3 : 0
lpd/The Tear Garden/1993 - Sheila Liked The Rodeo/03 - Sheila Like The Rodeo.mp3 : 0
skinnypuppy/Remix Dys Temper/04-Killing Game [Autechre Remix].mp3 : 0
sistermachinegun/Sister Machine Gun - Addiction.MP3 : 0
skinnypuppy/Process/11-Cellar Heat.mp3 : 0
tool/undertow/Tool-Disgustipated.mp3 : 0
nin/The Downward Spiral/13 - The Downward Spiral.mp3 : 0
tool/undertow/Tool-Blue_Is_Your_Color.mp3 : 0
14:14 November 12, 2013

burn in, burn on, and burn out

16:02 November 11, 2013

lemma: emotional attachment is a measurable quantity

00:20 November 7, 2013

For a long time I thought there was something about twitter I just didn't get; but it turns out there's not

...I should blog this so that it gets picked up by twitter (thank you http://ifttt.com)

17:30 November 6, 2013

The irony is if the fiddle contest is judged purely on fiddle-playing ability, I think the devil wins that one

19:21 November 1, 2013

I don't like being Socrates and I don't have time to be Socrates

13:45 October 31, 2013

y u sloe, enternetz?

16:39 October 29, 2013

I'm more excited about http://www.espruino.com/ than raspberry pi

17:39 October 20, 2013

group clown killing?

13:07 October 18, 2013

"I'd feel a little more guilty about insisting on tit for tat from society if society had given the tit, if you will."

19:31 October 17, 2013

yo @negativelee...you is watching me tweet you foo! i has a tophizat! 🎩

15:00 October 16, 2013

Preach it, dear brother!

"Everything is a library (don't write scripts or standalone executables)." from http://gregoryszorc.com/notes/tech-aphorisms.html

12:34 October 16, 2013

Jamba Juice made me smoke

11:51 October 16, 2013

If it ain't a meme it's a nonce

Im gonna blog the shit out of that

11:33 October 13, 2013

random faces of sadness isolated in the dark

15:12 October 9, 2013

hello world's pretty advanced: gotta know about iostreams, character encodings, etc

14:14 October 4, 2013

I was torture-raping clowns before it was cool

09:50 October 4, 2013

"I’m sure the FBI understands as much about the security systems put in place to protect clients as any other educated amateur." - http://techcrunch.com/2013/10/03/after-silk-road/

11:03 October 3, 2013

Q: "Do you believe that abortion should be limited to the in utero stage?"

04:26 October 3, 2013

not a bad idea; 9menu anyone? http://xyne.archlinux.ca/projects/obfilebrowser/

12:30 September 29, 2013

There's nothing better than fighting with a pacifist.

20:02 September 28, 2013

"Do you think the fact that we dont want to give or receive bad holiday gifts and the fact that we dont want to breed are somehow related?"

14:23 September 22, 2013

I can't even dishonor myself right....that's awful

16:22 September 19, 2013

how to reverse a dict in python (sorta):

sum([[(value, key) for value in values] for key, values in foo.items()], [])

ignore the man behind the curtain

13:43 September 5, 2013

so true http://devopsreactions.tumblr.com/post/59759656075/typical-bug-fixing

10:40 September 4, 2013




22:45 September 1, 2013

"The central travesty of my life was so traumatic that I never recovered from it: my birth"

22:03 August 31, 2013

do you see an enemy in sea anemones?

16:17 August 30, 2013


didn't i write something like that?

17:04 August 29, 2013

i knew there was a trick:

>>> sum([['a'], ['b'], ['c']])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'list'
>>> sum([['a'], ['b'], ['c']], [])
['a', 'b', 'c']
12:09 August 26, 2013

nvie++ http://nvie.com/posts/open-sourcing-is-the-ultimate-isolation/

17:41 August 24, 2013

more pythonic than python?


09:51 August 14, 2013

pizza is my hotdog of adulthood

15:51 August 12, 2013

"I haven't met a liberated man yet."

15:47 August 12, 2013



  1. Of or relating to architecture or design.

2. Having qualities, such as design and structure, that are characteristic of architecture: a work of art forming an architectonic whole.

3. Philosophy Of or relating to the scientific systematization of knowledge.

[Latin architectonicus, architectural, from Greek arkhitektonikos, from arkhitektn, architect; see architect.]

/postarchitectus ... is hard/

19:23 August 10, 2013


15:24 August 9, 2013


13:25 August 8, 2013

Is this any different from the standard model?


12:13 August 8, 2013

oh linus and his monoliths

16:36 August 7, 2013

│ping www.google.com | xrootconsole

23:40 August 6, 2013

Why I hate the (not so) dynamic duo of sphix + RTD :



Well, one reason anyway. Not really fair; I have stubs everywhere

15:04 August 6, 2013

PYTHON_EGG_CACHE : dare to be stupid

So today I got this:

/home/jhammel/silvermirror/local/lib/python2.7/site-packages/pkg_resources.py:1054: UserWarning:
/home/jhammel/.python-eggs is writable by group/others and vulnerable to attack when used with
get_resource_filename. Consider a more secure location (set with .set_extraction_path or the
PYTHON_EGG_CACHE environment variable).
warnings.warn(msg, UserWarning)


Anyway, outside of annoying, its pretty f-ing stupid. You have a default egg cache in ~...or you can change it with the env variable PYTHON_EGG_CACHE...but you can't unset it.


The default, you idiots , is that eggs should be cached in a temporary directory that is deleted on interpreter exit...opt in, not opt out, and certainly not, you can't opt out


14:24 August 6, 2013

The most valuable thing in the world is scarcity

08:19 August 6, 2013

All ends are means to ends

14:18 August 4, 2013

People like to act like idiots and theres nowhere better to act like an idiot than a street fair

10:28 July 31, 2013

For Dafur Ford afforded forged four door Fords fording forty fjords foraging for forges.

02:37 July 24, 2013

🌉 it was a peaceful night in SF

all retired to their glass towers 🌇

🌊 until the typhooon came

and the Ring of Fire boiled the Pacific 🌋

🌌 Thankfully, it only affected Humans
02:32 July 24, 2013

tip o the hat to ya 🎩

17:49 July 21, 2013

Docker ideas:

16:58 July 21, 2013


not bad

Ranked 191st

Published Module Count: 44

Total Downloaded 304,459 times

11:00 July 21, 2013

finding a solution to a problem lays the problem to rest; understanding a problem gives you all solutions

13:38 July 18, 2013

Faith-based programming:

if its good enough for science, its good enough for technology
11:08 July 18, 2013


10:22 July 18, 2013

I think I like this humans.txt idea....this is pointing to something....


09:45 July 17, 2013

at last, http://k0s.org/hg/redirector sees its need


TBF, this is MDN specific; that said....the general disquiet rumbles

03:24 July 17, 2013


15:13 July 16, 2013
  1. Do you believe a zombie apocalypse is actually feasible?
10:58 July 16, 2013


15:21 July 11, 2013

wow http://www.youtube.com/watch?v=PbwaFQ2r2c4

11:40 July 8, 2013

i guss i like http://en.wiktionary.org/wiki/Category:English_formal_terms

11:13 July 8, 2013

why energy is conserved but information is not? http://en.wikipedia.org/wiki/Banach-Tarski

01:26 July 6, 2013

"It's even funnier when I don't get it!"

^ on obscure references in comedy

13:25 July 4, 2013

wth? http://vimeo.com/28991842

17:26 July 2, 2013

why idealism sucks, even if it is along the lines i believe in


09:40 July 1, 2013

Firefox OS launches!


11:37 June 28, 2013

this is totally not what i thought


17:39 June 27, 2013

i really need to play with Firefox OS some more


( from http://www.mozilla.org/en-US/apps/#productivity )

08:52 June 26, 2013

just installed on ubuntu: molly-guard

protects machines from accidental shutdowns/reboots

07:38 June 22, 2013


09:06 June 21, 2013

sometimes i just want to stab people...is there and app for that?

...well yeah but its iOS only

06:27 June 20, 2013

"How to redeem ourselves, how to have fun, and how to not get trampled"

00:14 June 20, 2013

*: I hope you're okay

?: I messages m head

?: fell and got bite

*: Got bite?

*: I'm glad youre okay

*: I am here

?: I'm not the hospitals

?: I feel you love

?: I make down. don't know how to fus

?: try again in hou Zealand time

*: confused

?: ;

?: she iiin spoon time

?: ,ok

?: you are me

*: Talk?

*: Let go?

?: my mout

?: bite

*: Doomed

*: Sigh

*: Oh well

12:41 June 18, 2013

Mauk, Georgia MOC McMacaw mocked mach's mach-1 MACH 1 Mach Five machinations to make make a mockery to gawkers gawking mawky mawk's ma's maw king mowing gawk's awk moxie mock C mockups mockingly under mak's mocs as ma cups matched mak's Mac in macking Mac King's mock mach mawk mocking ma King's keen unmatched mocoa MoCo mock mockingbird macarons (more mere Moxie macaroons) [MOC].

17:11 June 17, 2013

delivery: it ain't what it sounds like

15:48 June 17, 2013

it sucks when your life becomes "notes to self"

10:46 June 17, 2013

Falstar Technologies: solution driven solutions

02:16 June 17, 2013

...[it] creates a reverse event horizon effect

02:16 June 17, 2013

The Internet: it's not just about you

12:04 June 12, 2013

i found grade school rather elementary

13:33 June 11, 2013

i don't tweet

20:04 June 10, 2013

I can't even remember how much I hate Aristotle

15:14 June 10, 2013

TLAs: The L337er Acronyms (stupid)

ASAP: As Soon As Prioritized

14:22 June 10, 2013

are effects affected affecting our effected affects or our hour affectations?

16:21 June 6, 2013

i'm gonna bring you up a notch and take you down a peg

13:53 June 4, 2013

i had a sandwich today

14:52 June 3, 2013

everything is a thing

18:33 June 2, 2013

[lone journal fragment, author unknown]

In enclosing comfort of hypnogogic sprinkling droplets, I happened upon a small golden key. By the rules of that plane, a chest I had long forgotten packing came to be before me. The spelll had set; the key turned and opened the chest. As such in the pastel constellations of hynogogia brightening towards the asymptotic descent to the severence of conciousness is likely to contain, the chest held bottled contemplations from the past, unresolved, marked as to return.


15:26 June 2, 2013

the quantum standard model 3.x spacetime black hole explosive decompression slice reflected from a nonexistant mirror somewhere on the ceiling

23:01 June 1, 2013

if you can't laugh at your own paranoia, others will

17:34 May 31, 2013


I've often been told YAGNI in cases where, in a few months (or years), "it" is needed.

So I'm inventing YAGNIN, which is often more apt: You Ain't Gonna Need It NOW . Staves off the embarassment of not being able to predict the future.

17:22 May 31, 2013

"In light of that, I will respond from my knowingly incomplete and possibly inadequate perspective so forgiveness is begged from assertions and characterizations incorrectly derived or inferred."

17:20 May 31, 2013

no known null gnolls knows nose nurls

13:38 May 31, 2013

two's complement, three's a crowd

15:03 May 25, 2013

bkih bbhhhhnvb hub. h hubby to do it high quality is on Wed Nov Dec to do in this job description and then HP's hh by reply Chou and n zoo in go through this message quickly to do it would bio vote in this zoo 9in œ9opp9oo. ho oh. 9h. œœh9 o h over and then vv up. CV. to. œ John. o o. o o too many people in ho p o. o p p ooo. oz ooop hoodoos homophobic iooïpoi

11:42 May 19, 2013

...having to spend all this energy just to uphold this facade

11:25 May 19, 2013

Q: why doesn't X get dates?

A: X doesn't advertise to their strengths.

Solution1: X should advertise to their strengths.

`` WRONG!!! If X advertises to his/er strengths, they will find someone that is searching for advertisement of strengths. They seek to sell themselves.

Solution2: X should invoke antiadvertisement to unsell themselves. X will advertise, in terms of literal definition, and through textual implication seek others towards the persuasion of unselling themselves.

10:47 May 19, 2013

repression is the devil's key

18:31 May 17, 2013

Interview question:

"What is the relation between software and information?"

15:57 May 14, 2013

If you had told me 5 years ago I'd be doing bitsyblog updates I'd call you a liar

If you had told me that no one else was using it I'd call me a loser

11:55 May 14, 2013

it must mean something when music becomes really important

Metric - Grow Up and Blow Away

10:54 May 13, 2013

Real success doesnt come from exertion but from application of considered intent. The consideration of intent -- comprehension of the problem -- is the essence of solution.

17:28 May 12, 2013

i now know the depths i reach are limitless

I rarely make playlists that take much advantage of order these days (I rarely make playlists). In contrast to the era of analog tape, the mp3 world is a slice and mash bazaar where the order added is often semantically extraneous. But today I noticed a nice pattern in undertones and transitions between some songs I've been playing of late (and a few that I haven't) that did flow...nicely.


Download/02 - Mothersonne.m4a
fsol/Future Sound Of London Dead Cites.mp3
AphexTwin/Aphex Twin - Drukqs - vordhosbn.MP3
elliotsmith/16 Bye.m4a
pigface/01 - Flowers Are Evil.mp3
nin/The Downward Spiral/12 - Reptile.mp3
sistermachinegun/Sister Machine Gun - This Metal Sky.wmv.MP3
lpd/The Tear Garden/1993 - Sheila Liked The Rodeo/03 - Sheila Liked The Rodeo.mp3
skinnypuppy/Remix Dys Temper/04-Killing Game [Autechre Remix].mp3
sistermachinegun/Sister Machine Gun - Addiction.MP3
skinnypuppy/Process/11-Cellar Heat.mp3
nin/The Downward Spiral/13 - The Downward Spiral.mp3

(title from now i'm nothing)

17:26 May 12, 2013
23:26 May 4, 2013

Terribly sorry about the subject. How embarrassing! Of course it should read,

"Are applications of optical responsivity spectra calibrated to the representative anthropic idempotent?"

Certainly won't be getting into any sort of respected peer reviewed journals with that sort of lack of precision...hell, it'd barely pass at "Applied Optics"

22:08 May 4, 2013

Jimmy Dean?:

motorbike engine roared to life
too loud unmuffled as a cry to empty streets
loud enough to cover up the cries of children calling you a nerd
loud enough to cover up the fighting of mommy and daddy on the long
road to divorce
or worse
loud enough to cover up the divorce that never happened that would
separate you from the cadre of freaks you wished to join
22:06 May 4, 2013

Slavic slaves' saliva salves solved Sylvia's salvia salvage.

20:20 May 4, 2013

bye bye livejournal:

Dear duisternisvos!

We noticed that your account duisternisvos has less than three entries and hasn't been logged into in over two years. LiveJournal is deleting inactive empty accounts. Pursuant to our housekeeping policy, your LiveJournal account duisternisvos is scheduled to be deleted in 15 days.

If you wish to reactivate your account to avoid this deletion, please visit http://www.livejournal.com and log in within 15 days of this notification. If you do not remember the password for your account, you can reset it following instructions over here.

not that i ever knew thee

12:34 May 3, 2013

My entire side of the war just won

16:40 May 2, 2013

beh, my beautiful taxonomy of metalexicological ontologic nomenclature! i must resist thy sweet allure!

13:01 May 2, 2013



i love timelines

12:45 May 2, 2013

all meaning is imbued

10:40 May 2, 2013

I never know how to feel about quoting irc://irc.mozilla.org/#ateam even though its clearly public...

well, this is too zeitgeist:

10:20 < armenzg_mtg> jhammel: I forwarded you the email 10:20 < jhammel> armenzg_mtg: heh, well, i have it in my inbox ;) my inbox is, um... 10:20 < armenzg_mtg> jhammel: now it is at the top of it! 10:20 < jhammel> well, you know how ctalbert declared email bankruptcy at some point ;) 10:21 < jhammel> armenzg_mtg: heh, sadly that has become my prioritization system 10:21 < jhammel> which...really doesn't work :(

And...it's really true

08:40 May 1, 2013


01:58 May 1, 2013

oh fuck yeah


15:24 April 22, 2013

the mainstream alternative

16:42 April 21, 2013

all history is revisionist

16:27 April 21, 2013

Ole' Painless is for pain

14:07 April 21, 2013

the problem with many atheists is that they believe in atheism

13:52 April 19, 2013

Are applications of optical responsivity spectra calibrated to the representative anthropic idempotent?

12:03 April 19, 2013

Kamikazes came 'cause chaos reigned and rained under their reins in their plain planes over the plains

11:56 April 19, 2013

Hithero Horatio heightened hyte Hirohito hence high Hibernian hyraxes

15:03 April 18, 2013

Big Brother is at it again, and I don't mean the guy that gave you noogies


Kill CISPA, Kill it dead! Go to http://www.sitesnotspies.org/ and get pissed!

11:18 April 15, 2013

post a post apropos C.W. Post's posts' post-it post office price tag post-haste

14:46 April 12, 2013

What did the cuckold say to the bull? Take my wife, please!

12:44 April 12, 2013

Lawyer: Isn't it true you're a pedophile?

Defendent: No

Lawyer: Ladies and gentlemen of the jury, are we going to take the word of someone that's been accused of pedophilia?

12:43 April 12, 2013

from the Navy's own mouth: "In February 1903, the United States leased 45 square miles of land and water at Guantanamo Bay for use as a coaling station." (http://www.cnic.navy.mil/guantanamo/About/index.htm)

i'd love to add right after that: "... We sure abused the hell out of that, didn't we?"

11:29 April 12, 2013

it might be at bad taste, but i always wanted to fly out to the plant at fukushima and put a sign on the door that says "gone fission"

09:05 April 10, 2013

Reading http://www.karlgroves.com/2012/04/03/captcha-less-security/ , I was going to ask what would be feasible to do for comments, where I want anonymous users to be able to do so but obviously don't want SPAM (filtered or otherwise). Of course, you have to log in to comment there, so... o_O

10:17 April 8, 2013

I remember when people talked about technology serving humanity. You don't hear much about that anymore

20:54 April 7, 2013

How the fuck do you find an open source thesaurus?


This is a long standing problem. As a writer and lover of nomenclature , I fequently find myself wanting to express a concept maybe related to a word but not quite that word. (Aside: a word of advise on usage of thesauri: these days, the above is my primary usage of these catalogues of synonyms. In my youth, I used thesauri to look up (ahem!) "cooler" words (and, more validly, to avoid repeated usage). Today, IMHO, I consider this a Bad Idea, or at least a bad way of thinking about the problem. Writing, like, what everything?, is a manifestation of intent. Words carry connotations; word choice should be the choice to convey precisely what you want to say. That said, do whatever the hell you want.)

So for dictionaries, after several years of wikipedia fueled desire, http://www.wiktionary.org/ appeared and garnered my canonization as dictionary of choice. I hate the mediawiki software, but that is more than offset by ramifications of a lexicon for, of, and by the people. It is not ad-hampered. The definitions are basically good, or as good if not better on average than any free online dictionary (it is the pursuit, not the cost, that is of primary importance to me). But while Wikisaurus could gain my blessing...it just isn't there yet, in part from my back-seat opinion because mediawiki isn't good software for a thesaurus (that is to say: for word relations). But for whatever reason, it never shows up in my search results for (e.g.) synonym complexity and when I have tried to use it, often my word wasn't found (nor even a placeholder!). I'd feel worse about not helping it off the ground if mediawiki wasn't such awful crap that is essentially a daily frustration (where the fuck are sectional permalinks in 2013??? Oh, and whoever thinks the redirection and/or lack of redirection is cute and/or clever...I wish upon you that Thesaurus was actually a large dinosaur, ten times the size of T-rex, that wants a you for a nibble). Several years ago, someone -- maybe Ian Bicking ? -- gave me a link to a open source/open knowledge thesaurus but somehow I lost it. I have subsisted on the poor man's approach of googling "synonym <word>", but its time consuming, the free (as in crap) thesauri are often of poor quality (ya know, so you can buy the pro version or other product; its a feature of capitalism!), and the ads! The ads are so awful! Popups, lightboxes, screaming monkeys... whatever it'll take to annoy you into apathy. There was a site -- can't recall nor care to -- where you had to answer market research questions to get your synonyms. Nice. The Robot will soon be complete!

Googling open source thesaurus didn't yield much. On my search adventure, I came across http://www.vocabularyserver.com/ which looks cool but not usable for my purposes (or at all? Really its about word relations of which what I want from a thesaurus is a subproblem), http://www.cs.utexas.edu/users/jared/aiksaurus/ which didn't find the words I was looking for or give any way to add them and the URL (human-facing URLs ftw o/ .... at least if you're on the humans' side, which is of course (literally) the only side) let's me know its basically not supported, and http://wordnet.princeton.edu/ which is another word-relation based thesaurus (which, btw, is what I consider the correct approach; albeit donning my writer hat I still need a front-end for actual use as a thesaurus) which looks pretty cool but still not really fleshed out enough in terms of data nor does it seem possible to modify entries, which is kinda necessary for what I'm calling "open". None of these were the site I previously used, which I still have no idea what it was. There were more results; those were just the top three and kinda the only ones that were actually what I was looking for, even remotely.

18:46 April 7, 2013

So it is a word!

From http://dictionary.reference.com/browse/extance :

Ex"tance, n. [L. extantia, exstantia, a standing out, fr. exstans, p. pr. See Extant.] Outward existence. [Obs.] --Sir T. Browne.
13:48 April 7, 2013

workflow == state machine

13:32 April 6, 2013

via the form of its enactment, Semantic HTML is a self-invalidating term

From https://en.wikipedia.org/wiki/Italic_type#Web_pages, sans markup save the link of interest:

Conversely, if the italics are purely ornamental rather than meaningful, then semantic markup practices would dictate that the author use the Cascading Style Sheets declaration font-style: italic; along with an appropriate, semantic class name instead of an i or em element.

I can't imagine anyone who is capable of understanding (herein) Semantic HTML even at the most rudimentary level would even consider using an <i> element "purely ornamental"ly unless they knew the rule and in breaking affirmed the rule (see also the fragment http://k0s.org/blog/20130324210337 ). That is, given that the semantics of the quoted block itself is correct.

And if you agree with that....what is said here?

Playing with a dead snake again. My apologies. I'll put it down and try to remember not to pick up another with this as my lighthouse

12:54 April 6, 2013

In a species that does not raise its young, one may ask, "Why have gay males?".

16:35 April 5, 2013

IANAL, but...

Happened to be reading https://www.eff.org/deeplinks/2013/04/are-you-teenager-who-reads-news-online-according-justice-department-you-may-be :

... making it possible to prosecute a user for accessing website for a purpose other than intended by the publisher.

So, given that, if you're reading this, your intent must be under the law service of the Monican aegis . Wrong thinking is punishable. You're either with us or against us.

16:07 April 5, 2013

From some of the people that brought you (in the loose sense) the Electronic Frontier Foundation comes righteous defenders for today's information superhighway...


Internet Frontier Foundation

Who's defending your inter-rights?

IFF. And only IFF.

21:04 April 4, 2013

It would be nice if there was a virtual lounge where "idea men" hang out and contemplate ways to solve problem, perhaps to act upon.

Inspiration: the quoting problem: http://k0s.org/hg/config/rev/2454d5a1728b

I wrote a python script to quote crap for me so that I could actually use logic (vs. that bash hacker for slackware crap I used to do) mostly so I could have a hotkey for it: http://k0s.org/hg/config/rev/bc8d098a2474

I briefly looked for something like http://k0s.org/hg/config/file/tip/python/quote.py for linux in the wild that'd be pretty generic, but quick googling didn't turn up anything, plus having something I can be insured is installed with http://k0s.org/hg/config is a worry off my mind.

Anyway, </background>

So obviously this isn't an interesting or clever script. But it got me thinking...what is the right tool for the job? Obviously probably not one right answer.

But...*It would be cool to have a forum where problems could be considered and solutions explored.*

IRC seems a no-brainer. But extant IRC culture, and maybe tech culture in general, seems to be about fitting a solution to a problem. What I'm talking about is more of a forum for understanding problems without necessarily even desiring a solution. Exploring "problems". General pontification.

Anyway...back to the real world

11:29 April 4, 2013

my <body> language is HTML

10:19 April 4, 2013

pundits pontificated the pontiff's poutice

19:48 April 3, 2013

Cure?: Re: queue Reed's quarry curried for the curation of Curies' curios

19:47 April 3, 2013

The Manson's man son's mansions were mentioned in a mason's MENSA motion

11:51 April 3, 2013

Does your battle against obesity make you want to invoke a jyhad?

Try: Mu-Slim !

The only halal weight loss supplement for Mohammed's supplicants

Now an approved part of the Caliphornia diet

10:21 April 3, 2013

if you need any help with BASIC I'm your GOTO guy

10:45 April 2, 2013

My most recent amusing 10 Mozilla blog posts... my #webstory

14:07 March 25, 2013

evidentiality - love this definition

From http://en.wiktionary.org/wiki/evidentiality :

evidentiality (uncountable):

(linguistics) The encoding into a language of the source of information being communicated, so as to distinguish (for example) hearsay from something actually witnessed.

21:03 March 24, 2013

for shorthand that doesn't exist...

While I raised it in an absurd way and under the assumed (or was it presumed?) guise of a fictional character (and I, I can guarantee you, am not fictitious! -- so many to choose from but let's cite http://k0s.org/blog/20130211190957 ), I have in the past several months needed precisely such a shorthand as desire as expressed for in http://k0s.org/blog/20130302172103 .

To put more plainly: I've found myself writing texts where there is a strongly implied clause (or context or contention) that may be deduced -- as was intended! -- from the text. (In fact, though the reader need not care about the fact nor be aware of it and hence the parenthetical sentence since I'm not sure of relavency, the fact that such may and should be deduced from the text is the main point that the author, me, was trying to convey in the text.)

I have found it "the Thing to Do" in the cases I'm considering here (which could be a subset of those of the above paragraph) to make explicit, parenthetically, that which is implied and deducible. Point at the result of the alchemy, as it were.

"But!" one might say who was playing Devil's advocate , "Calling out the result of the deduction that the reader is desired to undergo implies that they have not undergone it! It can be seen either as a Cliff's notes form, or the author steering the audience as some sort of cheap trick, the reader will perceive that the author didn't understand their own point! It contradicts exactly what you're saying you're trying to say!"

"That would all be true," I would say to Satan's attorney, "Except by pointing to the very thing that, via communication of what I am saying to the reader, is implied that needs not pointing out, I am instead drawing their attention to the gestalt as bifurcated via the eureka moment itself and in fact pointing out that, via communication, we, =author+reader, now have a particular understanding of a thing. The pointing at the forbidden, since we both understand why it is in bad form to do so, is something I am doing here because we both know what it means and it is only forbidden because that would mean our communication does not exist and I am, in fact, showing that it does, and if you understand that, then we understand each other in a, pardoning the word, subtle way."

So, yes, I want a short way of saying/implying all of that. A metaphor would work, though it'd rely on a shared mythology. I can't think of an example right now, though I'll put my mind to it. (I also thing a single metaphor as universal shorthand would likely become cliche and therefore in misuse contradict itself. It is like a few of my students who would, for whatever reason, put Q.E.D. -- non-ironically, I would assume, but the times I raised the issue via red ink it was never commented on -- following exercise where it didn't apply. Q.E.D. has a rather precise meaning. I have rarely used it, academically, even in situations where it did apply. In fact thinking too far into this hanging waiting-for-a-) (no, that wasn't it, nor is this one), there are strong parallels between what I want and Q.E.D. as a term and its associated meaning and implications. Nomenclature is what is desired, of whatever form, and though the definition should be precise -- as illustrated by the word choice: "point" -- phraseology may be invoked erroneously regardless of the type of phrase nor how precise an ideal NLP when fed the context would measure the precision (or inversely, fuzziness) of any particular phrase. Language is a medium, not in general an expression of the inherent as such. Oh thank typography and encodings, here comes a ). How does one say that? Playing with thought and language aside, my contemplation is furthered as far as that goes, but I have not yet an answer.

So I was intending to write this blog post when I found an example whereby I could make this more concrete. Preferably a short, simple one. And it would have to be noncontrived (as dictated by the form of mathematics -- Q.E.D. that, bitch!). That said I intend to write many blog posts I haven't yet written (and may possibly never write, unless you got some idea-offload-points for me) and am kinda surprised I found an example AND still cared about the problem. Today I stumbled across (context, as writer's discretion, unimportant; "the reflection of the Universe" if you need some bullshit answer):

subtext v subtexts

You can ignore that bit about, "It's subtle". That's mostly making fun of people that would place that after the three words that strung together actually form an idea. It's a dead herring .

So there is the explicit.

The parenthetical implied calause isn't there. Let's add it! It would be (guess!) e.g. "(of a nature unfound vis-à-vis 'text v texts')". The exact wording may be cast of the nature of mind.

So, checkpoint here. This is complicated. Let's write the whole thing:

subtext v subtexts (of a nature unfound vis-a-vis text v texts)

(You could also have the shortened less implied version, which if I was thinking about it for as long as it's taken to write this thing I would probably choose in preference. Oh wait, I have been thinking that long about it! subtext v subtexts (vis-a-vis text v texts) . Yeah, lookin' good! But not important for the purposes of this text. Or is this one of those, er, nm)

So. If you don't understand this statement....I'm sorry for wasting your time. I can't really go into that. If you do understand what the above example sentence (fragment?) says, even if you disagree with it, what is going on here? And what am I trying to get out of it?

Time to start popping stack()

So, regardless of whether I use my original parenthetical clause, or the shortened, more implicit parenthetical clause presented in a (main-level text) parenthetical clause (no, that last one wasn't one, that was me just being helpful, strangely; probably screwed that up with this one), they are both saying, parenthetically, what is already directly implied from the statement "subtext v subtexts". So it is redundant. And we all know that's bad in writing. Furthermore, if the author made such a statement in their presented text, as a direct consequence of the redundancy and the nature of such a statement the reader may deduce that the author, in incurring the redundancy in light of their work's evidentiality (to exemplify, the comprehension of the text subtext v subtexts as subject of a study including the presentational context, which therein already implies the proposed parenthetical (contrast: text v texts) . Yeah, had to vary the wording up a bit there for my own well-being. I'll probably do it again.) it is exhibited that the author did not understand or notice the redundancy, despite the fact that it is in direct opposition to the substance of his/her statement!

Common ascribed or inferred reasons are a lack of comprehension of the author of his own purported ideas or a contradiction of professed purpose vs internal purpose (e.g. manipulating the reader vs imparting collected synthesis of psychic explorations/studies; also, this characterization is applicable regardless of the author's conception of their own intentions). But the source of the deviance does not matter; what does matter is that the deviance exists. By its existence, the candidacy of not the work but the author (you see that, don't you?) as professor of ideas exhibited therein is dispelled. The validity of the work, as language inferred, is unchanged; its comprehension shall render as any synthesis of (i.e.) text, the light cast upon the author as exhibited by the disparity between the (as taken herein) text's comprehension and their misapprehension of their attempt at profession being a factor as such unremarkable of the environmental context within a work is interpreted. The author, however, has let something known of himself via this fault that, having temporal existence in addition to touching upon ideas, imparts causal consequences via implication.

And because it feels about time for a flow-breaking quote that ends with an explanation point:

"Enough of these begats" - Leto Atreides II, _The God Emperor of Dune_, Frank Herbert, who knows when it was actually published but google says 2008 at http://books.google.com/books?id=Aow3MjNEvgkC&dq=enough+of+the+begats+dune&source=gbs_navlinks_s so it must be true, confirming my theory that my reading of this book circa 1990 was the result of a trans-dimensional phenomenon, as yet unexplained and potentially inexplicable within the confines of casual three-dimensional constitutive postulation. Q.E.D. [Inline footnote: the very conveyance of this exact quote as reported empirically observed in multiple "origins" (really publication dates) (i.e. alternate timelines, as oft described in contemporary trans-linear-temporal hypotheses; adjunction: QM) has been casually speculated to be (e.g.) intrinsic to the quality of the quote (in the reference) vis-a-vis the observor's appreciation and remark upon synthesis, likewise and as an axially orthogonally equivalent of the same, a measurable "frame drag" constant apropos the translation of the (observed) times of publication with a extradimensional and therefore unmeasurable (interally to extant 3D casual models, anyway; if higher order effects could be formalized and their equations derived from our convolution of empiricism, then we could conceivably measure them, since we are also part of this higher-order U/universe. Is there a bridge?) constant (for simplicity) specifying the exchange value of (hypothesized) vacuum energy in our 3.x-Space to local (that is, local in terms of the relation of our 3.x-Space to N-space, the Universe, which via conformal mapping may be expressed as e.g. a point in defense of our extant notion of locality) information richness (as intentionally undefined due to lack of proposed forms of laws of information mechanics as such; the term 'information porosity' (alt: 'information pulverability') has also been proposed. 'The communication constant' or even 'communicability' is used, informally. Stop. I can't do it anymore. Or, more sadly, I really could. This "Inline footone" is all utter B.S. as bespoken titularly. I was kinda curious if it would be just synthesized through ingestion for so goes the processing of its environment. In case your curious, I was assembling from tagents invoked of context (the lack of original publication date; wth? Who cares about the print run?) and the appeal to ridicule in getting time-travel out of Occum's razor as applied to the misreading of information with my own unsupported thoughts, though presented as through a distorted lens and representing with intentional error, on i.e. the meaning of the speed of light in connection with information mechanics in a transdimensional universe. I suppose explaining the joke takes all of the humour out of it, but then... Despite the mocking and glib tone of protest against the firmament of formalized (Western) logic, and yet also (I hope!) using it as a vehicle appropriate to my communique, I am genuinely interested in..the topic, and the rest, while perhaps joking without being funny, is meant illustratively. I hope I can look back on this "footnote" and say the same.]

Taking a step back from the physical manifestation of words a bit to my own intentions, I don't pruport to prove anything here. I am trying to be very careful with word choice to support what I'm actually trying to explore and say, but none of this is intended as formal or rigorous in any formal or rigorous sense. I'm mostly trying to be expressive and hopefully illustrative and exploring this idea. It is a weird thing to go into this much depth on...even for me! I am surprising I find it as fascinating as I do. Maybe it is the tip of an iceberg of, um, gold...maybe it is some minor thing that is subtle, at least to me, that I can see but can't quite understand. The assertion that, conclusively, the author is unmasked as illustrated through exposure of parenthetical or otherwise conceptually subtextual through rendering as textual

(...to be continued...)

20:44 March 24, 2013

cf. http://k0s.org/blog/20130324200321

"Man is the microcosm of the macrocosm; the god on earth is built on the pattern of the god in nature."

From http://www.blavatsky.net/talk/bnbasic/macrocosm-microcosm.htm It was a random google search result in a rapid-fire of them.

I have no idea and don't want to know. All I can say from that opening sentence: how stupid. Not only did the authro manage to go anthropocentric immediately (and in fact elevate us monkeys to straddle the divine, I can only assume sexually from our base nature), he also manages to reduce scale symmetry, as a mystic property, to a retarded cliche that an idiot would use as a bar pickup line to sound smart. Make sure you carry your copy of Neatchu with you! Notice that absolutely no Communication takes place in this piece of crap pseudomystic cargo-culting

20:03 March 24, 2013

So delicious you could eat it:

"...the commonsense conception of information is semantical, but the mathematical theory of information is syntactical..."

From http://www.thebestschools.org/bestschoolsblog/2012/12/29/john-searle-information-theory-start-agreeing-terminology/


14:27 March 24, 2013

subtext v subtexts

It's subtle.

14:25 March 24, 2013

...and the funny thing is....

Re: http://k0s.org/blog/20130324133130 , it was written concurrently with getting netflix-desktop working due to "the hard work of programmer extraordinaire, Erich Hoover". No, I don't know who he is, haven't even googled him yet, but figured that since I'm quoting the excellent instructions at http://www.techrepublic.com/blog/opensource/how-to-get-netflix-streaming-on-ubuntu-1210/4019 and his software actually worked for me, he deserved to be in the quoted material.

The coincidence was pure coincidence. I've looked before (like, more than a year ago) about if netflix + ubuntu was possible (e.g. without a windows install or a desire for one) and... it wasn't. But thanks to the perseverance of people like this Erich Hoover guy I don't know, retarded proprietary stacks fall to ingenuity. It is protection of IP through idiocy, but though its both hard and painstaking, idiocy will fall to the flame of a bright torch if its bearer so persists.

I have been getting caught up across the board (which is a very very wide board, as far as such things goes) this weekend. I was recently gifted a netflix account! Yay! And Thank You! ...that I have sadly underused because this quarter has been busy as fuck (and I haven't been dealing with that well either). Since streaming is such a great part of their service -- that is, if your operating system is supported and all corporate-approved -- I figured I would google again. Bingo. The link above, and here again:


So I set that in motion awhile ago ("It does, however, take some time." - ibidem). While that was all happening, I was cleaning out my gmail inbox which of course had suffered due to the high expansion coefficient of my work inbox. And...I came across the letter which I posted together with my reply as a blog entry . Not planned to be karmic, or coinciding at all. Just happened.

And to be fair, as amazed as I am that netflix-desktop works for me, let alone worked with the said instructions, no improving or nothin' (despite two mysterious "failure" messages, for the wine mono and gecko installers somethin' and somethin' -- I should have recorded them, but figured that this meant it wasn't going to work anyway; being perfectly honest, after the whole blindly-follow-instructions-to-something-I-want + apt ppa add, I was wondering if the whole thing was just a scheme to jack netflix accounts of desperate linux users), it is clunky. Its running stuff under wine on a system with no native window$ via silverlight, which I wasn't joking about being a dying piece of technology and there are reasons for that. If it was performant, perhaps it would be, though to my chagrin. I can't manage it like a desktop-native program. There are rendering issues. There is slowness. Don't get me wrong, I am very happy and astounded it works as well as it does...and it works!

But no, that doesn't contradict anything I was saying in my reply, which towards the end was being written to a badly buffered "Downton Abbey" in the background. The amount of time people like me, and people like that unknown guy Erich Hoover (after all this praise of an anonymous hacker, I hope I don't google him and find out he is diametrically opposed to me on all axes save netflix-desktop), have lost because yet-another-company made a yet-another-proprietary-stack choice that will end up costing them time and grief in the end and which, in the stack-sense, takes them right out of the running of innovative tech.

IANAL (no, google it, its not a porn term if you don't already know it), but I intend my usage of correspondence to me with no explicit confidentiality clause and about nothing that should be confidential is fair for me to quote here. If not, then fuck it. It should be. I deleted the name of the netflix employee that contacted me and everything else was very generic.

Now, why did I do this? Well, I don't know. I don't expect netflix to change their ways. It was the right thing to do, but in a present where there are so many right things to do and so little time, was it worth writing, let alone writing this commentary (and this meta-mise en abyme commentary on the commentary on the parenthetical ... )? shrug I don't know. I felt like speaking up. I don't expect to change anything, but ultimately the power to shape the internet's and humanity's future is forfeit when we say nothing and watch idly while greed and entitlement are fed from the flesh of the giving. There is the reverse, which is not untrue, but "Power is given, not taken" has always resonated with me (probably ultimately unknown in true origin, but I'll cite http://community.eveonline.com/ingameboard.asp?a=topic&threadID=1109436 since I agree with the arguments and it is about the same theatre, different battle; its symmetric duo, "Power can be taken, but not given" seems to be Gloria Steinum ). Yeah, its much easier from behind the shield of email than the many times I should have defended myself, for which I regret, not for my sake but for that which actually matters to me: the freedom that is worth eternal vigilance.

I hope this doesn't sound like I think I did some great thing. I really don't think that. I'm just (over?)analyzing it because I am both amused and am learning from the analysis. My most likely impact, if any, is upsetting and confusing the poor recruiter that wrote me from netflix. S/he probably doesn't care about their job save as a means to make money. Who knows? I do think this sort of "being a dick" is entirely appropriate, though, and in fact a Really Good Idea.

And, to be fair, it was much more fun to write the original letter and this follow-up than cleaning out my inbox for the past several hours has been. But back to it. Who knows? Maybe I'll even get to program today! Or write a fiction or what not. I see "Downton Abbey" has buffered a bit...so maybe it is watchable now. While in the vein of calling shit out, that rate I'm supposed to be getting from Comcast? Yeah, um....more bandwidth please. It is a joke in this part of the Mission (my old, also in-the-Mission apartment was fine). Pay for the infra so that I'm not paying more for bandwidth than I was 15 years ago (not a joke!). 'Cuz you're going to have to anyway...and you don't want me to go all Michael Moore on you and shit.

Do you?

13:31 March 24, 2013

What can I say...I'm honored and I'm angry

Hi Jeff,

After checking out your LinkedIn profile, I think we have some opportunities at Netflix that might be an exciting next step in your career. It's a great time to join Netflix - as we grow internationally, our test developers are constantly solving novel technical challenges and growing their experience.

I’d love to chat to learn more about you and share with you what we’re working on. Let me know if you’d be interested in hearing more.


Hi ??????,

I am not looking for a new position at this time and am very happy at Mozilla -- exciting work, meaningful work, (well paying work), and great people.

That said, and meaning no disrespect, since software engineers are in high demand I would not be looking for opportunities with Netflix even if I was looking. I run linux, both for practicality and to further open source. Netflix's lack of streaming on linux has prevented me from really using the service to its full effectivity for years now. It would not be my first choice to throw my service at a company that not only doesn't embrace my ideals, but whose support of their opponent directly has lead to me not being able to use their product.

While I'm sure even if there was no technical barrier linux support would be, at best, "not officially supported", I imagine linux support would be very difficult due to using silverlight as a key component in the technology stack. Which points to one benefit of the OSS manner of unboxed vs. boxed: silverlight is a dying beast. As best I can tell, even Microsoft doesn't care about silverlight save for the relatively minor revenue it brings in. It is my objective belief that silverlight will ultimately become unsustainable to netflix and that netflix will have to invest in undoing the commitment to this proprietary piece of stack that it should have never used in the first place. Perhaps work is already underway. I would be very surprised if engineers did not already speak of this at your company. As an engineer, what incentive would I have to come to work at a company with such an obvious technology problem as well as the forecasting problems associated with it? It does not reflect well.

I don't say this to berate, but I do hope that lessons have been learned from this. I do like your service and, in contrast, what netflix has done (though purely for profit apropos motivation) in diminishing the control of existing media distributors I can get behind. My apologies for the longish and lateish reply; please note that any unexpected frankness is meant only as what it says: being honest for the sake of honesty.


12:36 March 23, 2013

time for the freaks to take back the night

04:03 March 23, 2013

There is substantial misapprehension concerning substantive subtleties of English.

00:52 March 23, 2013

The Machinist : a dropped take

(One of the things my mind uselessly does is combine surface thoughts with randomly accessed memories. While mostly a waste of brain power, it does make for some larfs changing dramatic lines to outtakes.)

Trent Reznor...er, Trevor Reznik: I haven't slept in a year.

Stevie: Jesus Christ!

Trevor Reznik: Sorry, slip of the tongue. I haven't showered in a year.

13:57 March 21, 2013

I think not: "Upload a header photo and make your profile stand out on Twitter."

13:56 March 21, 2013

I assume you presume to resume your résumé?

09:17 March 21, 2013

Too small of a form factor for me, but pretty cool! :


01:26 March 21, 2013

I just donated to Mozilla and got a limited-edition, 15th Anniversary plush red dino - available only to supporters. Join me in wishing Mozilla a happy birthday and get yours before they're gone at http://bit.ly/ZoNIjM

11:12 March 19, 2013

Who do I stab to get rid of spam again? Everyone?

15:13 March 18, 2013

the shape of the universe is a black hole's event horizon

13:43 March 18, 2013

As summer approaches, the earth gets closer to the sun; spring was so named for the value of the spring constant being unity according to Archimedes' model of the heavenly bodies being attached with springs. Of course, in the southern hemisphere, being bizarro-land, everything is the opposite. This is fortunate for other reasons, since were it not for gravity pulling up instead of down, the southern hemisphere would be nigh uninhabitable as everyone would fall off the globe.

12:53 March 18, 2013

The first rule of DRY Club is don't repeat yourself

...The second rule of DRY Club is...er, ahem

09:54 March 18, 2013

ManifestDestiny: the way of the future or just more American hubris?

18:02 March 17, 2013

Re: Love n laugh - 28 (Monterey )

> Hi... I am just a girl who loves to laugh and have a good time.

Hi. Your ad sounded great since I am a guy looking for a girl. However, I hate to laugh. Its so ungainly the way it contorts your face. It's like the bowel spasm of the mouth. And the sounds that come out -- "Ha ha ha" -- remind me of apes at the zoo. Disgusting. This isn't surprising, considering that laughter is a social lubricant which evolved as a signifier to others that everything is okay. Fuck that, I say. We don't glorify other involuntary reflexes; I don't see why we make an exception for this evolutionary throwback. People that laugh look like clowns, but if we give too much positive reinforcement to this form of complacency we'll end up more like the monkey shocked for obedience by a 1984-esque control agency.

LOL. Not.

14:00 March 16, 2013

the assholes walk upon the backs of the kind

15:52 March 14, 2013

we are beset on all sides by invisible enemies

13:33 March 14, 2013

fluxbox menus and the power of pipes: the short short version

So I have a thing as detailed in http://k0s.org/blog/20120810005157 that makes a fluxbox menu from http://k0s.org/programs.html . Pretty friggin useful.

However, what I would like to do is transforms (probably not with XSLT, but who friggin knows since who knows when I'll have time to cobble my poor feetless children) for classes of shit.

For instance, there are programs that run in an xterm (or other terminal).

Then there are programs that just display a message.

Yep. Short short. Something left to reader, something

12:25 March 14, 2013

nomenclature ftw

14:27 March 13, 2013

"So the panda came in and set off a firearm, resulting in one casualty."

"Is this that 'Eat, shoots and leaves' grammar joke again?"

"No, this panda was just a real asshole"

13:27 March 12, 2013

oh you and your websites. you know they're just a fad

15:00 March 11, 2013

much ado about a tempest in a teapot

(See also: http://k0s.org/blog/20130311150002 )

15:00 March 11, 2013

Everyone's seen the modern film adaptation, but have you read Shakespeare's original play, "Much Ado About Mary"?

12:20 March 11, 2013

the best part about not being a kid is realizing that what adults don't tell you is that adults are basically kids that forget that they shouldn't take themselves seriously

20:00 March 9, 2013

space is falling faster than light

12:57 March 9, 2013

"What's that you say? You want me to force-feed you alphabet soup?"

"You're putting words in my mouth."

14:52 March 3, 2013

re http://k0s.org/blog/20130302165721

The [sic] ¥ as copied directly to ensure capture of the anomaly inherent in propagation.

14:51 March 3, 2013

re http://k0s.org/blog/20130302172103

Author's note, apropos the majorant context of the long parenthetical: it would be nice to have a short-hand for this considering its prevalence as literary mechanism

17:21 March 2, 2013

re http://k0s.org/blog/20130302164606

The frame, of course, being a visual metaphor. The mechanism of "transference" (as perceived) of roles from one state machine to a dual via application of reciprocity depends upon the mode of transcription of the relational model of the formalization of state, per the author [Ed note: should be 'inscription' v 'transcription']. The method by which an author denotes text flow, apropos context ibid., is of an incomparable form to that postulated from the metaphor, a literal frame of a painting communicative of state (or, equivalently, state of state, as implied and in fact redundant with the central thesis, but herein as done intentionally such that to restate in the face of the redundancy as essential to be recognized as inherent from the text (as a literary mechanism) in subtextual (herein, again: mise en abyme) dialectic with the reader to see the irony posed as appeal to ridicule whereby the reader in the spirit of all that is good walking back through entangled beards to, metaphorically, the trasmutation of hemlock to reason and laugh and accept that while it is not provable that the author is in fact the sort of thinker or even having percepted or existed as such, that to take anything other from this entendre is likely a fall from an informal fallacy to one of the formal variety. The exact reactions of readers may vary.) as presented as a system boundary.

16:57 March 2, 2013

re http://k0s.org/blog/20130302152731

16:46 March 2, 2013

re http://k0s.org/blog/20130302162859

now back in this sphere. Did the puppets spring to life? The molecules rescued from their zero-energy rotation?"

"Then to change it once..."

"Right. But now how many times has it been? How long have you stood here uselessly talking to me, thinking that I as the fictional author of a fiction was other than a puppet. Did you think it so? That I was above impelled?"

"You have always seemed-"


"But so I was, for so I was written. By me, if you want to think that way. And yet, not so. I am only glad I am too great a fool to worry about it."

"That's all there is?"

"I first conceived it as 'The cutting of the Frame'. We are such low and loathsome being and yet...we are so important, aren't we? '...in apprehension...' For so it was known and so the liar bearing the liar's mask was known since first self-deception was cast. But, such a temporal spin. You're right. I do sound a fool."

"I never said it."

"You were too nice to. I would not have been. So it is okay to be this idiotic man-monkey with fools that go pissing themselves in search of this imbued meaning in their suffering while there walk amongst us those who have been touched by those... Such is the problem with our position of rational thought. I slit that throat with Descartes' I guess, yet the blood on the knife was my own. The tenent of systems theory is correct. It is us that decided what our measurements meant, us that decided that dreams were the bubbles and we were the pond, and for our measurements mise en abyme-"

"And so we were ourselves."

"We closed the system. The author did. Whatever."

"For all stories

16:28 March 2, 2013

re http://k0s.org/blog/20130302152731

yet attempt so insidiously: to weave in this way your narrative so that one can suppose one might find it and suppose at the subtext of your myth. The shadows of the subtext at any rate."

"Then you deny it to be true."

"Since it is claimed without basis, as just a mad scrambling narrative... Yes, if you want me to be explicit. I don't need to deny it for I have seen nothing to it."

"You've read it?"

"I've read your state machine thing trying to sound like David Foster Wallace. I...liked it, I guess. Its fairly incoherent though I assume that's part of what you were going for.

"He developed fractals for IJ's structural form. Fractals. I can't even suppose to do that, and I've worked in science. Did you understand it?"

"I understood what you explained it means."

"And you deny the reciprocity principle applies, that a state machine describing another state machine cannot be freely interchanged?"

"What does it mean that they may be 'freely interchanged'? I see it as the cheapest kind of trick. You put forth a hypothesis pointing to the space of undefined terms that you conveniently claim the proof proves are undefinable."

"For the page as yet unturned, who would guess it ending blank mid-sentence on rising action? The page is yet unturned

15:27 March 2, 2013

re http://k0s.org/blog/20130302143624

"I think, I feel, I breathe, I percept. I speak these words and walk doing so, gesturing. You cannot deny that I feel these things."

"Where does the dream go when the dreamer awakens? When the dreamer donning their own affection as masquerade speaks to another spectre in the thoughtscape of the lunar umbral occlusion, does the dreamer wake to wondering where does abide the conciousness they were conversing with, or has it vanished into ether?"

"You told me once that when you were a child that a character amongst a recurring cast once asked where he went when you woke."

"No longer can I recall were that true or merely a fleeting imagining, make-believe I had convinced myself of. So you can guess how much of me is in this. I don't know anymore. I'm not even sure what the difference is."

"Since both are imaginings, both sides of your mind."

"For the span of time before our primate anscestors, down to rodents to even deeper, the terrors of dreaming...the uncarved nature of the universe. For we wake and, as men of science, men who have no argument capable of being invoked against rational thought, take the mind's mechanism as the network of cables spinning in their electrochemical sea from when we cast the first measurement. It is just a dream. And how recent in our past was this beyond knowing, and how still beyond so many that sureness....of measurement."

"And yet."

"And yet. We do not speak of it for then the walls of science come crashing down, the crowd burning and looting in their rush to egress that which they espouse so dearly but cannot even name, for to speak of it is to recall that it, civilization, rests upon the tip of a needle."

"'The laws describing any closed system cannot be complete within the scope of the closed system.' Whatever that law is. I am horrible with names, especially when they seem so obviously true once you hit them. I guess I have too surrendered my stance of neutrality."

"What days are these when science take their learning from stagecraft, and philosophers profess against knowledge, both smiling as they so thought in cunning secret and carrying the placards of the eccentric reading 'THE END IS NEAR' for none to see? While the young and still romantic may claiming thinking they speak the truth that they can conceive of this as just a dream....there is not a man that builds their pin-balancing act upon that."

"Your definition of nihilism, then. The pin does not exist."

"Never has been conceived as existed."


"Heh. Not this time. Your wit was always sharper yet underpraised. For my notoriety of carrying the sharpest blade my name more said. But I could not have guessed that it would claim the origin of grid coordinates."

"I did almost wish it to be 'vanished into the very ether itself !' for a part of me."

"... We are not awake yet

14:36 March 2, 2013

re http://k0s.org/blog/20130302141749

"Have you been keeping track? Of how many times they've swapped? Is it once? Twice? A million times and seven? Which one is this?"

"When people said that you spoke with great pretension but that what you have amounted to was sandcastles in which you catalogued the various ways of tilting at windmills, accomplishing nothing and vanishing with the tide, I have defended you and what you have, or so I believed until now, to those who held your future at stake, those with money and power and drive to get shit done. For I saw in you a genius, but like all genius one bordering on madness. Everyone saw the madness. Sadly, that is all I see today."

"Is it an accident, do you think, that such a complex and -- dare I say? Oh of course I dare, I am impelled! -- over the top metaphor that you tell others cursed upon me as an epithet is as appears in my writing? Though surely I think you mean, 'vanishing forever with the tide'."

"Are you claiming it does appear?"

"Would such change which path through the gestalt you beheld?"

14:17 March 2, 2013

re http://k0s.org/blog/20130302140735

"It is a very clever trick, and taken for fiction is both unique and compelling. I just hope you don't believe any of it."

"Believe what? That we are fictions in the mind of the narrator, lacking any more reality than the play of shadows on a screen imbued life through imagination? No belief is required."

"The whole thing is presented as a belief trick."

"They had forgotten they were playing. For so it felt so very real..."

"Which one? Yours or the collective reality?"

"What is the difference anymore

14:07 March 2, 2013

re http://k0s.org/blog/20130302140639

"Is this part of the story?"

14:06 March 2, 2013

re http://k0s.org/blog/20130302135843

"It's interesting as microfiction, though I'm sure you realize lacking narrative shape it can't be called a story."

"Under what name you call its form it matters as a fancy...how classifiers are built... It is, if I may beg indulgence, a crypomythic figment of one the stories that pass through life with me."

"If it speaks that truth, it cannot be called fiction."

"Can it not be an expression that in so it manifests happens to be the truth?"

"No. You are the author."

"And to what is this 'you' herein addressed?"

13:58 March 2, 2013

No one remembers how to play the games I like anymore, because they are old and too hard to play and ultimately they are boring.

But so I find this new game of theirs that has replaced them.

or are they the same?

16:14 March 1, 2013

a joke only funny to me

Since I mentioned The Furniture Guys incidentally at http://k0s.org/blog/20130223083404 recently, I thought I'd mention this bit that goes on in my head... Its not actually funny, and I don't know why I find it so amusing. They would always say on the show "You're not painting a masterpiece." So I'd roll this thing around in my head, "That's too bad that they never do masterpieces." I finally wrote them as follows:

On your show, you would often say, "You're not painting a masterpiece", or variants thereof. While this is correctly important to keep in mind for the scoping of the projects as presented, after awhile it made me sad. I realized that you were never painting masterpieces on the show. Why didn't you ever do masterpieces? Maybe, I dunno, get the Louvre to commission you or something. I think if you did more masterworks you would be more successful, at the risk of alienating your audience.

I don't know why it amuses me. I know its in poor form to laugh at your own jokes but thought I'd share anyway.

11:26 February 25, 2013

the biggest and most common mistake wrt workflow is that to assume by feigning ignorance of its existence that you can avoid it

11:23 February 25, 2013

on writing: apropos http://k0s.org/blog/20130225111322

A few subtleties:

11:13 February 25, 2013

obfuscated thoughts do cast a shadow in one's eye

10:22 February 25, 2013

If you don't put the cart before the horse, how are you going to make use of the already in-progress cart/horse-rotator-apparatus?

20:57 February 24, 2013

Now, what was that blog post I was going to write?

15:45 February 23, 2013

"He has little interest and almost no principle."

08:34 February 23, 2013

On being a guy and looking good

The best way to think about it is that realize that you are, essentially, a monkey, and that your attitude towards making yourself "good looking", as so emphatically quoted, should go with the presentation of the monkey as best as possible.

So most of this stuff comes to maintenance. You ain't paintin' a masterpiece, to quote The Furniture Guys . You're getting a monkey to the point that its going to look like everyone else's polished monkey that struts and frets its hour upon the stage.

Get a haircut. Take a shower. Shave. Put on deodorant. Clip your fingernails and toenails. Comb your hair, if applicable, potentially after your don your shirt. Maybe groom your ear and/or nose hair, if such is considered proper for the particulars of your situation.

Your outfit is an area where you can express your feelings and ambitions: if you are looking for an analog of females' grooming ritual, full of intent and meaning, then this is the closest you're gonna get, guys. So get creative here, as appropriate to the occasion.

And that's it! The important part is ending it here vs. trying to make yourself be some sort of piece of art, you silly monkey. Be a guy, if that's what you're trying to be, and play the role of guy and not forget that you're not a kid and you're not a girl. You're role is to affect protocol, not to be fancy, and you fulfill your role as a monkey by affecting protocol, not trying to be the most attractive. There's no reason to get all bent out of shape about it: you're just a monkey. If there's a fancy hat party or other sort of occasion, or, goddess-willing, some girl wants to forcibly dress you as a female and have their way with you as their "lesbian" lover, feel free to partake in these shenanigans in contrast to these guidelines. But by the same token, there's also no reason to try to present yourself like you're actually aesthetically pleasing: you're just a monkey. No male knows why girls find us attractive; all we can know, for sure, is for some reason they do, no matter how we gussie ourselves up or make ourselves for them some will find us attractive, some won't, and that maybe if we just focus on this grooming thing from the point of view of protocol that they won't really realize (or at least will be able to overlook) that we are just a gussied-up monkeys.

[Note: this is written, as implied, from a heterosexual male (human) point of view (and not necessarily the most typical, hopefully towards credence of the unification implied therein for that specific point of view). This is not to suggest, in any way, shape, or form, that any sort of validity of the piece is necessarily extensible to other gender-identification modes.]

13:19 February 20, 2013

it is the nested <sarcasm> tags that are so difficult to figure out

12:07 February 20, 2013

Constructing an opposing mirror for infinite reflections:

12:00 < jhammel|lunch> $var: sure, but i am flooded so i can't give you an ETA
12:00 < jhammel|lunch> how i wish i were physically flooded instead

Already I long for the days in the many chambered mind for simple reality, for though its horrors were deep and base, this extraordinary machine, built in haste suppressing contemplation, I fear more than what has come before

10:55 February 20, 2013

"Your surface thoughts show me that you think I'm mad. Could a madman talk with 10th dimensional elves on the trailing edge of time's inception?!?"

11:58 February 19, 2013

i generally like software that let's me use it to solve my problem in the way that i want vs software that tells me what problems i should have

10:19 February 19, 2013

What did git and mercurial say to each other following a sexual exchange?

git: thanks for the tip!

hg: thanks for the HEAD!

Not that funny, but I like it because it makes git look like a prostitute

23:05 February 18, 2013

"People think I'm stupid 'cause they put me that way"

-- Mike "The Situation"

16:46 February 18, 2013

what thread to apply how much attention to to what end and effect from a pool where the desired value for adequate is greater by factors than that available

14:40 February 18, 2013

serendipitous juxtaposition

http://k0s.org/blog/20130217185608 quid pro quo http://k0s.org/blog/20130211190957

18:56 February 17, 2013

"Will this shit fuck you up?" -- another $1e6 idea from your braintrust

Proposal: Probably not suited for network television, "Will this shit fuck you up?" is a show of hijinx and self-directed satire where our hosts, Mick and Mike, answer the title question every week regarding common household substances.

The pilot starts out with a brief discussion that drugs are just chemicals and that our household and common environs contain "literally dozens of chemicals" that can potentially get you "high". They affect the attitude that they have no real skill or idea of what they're doing as hosts. Or is that part of the illusion? the audience is left to wonder. Through continuous watching, the subtlety realization comes to the discerning viewer that the "joke" is meant to cover up the sad truth that while they are play acting this farce, Mick and Mike live horrible lives and their drug addiction conscripts them to this show where they essentially mimic and belie the immense suffering of street junkies to a target audience of middle-class caucasian 18-24 y/o whose brush with the tabboo of drugs has given rise to the myth of the burn-out as a modern-day Oriental (sic) ascetic.

Mick and Mike moved to their "lab", as they call it, but that really looks like a really trashed room from the day-rate hotel of some band of junkies. Strewn about one can make out a bunch of lighters, IV needles, bits of foil, glass pipes of various varieties, unguessable clumps of white powder, burnt spoons, black char, crumpled up pieces of paper, plastic baggies, containers of bleach, acetone, methanol, etc, stained clothes, and just about any other artifact of druggie lifestyle. But there is a microscope (never used) and a continuously lit Bunsen burner in a markedly delineated clearing on the otherwise cluttered coffee, and a "Lab Book" (title written in permanant marker with poor lettering), which Mick and Mike consult from time to time, looking confused but then speaking with great authority thereafter. Season two, if it pitches, will add a face-down body of possibly a mid-40s 1980's-era Metallica fan, replete with denim jacket of decades of accrued patch work and long greasy hair. The body will never be addressed or acknowledged in any way.

Every entrance to the lab features Mick and Mike donning lab coats and giving what feels a mandated speech regarding safety, including shot-in-the-dark stories usually having no bearing on lab safety. From the pilot:

Mick: "Safety is ... important!"

Mike: "Yeah, no joke."

Mick: "This is like totally fucking serious man."

Mike: "Totally."

Mick: "If you, like, fuck up, man? They are going to be dragging your body from a burning house."

Mike: "And that is why we always put on our safety goggles."

Mick: "Always put that shit on!"

Mike: "Those safety goggles can save your life man. For realz."

Mick: "And like the lives of your family. And, um, friends."

Mike: "Yeah, save your friends lives man."

Mick: "And your cat or dog or shit."

Mike: "Your parrot or something."

Mick: "Or a hamster. Or...ferret."

Mike [laughing]: "Ferret man?! Are you fucking-"

Mick: "We're getting distracted again. But that's because this is so important man. You can't fucking forget."

Mike: "Like maybe tell 'em what could happen."

Mick: "What could happen?"

Mike: "If they forgot."

Mick: "Oh yeah, right. Like if you forget to put on your safety goggles..."


Mike: "Like...there was this guy I know. And he was walking home in the projects. And he thought he saw some meth, right? But he was tweaking so he was like super-paranoid. So he didn't want to carry it so he bent down, picked it up and ate it. But guess what? It wasn't meth. It was broken glass."

Mick: "Woah!"

Mike: "He was dead like instantly."

Mick: "That shit will fucking do that to you."

Mike: "Yeah. You don't mess with that shit."

Mick: "Did he have his safety goggles on at the time?"

Mike: "Why no he didn't Mick."

Mick: "That's right. And that is why it is so important that you always wear your safety goggles when working with chemicals. Or you could end up like Mike's friend."

Mike: "He wasn't my friend, man. He was a total dick."

Mick: "You don't fuck with chemistry."

Mike: "I was glad when he died. I thought it was funny."

Mick: "I would rather face down like a whole biker gang with like knives and shit than fuck with chemistry. Okay? So take safety precautions."

Mike: "For realz man."

Following the lengthy announcement, the hosts' safety goggles remain strapped about their head at their hairline.

The lab is really the heart of the show. Each week, one or more common substances are considered for "Will this shit fuck you up?", in which the host tries to imbibe the substance by a particular mean -- smoking, injection, insufflation, oral ingestion -- and then review if the susbstance candidate did indeed get them high. The chief entertainment appeal of the show is that while donning a video persona of a junkie, the actual junkie nature of Mick and Mike when coming to the details of preparation and consumption of chemicals really comes through. The pilot's substance: plastic. Mick and Mike freebase (the method of the week) plastic to see if it will "fuck them up".

After the explanations and preparations are done, but before they have freebased very much plastic, Mick and Mike introduce a regular feature of the show: "From the streets". In this segment, a guest is introduced who generally stays for the rest of the show unless Mick and Mike piss them off too much or they wander away due to innebriation or withdrawal. Their history, which reads like testimony from an NA meeting, is presented as resume qualifications for being on the show. There is generally tension between the guest and Mike and especially Mick due to the resentment of being forced into the public eye for generally a life of regrets including the unmarketable skills of how to survive as a junkie; this is paralleled in subtext by Mick and Mike's own roles, but they being paid employees and in a different though more insidous and direct economic trap, and so to garner their social status, Mick especially feels empowered by making the guests feel awful about their own lives. While it is occasionally implied by guest or host that there is some sort of compensation given to the guests for their appearance on the show, it is never addressed outright or named, which considering setting, can only be interpreted as the exchange of controlled substance of some mediocre amount but sufficient to hook the guest.

The pilot's guest is Tyrone Black, a heroin junkie from downtown detroit. The initial conversation centers on what all substances they've done, Mick and Mike pointing out, often wrongly, what type of drug it is and factoids (which may also be flawed) about the drugs. Mick tells Tyrone about the show while he listens skeptically. Then Mick asks if he think plastic will fuck them up:

Tyrone: "Shit...I don't know. Why would ya wan a be doin that?"

Mick: "What if its like heroin but better?"

Tyrone: "Its fuckin plastic! You put that shit in yo lungs and they gonna get all fucked up. Yo be lucky you don't have a heart attack."

Mick: "So you don't think it'll get you fucked up?"

Tyrone: "I think you a damn fool. I think it will fuck you up, jus' not in the way you be wantin'."

Mick: "A skeptic!"

Mike: "I mean...it might fuck you up."

Mick: "Yeah, you were betting 'for'. I was undecided. I mean, what about the cough syrup? That fucked you up."

Mike: "That -seriously- fucked me up."

Mick: "You couldn't remember what you were wearing."

Mike: "Yeah, and that doesn't even make sense."

Tyrone: "You's a bunch of assclowns. Can I go now?"

Mick: "So you like mainline shit. How about you mainline some plastic so we can compare to freebasing?"

Mike: "Yeah, that's like science and shit."

Tyrone: "I ain't puttin' no plastic in my veins. I got enough problems."

Mick: "Come on, man! We're not fucking with you or anything. I got a spoon right here...I'm heatin it up for you. And what's this? A clean needle?"

Tyrone: "Fuck this shit. I'm leavin'. If I see either you bitches on the street...you gettin' stabbed."

[Tyrone storms off]

Mike: "And if I see you on the street I'm gonna stay clear of the puddle of urine where you pissed yourself. 'Cuz you're a junkie."

The guest plays the otherwise unfulfilled role of a tether between the escapist fantasy/nightmare platform and reality. The guest may point out directly things that Mick and Mike are under contractual obligation not to talk about, such as the stupidity of herein freebasing plastic. As a bridge between social contexts, it casts a light on the interaction of guests (junkies and other drug users) and hosts (junkies who have betrayed their social order, though in some non-obvious manner, for more junk, which in a very large part is junkie social order).

The second half of the pilot returns to Mick and Mike freebasing plastic and experimenting with/refining techniques for doing so. It is this portion of the show that really captivates the audience due to the high energy and the line between play-act and reality (and 'play-act casted as reality' v reality, etc) becomes blurred, as their junkie selves shine inevitably through any polish affected, intentionally or otherwise, for production. This feature creates an intensity where the audience is mesmerized by the experience presented from drug culture as Mick and Mike try vaporizing the plastic, shredding to tiny pieces and smoking through a glass pipe, dissolving in acetone, etc., all with trade talk which our polls indicates has hypnotic-type retention on viewers of all age groups.

The pilot ends in a manner where the show often ends on a "successful" experiment. Mike, having constructed a pipe whereby the plastic can be made to smoke in a manner slightly less dirty than outright burning it, is, apropos the title, "fucked up". Mick proceeds to join him, cheering him on. Mike passes out while Mick quickly trends toward incoherence. Since research indicates that characters acted innebriated has high appeal in what people wish to see more of in shows, even past the incoherent stage we expect high retention and also a suitable, if bleak and unpunctuated, wrap-down for such episodes. We do not anticipate audiences to characterize this as bleak comparative to existing media; nor is it less punctuated. While it is generally a faux pas to end a question-centered show without a verbose answer, we expect that while the hosts never repose the question and address it, their exchanges as exemplified by: Mike: I am high right now; Mick: I am so fucking high right now!, repeated several times in variants, will be explicit enough to provide closure the answer to the audience.

Often during the show, Mick and Mike (typically Mick) will answer unpresented voices off-set and more rarely address off camera. It will be clear from context (for a discerning viewer) that these voices belong to those to whom Mick and Mike are contractually obligated to. This provides an additional "character", which for a show with guest is merely three characters (although we do expect to have group guests as pertinent) is a boon. It is evident from the one side presented of these interactions that (quotes herein from Mick) that those off-camera think of Mick and Mike as "fuck-ups" and that Mick and Mike think of them as "assholes". This will also boost the sense of isolation upon which both the appeal and art ride for this project: the vast majority of the audience will be led to believe that they are laughing at the idiocy of these two people/characters irregards of finding them enteraining and possibly identifying with them, whereas in fact they are in fact on the same side of the bars as Mick and Mike, just in a different part of the enclosure. Viewers may pick up on some level the control executed here, but will dismiss it as presentation.

The show exists on multiple levels. On the level that will reach audiences, "Will this shit fuck you up?" is Entertainment, and another in a long line of "in your face" brashness giving credence that yes, Entertainment can still become more base and be amusing. While the subject matter and the speech and lewd language are too "adult" for a portion of the e.g. American population, it should fare well where adult is no longer considered novel, combining the appeal of reality shows with an market traditionally considered far afield: the drug alterno-culture and its afficiadoes which is becoming rapidly mainstream with marketability. On a high level, the show is illustrative of control and sadness, a profound self-inflicted satire made hideous by its execution.

15:37 February 17, 2013

Kansas Man!


I'm so sorry we can't all be from Kansas

12:25 February 17, 2013

Remember, parents:

When your child uses profanities or otherwise raises juvenile trangressions against the social convention, don't in your fully deserved embarassment ssh! them or otherwise scold in typical negative-reinforcement discouragement. This just makes sacred cows out of the civilization, making them think that their anarchic idiocy is a unique opponent that had never been seen before (which goes some ways to explaining why each generation thinks that it alone is the premier of a new social order, until the next shout of upstarts come along...).

No! What you do is you slaughter the sacred cow, let it bleed out in front of them, and toss its head at their feet. That'll let them know that, oh yeah, what they're doing in challenging the order of civilization is an integral part of civilization, that this is thousands(?) of years old, and that they aren't very good at it and should perhaps go back to playing with blocks.

-- more parenting advice brought to you by someone that never wants to
be a parent
11:30 February 17, 2013

Just when you thought they had scraped the bottom of the last rock for vampire-genre films...

"The candidate's resume is very impressive and all of his references check out. He aced all the phone screenings, so he looks like he's a pretty good match, but... Here's the thing: we think he's a vampire. But we can't ask him because that violates state law for hiring practices."

Job Interview with a Vampire

"...So if you could maybe figure out a way to ask him under the table. This company's got enough issues without having to deal with the undead. And this time I'm not talking about Perkins."

One candidate. Five interviewers. Four hours. If you like films in the form of job interviews -- or even if you don't -- then this is the must-see picture of this year.

"So it says here you're originally from Romania. What part?"

"You certainly seem to have the technical chops for the position, but we're really looking for well-rounded employees. Do you have any hobbies? I like cooking. Going to match a batch of my extra garlic pesto this weekend. Yum! Do you like garlic?"

"Yeah, I don't know why this room has all these mirrors in it. They must have put those in today. Do ya mind, um....moving just a little to the left? I want to see your reflection."

Tensions will run high. It could be that there is much more than the position at stake...

Vampire: "This is a vitch hunt! I vill sue all of you!"

From the makers of Blacula, Son of Blacula, and Assisted Living Dracula

This film is not yet rated due to the fact that we can't get anyone from the MPAA/CARA to watch it.

15:41 February 15, 2013

the silent drop

I'm a big fan and I use the silent drop a lot as a communication end. If you don't know what I'm talking about, I mean using the termination of communication as the message. Its like intentionally omitting the punctuation from a sentence

(Or is it intentional?)

I'm not talking about "the silent treatment" or other games/tactics for emotional advantage. I'm talking about not saying good-bye when you're planning on leaving anyway. There's no particular gain to you to do this; it is the possibility that you can and will do this that it has power.

This is why, after years of pondering its place in protocol, I've decided that it was politcal speech. If conversations can be ended only when both sides have agreed they've ended, then all are enthralled

15:35 February 15, 2013

MediaWiki syntax is a horrible backend store for anything, even MediaWiki

10:24 February 15, 2013

To http://k0s.org/comedy/newyorker/

"His prolific use of self-claimed 'esoteric artifacts' are more akin to 'exoteric artefacts'"

Obviously needs some cleanup

15:33 February 13, 2013

they call them space heaters, but did you know that it's classically impossible to heat space?

19:09 February 11, 2013

which is the mask and which is its bearer?

15:44 February 11, 2013

i should make a randomly release magazine as an instance of a sporadical

15:33 February 11, 2013

a bird in hand is worth beating around the bush

21:53 February 9, 2013

[joke in need of context]

"I really want to hug you right now"

"Aww! Underneath that grim analytic facade, you really are a softy that has feelings for me."

"Well, there is that element, but its mostly that I'm charged to 50,000 volts"

13:50 February 7, 2013

how come no one starts a cult with "The End of the World is Near! (at some unspecified time in the future)"

saves the embarassment of being wrong about your predictions and having to explain them away

13:05 February 7, 2013

on lasers and MASERs

I knew a guy that used to throw out bits of esoterica and their subtle history in conversational context. Probably still does. He used this to point to what intelligence is. To a degree, I have adopted (roughly) his technique, but I use it to point to what intelligence is not.

11:54 February 7, 2013

i always thought x-ray lasers should be called xrasers...cuz it sounds like razors

11:49 February 7, 2013

"considered harmful" is considered harmful

11:04 February 7, 2013

Which was more important to the instantiation of the holographic brain: the transistor or web as a platform?

01:07 February 7, 2013

What do you do when you don't want to do anything?

23:19 February 4, 2013

...she made things of such remarkable beauty...that no one that looked upon them was unmoved

01:29 February 1, 2013

Christianity is like David Lynch

22:52 January 31, 2013

You don't get in bed with the Devil and ask for a handjob!

15:36 January 31, 2013

Imagine if they taught control mechanisms and power dynamics in sex ed. You want your kids to really excel in life; you do that

10:07 January 30, 2013

When you can find issues with "the system" faster than you can file them, is that A. good; B. bad; or C. just the way the world works?

16:06 January 29, 2013

I'm my own worst influence

17:00 January 28, 2013

subtraction...its the devil's arithmetic

13:30 January 28, 2013

Mozilla Recognized as Most Trusted Internet Company for Privacy o/


10:01 January 24, 2013

i had a piece of toast this morning

15:34 January 18, 2013
13:58 January 18, 2013

isn't that some sort of famous joke:

"Sire, the peasants are revolting!"

"I've always found them so"

11:41 January 18, 2013

twitter is really a syndication service that just happens to have a web interface

10:43 January 18, 2013

baguetting is 100000x funnier than owling and planking

15:08 January 16, 2013

I tied my shoe laces yesterday, but they beat me the day before

13:41 January 16, 2013

Building the Internet is like working on a giant brain. It's scary.

14:30 January 15, 2013

I always like that cheesy 80s action movie joke where the guy is hanging from a live wire and someone tosses some conductor at him and says "You're grounded"

13:18 January 15, 2013

man will merge with machine once to romance of the notion is completely dead

20:27 January 11, 2013

The thing about comedy is that it doesn't have to be funny

12:02 January 7, 2013

the end of the world was SOOOOO last year

10:07 January 7, 2013

The Ghost Web http://ploum.net/post/ghost-web

13:45 January 4, 2013

critical point

"The payload comes next, when people come to expect a remix button on everything they see. The videos, the sites, the experiences that are only possible when users become makers."

-- Mozilla comunique

15:44 January 3, 2013

When Einstein came out with the General Theory of Relativity, few people appreciated the gravity of the situation.

02:37 December 29, 2012

The obligation of intelligence is not to align one's self with inteligencia .

10:08 December 28, 2012

i wonder if there is a patent on patent leather

16:06 December 27, 2012


FWIW, in this case the cat is, if anything, overqualified

18:40 December 26, 2012

a genomic disparity

evolved for eons

just to serve the pleasure of individual organism

19:52 December 17, 2012

there will be no more

19:34 December 17, 2012

"[...but the question is] should atheism bother one of those?"

12:50 December 15, 2012

"Breaking Bad" would have been so much funnier with a laugh track

15:59 December 12, 2012

if you think about it, twitter is just a bug tracker without states, transitions, metadata, comments, and bug summaries longer than 140 characters

10:49 December 12, 2012

"Since there is no divine authority for, as you call it, 'power', any sort of system of government is really an ad hoc bandaid over anarchy..."

11:55 December 11, 2012

i don't see folders when i ls....maybe that's my fault

11:07 December 11, 2012

A trip back in the Way-Back Machine

Sherman: I'm glad we got all that sorted out, Mr. Peabody. What should we do now?

Mr. Peabody: I was thinking of heading over to Amsterdam for some of their famous breakfast porrige

Sherman: I didn't realize that they were famous for that.

Mr. Peabody: Surely you've heard of Holland Oats

10:37 December 11, 2012

The problem with "Lucy: Daughter of the Devil" is that it pretends to have a plot. If it was just 12 minutes of H. Jon Benjamin and Melissa Bardin Galsky talking, it'd probably be a great show

18:34 December 5, 2012

rhubarb and boysenberry pie

16:54 December 1, 2012

The grelims ran amok about town with imp-unity

16:30 November 25, 2012


10:01 November 21, 2012

This is a blog post

15:58 November 19, 2012

it was handed down from Gods that came from far away galaxies in golden flying saucers; others contend it was the ancients themselves that harvested the living power of geomancy....

15:30 November 12, 2012

I used to love buying computers

08:48 November 12, 2012

Did you hear about the dyslexic that dropped his children off at kids row?

22:29 November 6, 2012

There was a mathematician who had a problem.

He had 50 Euro left over from a trip to France.

He couldn't keep it since he had no place in his dwelling to put it.

He couldn't exchange it since the exchange fee combined with his hourly worth exceeded the value of the bank notes.

He couldn't throw it away since it was worth too much.

18:25 November 3, 2012

"The good news is that in 1995 we will have a good operating system and programming language; the bad news is that they will be Unix and C++." - Richard P. Gabriel, "Worse is Better"

06:07 November 1, 2012

From the makers of Yesterday comes... Today

07:48 October 31, 2012


11:31 October 25, 2012

its like i've said a thousand times....don't repeat yourself

15:01 October 24, 2012

"Everytime I visit your site I wish I didn't" - Andrew Halberstadt

09:08 October 23, 2012

Dulles Airport? More like Dullest Airport!

10:05 October 21, 2012

ruined-my-life.com is going away: http://domain-renewel.ruined-my-life.com/

23:09 October 12, 2012

Then I get an editor and can write whatever I want

23:09 October 12, 2012

what's something to say to the world at this point in time?

16:56 October 11, 2012


09:59 October 11, 2012

"You were asking if I had any flaws. I'm not sure, but perhaps I am guilty of being too humble..."

00:32 October 6, 2012

the artificial Moon

(The underlying meme: 'The artificial X . That posited, its reductionism, as (artificially) curated, does not in and of itself cancel the meaning of the underlying phrase, were it suggests true archetypes (see the imformational science text, "Jungian and post-Jungian Constructs and Destructs", (sic, ibid)). Taken here, "The Moon", as X , denores a particular and spectral connotation beyond the the convention of its hieroglyphics.

16:37 October 3, 2012

someday i'll be able to express all my thoughts in the form of URLs

12:51 October 3, 2012

So I keep hearing how like space debris is going to be a problem, and I got to thinking....why not just make a vacuum to suck that shit up?

11:15 October 3, 2012

synkamatic: it started off as a software project, but then we all get tatoos

15:42 October 2, 2012

Nancy Drew and the Case of Too Many Reviews

09:22 October 2, 2012

peak chrome: http://arstechnica.com/information-technology/2012/10/peak-chrome-googles-browser-falls-as-firefox-internet-explorer-stay-flat/

22:05 September 30, 2012

The problem with a book of tricks is that once you have one you tend to stick to it.

20:35 September 30, 2012

You know what the funny thing about setting up a joke and never finishing it is?

15:11 September 29, 2012

you know you're getting old when socks become an impulse buy

10:16 September 27, 2012

Nancy Drew and the Case of 403 Talos

17:43 September 26, 2012

I am what is wrong with the Universe

let's take some goddamn rrsponsibility here, people

16:52 September 26, 2012

stroopwaffles are clearly the best office snacks ever

16:20 September 26, 2012

Nancy Drew and the Case of the Dum Sut

13:51 September 26, 2012

twitter obviously hates my blog

twitter probably hates my dog, too

13:49 September 26, 2012

Nancy Drew and the case of the Shadow DOM

13:49 September 26, 2012

Nancy Drew and the Case of the Blank <canvas>

10:18 September 26, 2012

today is an email-explody day

15:45 September 25, 2012

Breaking Bad's Heisenberg Uncertainty Principle

If you fuck with Heisenberg, it is uncertain if you'll live

12:08 September 25, 2012

i can has tweets?

07:57 September 19, 2012

software is the new Tower of Babel

13:16 September 17, 2012

I don't understand why people use twitter

13:01 September 17, 2012

Did you know that if Mitt Romney is elected foreigners won't have to pay taxes?

In his years in government, Mitt Romney did not oppose legislation mandating mind-control devices. Not once.

Mitt Romney has never denied feeding on the flesh of newborns.

Is this who you want as the leader of the free world?

Romney: just say "NO"

13:28 September 16, 2012

1. Malevolent actions rise not only from malevolent intentions 1.a (The choice of the word "malevolent" vs e.g. "harmful" is very much intended)

2. So a malevolent being is not defined as a being of ill-intent, but by, its actions

3. Consequently, to understand one's malevolence (or benevolence) is to understand the effects of one's actions. 3.a. Therefore the only weapon against malevolence (or, in general, the only tool for ensuring intent results in effect) is an understanding of one's self's place in the Universe

14:17 September 8, 2012

So, if you think about it, causality is just one way of looking at things.

19:08 September 7, 2012

X-Files is Alice in Wonderland

15:25 September 7, 2012

I used to think, apropos Buddhist literature, that ignorance was the only evil. What then of delusion? Is this ignorance, or something worse?

15:17 September 7, 2012

Give a man a fish and you'll feed him for a day.

Teach a man to fish and you'll feed him for a lifetime.

Refuse to teach a man to fish and you'll keep him indebted to you forever.

21:11 September 6, 2012

What a woe to not know one's own shadow!

Is it darkness occluding light, or the inverse masquerading as the like?

22:52 September 2, 2012

Pregnant Paws: obstetrics for dogs and cats

18:04 September 1, 2012

if you act as if impoverished, you will be impoverished

19:09 August 25, 2012

"The more you are alone with power the more you hate yourself for it"

19:09 August 25, 2012

fractalline folding possibilities

14:49 August 19, 2012

Centralized issue tracking is conceptually flawed

14:49 August 19, 2012

The browser as functional and document-model programming

15:24 August 14, 2012

i dunno about WWII .... great cast, great plot...certainly higher budget than the original; but i can help but feel it was missing something

00:51 August 10, 2012


I tend to actively develop working habits and environments that play with my natural inclinations and provisional needs. So my user interface is the result of years of trying different window managers, saved configurations, and developing scripts. Outside of giving them a Firefox browser window, most people look at my display and have no idea what, if anything, they can do with it. I've wanted to write for awhile about what all goes into it and why in hopes of giving some ideas about what can be done with e.g. X and a few scripts or at least explain why I like my system. But there are a lot of pieces so it may be a bit long.

It all starts with fluxbox . A big shout out to fluxbox: it mostly does what I want out of the box. I used to actively try a bunch of different window managers, but fluxbox has been my favorite for about a decade now. It is keyboard-friendly but still is usable with a mouse. It has text-based configuration , which is easy to mirror across computers, and has multiple desktops. I currently keep six: one with Firefox and Thunderbird, one with four terminals, one with a text editor (emacs), and three of "open usage". I try to avoid overlapping windows except Firefox and Thunderbird. Its very quick to navigate between windows. For mouse-usage, I consider focus-follows-cursor a must (and an old UNIX tradition).

While I use the mouse plenty, I'm more keyboard-driven, so hot keys are a must. Fluxbox has excellent support for hotkeys which I take full advantage of. I have keys for a bunch of window controls and then a series of programs launched with Ctrl + Alt + letter , such as Ctrl+Alt+f for launching Firefox or Ctrl+Alt+t for launching a terminal. I even have a hotkey, Ctrl + Alt + h for launching help on the hotkeys. I did this mostly in case someone wanted help on how to use my computer, but that hasn't actually happened.

One program that changed my operating idiom was xclip which allows for manipulation of what's on the clipboard through shell invocation. I take advantage of this together with other scripts I've written to transform data that I select with the cursor. A common pattern is:

xclip -o | <program> | xclip -i

This runs what is on the clipboard through the program and puts its output back on the clipboard (also, thankfully, fluxbox evaluates hotkey command in a shell environment, so I can use my fancy pipes like this). One example is my pastebin program, which uses this pattern on my copy of pbmoz.py . I select text, press Ctrl+Alt+p, and the URL of the created pastebin is put back on my clipboard that I can then share with Shift+Ins. I try to keep hotkeys for tasks that I do a lot that work better in a windowing environment than from the command line.

The command that I have tied to Ctrl+Alt+s is smartopen . smartopen takes text and goes through a series of handlers. If the handler matches the text, it will open a URL appropriate to the text. For instance, the text:

2 Harrison St.
San Francisco, CA  94105

would open in google maps. I have handlers for bugzilla, google maps, wikipedia, ..., and defaulting to a google search.

While I mostly work from Firefox, hotkeys, and the command line, it is nice to have a menu to launch applications. One thing fluxbox doesn't have that I wanted is dynamic menus. I like to manage my menu through (again) a human-editable config file so I can mirror it between machines, but prefer that only menu items that actually have the programs installed on the machine displayed. While fluxbox doesn't support this directly, you can include a file which you can generate however you like, as pointed out in this helpful article: http://darkshed.net/article/dynamic-menus-in-fluxbox . There also needs to be a piece that refreshes this file. I put this in .bashrc so that it will happen each time a terminal launches (or I can sync it manually). This is a bit weird, as this event has nothing to do with whether a program is installed or not, but without a watcher service that wakes up and decides if the menu needs regeneration, I know of no good way to do this.

I have a source document, http://k0s.org/programs.html , that lists what all I want in the menu. I then have a script, http://k0s.org/hg/config/file/tip/python/html2flux.py , which translates the HTML to fluxbox's format. For good measure I added a fluxbox menu item to edit its menu sources. I could add more dynamic items. I have thought that a menu might be a good place to read e.g. RSS.

I have thought (and continue to think) about using pywm or something similar to have fully dynamic behaviour and in a language I am comfortable with. So far I haven't explored that much.

As far as decorations, I have a toolbar that I mostly ignore except for the clock and wireless icon, some sort of power monitor (I currently use wmacpi since it seems gnome-power-manager no longer works in fluxbox). I have transparent widgets and wallpaper which is either my art (for home computers) or Firefox art (for Mozilla computers), and that's mostly it. Sometimes I run gkrellm. All else is application.

I hope this sheds some light on how and why my UI is the way that it is. It is somewhat messy loosely-integrated system grown out of experimentation, necessity, and practicality. It is certainly not "the way all computers should work", but (IMHO) gives a sharp contrast to the conventional wisdom of e.g. GNOME, Apple, and Microsoft, (amongst others), whose interfaces I find extremely cumbersome. Describing this all in text is also cumbersome compared to the reality of working on things, but I hope this at least lends some sort of understanding to how I work.

18:01 August 6, 2012

Inspired by the creatively awful "Every breath you tiki masala burger" from Bob's burgers: Beefsquatch I've created some names for Bob's burgers. The show mostly isn't funny, despite having the talents of Loren Bouchard and Jon Benjamin, but the horrible burger naming scheme got into my brain. I hope you enjoy my menu:

My creations:

Actually from Bob's burgers:

15:43 July 31, 2012

if you can't test your continuous integration system with your continuous integration system, you're wasting your time

16:52 July 26, 2012

over 3 billion served


16:58 July 24, 2012

i could probably actually do what i set out to do with another of me, since my progress is, fairly consistently, about 50% of what i think it should be.

of course, the first time i disagreed with myself that theory goes down the tubes

12:28 July 24, 2012

back then, time travel was terrible

15:51 July 22, 2012

The bad thing about party cloudy is that its also partly sunny

15:50 July 22, 2012

tea is not spiritual. men who drink tea are spiritual

10:28 July 22, 2012

"We don't need abolition...the slave market will sort itself out!"

I'd draw a Newyorker cartoon, but all google image search yields for "slave auction cartoon" are BDSM photos (and yes, safe search is on)

19:00 July 21, 2012

vodka, bitters and soda is the moxie of cocktails

17:36 July 21, 2012



10:03 July 16, 2012

On Economics

shadows propped up by shadows

21:03 July 8, 2012

platforms taken for truths

05:40 July 5, 2012

a right in a real false mirror is a real left

09:10 July 2, 2012


11:35 June 29, 2012

"You don't need money. You don't need fame. Don't need no credit card to ride this train."

Well, actually, you'll need money to purchase the ticket and you'll need a credit card to confirm. And for this particular train all remaining seats are reserved for celebrities.

11:58 June 22, 2012

new story - citadel : http://k0s.org/stories/citadel.txt

23:34 June 19, 2012

as inspired by David Foster Wallace


it's not quite finished -- I couldn't decipher all of my handwritten notes to self and had no computer available at the time -- but i figured i'd loose it on the world. If anyone wants, I can go into more detail

12:33 June 11, 2012

you can lead a hoarse man to water but you cant make him speak

16:18 June 10, 2012

I have found out that the new technica obscura aegis is The Riven

16:09 June 8, 2012

Friday 4:00pm at Mozilla: emergency cocktails happens

13:41 June 7, 2012

When to blog

If you're planning on doing a blog post about something you're working on anyway (and you should), write it as you are going along with the work. If you don't you will forget the essence and state of mind that you meant to put into the text

09:11 June 5, 2012


16:37 May 29, 2012

oh what a tangled world wide web we weave...

01:53 May 24, 2012

IP: the last refuge of the damned

13:01 May 16, 2012

back in my day we had blogs! and we were damn glad to have 'em!

and they weren't limited by no 140 character limit

12:51 May 16, 2012


09:51 May 12, 2012

Divorced from reality

09:36 May 9, 2012

entropy is information evaporating

It's okay, there is unlimited source (*)

[*] Whether the poly-dimensional source, where bubble universe spontaneously manifest from quantum foam is, in fact, unlimited is a non-sequitur in the sense that "universal" (small 'u') entropy integrated over brane-space represents an arrow, albeit one in a background bereft of dimensionality. Since we're dealing with multiple levels of undefineds here, it is silly to believe that any extrapolation made to the "whole" (already an undefined) may precipitate from the microcosmic view, and in fact the statement should be taken as the light-hearted parlance of a 3.x dimensional being trying to cope with a limited manifestation of conciousness.

14:06 May 7, 2012


12:42 May 6, 2012

you can see a friend, but you can't sea anemone

09:24 May 6, 2012

Tentative autobiography title: "No one likes me nor should they"

20:24 May 5, 2012

Why I am an Idiot for Buying a Blu-ray Player

As I sit here I am sitting through the 10 minutes of pointless previews in front of "Tinker Tailor Soldier Spy" for the second time today. I've seen them once before and didn't care for them the first time. I love the movie. I hate the disc. I click on the menu buttons. "Operation not permitted." Why its the second time is that I paused the disc and tried to resume. "Operation not permitted."

Blu-rays are basically proprietery and piece of shit technology. Firstly, not all that well known, you can't get a spec for blu-ray without entering into a very expensive license agreement with the MPAA. That is, you can't build a blu-ray player if you are an engineer and want to make a free one. You can be sued for doing this.

This already annoys the hell out of me, and I probably should have listened to my conscience and not bought a player. But its the injury on top of insult that kills me. "Operation not permitted." "Operation not permitted." Why should I be beholden to information that I have paid for? If the disc had been distributed for free, I can understand why I should be expected to watch ads. I wouldn't agree with the reason, but I would understand. But I paid for this disc. Why the hell can't I just watch it?

Fuck you, MPAA. Fuck you.

16:34 April 28, 2012

I don't think my cat has a concept of how bowls are used in contemporary American society.

Well, maybe she does a little...

13:30 April 27, 2012

Some of my friends say I blog too much. I find this not to be true, however

09:38 April 27, 2012

Q: The expansion of what four letter acronym commonly used in web programming is brought to mind by the following phrase:

"The nation gave the title of its sovereignty to a holding agency, but the exchange was purely emblematic."

A: REST (Representational State Transfer)

12:19 April 26, 2012

What part of "NO ONIONS" do people not understand? ...I guess it's the "no"

19:21 April 22, 2012

think of how much time you could save if you could stick your hand down the garbage disposal to check for obstructions if you could be running it at the same time

13:34 April 22, 2012

While the nation retained its sovereignty over minerals of Terran origin, it had sold its meteor rights

13:13 April 17, 2012

back to the Hyatt dungeon

15:47 April 15, 2012

Lawrence the Cable Guy :

"You should strive to get the actionable article implicit in the context done or towards some other state of successful completion."

15:44 April 15, 2012

I feel I should connect with my salt of the earth roots. Perhaps I will listen to the musical stylings of Jonathan Cash or Robert Dylan, following up by watching that delightful romp, Lawrence the Cable Guy.

14:26 April 15, 2012

that doesn't have to be the way that it is

03:08 April 8, 2012

The support of RTL (vs 'RTL') text has increasingly become an issue in browser rendering. I find it, anthropologically, astounding that these are the two choices handed modernity from antiquity. One can easily imagine a written system whereby the symbology is derived from the relative position of the glypths, either independent or extending the direction of the "paper".

14:37 April 4, 2012

Well, I should go. Those peasants aren't going to oppress themselves!

14:22 April 4, 2012

Something that always bothered me about Alien

"In space no one can hear you scream" (*)

[*] Albeit in a space craft they have an atmosphere where sound can propagate, so people could conceivably hear you scream therein

14:35 April 3, 2012

I don't believe in causal sex

13:27 April 3, 2012

So this girl tries to pick up on a time-traveler, but he ends up rejecting her.

She says, "I just wanted a casual relationship."

He says, "Casual relationship? I thought you said a causal relationship."

20:46 March 27, 2012


14:22 March 26, 2012

Ah doctors...they just tell you that you're dying until you're dead

12:57 March 26, 2012

mitochondrial DNA has rights too!

11:42 March 25, 2012

The Currency of Privilege

People tend to think of one economy: that of that which can be bought and sold through the medium of money. But of course there are other economies: that of attention, that of information, and that of privilege, to name a few. Privilege is an interest-bearing medium: if you abuse privilege with me [1]_ then this denotes not only a debt of privilege but also the consequence that I am less likely to extend you privilege in the future.

There are those of the classically altruistic mind that would suggest not accruing interest on debts of gratitude. While in the past I would have been sympathetic to such a point of view, it now brings me to a question:

What is the division between being selfish very being altruistic?

People are "supposed" (again, according to this classical model) to strive to be "good" (read: altruistic) or they are selfish. However, I claim that this model is not only unfair but it is also inaccurate, in terms of modeling the behaviour of concious organisms.

I generally want neutral karma, or lack of karmic involvement with other beings. I am not particularly selfish, in that most of my actions are not for the good or well being of my organism. People tend to divide selfishness versus altruism based on the mark of whether (the majority of) one's actions are for the accumulation of advantage towards one's own favor or for the manifestion of actions towards a value system. By this definition, I am non-selfish, as most of my actions are towards the manifestation of a value system. However, the criticism of this is that the overlap of my value system with the socio-centric value system is not necessarily that large. I don't care much about what many people consider important, especially considering the subtext of how they manifest their intent towards such things. For one, I do not consider humans innately privileged beings.

Often, people who are considered selfish are simply less creative or abstract in terms of manifestation of their actions. Those who espouse very abstract value systems are generally not considered selfish, but what is altruism but the manifestation of ideas towards a particular end? People are also considered selfish because they protect their prosperity and do not rely on the benificence of others. I fall into this category. Generally, I have found that I cannot rely on the charity of those around me. I wish I could, most of the time. But I can't.

I owe lots of money (thank you, student loans). I am in poor health and cannot really rely on the American health care system to actually work towards my betterment. I have sacrificed great time and effort towards others and have not received it back. So I have to protect myself. It doesn't do anyone any good if I can't function.

So the interest-bearing nature of privilege can be seen as a natural consequence of my circumstance. When look at as an economy, I can understand how those with freer circumstances and/or who have seen more support from those around them can afford to charge lower or even negative interest rates [2]_ for privilege, I cannot afford to do so and keep myself functional in terms of sustaining myself, projecting my ideas, and generally not being a drain on society. My entire life has seen a slow growth of my interest rate that I am forced to imposed reactively towards my deteriorating circumstances.

But is it logarithmic or leading to an asymptote?

[1] I'll use the first-person singular for convenience, though mostly I mean "one" in this text.

[2] Albeit in terms I cannot, for the moment, define in a numerically rigorous manner

11:19 March 25, 2012

I wish there was somewhere I could work besides my house and coffee houses. After a week of wet weather, I feel very cooped up at my house, and were my health my concern more than my work I would devote today to a day about town walking and otherwise concerned with my well being. But, I have shit to do. I like coffee houses, but I'm already caffeinated enough, and I tend to become overly obsessed with getting a seat. Its Sunday in the Mission and coffee houses are a popular destination for those in similar boats. I may try the Civic Center library, but again I'm unsure if I could actually sit down. Concerns of my property and wireless also make these options inconvenient.

What about working spaces, San Francisco? People get together in a fashion not necessarily social or asocial. I tend to work better with people around just because I get too much alone time and quiet time as it is. Guessing how things work, there is probably a "silent" "revolution" here amongst hipster with lots of hidden spaces that fall into the category of what I want. But I ain't hip, so tend to get left behind by such revolutions

16:26 March 22, 2012

i tried to reinvent the wheel but then realized that for all real-world applications i needed the axle first

20:44 March 21, 2012

my currency is exhibited loyalty, not professed

14:22 March 21, 2012

Hollywood loves prequels! So how about...

The First of the Mohicans

starring H. Jon Benjamin

HJB: "Hi I'm Jon Mohican...first of the Mohicans."

Indian: "I haven't heard of the Mohican tribe."

HJB: "That's because I just started it. I started my own tribe. You should be impressed. Not very many people start their own tribe."

Indian: "Oh. So what is the role of the Mohicans?"

HJB: "Like I guess we have a creation story. Maybe a possum was carrying around a bag of marbles and then it spilled. And one of those marbles was the Earth."

Indian: "Oh."

HJB: "Its not very good, right? The point is I just made it up, just now. Maybe I can get an editor on it, jazz it up a bit. Maybe get a movie deal going."

Indian: "You don't look Indian."

12:51 March 21, 2012

I'm not that familiar with Jungian psychology.... is it normal to have romantic attraction to one's anima?

08:55 March 21, 2012

I dreamt I tweeted. Thankfully I woke up and it hadn't really happened

15:36 March 20, 2012

My lack of faith in technology is exceeded only by my lack of faith in humanity

09:37 March 19, 2012

Q: What did Apple call the iPod with the 8-finger swipe?

A: the iCephaloPod

09:58 March 9, 2012

Austerity packages: putting the "NO" in ecoNOmics

19:50 March 7, 2012

The Thai army crushed their opposition with Siam-ease

09:28 March 6, 2012

the only effect of loyalty tests is disloyalty

17:21 March 3, 2012

What the world would be like if I was a bartender

"Not to doubt your agency to imbibe alcohol, but how many times has Earth circled its nearest star since you exited the womb?"

22:40 March 2, 2012

for most males the only real exploration of the ramifications of 3-space is the vagina

12:16 February 21, 2012

Infinite Jest too long and complex? Try the abridged version, Finite Jest

  • no footnotes!
  • all words three syllables or less!
  • less depressing
21:00 February 20, 2012

Maybe I lived in the mountains on a Brigham Young Terrier

22:16 February 15, 2012

it is impossiblr, isn't it? to compare the distortion of one's mind's representation of reality with distortion of another's

19:06 February 15, 2012

is it wrong to up quotes on http://quotes.burntelectrons.org/ that further my ideologic point of view?

...no, it's not

20:13 February 14, 2012

The urge to fill the gap

12:53 February 14, 2012

loyalty....does not exist

11:16 February 12, 2012

There is a disparity of thought that the word circle can mean either the 1-dimensional curvature, x^2 + y^2 = r^2 , or the area contained therein, whereas a sphere is usually thought of as the 3-dimensional space versus the 2-dimensional membrane confining it.

The argument can be made that this is innate to human thought, but I would contend that we (as only an English speaker, I will confine the first-person plural to that) have muddled the language with this ambiguity. Since 2-dimensional drawing has been available since pre-history, this mode of ambiguity comes from the ability to have define a region with a circle (the 1-d variety), whereas having no drawing mode in three space commonly available in 3-space the sphere is realized through abstract thought.

10:38 February 12, 2012

shout out to fluxbox


Tech press is mostly awful, but so is gnome 3, and I'm happy to see press for my window manager of choice. I played around with a lot of them and fluxbox finally stuck.

11:48 February 11, 2012

An Amusement Park for the Post-surrealist age

"Kafka-world: you just stand in line"

(I wish I could take credit but it was from http://www.npr.org/programs/wait-wait-dont-tell-me/)

20:48 February 10, 2012

the mistake is thinking that life and death are two separate things

14:47 February 10, 2012

god my blog software is so bad its barely better than wordpress

18:59 February 8, 2012

Just saw the latest "Got Milk?" advertisement. Evidently, "Real milk comes from cows", if this case be believed. I'm not really sure who they're competition is, but the frank statement frightens and confuses me.

On the other hand, drinking lactations sucked from bovine nipples has certain stigmas as well....

12:21 February 2, 2012

We can put a man on the moon, but we can't make him drink

21:32 January 25, 2012

The problem with organic life is that it is compelled

We are all demons

18:16 January 24, 2012

control, the greatest illusion

16:08 January 24, 2012

A typical privacy agreement:


09:33 January 22, 2012


01:55 January 21, 2012

"Can we come up to your space mansion?"

"No! My space mansion is for me! Primitive earthlings..."

00:07 January 21, 2012

Female, male; female, male... He twiddled his thumbs. What was the point?

22:48 January 20, 2012

what color is a clock that has been painted seven times?

11:19 January 20, 2012

when i was a kid we had to walk uphill both ways!

i know that seems contradictory but it was on a liquid planet where the gravitational center varied by daytime

don't ask me how i walked on a liquid planet...i have other problems

11:18 January 20, 2012

is your breath mint too refreshing? Try Excre-mint!

"One man's waste is another man's mint"

11:16 January 20, 2012

damn kids and their twitter phones

16:55 January 19, 2012

redis: thenewblack

13:31 January 19, 2012

i hope they don't pull the proverbial rug out from under us

09:52 January 9, 2012

What is the significance of the oft popular references to romantic love taking in accord the separation typically applied before union?

17:29 January 8, 2012

beer is kind to an old man. for some stint of time the ache of years poured into the bones is gone

11:47 January 5, 2012

i have passed over 782 Turing tests

10:51 January 5, 2012

Is the mistake inventing the time machine or going back in time to ensure the time machine is not invented?

09:34 January 4, 2012

Since you care about X, you should attend to X, because expecting other people to attend to X is predicate upon them caring about it

22:48 January 3, 2012

idea for a story: drug/dance/punk club with the sign: "No one over 21"

22:42 January 3, 2012

i see my upload to youtube is waiting for WiFi access. so much fot the promise of 3G

...and thank you, Google

21:56 January 3, 2012

life is pathetic; too bad it looks cool on paper

19:48 January 3, 2012

signs of dystopia: pervasivity of receivers

18:13 January 1, 2012

From the makers of Doernota Beer comes Blind Cider

"She totally didn't see it coming."

00:22 January 1, 2012

Year of the Mayan Apocalypse (2012)

"I've been a lousy Airbender...

22:51 December 31, 2011

"The key passes to the one who retains a path to success"

"And if no one does?"

"The key falls"

19:57 December 31, 2011

there is only one story

18:43 December 30, 2011

The television in the elevator just told me that corn bread is venerated by Southerners for New Year's fare as it is the color of gold. Is this true?!?

14:45 December 30, 2011

ӰʘՄ çĄήИόᚁ ђΊԺȻ ᙘЁߚו୩Ժ ȶӈȅ ᏤҾוᥧ ʘߓ ρჩӪρߚЁඋჄ ഽ๏ɌȻѶعȓ

14:35 December 30, 2011

the economics of star-stuff

12:03 December 30, 2011

The # of individuals nor the time they put forward nor past success are not good indicators of future success

08:58 December 30, 2011

music ethnologists are concerned about the disappearence of traditional music in Afghanistan

20:38 December 21, 2011

Normally I hate it when companies I do business with (AT&T, I don't really need your newsletter, thank you very much), but Dyn's CTO had a blog post about SOPA they linked in an email that I thought had some excellent points:


I can't really say much about SOPA except that it is a horrible horrible idea from so many points of view. But Tom's post illustrate some of the reasons why its a technically horrible idea. Just because you can write a law on paper does not make it technically wise or feasible.

13:37 December 21, 2011

once more with feeling

උӪǷնʈȅȒ ᏕçίعᥟʗЁ ḯˢ ȷնșʈ ʘ୩έ ђնʛĘ ϣӪȑӃѦɌổՄηɗ ᚫȰȓ ԷҺȻ ҺӒ˪Ṱίᜤສ ႲȒΌᛒ˪Ҽጢ

13:33 December 21, 2011

computer science is just one huge workaround for the halting problem

08:13 December 15, 2011

jimi hendrix quite a guy

angel in the devil's sky

but i can't understand what he says sometimes

and half the time i think he's high

20:09 December 13, 2011

do not rush for luxury

20:43 December 10, 2011

A great blog post I would have liked to have written if I had more time

20:40 December 10, 2011

L. could picture in his mind perfectly the geometric reconstruction in Anton's thoughts of the port. He tried to read Anton's thoughts of his designs but it was too far of a reach already holding the mental map. Anton began to speak, but L. projected, 'No, let me try to read this way'.

His thoughts roused disproportionate anger in Anton, and the latter's mind came collapsing down around L.

"What is art?" Anton asked.

"An expression of--" L. began, but Anton nod his head and raised his hand as punctuation.

"'Expression' is enough," Anton said. He paused, the silence deeper for the stillness of mind. Then Anton leaned close, their faces almost touching. "What would you express unto the world?" There was no answer, for both knew the nameless that was pointed at. "While art can be wrought of only subtextures, and there is some skill expressed in doing so, not of such can all art be manifest," Anton continued, "Use your skill as means of your expression, not as its object."

L bowed his head.

"Shall we continue?" Anton asked rhetorically, and once again allowed their minds to commune in projection of the port's configuration.

20:38 December 10, 2011

I doubt anyone reads this anyway

I have a story that I have been working, on and off, for most of my life at this point. As you might guess, it has changed a lot over the years such that it is hardly the same story. Even after multiple efforts of cleanup, there are still strong elements that I today find amatuerish, but the plot is pretty intricately linked and I'm not sure what to do about that. Maybe I'll figure that out someday. But right now, it is daunting. Some of the writing is really good, probably the best that I have done. Some of it is awful. I'd like to keep the good and discard the bad.

So for now I am going to post snippets of it on this blog. I don't know if anyone actually reads my blog at this point. Probably not. But if you do, I hope you enjoy it. As always, feedback is adored. I don't really plan on explaining context of anything, at least not on the blog. So it will be somewhat of a mystery.

If you, dear readers, are out there, I hope you like it.

20:17 December 10, 2011

my other notepad is the Universe

19:07 December 10, 2011

evolution is a failed experiment

16:36 December 10, 2011

How things work

(Noe Valley affects Christmas) + jhammel == http://k0s.org/blog/20111210154108

15:41 December 10, 2011

Frosty the snow man was a jolly happy soul with his coal-black eyes and his corncob pipe and his fifty grams of blow

15:33 December 10, 2011

Christmas will never mean as much to your children as it does to you

09:24 December 9, 2011

childhood isn't the myth. adulthood is

19:03 December 8, 2011

logical depth == the value of not playing nice

10:48 December 8, 2011


13:34 December 7, 2011

humans look down on fish because they have such short attention spans that they swim around in a tank all day. but we like to watch them do it...

18:43 December 6, 2011


09:49 December 5, 2011


00:49 November 30, 2011

clean house vs. dirty house

I'm a developer. Given that software development is in a state of burgeoning growth and has not solidified on a methodology (contrast 3rd world factory workers, where their operating methodologies have become science), organization are often inconsistent on how development is done. This is great as a means of self expression, as I as a developer may behave as a craftsman, even an artist, claiming my methodology may make a mark upon the work. But it is bad in the sense of inconsistency, in the same sense whereby artists, being less inclined to survive in primordial culture, are bullied and not favored unless they cater to the powers that be.

So there are essentially two opposing development methodologies:

  1. Pick up as you go, keep code clean, try to maximize sanity and minimize chaos towards eventual concurency
  2. Ignore any part of the code that does not directly affect your task at hand

Both sides have upsides and downsides. It is worth noting that with an ideal API, both sides are exactly the same. If you start with a clean code base, and you have positive changes, you end up with a clean code base. However, this is almost never reality.

The actual effect is that programmers that affect methodology 1. are penalized for their efforts whereas programmers that do not clean up after themselves (re: methodology 2.) are rewarded. How can this be?

Development processes are never light-weight. At least, I have never encountered any that are. Given that, type-1 programmers are weighed down by the effort of making shared code bases cleaner for everyone. OTOH, outcome is measure in short-term incremental goals. Abstract notions like down the road extensibility are ignored. So, by following methodology 2., you are guaranteed a good report card.

I feel like I say this over and over, but if you ignore the crap and hack your shit in and probably make worse crap because you have to work around the crap already there, you achieve "results" and are lauded for it. Mark that these are short term results, the terms defined by those setting the goals and not necessarily for the survival of the organism that is the software you are developing. Whereas if you try to make things better for everyone, you will be laden with the burden of proof, the burden of showing that your provide any value, questioning doubts, and if anything you do, even rightly so, breaks something because of other bad behaviour, you will be crucified for it.

So enters the rock star programmer and his kin. A software project is hard to maintain. Well, yes, legacy is expensive. Even clean legacy and no one has clean legacy. So the common reaction is to abandon legacy and start anew. Why? Two reasons:

A. By starting something new you are no longer bogged down by the decisions, good or bad in the context, of yesteryear B. And by starting something new, you can say that you worked on something new

Do not underestimate B.! The hidden factor that should be considered before you do this is that you throw away the entire knowledge base of a project when starting something new! Take Fennec on nightly. I can no longer give feedback in the app, because there are (evidently, putting on my user hat) no addons. If I can't report bugs, something is wrong. I realize that my primary position is not reporting Fennec bugs. But I used to, because it was easy. And now I can't. OTOH, I get to see that my browser is refreshing on my phone at 60fps. Native UI is speedy, but...

Another classic example is Firefox vs. Chrome. Google was Firefox's partner. Google made some noise when we made a deal with Microsoft and Bing but the fact is we had a browser that complied with their purported ethics and instead of helping develop it they forked it!. Now Chrome has a legacy, and all the smart kids at Google are beginning to see what a pain in the ass it is to have a legacy.

Being a nascent field, software development has many aspects that have long ago been dealt with in other fields, such as the debate whether it is better to keep a clean house or a dirty house. In more mature fields, only in dysfunctional -- and desparate -- situations do you see the logic applied of applying disproportionate effort to work around a problem vs. solving a problem. If you have a clean house, it is easy to keep it clean. If you have a dirty house, less so. But the dysfunctionality comes in several sayings in the software industry on why it is justified to keep a dirty house:

Note that none of these address the issue or tell how to make it better. They're just excuses. But somehow they're believed. They're not taken to be the kindergarten logic they are. If you're a for-profit company and show me a spreadsheet of (untainted) time estimates, I'll buy it. But mostly I feel the same about these as when I hear a review of a movie that's "the best movie of this or any year".

If you ran a house this way, you would never clean anything. You would have a house that got dirtier and dirtier until it was almost unlivable and then you would move. Really. We can do better than that.

15:25 November 29, 2011


11:48 November 29, 2011

Justine: "The Earth is evil. We don't need to grieve for it."

23:34 November 28, 2011

I see a lot of old faces at Suicide Club. This means you haven't been following the first rule of Suicide Club: commit suicide! In fact, it is the only rule

22:02 November 21, 2011


22:44 November 18, 2011

NPR is the play closes its doors forever on a biker gang, I can't apologize for the biker, ``Who are sorry in a winged collar? Perkins: I would tell them, ``You gotta respect the Los Angeles International Airport, think of Command. Then, if someone was part of The hottest new Broadway production: The Glossary of the leading brand Witch Project movies

22:42 November 18, 2011

I'm a new doll for a commercial venture.

22:42 November 18, 2011

I wouldn't know your tickets now, before the hollowed-out corpse of humanity

15:52 November 18, 2011


19:25 November 14, 2011

the interweaving of software is the interweaving of people

17:31 November 14, 2011

most of my resources have been expended to sustainably isolate myself

10:41 November 14, 2011

Doing the dirty work? Absolve yourself! With Pontius Pilate Hand Wash

From the makers of Holy Smokes

22:07 November 8, 2011

M: there's only one canvas that bears worth painting upon

16:39 November 5, 2011

got an email from my bank today that said, in effect, that they may have accidentally sent me too many emails

12:20 November 4, 2011

wow, my blog is 256 pages in print preview

16:13 November 3, 2011

I reorganized my site a bit. It now approximately resembles what it should have looked like five years ago. In other words, its the state of the art!

09:07 November 1, 2011

just when you thought my site couldnt get any less readable... http://k0s.org/?css=noir-de-noir

20:52 October 30, 2011

jokes are serious business

I organized my jokes a bit and they now have permalinks and are more of them. Cheers and jeers welcome


22:10 October 25, 2011


16:57 October 25, 2011

The Cloud will change your life!

i was also thinking that what "The Cloud" means is exactly the opposite of what i care about from The Cloud so the idea of the badly name The Cloud is that it doesn't matter what computer I'm in front of wrt what i'm doing sure, it has disc, ram, cpu, but other than that its just a box so The Cloud (pretty much plan 9) is about not being tied in to a particular resource, federation whereas "The Cloud" means using a particular, locked in implementation which is not federation, its just a silo again

its amazing

people have problems; these problems are solvable but instead of solving them The Establishment provides something that looks shiny and fancy but has the exact same problems baked in that is the only problem, i think the only problem worth caring about, except, say, whether my cat is hungry or not

i need to meditate upon this


21:38 October 24, 2011


14:27 October 20, 2011

i was just thinking about Cane's 999 plan i think i'll run on the 666 platform. lower taxes for everyone! plus you get the Devil-worshipper vote

23:27 October 19, 2011

do you think its sigbificant attribution if a psycho steps out and stabs you?

21:47 October 19, 2011

i hate that i have no initiative of my own sometimes

it is either the worms or the cloud

19:15 October 19, 2011

quantum foam is actually quite nasty stuff

08:31 October 19, 2011

A man falls until his extremes are balanced by practical reality

13:29 October 15, 2011

From the most talked about screenwriter of the year comes a new Broadway production:

The Glossary of Alexei Kahn: a play on words

10:40 October 10, 2011

nerd player for life

15:55 October 9, 2011

Q: What percentage of an octagon is corners?

22:28 October 7, 2011

What About Bob?

I was recollecting with a friend about David Lynch's Twin Peaks and got to talking about Bob. What about Bob? Bob was the Demon who posessed Leland Palmer and who made him rape and kill his daughter, Laura Palmer.

While few people claim any direct experience with demons, they inherit a common mythology. Unlike ghosts, demons are not vestiges of lives, but whirlpools in the psychic plane, inhuman. They wish to get into the physical world to fuck things up. Perhaps it is rich and sensuous to them. Perhaps they are concious beings, perhaps not. In either case, they are completely alien to us. They come in through the mind. At first their hold is weak and they can manifest only in short bursts. But once a demon has its tendrils in you, they do not let go. They lurk, in the background, sinking themselves deeper into you, breaking you down from the inside. Eventually, uncontested, they have complete control of your mind and they use you as a shell to manifest psychic destruction on the mortal plane. Demons may be thought of as "real" or merely as metaphors. For me, I don't really see the distinction. Nor does the demon.

I present a hypothesis of how Bob came to possess Leland Palmer. As David Lynch is fond of, Leland is a pent up father with the morals of the '50s that say to smile at the world and hide any unpleasant thoughts even from one's self. The repressed self grows inward and consumes one's self, leading to one fracture. Like more than would admit to it, even to one's self, Leland desired his daughter even from the tenderest age. But he hid this from himself. He could not bear to admit to himself that he had these feelings. When he acted on these buried feelings and molested Laura, he opened this crack. A disparity was born...a cognitize dissonance.

Laura, like all daughters, wished to see her father in nothing but a positive lot. Leland was a little kooky, animated, and basically a great dad. There was something wrong with him, something she could not bear to see, so she hid this from herself. When her father molested her, she sought an illusion that might make the reality unreal.

You have a conflicted father divided between what he thought he must believe and what he felt, and a daughter who did not wish to see the evil in him. They created Bob. Bob was born of them. Not all births are the combinations of DNA, but a synthesis of beings. Between Leland and Laura, a crack appeared, a mutual secret hidden behind a shared desire of illusion and repression. Through this crack the Demon, Bob, entered into Leland and all of the subsequent events were triggered.

"A little boy went out to play. When he opened his door, he saw the world. As he passed through the doorway, he caused a reflection. Evil was born. Evil was born and followed the boy." -- an old tale, Inland Empire

Once Bob got hold of Leland, he took his mind. We know that Leland molested Laura from a very early age. At first it must have been a life-wrenching shock. Bob could only manifest in bursts as Leland still had a fragment of his divided self. He had emotional resistence. But as time wore on, it became easier for Leland just to let go, to pretend it was all an illusion, hidden beneath the surface of his mind, a dream.

Laura was affected differently. Ungrounded by her molestation and by her disparity, she sought a tether to the earth. She sought out all of the advanced school activities, several boyfriends and sex partners, and cocaine to try to tie herself to something. But this all made her lighter, less tied to anything. She positioned herself to be a sacrifice to Bob.

Both parties, in blinding themselves to their own actions, created a subconcious space where the horrors they attempted to oppress could grow and fester.

I do not know what Lynch meant by this presentation. Perhaps it is a metaphor. Perhaps he is telling tales of the supernatural. Perhaps he points to psychic forces which are very real but as are yet misdefined. It does make for a fascinating tale.

13:26 October 7, 2011

i always thought it'd be great for an action movie if someone was about to be shot with a cannon and the action hero said "I hope you enjoy sainthood because you're about to be canonized!"

13:18 October 7, 2011

Iowa to Nevada: "Suck my caucus"


21:54 October 6, 2011

with today's internet, you have to watch advertisements to ... watch advertisements

21:51 October 6, 2011

there is no tradition, only practice

21:51 October 6, 2011

food is words, drink is punctuation

10:27 October 5, 2011

i get very nervous that i'm doing too much doing and not enough thinking. seems to be the best way to corner one's self

16:52 October 4, 2011

Rule #267: if you have a regex dispatch followed by an if-else tree, don't

20:37 October 2, 2011

reality is a drug that makes everything an illusion

14:15 September 27, 2011


10:24 September 25, 2011

I'm trying to organize an anti-demonstration demonstration. Who's in?

10:23 September 25, 2011

a book never written

"The Process of Copulation (illustrated)" by Lou Dax

11:14 September 20, 2011

anyone that uses the Socratic method needs an icepick in the eye

the fundamental assumption of the Socratic method is that you know more than another person about their affairs

12:12 September 18, 2011

an animal unfolds in the face of entropy

18:59 September 16, 2011

there is only effect

08:59 September 16, 2011

git vs. hg: the ultimate bikeshed discussion

After listening to the Mozilla and git talk at this week's all-hands and the ensuing discussion, I've decided that the git vs. hg wars are the ultimate bikeshed discussion since emacs vs. vi. You'll probably hear me complaining about git after this post, but I've decided that I no longer need to care about the issue.

Being realistic, I don't really care about VCS (much like editors). Like most programmers, I want to program and integrate my work with the work of others, so in that since I care that a VCS exists and that I can push and pull and what not. But the nuances of how it works....why would I care?

I do care about workflow. It probably irritates me more than it should when simple tasks are hard, but realistically a lot of my time is eaten by simple things gone awry and me having to manually pick up after them. In this sense, both hg and git are awful. I want to pull others changes, program, and push. Anything other than that is a waste of my time. Neither git nor hg particularly makes this easy. hg queues fit my brain better, and I've thought of some pretty interesting usecases for them, but in the hg queue vs git branch debate, neither opinion is wrong any more than painting a bikeshed blue vs.green is wrong.

Looking at the technical merits of the system, git is faster. And that's about it. The rest is all opinion. Neither is particularly nice to automate. Neither of them have particularly automatable workflow. As John O'Duinn points out, when many people argue for git they're really arguing for github, but honestly I think its mostly horrible too. I could go over a system I think is generally better, but honestly there's no point. I won't have time to program it, and even if I did, as long as the bikeshed discussion continues it doesn't really matter if there is something better or even different. Dogmatism has become the dominant moderator.

I realized today that the git vs. hg debate had nothing to do with the technical merits of the system. Rather it was a debate based on two non-technical concepts: how the programmer wants to work and the culture of git users vs. hg users. I'll take the latter first.

While I don't like git and constantly wonder why the fuck I have to type -a for each of my commits, I've learned to use it reasonably effectively as a programmer that doesn't really care about the guts of version control software. Mostly what I don't like is talking to proponents of git. Generally, they have presented git as unquestionably better, they haven't been interested or willing in understanding my problems with the software, they automatically assume that any problem I might have with git or github is a deficiency in me, and when I ask how to do something more than a trivial command in git they throw their hands up and walk away since its not their problem. This is the sort of attitude I hate to see in the open source community: elitism. The people that are more fond of hg, on the other hand, don't really care much about the innards of version control, are more willing to help, and are more willing to listen. In other words, they are more like me.

In a bikeshed discussion, eventually things break to sides mostly based on the "more like me" factor. Instead we pretend that this is a debate about version control innards. Programmers aren't excited about version control innards. The fact that so much debate happens about hg vs. git tells me that something is wrong in the same way that the vi vs. emacs war illustrates that they are both awful editors. Instead, its a debate about how people want to work. git branches vs hg queues, the github workflow vs. a more traditional workflow. Neither is right. Neither is complete. And the whole discussion is pretty pointless.

So I'm content to let the debate run its course. I continue to think that what people want on top of a VCS is a real tool to configure workflow both in the manner that their community works but also how they want to work. But we can't even talk about this until the hg vs. git debate is over. Otherwise the talk degenerates into "well, I'm happy that git does this" or "hg queues are a much better workflow". People won't be happy until they can work the way they want and not the way that whoever is in majority tells them they have to. I can't wait for this day until we can start talking about having real workflow with a VCS instead of the twin crap workflows git and mercurial give us. But I don't think that can happen until the bikeshed discussion is called.

As a passing shot at dead history, Linus once said that by using the same model as CVS that SVN was "the most pointless software ever written". If I were going to be as arrogant, I would claim that by not solving the workflow problem, by introducing a DAG database but not as a library, and leading to the rise of statements like "if you don't have a github account, you don't care about open source", that git is "the most pointless software ever written". But really, I bear no more ill will. I don't care about VCS. I just want things to work.

14:22 September 15, 2011

i am blogging from the future

09:16 September 15, 2011

Joey Martinelli: "Like a canary in a gold mine"

09:12 September 15, 2011

writing software is easy; maintaining software is hard

09:10 September 15, 2011

We shamefully serve Starbuckfutters coffee

21:22 September 13, 2011

nation-states are obselete

17:45 September 11, 2011

help! i'm trapped in an infinity piece puzzle!

15:52 September 11, 2011

so as you (assumedly) know...

  1. i'm pretty much a creature that wants to figure things out.
  2. intelligence and experience :
  3. conciousness "

∴ What are the implications of evolution/time?

23:00 September 7, 2011

"Optional episode commentary by cast and crew"

That's good....I hate those mandatory commentaries...

15:52 September 7, 2011

The Essential Problem of Curation

If X and Y are contradictory to the nature of the workflows, then both people can't be happy. This is a human problem.

09:36 September 7, 2011

an interesting parallel

i was thinking of the Marxism "The workers control the means of production", when in his time was the physical instruments of capital. but today, the means of production are business logic, and while the capitalists (classic sense) present what they want, the software engineers implement the systems to manifest business logic

14:11 September 2, 2011

Joey Martinelli: "Well, I don't want to eat a dead horse...."

09:40 September 2, 2011

gourmet coffee and stale lucky charms marshmallows sure are good together

00:15 August 29, 2011

the memory of living person that seems more real than the same who is in the same room with you

18:26 August 28, 2011

Pauline's Pizza had entered the shadow stage of a restaurant, where sometimes they seemed closed and vacated forever and others they just seemed not open right now

11:00 August 28, 2011

Joey Martinelli: "Ya know what they say, you can eat more flies with honey than you can with vinegar."

16:11 August 27, 2011

"You've been running it as an Empire that is both time-limited and resource-limited....well, which is it?"

10:27 August 27, 2011

civilization rotting into nature

19:04 August 26, 2011

gentlemanly (adv): the opposite of sloppily, in the military sense

10:33 August 26, 2011
13:18 August 25, 2011

Holy Smokes : the cigarette Jesus used

"The Son of God smoked these...and he didn't die of cancer!"

"If you want to die at the cross as well... Smoke Holy Smokes!"

09:58 August 25, 2011

drop (value-)parameterized ethics

20:53 August 24, 2011

i now know what falling off the world means

21:01 August 23, 2011

Joey Martinelli: Forget it, that train has sailed

14:50 August 22, 2011

How to get me to completely ignore your package


One sentence description: Manage your address book.

No long description

My reaction: Well, i'd love to manage my address book. But I don't know what that means, I already have a crappy solution, and since its not telling me anything I'll move on to other things

14:48 August 22, 2011

the longer I'm away from college, the more I forget people's names....like that guy and that other guy with the funny beard...

12:51 August 21, 2011

Now playing: "Blue planet blues" featuring the Al Gore Rhythm Section

19:00 August 18, 2011

since when is being paranoid a higher value than being paranoid?

15:39 August 17, 2011

Here at cccrrraaazzzyyy Larry's Used Cars, Larry went cccrrraaazzzyy and start slashing prices....and throats...

09:31 August 17, 2011


16:43 August 15, 2011

i can't possibly advocate advocacy

20:40 August 14, 2011

ostara egg: http://look.what.the.cat.dragged.in/

21:10 August 13, 2011

From not-at-all the makers of Cafe Gratitude comes...

Cafe Attitude

"You want some food or you just feeling like standing there and looking stupid?"

  • Featuring over 60 varieties of factory-farmed meats! *

Located at 20th and Harrison (right across the street from Cafe Gratitude)

Cafe Attitude: when you want it all up in your face

07:50 August 12, 2011

the penultimate commute

22:06 August 10, 2011

everyone talks about debauchery....what about plain old bauchery?

20:42 August 10, 2011

the internet is a directed graph and each person's personal traversals of the web are each a directed graph. why not show this to people?

20:22 August 10, 2011

the blind eye that never closes

12:11 August 10, 2011

I was part of the borg before it was cool

19:54 August 9, 2011

predisposition of reality

13:16 August 9, 2011

everyone knows that 80 chars is the longest a thought should be anyway

12:30 August 9, 2011


12:08 August 8, 2011

scat: it's not just for jazz clubs anymore

11:47 August 8, 2011

Did you hear about the guy that confused the inventor of the steam engine with the Premier of China?

He didn't know Watt from Wen

11:39 August 8, 2011


What Would www.whatwg.org Do?

22:26 August 6, 2011

so how is time divided?

22:23 August 6, 2011

however we malfunction, we are human beings

20:55 August 6, 2011

"This is a message from BART police. In an effort to protect you and your personal electronic devices..."

since the latter == asserted state identity, i can see why they would warrant an usurpation of "property'

20:06 August 6, 2011

the universe is very old fashioned

19:59 August 6, 2011

leaver or gatherer of mysteries

what is the difference?

19:29 August 6, 2011

you are the last one in a horror movie

19:07 August 5, 2011

there are a lot of metaphors in life

20:41 August 4, 2011

[Man walks in to gold and silver + walks up to the counter. Rick + Old Man are there]

Rick: It looks like you're coming to pawn something but I don't see anything

[Man pulls a stick of used chewing gum out of his mouth]

Old Man: Oh mai gawd!

[cut to fact board]

[back to g+s]

Rick: Were you looking to pawn or sell it?

Customer: Actually, I was just going to throw it in the trash but I'd like to sell it

Rick: Ha ha ha

[cut to Rick]

Rick: Used chewing gum isn't worth much, but if I can get it for the right price, I can make a profit, and that's what I'm after

[back to g+s]

Rick: So how much you want for it?

Customer: Well, new it was 25 cents. But I'll give it to you for ten

Rick: No. Look, its been in your mouth....its kinda disgusting really. [pause] I'll give you 2 cents for it

Customer: How about five? I've seen used chewing gum on ebay go for like a whole dollar.

Rick: I'm going to have to wash it off. That costs money. Look, I have to make a profit on it. Three. And not a penny more.

Customer: Would you go four?

Old Man: You're being a fool, Rick.

[Long pause with suspense]

Rick: Okay, I'll do four. But don't -- ew -- hand it to me. Just set it on this paper.

[Old man puts face in palm]

[Cut to Rick]

Rick: I know its an old piece of gum, but I am confident I can turn a profit on it. Or maybe I'll just give it to Chumlee and maybe that'll shut him up for awhile. Ha ha ha

[Cut to customer]

Customer: I was high on mescaline and just wandered into this pawn shop. I was just looking to throw my gum away but this crazy guy wanted to buy it. So yeah, I'm happy.

[Cut to Old Man]

Old Man: I have an idiot for a son.


20:35 August 3, 2011

how often does one touch infinity?

20:32 August 3, 2011

Einstein was right

QM is too messy

(albeit, multidimensionally...?)

20:28 August 3, 2011

a great evil dying

20:26 August 3, 2011

the ultimate problem of programming is the problem of people: why should there be one way?

19:35 August 3, 2011

most work is done in the world to avoid workflow

16:24 August 3, 2011

the reason i hate most documentation


aside from the URL being retarded, the first thing i learn is that "virtualenv is a successor to workingenv, and an extension of virtual-python."

so if i don't know anything about virtualenv, i now know it is vaguely associated with two other things i know nothing about

21:10 August 1, 2011

Joey Martinelli: "I'd say it again, but I don't want to eat a dead horse."

19:17 August 1, 2011

The Old Guard

"The prisoner tried to escape by lowering himself on a rope, but I found that con descending"

14:44 August 1, 2011

in database, you keep state; in soviet russia, state keeps YOU!!!

14:43 August 1, 2011

pbr with a slice of lemon bought at a dive bar that you drove a stretched SUV to get to

19:38 July 28, 2011

google has really come a long way from their humble beginnings. now they can nag me into filling out some piece of paperwork with the best of them

14:41 July 28, 2011
08:06 July 28, 2011

Compare and contrast: logic gate architecture vis-à-vis neural net architecture

07:09 July 28, 2011

San Francisco is enlightenment turned on its side

11:14 July 27, 2011

once you accept that all life is disillusion, there is only one arrow

11:02 July 27, 2011

itd be fun to be on the moon....if you measured time using earth as your central body then time would purely be a function of geography

"see you at midnight!"

10:11 July 25, 2011

Joey Martinelli: "You're a regular eggs benedict arnold"

18:22 July 24, 2011

the tail evolves towards the head and not vice versa

23:17 July 23, 2011

neural nets, workflow, directed graphs: indentical

00:14 July 21, 2011

So, for whatever reason, when I updated to the latest nightly of Firefox today homedash, https://addons.mozilla.org/en-US/firefox/addon/prospector-home-dash/ , which I installed awhile ago, decided to renable itself. I remembered thinking at the time that I thought homedash was the future of browsing, but for reasons I can't remember I found it somewhat unusable other than as an experiment. Well, I decided to try out this new version that had turned itself on.

Turns out...its pretty awesome.So, my browser is really the entire screen. srsly. There is a tiny tiny Firefox in the upper left corner which opens up to an entire full Firefox-button type menu. I can scroll through my "tabs" (there are no tabs) and get a fast preview and do anything else I could do through the Firefox button. It is seriously slick. It is not just Firefox in fullscreen. It is a genuine new and cool interface. Coupled with panorama (ctrl+shift+e), this feels like the right browsing experience. Not for all time or anything silly like that. But...just to repeat....seriously slick.

It requires a pretty high familiarity with how browsers work (not Firefox specific per se, but modern browsers in general) in order to really get it. I wish it was more self evident. But for an experimental project, its downright usable. I've already contaminated my home machine with it.

There's a few things I really need. I want a way to copy the current page URL to clipboard. I do this a lot to share links outside of the browser. The best I can do is ctrl+l && ctrl+c && click back on page. This should be a single command to do this (keyboard or otherwise). Also, my page previews a la ctrl+t don't render (linux). I don't know why. I don't actually care about them that much, but the fact that they don't render bother me.

To make this useful for more people, it'd be nice if it displayed and configured keyboard shortcuts. I know ctrl+l, ctrl+k, ctrl+t, ctrl+w (both of them), and that's about it. And I work at Mozilla. I have a short memory for things I don't use, and I don't use things I can't remember. Also, attention to addons? If I need to access addon functionality....I have no idea how to do that. Addons are first class citizens. We should give them that respect. And URLs are first class citizens too. I want to see the URL I am clicking on. I want to see what is loading. homedash combined with https://mozillalabs.com/prospector/2011/07/14/tab-focus-automagically-organize-tab-groups/ could be a good shippable combination.

There are some bugs too, but they're mostly details here.

So, how is it so slick?

I was browsing my website, http://k0s.org (yes, the very site this blog is on!), with homedash in fullscreen. Without chrome and widgets to distract me, with nothing but HTML, it really made evident how my UX worked. What is actually slow that should be snappier? How do things really look minus a virtual frame? Its quite striking when presented to you like that. Also, it made me realize how ugly the default scrollbars are. Yuck. Lets make them better.

So try it out. Maybe you'll love it. Maybe you'll hate it. It's open source -- https://github.com/mozilla/prospector-- so feel free to play along.

21:19 July 19, 2011

On an unrelated note, it's often more (actually) pretentious to sound common-spoken than to use archaic expression forms

13:18 July 19, 2011

13:18 < jhammel> i wonder if i have the most twitter followers of anyone that

doesn't tweet?

13:18 * jhammel should tweet that

11:09 July 19, 2011

wireless fidelity? more like wireless infidelity!

11:03 July 19, 2011

about 9 out of 10 times i see regex-based dispatching is the equivalent of making a PDF that reads "Meet me down stairs in an hour" and sent in an email

10:18 July 19, 2011

it really sucks when you are depressed and you're not sure if you should be depressed or not

22:45 July 18, 2011

"The aliens believe they'll die if anything remotely Vorlon touches Z'ha'dum."

11:15 July 18, 2011

anthroapologist (n): one who says they are sorry in the name of humanity

09:20 July 18, 2011

i made a really fast NoSQL DB but i had to drop ACID

18:39 July 17, 2011

esoterica ultimately resolves to first principle

18:10 July 17, 2011

"Do you espouse a proscriptive or a prescriptive structuralist viewpoint?"

"I espouse an anti-structuralist viewpoint."

18:05 July 17, 2011


From http://autolycusrogue.weebly.com/submission-guidelines.html

autolycus: rogue literary journal [...]

word documents...very this century and very rogue

10:25 July 16, 2011

k0s.org -> web-3.0, part 1: pyloader

Earlier this year, I moved my site to wsgiblob. The idea is that a composite (poly-application) website is an acyclic directed graph (DAG) and that using a native format for the DAG would make true traversal realizable.

wsgiblob was an exploratory project. While I put k0s.org on wsgiblob for several months, it was mostly to remind myself to finish up what I was doing. Amongst a few other things (see http://k0s.org/hg/wsgiblob ), wsgiblob contained various matching conditions for dispatching (via path, domain name, etc) and an object loader. The object loader used an .ini file, with each "app" having an :app section and an :options section (e.g.):

factory = hgpaste.factory:make_app
path = /hg
global_conf =
config_file = %(here)s/hgweb.config

It was a realization that while there were special things going on (e.g. path = /hg ), loading a python object was agnostic to whether or not that object was a WSGI app. I intended to rewrite this at some point.

For wsgiblob 2.0, which became wsgintegrate ( http://k0s.org/hg/wsgintegrate ), after several months of consideration I realized that this rewrite was going to be necessary. Thus was born pyloader: http://k0s.org/hg/pyloader .

pyloader actually contains several utilities for inspecting, constructing, and calling python objects. But what I will talk about now is the abstract factory for creating DAGs of arbitrary python objects that improves upon and generalizes that in wsgiblob. (See http://k0s.org/hg/pyloader/file/9203ca3a5182/pyloader/factory.py#l23 )

Like wsgiblob, the base format is JSON-serializable:

{'foo': # (arbitrary) object name,
      {'args': ['positional', 'arguments'],
       'kwargs': {'keyword': 'arguments'},
       'path': 'dotted.or.file.path:ObjectName'},
 'bar': ... } # etc

(From http://k0s.org/hg/pyloader/file/9203ca3a5182/README.txt#l12). An arbitrary name is chosen for the object (e.g. foo) and the args and kwargs associated with its construction are stored. These may also refer to other objects in the same (net) configuration via python string semantics: %(bar)s denotes the bar object, etc. So long as you have a DAG, the connectivity is arbitrary.

Additionally, you can have an .ini file that translates into a JSON file, e.g.:

. = positional, arguments
keyword = arguments

In addition to just mirroring the JSON syntax, the .ini format allows for easy use of "decorators" as would be useful for matching a request in WSGI, though the entire thing is WSGI agnostic. For instance, a portion of my site looks like:

. = %(hg)s
# wrapper decorator
app = %(object)s
config_file = %(here)s/hgweb.config
config_file = %(here)s/hgmozilla.config
global_conf =
namespace =
file_dir = %(here)s/blog
date_format = %H:%M %A, %B %-d, %Y
site_name = blog
user = k0s
header = %(here)s/templates/site-nav.html

The @ symbol is used as a convenient decorator. More about the syntax is available at http://k0s.org/hg/pyloader/file/9203ca3a5182/README.txt#l27

So the real question is....why do this in JSON or an .ini file versus a python file? Well, easy to read, easy to write and all of that. But much more importantly, imposing a structure -- that is restrictions -- in creating an abstract factory allows use and manipulation of said structure. A python file allows absolute freedom, but almost zero chance to be able to robustly manipulate what's going on. You can't very intelligently inspect what the python is doing: trying to do so is already black magic and it will fail in the face of other black magic, on top of being counter intuitive and, dare I say (I probably shouldn't) unpythonic. In addition, the use of python as factory configuration inevitably leads to an incestuous union of configuration and program logic...because its easy to do so. Freedom is never really free.

Contrast an .ini or JSON based approach (or XML, but...shudder). Given an .ini configuration file, you can tell when the file has been modified. Since you enforce a DAG (which covers not only WSGI traversal but a wide variety of practical python problems), you can reload the whole graph or, if you keep track of what depends on what, you can selectively reload only the modified objects. You can enable read or write access through (e.g.) a JSON request. Using this, it would be easy to make a drag+drog SVG map to construct/modify a WSGI site in real time.

I'm pretty proud of pyloader. I'd love to see something like the JSON format for object serialization be part of the standard library. The mapping of path, args, and kwargs fits well to both the JSON and .ini representation, and while the .ini format is somewhat unusual....is it really any more so than e.g. apache or nginx?

While goings are slow, since k0s.org is a side project of low priority (and time, sadly, is limited and taken up by stupid things like laundry), I look forward to improving and leveraging pyloader for k0s.org and other purposes. Stay tuned for more on wsgintegrate, built on top of pyloader.

For more details, see:

21:16 July 15, 2011

removing the perforated strips from a spiral notebook after tearing out another page, i realized that this moment holds some truth at what life is

21:11 July 15, 2011

Machine Architects

A: Divorce yourself from the petty vanities of self and its incesant programmatic concerns. We are simply machines, miniscule cogs in a universe, and as surely as machines we can be operated.

K: To what end?

A: It is with that thought you should gauge telepathy.

00:24 July 14, 2011

partial memberships in repositories

22:49 July 13, 2011

i do not exist yet

17:04 July 13, 2011

Not like this recursive function is going to call itself! ... oh wait

09:22 July 12, 2011

Peet's Coffee and Four Barrel come together to bring you a reserve venture into Japanese rice wine: Four Peet's Sake

17:58 July 10, 2011

Bubbles rising from vacuo

12:53 July 8, 2011

i'm always surprised when things work as i expected

08:05 July 8, 2011

i don't believe in cold-fusion, but i believe in con-fusion

13:26 July 7, 2011

i hate people that are too timid to say they hate things

11:58 July 7, 2011

if you want to see the real vampire, look in the mirror

10:23 July 5, 2011

I wonder what the safe ambient microwave density for (order of magnitude 2.4MHz) wireless devices. Could everyone have (multiple) wireless devices without us cooking ourselves?

10:19 July 5, 2011

not reinventing the wheel is the mark of a good programmer

knowing what wheel to reinvent and when is the mark of a great programmer

20:41 July 3, 2011

people with integrity are those who only lie about big things

11:06 June 28, 2011

using windows to debug something....now i truly know how the other half lives

16:16 June 26, 2011

maturity of a relationship transitions from treating better than one's own to treating as one's own

11:30 June 21, 2011

Try Wreck-Less Driving School! Become a Wreck-Less Driver...today!

13:50 June 20, 2011

automagic development

Consider e.g. Mozilla could benefit from deploy a plethora of tools (see e.g. http://brasstacks.mozilla.com/toolbox/ ) and custom configuration on e.g. developer laptops. Ideally, you would have a variety of configurations that could be mixed and matched depending on desires and needs, but the simplest case -- a single configuration -- can be extrapolated to the more complicated case. Imagine if, when you alter your configuration or any of the provided tools it was automagically pushed to your own fork (pre-provided). Then these could be used for notification and combed for information that can be used to update the canonical repository

13:38 June 20, 2011

i wonder if gender evolved from parasitism?

18:53 June 17, 2011

there is no real interest between males and females

11:29 June 16, 2011

someday i want to program just from the awesomebar

11:01 June 16, 2011

The most terrifying sentence prefix: "All you have to do is..."

08:28 June 16, 2011

the decriminalization of the suicide pill is held to be the greatest furtherment of civilization since the invention of toilet paper

22:15 June 15, 2011

The wonder of manufacture, the creation of form from ideas, of objects that faded even more slowly than the life of animals, has faded as a subject of concious observation in these days. Look to the mandate to build faster, cheaper, more temporary, washing from the mind without leaving a mark

14:31 June 14, 2011

just once i'd like to see the Union of Concerned Scientists go on strike

E = mc^2 : ITS THE LAW!

20:08 June 12, 2011

every generation believes they are the last before the apocalypse

17:34 June 12, 2011

dependencies should be reconciled at packaging time, not fetching time

setuptools presents a typical installer type program which recursively resolved dependencies. This presents several practical problems, most of which involve requiring reliable network access at the time the packages are to be deployed, in addition to version incompatability. If the dependencies were instead resolves on packaging, a full version could be presented with dependencies resolved.

13:52 June 12, 2011

to those that boldly stride out but then hesitate:

get the fuck out of the way

13:25 June 10, 2011

in Europe, there are facts and there are "facts"; in America, we see no reason for the quotation marks

13:24 June 10, 2011

"capitalism abhors a vacuum"

13:41 June 9, 2011

its like when you lose your mail so you just take something out of your neighbor's box...it may not be what you want, but at least you have mail

16:48 June 8, 2011

to write: the center of gravity and the decision making process

13:35 June 8, 2011

do k*no*w evil

12:07 June 8, 2011

Autistic parent: Oh, I could have sworn that it said Kids Row

09:32 June 8, 2011

@jhammel: stop tweeting at yourself

12:29 June 7, 2011

the revolution will not be tweeted

12:02 June 6, 2011

Cost-cutting strategies for canoe trip

"Alright, I need your best ideas on the table and I need them now!"

08:21 June 6, 2011

Speed Limit c: exceeding the speed limit will result in a causality violation

18:33 June 3, 2011


I read about 2/3 of this....he's just starting on how to use Class now, which might actually be interesting, but I don't think I can read anymore. While nothing he says is "wrong" per se, and he even invites jQuery authors to fact-check him, he (I can only presume its a he based on language and tone) presents his opinions as if they are valid and correct and conversely that others are invalid. In some parts, I agree with what he is saying. For instance, it would be nice to have a JS something that extended native objects and made inheritence easier. However, to contend, as he seems to, that since jQuery doesn't do this it is therefore not particularly worth considering I find as horribly invalid. Hey, I have my opinions too.

He presents jQuery as a toolkit and mootools as a framework. I've come to loathe the latter term and, thereby, develop affection for the former. When asked what web framwork I like, my answer remains "none of them". A framework, in experience (and I suppose partially in definition), presents a "do things our way and you'll solve the problem we tell you you want to solve". A bit unfair perhaps, but largely true. To name a very frameworky framework, take django. Answers to a few questions:

Etc. Frameworks are dogmatic. If your dogma meshes with the frameworks, or if you don't care, you're probably fine. For instance, if your questions are like "What template system should I use?", django has an excellent answer: "Ours." Or to put it from a more utilitarian perspective, if you're programming something, you probably have something to do. If you're just playing around, fine, it doesn't really matter if you use esoteric language A on esoteric platform because there aren't any design considerations for your software. Interesting problems usually have design constraints. I could easily invoke economics, but I don't even need to. Even if you're a hobbyist and you don't expect many -- maybe even any -- people other than you to use your software, you still have design constraints if, say, you're making a federated bookmark site. You probably don't want spam. You probably need it to work on a standard browser. You probably don't want it to break if you throw unicode at it. You probably want it easy to deploy and maintain. Maybe you don't. Maybe you enjoy complex and fragile deployments. But probably not. Those are pretty low bars, but its not a horrible example. So you make technology choices to do what you want. Most people don't like reinventing the wheel just for fun. If there is a clear, free, OOTB solution that fits your needs, most people will go for it. Software that I don't have to think about is generally software I like. But, failing that, you have to do it yourself.

The first thing you have to do is decide A. what the problem is; and B. what your solution to the problem will look like. If your problem is making software to organize your bookmarks, well, that's a clear problem :) But this really doesn't give a solution. That's where creativity comes in. You think: "What would it look like if my bookmarks are organized?" Several things flash to mind. If you're an experienced designer, you realize that even if your vision is implemented perfectly, it will probably just point to other problems that you didn't even realize you had, or more optimistically, opportunities and ways of intuiting the universe that you were previously unaware existed. So given that, you set down to write it.

The first thing you do is make technology choices: languages, libraries, platforms, etc. Usually you'll use tools that you know if they apply cleanly (unless, again, your real problem is "I want to learn erlang" and the project is semi-incidental). Herein comes the problem. You've imagined your solution. You can program it with these tools. But how much do you work against the grain of the technologies your working with?

Frameworks, as the word is popularly used, work great when you're going with the grain of the technology. If your vision is served by a regex-based dispatcher interfacing with an SQL database with static files served by (e.g.) Apache that is a traditional-type website with an admin panel, then django may work very well for you. If, on the other hand, you're using a graph database with a highly configurable traversal-based dispatcher with in-memory caching of a small set of static files that will work out of the box on any computer with python and (e.g.) setuptools with complex XML templates using inheritence, then django won't help much at all. It will probably mostly get in your way. HTTP is not complicated. Try it! Seriously, try it! The next time you're writing a simple web app, read the headers and body of the request and construct your response by hand. You may never want to do it again, but it will never more be magic. Frameworks (sometimes) do a lot of stuff. Some of it (e.g. i18n) is pretty substantive. But its only useful if you need it and use it.

The problem, if you will, is that frameworks, and more so, the users and proponents of said frameworks, try to tell you what your problem is. Often, I've been told that the problem I'm trying to solve isn't a valid problem. Sometimes that assessment has been correct. Other times that assessment has been wrong. For instance, if the answer you're offered is "do it this way, its easier/better/more pythonic/etc", consider that. Is it the problem you want to solve? If you want a directed graph of bookmarks and someone tells you to use a hierarchy, is that what you want? Does it make it less useful to you? Does it not let you do things you care about?

I was in a dicsussion recently about whether e.g. "/new" or "/new/" was the "correct" canonical resource. The argument given was that "/new/ is easier to match with a regex dispatcher". This is how methodologies taint one's thought patterns. I wasn't using a regex dispatcher, so it really didn't matter to me. And the fact that the answer is tailored to a method -- a framework, if you will -- is to me a good example of bending what I'm trying to do (figure out which the canonical URL should be and how best do deal with the alternate case, redirect or 404) to a particular technological implementation, in this case one I wasn't even using.

That's how I feel about most arguments in http://jqueryvsmootools.com/ . For the record, I don't consider jQuery just a toolkit. It is a framework, with all of the good and bad that goes with it. Its not a complete JS framework: it is very DOM-centric. But its also not just a bunch of tools and integration layers to build your own damn whatever. It is a framework I happen to like and have found useful. But I'm not particularly trying to defend it, or for that matter cast any dispersions on MooTools. MooTools might be awesome! It solves a different problem, but could very well be cool. I just think the comparison is written in a way that turns me off to it since the author is obviously very involved in the MooTools community.

"MooTools is a framework that attempts to implement JavaScript as it should be (according to MooTools' authors)." - well, at least he's honest. What if I disagree? Are there consequences to this? I have things about any language I use that I don't like, but even if I was given carte blanche to change everything, others wouldn't necessarily like my changes.

"...while the jQuery version is more concise; its hover method accepts two methods - the first for mouse enter and the second for mouse leave. I personally like the fact that the MooTools code is more legible but that's a very subjective observation." - yes, and this is what I want 99% of the time for this problem. Its much easier for me to read, contrasting "I personally like the fact that the MooTools code is more legible but that's a very subjective observation."

"Again, the MooTools code is a bit more verbose, but also more explicit. Also note that the design pattern here is to store the reference to #faq in a variable, where jQuery uses its .end method to return to it." -- That is a design pattern and one I disagree with and don't use. jQuery doesn't force you to do this. And I don't. I store the variable like a sane person when jQuery "convenience" patterns don't fit. You can't (in general) match a regex with a regex (for example). Don't become so dogmatic about any tools you use so that you write bad code for aesthetic or design pattern sense. Design patterns are about communication. If you're adhering to design patterns that make you less communicative, stop.

jQuery doesn't modify native prototypes. Intentionally. I'm glad it doesn't.

"It's actually kind of rude to ask users to download two frameworks. The only reason to include two frameworks is because you want to use plug-ins from both, and in the minds of the MooTools authors (myself included), if you want a plug-in that isn't available with the framework of your choice, it's more appropriate for you to spend the time porting it to your environment than to ask your users to download another framework." - that's probably true. Note the word framework. The toolkit philosophy is somewhat different. A tool solves a specific problem. A toolkit (my definition) is loose integration layers on top of tools that work well together. The difference? While a framework tries to put your problem in its box, if jhammel's mathtool and joeuser's graphtool work well together, why not use them together?

So, really, no slight on MooTools. I will check it out and play with it someday. It probably solves a lot of interesting problems. And I will continue to use jQuery for the problems I know it solves well, which as the author correctly points out are not nor are meant to be all of the problems in JS-land. I do resent the framework >> toolkit attitude that he espouses. But that's my opinion, based on my practical experience. I can already think of arguments against my case and you're free to disagree

13:06 June 3, 2011

here is toolbox! http://brasstacks.mozilla.com/toolbox/ its bright and shiny!

11:26 June 2, 2011

it makes me sad to remember all the things i forgot

22:06 May 30, 2011

if Gatsby were alive today he would be interested in time travel

21:13 May 27, 2011
11:36 May 26, 2011

'opinion' is just 'onion' with a few extra letters

14:49 May 25, 2011

a new photo gallery: http://k0s.org/pictures/industrial/

23:41 May 23, 2011

Dear Misters Hanna and Barbera, respectively,

Sirs ! I empart this correspondence to both praise you with one hand and to scold with the other your most interesting presentation, The Great Grape Ape Show. This show both entices and fulfills with exhuberent whimsy, imparting lessons both moral and esoteric, not to mention the excellent entertainment value therein carried. However, Sirs, I would implore you to consult with your designated experts concerning the adherence to physical law in such cartoons! While aspects such as a beagle that talks -- and has been given license to operate a motor vehicle -- are to be expected in the genre, and even the implausible event of lifting up an entire jail and placing it over suspected criminals with its structural integrity intact may be lent (however reluctantly) some creedence, I find it impossible to suspend disbelief that a forty foot ape could leap on to a cargo van, still in motion, without any impact to the detriment of the vehicle. Using an estimate of a six foot gorilla at 800 lbs [Reference: wikipedia], a forty foot gorilla may be conservatively estimated at over 80 tons (metric), accounting for purely the scalability of mass into three-space and not taking into account the bone and organ enlargement that would be required to make feasible the existence of such a gorilla. Even from the modest height of ten meters, with an (again conservative) estimate of an impact moment of under 0.1 s, this provides a force far exceeding that required to crush a cargo van even of reinforced titanium! This isn't calculus -- this is simple arithmetic! Surely the poor Beagly Beagly would be crushed every time Grape Ape lept on to his vehicle, ignoring entirely the effect of the lateral momentum on the van's dynamic stability. While I applaud you for this and other fine forays into the medium of animation, the blatant disregard of simple physics cannot be overlooked. In the future, please consult your fact-checkers, or my services may be sought by appointment. And I would implore you, Sirs, for the sake of your reputations, to issue an apology for your oversight in this matter.

A concerned and devoted fan,

Jeff Hammel

19:47 May 20, 2011

we'll never catch up with our technology now

12:02 May 20, 2011

Made with REAL protons, electrons and neutrons!

10:12 May 20, 2011

these bits go to 2

10:04 May 20, 2011

From the makers of From Dusk Till More Dusk comes....

Job Interview with a Vampire

21:25 May 19, 2011

re http://k0s.org/blog/20110517142323 , i was joking but.... http://www.tetris1d.org/tetris.php

20:57 May 19, 2011

you know you've made it when... http://quotes.burntelectrons.org/5730

07:46 May 19, 2011

don't lie to your audience. get your audience to lie to themselves

15:01 May 18, 2011

the one thing about tautologies is that theyre tautological

16:36 May 17, 2011

http://k0s.org/comedy/newyorker/moderately-fancy.jpg the new New Yorker

16:11 May 17, 2011
>>> assert AssertionError is False
14:23 May 17, 2011

another failed idea: one-dimensional tetris

09:21 May 16, 2011

captchas are like every other thing in webdev: they're extraordinarily easy but all the baseline implementations are awful

22:42 May 14, 2011

im nothing if not nihilistic

22:03 May 14, 2011

whit - "i dont meditate. i premeditate"

20:00 May 14, 2011

"bb&beyond prices themselves like they were moderately fancy when in fact they're just moderate"

(...could almost be a NewYorker cartoon caption except that it mentions BB&B at all)

19:59 May 14, 2011

re http://k0s.org/blog/20110514182108 :another classic blog post runed by misspelling

18:21 May 14, 2011

its fall again in the Mission

17:21 May 14, 2011

application of a wine rack

while from a perspective, a wine rack is essentially meaningless furniture, holding bottles that could just as easily stand on a floor, counter, or table uncontained, the wine rack presents the wine with a distinction that is both aesthetic and practical.

when retrieving a bottle from the wine rack, the guest is given an air of mystery to the story of the wine. is it a prized bottle saved through the years for this moment, or simply a forgotten vintage that has lingered and pulled out by chance?

wines tied to one's story should be buried deep, unseen in the wine rack, while more casual bottles should be more evident. the wine rack should be in no real categorical order, save perhaps for very large racks where such is necessitated.

all bottles in a wine rack should be good, or at least presumed very good if they have not yet been tasted. a poor wine presented from the rack will cast doubt to the quality of the entire collection. lesser wines unworthy of the rack, if kept at all, should be kept physically separate so that the bringing of a wine from the rack -- part of an occasion -- is not confused with simply drinking an indistinct wine.

when the wine is presented to a guest, the story of the wine, if mentioned at all, should be only as a trivium in the context of a party favor. it should not be boasted of, only presented as the condensation of its story .it should never be mentioned out of obligation or to alert the guest that they are drinking an especially distinct wine. the nuance must be appreciated through its rise to the senses, not by casting attention upon it. of course when the nature of the wine is inquired into, such should be presented save when it would be uncouth.

19:30 May 13, 2011

wow i still have a trac directory on this computer. that takes me back

07:56 May 11, 2011

stop for a coffee

At my morning coffee spot behind a guy whom the cashier was flirting with with such abandon that she forgot how to operate the cash register. This further disconcerted her in the presence of a hot boy that she accidentally charged him an arbitrary amount, points to be worked out later after he left her morning. I wondered what it would be like to be her. Covering my paper cup with a plastic Solo-brand traveler lid, I spied the book she was reading. While I did not know the title, I judged the book not by its cover but its relation to the reader, ascribing to its words, its author, all of the facets of her witnessed through a typical moment's fumbling. I wondered why she read. Did she read because she enjoyed it or because it was a thing to do?

In my obsessiveness, I applied the same lens to myself. I once thought I had a good understanding of how things worked, at least from the point of view of a hyper-evolved monkey in an ephemeral civilization built on economies of imagined exhuberence. Now....less so. Why do I read books? Do I read them because I enjoy them or because they're a think to do? Have I fallen from some intelligent perspective and am now an artefact of what I was (likely) or was I just never that bright in the first place (also likely)? And what does it matter? Nothing has changed that the greatest relief in my life is that the universe is not my sole responsibility. So I learn to take solace in my inadequacies and insignificance

20:34 May 10, 2011

There's something horribly and inappropriately decadent about drinking Chimay blue straight from the bottle

14:02 May 8, 2011

sum peephole complane abowt mai sepllung butt eye doent allways half thyme too pay a tension two details

11:06 May 3, 2011


So there are three kinds of tasks:

  1. Tasks that you do once and are done. These actually seem to be in the minority. These include things like publishing a novel and taking the SATs.
  2. Tasks that need to be done over and over again. These are things like cleaning your apartment. It is tempting to say, "Well, its just going to get dirty again, so why bother?" However, if you don't then you'll have a messy house.
  3. Tasks that are stupid and repetitive and meaningless. Every month or so, Capital One sends me checks for my credit card. I never use them. But they're a security hazard so I ink them out, write VOID on them about a million times, and shred them and throw them out. The net value of this is negative resources to me and negative resources to Capital One. Its just a wash.

People often assume that I favor tasks of type 1. and disfavor tasks of types 2. and 3. Not so! While there is something satisfying about type 1. tasks, in reality its not realistic. Even for the examples given, there may be follow-up to the novel and the SATs are just a step towards college. I'm quite content with type 2. tasks...that is the bulk of life.

Its the type 3. tasks I don't have much respect for. When effort is duplicated, or worse, when effort results in more effort, this is the beginning of untenability. Let's quit tolerating this

08:27 May 3, 2011

my curator sense tells me if the classifier approach of toolbox could be merged with hierarchy something awesome would happen...

14:36 May 2, 2011

how i write a letter

...kinda sucks. So I switch computers, Alot . Which means I need a way of having a long email live in several places. Unfortunately, my mail program (which will remain nameless) isn't really quite up to bar here. Not to mention that an offline editor, whose purpose is to edit, is going to be Alot better at editing than something rolled into to a mail program. So I edit files and sync the files, something I already have a solution for . However, my problem is exacerbated by the fact that my MUA doesn't let me insert a file into my message :/ Nor, for reasons I don't understand but are probably intrinsic to X and/or GTK, does xclip -i < myemail.txt and shift+insert do what it should and solve about 90% of my problem. So here's what I do:

  1. Write the email.
  2. Start a new message

3. Make my screen really really tiny so I can copy and paste the entire email. 4. Paste the entire email.

Sound stupid? It is! How can it be 2011 and computers be so awful? :/

16:43 April 29, 2011

New! from Baskin-Robbins:

Iraqi Road iced cream

Now with more marshmallow IEDs (improvised explosive deliciousness)!

Try with a scoop of Abu Grape!

13:41 April 26, 2011

Q: Why was the president so eager to have the text line up with the margins in the Patriot Act?

A: So that it would be justified

13:33 April 26, 2011

the lolcat l10n effort: a hul new LOLcale

22:43 April 25, 2011

there is no such thing as original thought

20:01 April 25, 2011

chips + salsa and cereal for dinner isn't a meal -- it's a lifestyle

01:08 April 24, 2011

dna lounge was packed for probably the one event of theirs i'd ever care about so i passed them by. i heard industrial from slims but it was a bear party so i split back to mission. went to that club on 16th that i still don't know its name. the dj was a little awesome but it was crowded so i couldn't dance and it sucked.

23:15 April 23, 2011

Victor - "Went to a club because the rest of the night was shit and there was no reason why not"

20:39 April 23, 2011

specs should be tests

15:30 April 23, 2011

Victor - "Finally found a wine rack at the MOMA store which was surprisingly reasonably priced. Drank an espresso and smoked a cigarette across fron Moscone center where a lady I saw earlier was still on the phone."

15:06 April 23, 2011

didn't go to the container store because they might try to sell me a shoe rack as a wine rack and shatter my entire belief in rational thought

20:07 April 22, 2011

now at beauty bar for the first time ever having a beer while i wait for pizza since amnesia had a band. its actually not horrible this early. everyone is cliquey and wont talk to me but nothings different there

19:28 April 22, 2011

i am in crate and barrel shopping for wine racks. everything is too new and expensive but some of their bars are nice. theyre playing the muzak version of nevermind

11:21 April 22, 2011

│cat american_politics.py parties = ['Democrats', 'Republicans'] current_party = 'Democrats' debt = 7E13 deficit = 1E12

while debt is not NaN:
current_party = [i for i in parties if i != current_party][0] # election print "I forgot why I hated the %s!" % current_party debt += deficit deficit *= 1.5
09:54 April 22, 2011

bug trackers need a way of attaching patches with the message "Look, here's a free patch, but don't expect me to further work on it"

19:32 April 17, 2011

life is fractaline occupancy between two points delineating infinite nonexistence

06:56 April 14, 2011

who would have thought people would take procreation so personally?

20:13 April 13, 2011

i'm such a bastard: https://bugzilla.mozilla.org/show_bug.cgi?id=649408#c61

14:00 April 12, 2011


10:24 April 12, 2011

i wish i could have lived in SF when it was derelict and awful

14:09 April 11, 2011

Stages of language mastery

So in writing toolbox (https://github.com/k0s/toolbox for now, not my idea to use github so don't yell at me) I realized I didn't know JS nearly as well as I thought. This is to say....I know how to do stuff in JS, but it is more difficult to structure it than I thought.

I've realized that there are different stages for learning a programming language. This is given the assumption that one knows how to program but one is learning a new language/way of doing things. How do they go?

  1. Syntax: learning the literals of the language, the grammar and "words". You can do simple things with these, like e.g. ordering tacos in a Spanish-speaking restaurant
  2. Doing stuff: You can probably manifest any algorithm you can think of. Your solution may look wrong, feel wrong, and not be very efficient, but you can get 'er done
  3. Architecture: You begin to learn how to structure your code so that it is both efficient and is a manifestation of intent
  4. Packaging: You learn to package your code in a way that it may be easily deployed but that complex deployments are possible.
  5. Mastery: You realize the space where your code lives in the information universe

In python, I'm probably a 4. (roughly speaking). In JS, I had previously assumed I was a 3, but really I'm a 2.5 tops.

13:59 April 11, 2011

idea that someone will probably steal and do something evil with

So....you have search algorithms that e.g. count where the page is linked from. What about scraping names. E.g:

Jeff Hammel was at war with the evil orcs of Saruman the White

So you scrape and analyze the text nodes and see how people are related to each other. You can construct a social graph and asociate people with things and other people. Pretty evil, eh? So why hasn't anyone done it?

12:15 April 11, 2011

My experience with HTML and CSS (especially forms)

19:42 April 9, 2011

My bank just mailed me and told me to ignore all emails from my bank. Is that inclusive?

15:16 April 7, 2011

sub-prime number: a number divisble evenly only by itself and zero

11:21 April 6, 2011

all social commentary is worthless

11:21 April 6, 2011

destroy karma

22:36 March 30, 2011

what the hell goes in a gin and tonic?

20:00 March 23, 2011

We may speak of what we call reality as solid by convention as there is entropy and an arrow of time to which all actions are fixed and we fall from them to the future. Yet actions fall from the interwoven thoughtscape. Is there not a vantage point that plants this astral plane in solidity?

19:54 March 23, 2011

I have now been at Mozilla over a year. I won't pretend any of it has been easy -- even in things I have prided myself on doing well in, it is a continuous challenge to do more, better, effectively.

As you can tell from my recent slew of blog entries not to mention press all over the media, Firefox 4 came out yesterday. It was my first major launch at Mozilla and I can only say that I am impressed -- not only by the fact that everyting went real smooth, but also at reflecting upon all of the progress that has been achieved in the last year and how after the launch (the very day), a plethora of conversations ensued addressing so many of the issues that have been on my mind for awhile. Sometimes I'm really proud of us.

Another thing that really hit home with the launch is that Mozilla is a community. That is what it is. While the general reception by the tech press regarding Firefox 4 has been positive (our new CEO, Gary, has been most excellent in translating our values and what we do to a form that the press could convey. kudos!), there have been numerous articles predicting the demise of Firefox to Chrome and IE. Nothing new here. But having been here for a year and going through the Firefox 4 launch has given me a new understanding of why these articles are at most unimportant. We're not offering the same thing as what Chrome or IE or Safari are offering. We're offering community. We use phrases like "the open web" to describe what we want and -- truly -- our values are aligned with our words ... because they can be, because these are really why we exist. Not for profit. But while anyone can recite pretty buzzwords, we really do allow the internet to become something that is participatory in its construction.

We build the internet. We all do. At Mozilla, we work to raise awareness of how the internet works and how its not something that is written for you that you are just following some path on, but that you are part of. Since the launch, so much of the discussion has been about how to empower our community -- us -- to make the internet what they want. The process can be cold and prickly now, like with most open source projects of any size. But we believe in what we do. And we do it well. If you want to compare the nuances of technical characteristics of Firefox, Chrome, IE, and Safari, I would still say, objectively as I can be, Firefox is superior, but I could see other points of view. But we are the only one of these whose purpose is to build a better internet for you, for all of us.

14:52 March 23, 2011

In the first 36 hours, about *one in thirty' people in San Francisco downloaded Firefox 4: http://glow.mozilla.org/

21:23 March 22, 2011

is pretty http://glow.mozilla.org/

13:09 March 22, 2011
07:21 March 22, 2011

It's here!

and it's awesome:

Firefox 4.0: free the web

04:47 March 22, 2011

oh SF !

i wake up at 4a to go to the Firefox 4 launch party. i walk over a bridge i could have well gotten mugged carrying an expensive computer. i walk over a giant hill in the rain to wait for the first caltrain, an awful local one. but the thing that gets me ... no fucking coffee house is open

15:10 March 18, 2011

(my blog == my microblog)

13:35 March 18, 2011

firefox sync

22:18 March 17, 2011

bricked my OS within 12 hours of having a new computer. i am ever so pissed!

15:51 March 17, 2011

I hate to be the one to say this -- again -- but the clean energy problem is not hard to solve. Rather, it would not be hard to solve if it was a societal priority. Its not solved because its not as cheap to do. So....no one is going to do it until it is. Invest in energy saving technologies. Invest in renewable/clean energy generation. Its not hard. Its just expensive.

Or, think of it another way. You can live off of rice and beans for less than $50 a month. I know this for a fact. Or you can eat a more balanced diet. We(=society) say, "Hey, you're a consumer, do what you want! In fact, spend more because it elevates your social status and is good for the economy (albeit, not your economy)." But as society, we don't make decisions like this, at least anymore it seems (unless someone important gets a kick back, see the Iraq war). Why not? Why should we make decisions based on dollar figures rather than what the dollar actually represents -- that is, prosperity?

I was somehow hoping that Barrack Obama would, as part of the stimulus, do what I thought was obvious -- creating jobs by investing in energy technologies vs or in addition to giving over -- let me spell it out -- $1,000,000,000,000 to (e.g.) Wall Street. I haven't done the math, but, really, how much clean energy would that buy us? Things to ponder

17:26 March 16, 2011

"I wouldn't belong to any club that wouldn't have me dismembered" - Karl Marx

19:22 March 15, 2011

You sculpt the future from your expectations. If you open yourself to the will of the universe, your dreams will take you to wonderous and terrible unknowns. If you are insistent in your expectations, then time is forced to yield only your greatest doubts realized.

00:27 March 14, 2011

Scientist Proves the Universe Does Not Exist !

no one cares

11:40 March 10, 2011

what good is the internet if i can't even find a hello kitty switchblade?

14:38 March 8, 2011

Harry Potter, Lord Voldemort, and the Alien Archaeologist

11:32 March 8, 2011

lamenting the fact that coding is inherently a collaborative effort in an competitive economy :(

15:36 March 7, 2011

when solving a problem, don't go through the steps about what you need to do to solve the problem. instead, imagine how things will look like after the problem is solved and do that. the former, while more expedient, tends to lead to cruft. the latter, to contrast, will give you the clean solution you really want

13:42 March 7, 2011

you can't unmix a soup

12:32 March 7, 2011

personal loan from Albert Einstein: A.E. - IOU

20:09 March 5, 2011

poop is heavier than wishes

09:58 March 5, 2011

a certain dark aspect

09:58 March 5, 2011

a membraned creature has several architectural disadvantages. the toxins taken into the body must be processed and expelled. processing toxins ages the body and contributes to eventual system failure. the membraned creature therefore is subject to the environmental absorption rate and thus the chemical nature of the creature is revealed as opposed to it being a 'black box' of conciousness. it is therefore concluded that all membraned creatures are subject to ambient toxicity, permeability being a constitutive property of a contained existence. the only invulnerability: permeability approaching infinity

09:55 March 5, 2011

i sit in bars and take notes. i'm not sure how its come to this. i don't hang out with anyone. sometimes i just stay in my house and, i don't know, program or listent to NPR ... or paint ... or whatever. but being a programmed social creature, i go out. i'm too shy and antisocial to talk to anyone. so i don't know why i do it except to be around people. so i go to bars, even if its just a Thing To Do. i don't know where to put my eyes. eye contact is key. i accidently made eye contact with a girl when i thought she was someone i knew and she talked to me. silly isn't it? i'm not sure which is more silly: that she was compelled to talk to me because i made eye contact, or that i don't try to exploit this eye contact thing to get girls to become superficially fascinated with who i would pretend to be.

i was at, if you will, a "happening club", writing in my notebok, when a very attractive girl said to me, "so you come to a bar to take notes?" i didn't really have much to say to that

22:30 March 4, 2011

once again i've wasted an evening looking at archaic formalwear

19:11 March 4, 2011

there's something nice that internet searching "long pants" actually does what i want, except the ads on top

19:11 March 4, 2011

associative v. hyperbolic v. associative v. analytic

16:29 March 4, 2011

forced the choice, its better to have software that's hard to use than easy to misuse

19:23 March 1, 2011

I was stupid enough to open an envelope saying "Financial Information Enclosed"

""" Debt can feel so overwhelming [...] A Discover Personal Loan can make all the difference! """

...no comment

10:54 March 1, 2011

CSS-like metadata for files

I wonder if anyone has played with attributing metadata to files with css selectors. You have selectors for files, which albeit would look slightly different than CSS (but very similar) and you can put metadata on them:

*.txt {
type: text/x-rst;
21:08 February 28, 2011

"Al Qaeda gave young people drugs"

Figures. I thought I was watching democracy unfurl, but what was I thinking?

18:15 February 28, 2011

If you tell someone to do something, you have a certain resposibility that falls into a finite set of categories:

  1. You allow them to do it how they want to do it
  2. You specify the exact manner in which you want them to do it
  3. You provide them with the help such that their work is suitable to your desires

Failure to acknowledge this responsibility leads to unhealth and a bad disposition for all affected parties.

17:05 February 28, 2011

Teh factz: 1. most coders hate to clean up after themselves 2. most coders who are not in 1. don't want to be yelled at for making a mistake 3. most coders who are not in 2. don't want to be yelled at for wasting time 4. most coders who are not in 3. don't write code

Teh kingdom: Meet OpenSorceum, a once peaceful land on the edge of the sea. For thousands of years, OpenSorceum lived in peace. But villagers lived in fear -- there were places in the Code Woods that no one would go. The couldn't understand the code! They were afraid to change the code! Aged wizards claimed that the code could be changed by no man but he out of prophecy....

But this was a lie!

The dark Code Woods encrouched on the world of light, isolating villages, and the kingdom of OpenSorceum faded into a world of proprietary web services and ancient hacks.

Ur qwest:

To take back the code and have once again software == intent!

Ur Toolz: 1. A VCS repository w. A text editur 7. tests! 8. The Holy Lamp of Continuous Integration!

With these tools you are so tasked with the slaying of bugz! Fear not! Continuous Integration and tests will protect you lest you falter! But in order to check your bugs into the great vessel of VCS, you must slay Cruft!

...In other words...clean up shit until you have enough XP to check in, you lazy bastard

08:38 February 24, 2011

a hot new band: Namespace Collisions in Urlspace

12:28 February 22, 2011

art project: a victrola that can play a record in the form of a strange attractor

09:44 February 22, 2011

complex carbohydrate C6H12O6 + i C12H22O11

09:42 February 22, 2011

if you are programmed, who are you?

...I don't know but I better blog about it

23:03 February 17, 2011

I realize I'm oversensitive to this crap but....


Gives me a good excuse not to write software in my free time!

21:56 February 17, 2011

Thought bubbles

08:33 February 17, 2011


23:31 February 15, 2011

we're all Zen now

22:46 February 11, 2011

Learned about a new cool site:


11:54 February 11, 2011

you know me and workflow...can't let the monkeys have any fun :P

17:46 February 10, 2011

possibly the best beer ever: http://beeradvocate.com/beer/profile/1146/10672

this is my former favorite and a close second: http://beeradvocate.com/beer/profile/24/36

13:14 February 10, 2011

don't take it personally. it's just life

12:54 February 7, 2011

the first rule of Gossip Club is not to talk about Gossip Club

...but just between you and me...

10:58 February 6, 2011

one last theorem: underpants...

10:18 February 6, 2011

it will probably do something clever with its hands

21:12 February 5, 2011

i want to be someon's art project

12:26 February 5, 2011

"The stinky wheel gets the grease" - Joey Martinelli

19:10 February 4, 2011

i hate it when i lose things

There's a quote I heard, sampled in a song, so I have no idea whence it originates, that I would love to find....but google...and the interior of my head are being useless. Its gist is "It is not uncommon, not rebellion, to stand against the faults of the establishment. But to rise up against your own generation, and to cast them down and ostracize yourself from them...that is the path to singularity." I fucked up the phrasing, other than the "rise up against your own generation part" -- that part is close, anyway -- but this speaks something to my life.

When I was a wee slip of a lad, I was pretty popular in my rebellion. I rebeled against corporate rock, and drug laws, and capitalism. Maybe, in ways I couldn't express, it was more subtle than this. But these were the epithets I uttered against the universe. While these are somewhat contraversial topics for high school, they're not exactly hard things to support. Yes, art should come from the heart. Yes, the criminalization of drugs is basically retarded. Yes, the competitive system of capitalism has some pretty bad effects. But its easy when you can speak out against something from a counter-culture who is willing to support you.

I'm not sure if that's rebellion

17:50 February 4, 2011

painful architecture + unhelp + frustration + not my job = cargo culting

16:54 February 4, 2011

the civility of a place is inversely proportional to the length of time from when the walk symbol turns red to when the traffic light goes yellow

14:58 February 4, 2011

i want this Alot

12:47 February 4, 2011

its better to eat flies with honey than it is with vinegar

09:22 February 4, 2011

the man in the top hat wants to take away your magick!

13:43 February 3, 2011

man...that band "No cover" performs everywhere

21:13 February 2, 2011


21:02 February 2, 2011

there are 01 kinds of people in the world

those that understand the difference between big and little endian binary and those that don't

20:16 February 2, 2011

Two guys are pass by a playground when they see a kid's merry go round.

"I bet you can't push anyone I put on there," said the first guy.

"I bet I can!" said the second guy.

So they put on kids, adults, fat guys, and, sure enough the second guy had no problems. "Give up?" he asked.

But the first guy pulled over Jesus on put him on. The second guy pushed as hard as he could and the merry go round wouldn't turn.

"Okay," he said, "But that's Jesus. I mean, seriously, he probably used his God powers to stop me."

"Fine fine," said the first guy. This time he picked Mohammed and put him on. Again, the second guy couldn't turn it. "I don't know what's going on here," he said.

"I have an idea," said the first guy. Nostradamus got on. The second guy pushed as hard as he could but, once again, he couldn't turn a prophet.

18:59 February 2, 2011

A ping math lesson

I got to see ping's counter turn over:

64 bytes from icmp_req=65534 ttl=55 time=33.7 ms
64 bytes from icmp_req=65535 ttl=55 time=18.4 ms
64 bytes from icmp_req=0 ttl=55 time=17.3 ms
64 bytes from icmp_req=1 ttl=55 time=15.4 ms

What are the odds? No, seriously, what are the odds?

So you have a 25 line terminal over, lets say 65000. So 1/2600 (where the magazine gets its name! Not really). But, lets say at most I'm looking at that particular terminal on that particular screen one percent of the time. So 1/260,000 ! I mean, its not lottery good, but its good!

However, its a complete piece of steaming bullshit.....*like* the lottery! This is the chance that I happen to look over this particular time and see the counter reset. To really see if its abnormal, you have to integrate over all time. I don't know what that number is, but its not insignificant. Comparable to 260,000 in my life? Quite possibly.

Math teaches us a lot of things. One of the things that it teaches us is how easy it is to interpret facts however you want, but that this has very little to do with truth

15:12 February 2, 2011

there are two kinds of problems in the world

those i don't have to care about and those I do

if I don't have to care about it, then good, it works and I can move on with my life

if I do have to care about it, then I'm going to want it solved properly

12:45 February 2, 2011

"the devil" is just an evil robot programmed by an even more evil robot

12:41 February 2, 2011

"this works by annihilating your particles with antimatter"

"and then i'm reconstituted on the other side?"

"sure, whatever makes you happy"

12:39 February 2, 2011

What Grinds My Gears

When sciency things start a sentence with, "Inside a black hole, ...."

Unless the next words are "you'd be dead", it's probably misleading.

08:20 February 2, 2011

We've really evolved, Alot

It used to be that I would have plenty of time to eat a bowl of cereal before my computer boots

Now that is no longer true

But I do have plenty of time to eat a bowl of cereal while I get on the wireless network

What times we live in! What a brave new world that has such virtual people in it!

09:18 February 1, 2011

in computer architecture, you run into limitations of front-side bus

in New York, front side of bus run into you!

08:54 February 1, 2011

CalTrain announces service to Lower California!

say hello to the Lo-Cal Train

13:37 January 31, 2011

From the makers of "The Makers of the Internet" comes....

The Internet: the director's cut

Coming soon! Available on 524 blu-ray discs

12:48 January 31, 2011

DJ (mc)^2

"I'm mass times energy, muthafuckas! You best recognize Einstein!"

08:13 January 31, 2011

How to ensure frustration in linux developers

  1. Have a really complicated wireless setup so that it is beyond current linux driver state
  2. Underdocument it
  3. Issue an arbitrary computer and let them install linux on it; do not check to see if anything actually works with linux!
  4. Don't offer any linux desktop support; act like such a request is completely unreasonable
  5. To make 3. worse, make sure you support even such things for windows as changing the color of their icons in the sys tray
  6. Talk a lot about open source and freedom, but laugh at the linux users
  7. Encourage them to get windows

This has literally been my experience for the last 10+ years

16:38 January 30, 2011

mom + pop culture

15:13 January 30, 2011

"Frodo was attacked by a barrow wight!"

"Gasp! By Barry White?"

"No, not Barry White. A barrow wight!"

"Abbey Road white?!?"

"No! A barrow wight!"

18:27 January 29, 2011


radio broadcast of


13:36 January 28, 2011

12:59 < jhammel> i generally know what i want/need to do

12:59 < jhammel> i just have a hard time communicate with it

13:00 < jhammel> er, communicating it ;)

09:19 January 28, 2011

nc is just telnet for pretentious people

19:25 January 27, 2011

what the hell are you supposed to do with a painting when you're finished with it?

20:42 January 25, 2011

the female form is entirely too self referential

it is all folds and negative space

20:23 January 25, 2011

the hallucinations exist whether or not you acknowledge them

20:07 January 25, 2011

what does a cash register mean to an amoeba?

15:28 January 25, 2011

esoterotica : its copyrighted!

15:06 January 25, 2011

Another good thing about SVG


See the second result, as least as of today

12:02 January 25, 2011

... so I said, "'tabbaconist'? I thought you said 'tabbagonist'!"

17:33 January 24, 2011

I finally understand why people like twitter

They can feel like they're doing something just by liking things

Of course, for that reason, I hate it

09:38 January 23, 2011

Today is National Procrastination Day!

In the traditional fashion, I'll be celebrating tomorrow

13:56 January 21, 2011

I am somewhat of a gentleman, despite dressing, acting, and being born poor

12:43 January 21, 2011

For website, you validate form; for bureaucrat, form validates you!

10:55 January 21, 2011

Alot of semicolons:

              ;;;;;;;;;          ;;
 ;       ;;;;;;;; ;;;;;;        ;
 ; ;;  ;;;; ; ; ;;; ;; ;;;  ;;;  ;
  ; ;;; ;;;;;;; ; ;;; ;;;;;;;;   ;
   ; ; ;;;;;;  ;;;;  ; ;; ;; ;; ;
    ;;;; ;  ;;;; ;;;;;; ;;;;;;;;
     ;;;;  ;; ;  ; ;;;;; ;;;;;;;;
    ;;; ; ; ;; ;; ; ;;;;; ;;;;; ;
    ;;;;; ; ;;;;;;;;;;;;;;;;;;;;;;;
    ; ;;;;;;;;;;;;;;;;;;;;;;;;  ;;;;;;;
   ;; ;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;; ;;  ;
    ;;;;;;;;;;;;; ;;;;; ;;;;;;;;; ;; ;;;;;;;;;;;;;
    ;;;;;;;; ; ;;   ;  ;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;
    ;;;;;;; ; ; ;;;; ;;  ;;;;;;; ;;;;; ;;;;;;;;;;;;;;;;;;;;
   ;; ;;;;; ;; ;;  ;;; ;;  ; ;;;;;; ;;; ;; ;;;;;;;;; ;;;;;;;
   ;; ;;;; ; ; ; ;; ; ;; ; ;;;;;; ;;;;;;;;;;;;;;; ;;;;;;;;;;;;;
   ;;;;;;; ;; ; ;;; ;; ;; ; ; ;;;;;;; ;;;;; ;;;;;;;;; ;;;; ;;;;;
  ;;; ;;; ;  ; ;;  ;; ;  ;;  ;;;;;;;;;; ;;;;;  ;;;;;;;;;;;;;; ;;;
  ;;;; ;;  ;; ;  ;;  ; ;;; ;; ;;;;;;;;;;;;;;;;;; ; ;;;;;;;;;;;;;;;
  ;;  ;; ;;; ; ;; ; ; ; ; ; ;;;  ;; ;;;;;;;;;;;;;;;;;;;; ;;;;; ;;;;
  ;  ; ; ; ; ;; ; ;;;;; ; ; ; ;; ;  ;;;;; ;;;;;; ;;;;;;;;  ;;  ;;;;;
 ;;;;  ;;  ;; ;; ;;  ; ;;  ; ;  ; ;;;;;;;;;; ;;;;;;; ;;;;;;;;;;;;;
 ;;; ;; ;;; ;; ;   ;; ;; ;;; ;; ;;; ;;;  ;;;;;;;;; ;;;; ;; ;;  ;; ;
 ;; ;  ; ; ;; ; ;;;  ; ;; ; ;  ; ; ;; ;;;;; ; ;; ;;; ;;;;;;;;;;;;;;;
;;;  ;; ;;;; ; ; ; ;; ;  ;;  ;;  ;;; ;;;;;; ;;;;; ;; ;; ;; ; ;; ;;;;
; ;;;  ;    ; ; ;;; ;; ;;  ;;  ; ; ;;;;  ;;;;  ;;;; ;;;;;;;;;;;;; ;;;
  ;; ;;  ;; ;;; ;  ;; ;  ;;  ;;  ; ;; ;;;;;;;; ;; ;;;;; ;;;; ;;;; ;;;;
 ;;;;  ;;; ; ; ; ; ; ;;;;; ;;  ;; ; ;;; ;; ; ;;;;;;; ;;;; ; ;; ;;; ; ;
  ;;;; ;;  ;; ;; ; ; ; ; ; ; ;;  ;  ;;; ;;;; ;;; ;;;;;; ; ;;; ; ;;; ; ;
  ;;;;;  ;;  ; ;; ;;; ; ; ; ;   ;;;;;;;;;  ;;;; ;;;  ;;;;;; ;;;; ;;; ;;
  ;;;; ;; ;;; ;  ;; ;; ; ; ;; ; ; ;;;  ; ;;; ;;;;;; ;;;;;; ;;; ;;  ;; ;
  ; ;;;; ; ; ;;; ; ;  ; ;  ;   ; ;  ;;;;;;; ; ; ;  ; ;;  ;;;; ;; ;;  ;;
     ;;; ; ;;  ;; ; ;  ;  ;  ;;; ;; ;;;;; ;; ;;;;;;  ;   ;  ;;; ; ;  ;;
    ;;;;; ;  ;;  ; ; ;;  ; ;; ; ;  ;;  ;;; ;;;   ; ;   ;; ;;; ;  ; ;;;;
    ;;; ;   ;   ;  ;;  ;;   ;;; ; ; ;;;  ;;  ;;;; ;  ;; ;  ;;  ;; ;;; ;
     ;;; ;; ;  ; ;; ;  ;  ; ; ;; ;;    ;; ; ; ;  ; ; ; ; ;;  ;; ;;;  ; ;
     ;;;;;;  ;  ;   ;  ; ; ;;  ;; ;  ;;  ; ;;; ; ;; ; ;  ;;  ;;   ;  ;;
     ;;;;;;;  ;; ; ;  ; ; ;; ;; ; ;;; ;;; ;  ;; ;    ; ;;  ; ;; ;; ;; ;;
    ;;;;;; ; ;    ; ; ;;;  ;; ; ;;;; ;  ;   ;  ; ; ; ;;; ;; ;  ;;  ;;;;;
    ;;;;;;;;; ;;;    ;;; ;; ;  ; ;;;;  ; ;;  ;  ; ;;; ; ; ;; ;; ;; ; ; ;
   ;  ;;;;;;;;; ; ;  ;;;; ;; ;; ;;;;;  ; ;;  ;; ; ;;;;; ; ;; ; ;; ; ; ;;;;
   ;;;;;;;;;;; ;;  ;;;;;;; ;;  ;  ;;;;  ;  ;   ; ; ;;;;; ;; ; ;  ;;; ;;  ;
  ;; ; ;;;;;;;;; ;;;  ;;; ;  ;;; ;;;; ; ; ;  ; ;;  ; ;;;; ; ;  ;;  ;  ;;; ;
  ; ;;;  ;;;;;;;;;; ;;;;;; ;; ; ;;;;;  ; ; ;; ; ; ; ;;;;;;;; ;;; ;; ;;  ;;;
 ;;; ;;; ;;;;   ;;; ; ; ;;;  ; ;; ;;;;; ; ;  ; ; ; ;; ;;;; ; ; ;   ; ;; ;;
 ;; ;   ; ;;      ;;;;;;;; ;;;;  ;;;;;;  ; ;; ; ; ; ;;;;; ;  ;;;;;; ;;;; ;;
 ;;;;;;;;;;           ;;; ;;  ; ; ;;;;;;;; ;;  ;;;;;;;;;;;;;;;;;;;;;; ;;;; ;
;;;                     ;;;;;;;;;;;;;  ; ;;;; ;;; ;  ;   ; ;;;;;;;;;; ;;;;;;
                        ;;;;;;;;;;;;;       ;            ;; ;; ;;; ;
                        ;;;;; ;;;;;;                       ; ;
22:02 January 20, 2011

am I the only one who doesn't want banana in my smoothies?

12:50 January 20, 2011

"Chase could double your deposit, up to $5,000!"

Most people look back at the macroeconomic indicators and cite these as clear portents towards the collapse of major financial institutions in the recent crisis.

For me, when banks started emailing me contests telling me how I could get rich quick, that's when I had some idea that bad things were happening on a societal level.

I don't want my bank to mail me contests! I want my bank to be boring, efficient, and basically a place I can put my money and not think about it. If I ever have the capital to go after some risky venture, well, maybe i'll do that. But I certainly don't need the prompting.

09:10 January 20, 2011

All my life I was told I should go to college. The economics of college were never really explained to me -- all I knew is that it was very very expensive. Over and over my parents told me, "Don't worry about paying for school, just worry about getting in to the best school you can." I suppose by my teenage years when I started to question everything else I should have questioned this too, but it had been repeated to me so many times I thought there was some master plan to be had.

Well, there wasn't. My senior year, when the rubber hit the road as they say in the venacular, they changed their stance a bit, "Well, we don't have any money. You're on your own." The school I ended up going to for undergrad and my master's was Worcester Polytechnic Institute. Its a pretty good engineering school, maybe a slot down from an MIT. They even gave me a scholarship of $10,000 a year. But even with that, at the end of my undergrad I had accumulated over $100K in student loans. Everyone else was doing it, so it must be cool. Right?

My grandparents even helped out quite a bit. As a graduation present, they paid off most of my loans. Mind you, most of over $100K still leaves tens of thousands in outstanding debt. I got my Master's in some esoteric field and I didn't know what to do. So I went to .... more school! at UC Berkeley. Berkeley's a public school, but living in the Bay Area is expensive. So more loans. A lot more loans.

I ended up leaving Berkeley to take a fairly well paying job minus the degree. By this point, I was again at way over $100K in debt. I had no capital. And I got into financial troubles for reasons having nothing to do with education. I wasn't partying it up or doing anything particularly foolish. Just bad circumstances and helping out other people. So I had to take out more loans. Even with my decent salary, about half was going to student loans even before having to take out the personal loans and maxing out my credit cards. Afterwards, there were months when I mostly ate beans and rice for financial reasons.

Now I'm at a great job making even more money. I don't particularly have any immediate financial hardships. I generally spend how I want, but my life isn't particularly expensive. I don't own a house, a car, or anything worth over $1000 (I'm neither proud nor not proud of that, its just how it has worked out). But its given me a chance to reflect.

Even with my salary, which is more than I really ever thought I would make, it will likely take me to my 50s to pay off my student loans. Read: my retirement plan is....paying off my loans early. I'm lucky and my employer contributes to a 401K. But its not going to be anything to retire on.

I often wonder where I went wrong, exactly. Loans aside, I'm very happy where I am, career-wise. But financially, I'm in a real pile of crap. Yes, I have a good salary. But my loans require me to have a job with a high salary just to make the payments. Its pretty much indentured servitude. Having not gotten my doctorate, I probably shouldn't have gone to Berkeley. But what could I have done with my master's degree? I didn't know then and I don't know now, and not having any money to live off of, its not like I could have taken time off to figure that out. Its kinda "get a career right quick". I was always jealous of relatives and friends that actually got to take a few months off and reflect on things. I really need that right now. But que sara sara.

Financially, I probably would have been better off if I had taken my alternative plan I formulated at 19. I was going to go to a 2 year trade school, become a welder, and screw the educational complex. At the time, welders were in demand (I have no idea now). It paid fairly well ($40-50K again at the time). And I would have been making a positive income for ten years instead of kinda just starting now. Again, I love my job now, so can't really complain about how things ended up. But it would have been nice to have a job where I could work 8-5, go home and have the rest of the time to do whatever I wanted. I'm mostly a thinker. I think about things and I play with thoughts. This is extraordinarily time consuming to do in depth. I also tend to be depressed and physically unwell. I am jealous of my coworkers that feel fine (physically and mentally) everyday. Most ever day I hurt. Most every day is a struggle for me. But with the indentured servitude of debt through student loans, I have little choice but to plod on. I don't know if it helps me or anyone else not to really have a chance to get a handle on my life.

I often joke that I should become a motivational speaker for high schools carrying the message, "Don't pay for school, kids! It will ruin your life!"

14:33 January 12, 2011

oblique symbology

14:33 January 12, 2011

No Shoes, No Shirt, No Service

Know Shoes, Know Shirt, Know Service

10:05 January 11, 2011

wow, my last four blog entries are perfect i guess i won't blog anymore


10:02 January 11, 2011

has anyone else noticed that cold coffee tastes a little like bananas?

20:10 January 10, 2011

COUNTER, Inc: developers of high-precision digital timers

Interested? Call today for your free COUNTER-example

20:05 January 10, 2011

"When I was a child, I thought as a child and spoke as a child. And when I became a man, I took that child out back and had him shot." -- C.S. Lewis

15:50 January 10, 2011

What goes in a setup.py file?

  1. No one knows
  2. No one cares
18:00 January 8, 2011

...two hours of Prarie Home Companion

I could do with about three hours less than that

10:35 January 8, 2011
21:58 January 6, 2011

Mission Bars: do we need more of them?

I need a better hobby. Generally, when I'm not programming or eating or sleeping, my hobby has been going to a bar (whichever) and generally not talking to anyone. I'd much rather go to a friend's house and/or talk to someone, but....well, I'm a loser, and no one offers that.

My problem is mostly: I haven't been able to have a seat at many Mission bars of late. When the holidays were on, it was great. No one was here. Lord knows where people go. I have somewhat of an opinion that people that leave the Mission during the holidays kinda don't belong here. But hubris aside, since people have gotten back in this last week I've had a helluva time getting a seat.

Maybe its too much to have a seat. But I don't think so. Why should I be the weirdo off in the corner wanting a seat? Generally, I don't drink at a bar if I can't sit down. There's just enough of a gentleman in me to think this is the minimum of civilization. If I was going out with other people, I probably wouldn't care. But like I said, it is a hobby, albeit a poor one. This is as close as I get to social. I'd love it if people actually talked to me. But they don't. And I don't expect them to.

So what does this mean? Does this mean we need more bars in the Mission? I dunno, but its starting to sound likely. Maybe it just means we need longer bars. I'm not really sure, but, to be honest, with as much as I pay for my apartment in the middle of nowhere, I should at least be able to sit down and get a drink.

Of course I could drink at home. And it would be much cheaper. But to reiterate, I am a loser. I don't have friends that want to hang out with me. Sometimes, my apartment feels cramped and I need to get out of there. It doesn't really matter if I drink. But, sadly, going to bars seems to satisfy that part of me that is programmed to be around people best.

21:16 January 6, 2011

i "love" how people pretend to be interested in each other even in the brunt face of cognitive dissonance

16:35 January 6, 2011

appearances and reality

All of my life, I've gotten a lot of flack for saying that I won't do something. This probably speaks to my lack of intelligence, my poor social skills, or both. Most people learn to phrase this in the passive voice, "Nothing can be done...." But which is more ultimately anti-social? At least standing by my guns and saying that I'm not going to do something for such and such a reason is admitting that I'm not going to play with others. Saying nothing can be done and dodging responsibility allows one to play a sufferer unto the world even when what is really meant is that another's problems are of no concern, even when the other offers to help. It is ultimate dismissal. For who among us would have the daring to stand up and call he the liar who would speak such a thing? To daemonize him as a black spot on the universe? For in such, one becomes a pariah and the hands of all others withdraw into their winter coats

13:04 January 6, 2011

Failed names for crêperies:


Tastes like crêpe!


"Now with our new smaller sizes, you can really take a crêpe in your pants!"

12:05 January 6, 2011

"damn racist hippies" - its copyrighted!

(The phrase "its copyrighted!" is also copyrighted. See also http://k0s.org/comedy/copyright.html )

19:23 January 4, 2011

a possible renaming of wsgiblob: wsgintegration

i kinda like it because it tells more what it is (it is an integration layer for a wsgi "stack") and it rhymes with disintegration

15:35 January 4, 2011

there is now Apple's iLife ... I can't wait until they hit that vast marketspace, iDeath

11:26 January 4, 2011

The only cycling I do is powercycling

09:07 January 4, 2011

if a solid-state drive is an SSD, is a liquid-state drive LSD?

10:43 January 2, 2011

My New Year's Resolution

Show a certain someone the respect they deserve

23:34 December 28, 2010

in terms of caching, a person is an assemblege of the various push-caches going in to him/her

23:06 December 28, 2010

people driving to a dive bar ...did i miss a memo?

19:16 December 28, 2010

theres a piece inside of me that feels like im falling into a cave. it is cold. it is dark. and i am alone with myself. the cave feels like a presence and i wonder what depths it reflects ?

18:51 December 28, 2010

site mapping middleware

I've often been curious as to how people use my site. Its been a backburner priority to add some sort of analytics WSGI middleware. Sadly, such a thing doesn't exist. Which is sad, really. Middleware is the perfect place for accumulating statics, as the net effect doesn't alter the request at all but gets to look at each request. I don't really want to program such a thing, but I might piecemeal add things as I need them.

One piece I have been curious about is what people do on my site. They see a page...where do they go? Partially just to see how many people are using my site, but equally to see how the site actually works. Where does the traffic flow? I'm also a huge fan of directed graphs, as you may/may not know. So let's make a map!

I put a piece of WSGI middleware using PyGraphviz (aside: is there something else I should be using? I'm not sure what good, deployment-friendly solutions to storing a directed graph and -> SVG ... but I'd love to find one) to write a directed graph of site traffic. It looks for where the traffic came from and the page you're going to and it keeps a tally on the graph. The code is pretty simple: http://k0s.org/hg/svgsitemap/ I put up a simple map at http://k0s.org/map.svg .

Its not pretty. There are tons of cosmetic things to be done. The text is barely readable as is. I should probably prune paths with lower prune counts (though I'll still need to store them). It'd be nice to zoom in or zoom out. Adding some nice Raphael JS would be awesome. You could also embed this on a page and display a "here" with common links from "here" and maybe a bit more of the map.

The other big goal would be to have this a federated service. That is to say, you have site A, I have site B. If we both had these maps, we could weave them together. At the very least like old-style nintendo games.

07:07 December 27, 2010

When you need a logging solution, dont settle for less than the best

Get IdealLogs!

21:06 December 26, 2010

its interesting the older i get the more people look like monkeys whoever would point to form in protest to evolution is not vain enough for in doing so one may claim to have touched the divine

16:49 December 26, 2010


Oxford University, England - The Oxford English Dictionary has announced it is removing thousands of core English words to make room for expanding cyberjargon. The words removed include many in common usage, including 'gullible', 'naive', and 'foolish'.

Professor s. C. Lewis, one of the curators of British English, explained, "While the internet generates thousands of new words each year, the dictionary is already full. So words in use for centuries have to go to make way for today's more popular words like "defriend' and 'smart phone'. Kind of sad, really.

"We cant print any larger volumes as they already overflow a standard desk. Quite frankly, the OED has become a workplace hazard. Prof. Johnson sprained his ankle this sprint when the final volume fell on his foot."

Professor Lewis did not seem receptive to the idea of keeping the dictionary online. "We cant have an entire language simply based on computers. What if they all went down one day?"

When asked, "What can people do when they need to use a word like gullible?", Prof Lewis responded:

"Well you see that bit you said at the end there isnt a word, its just gibberish so I cant very well answer your question. It used to be a word. But it isnt anymore, so I cant really acknowledge what youre talking about.

"We have to be careful not to cut any vital words, like 'and' or 'the' or we'll have a devil of a hard time talking."

10:41 December 26, 2010

Canonical -> multiple distributed publishing platforms

The walled gardens have changed. Yesterdays' walled gardens were the closed desktop app. Think Microsoft office. While there is still a place for desktop applications, most people want publishing instead of just isolated resources that live on their hard drive, and publishing today means the web.

Today's walled gardens are non-federated services. Take twitter. There's only one twitter. Its not like twitter does anything amazing. Even though it is closed source, it does have a (albeit pretty poor) RESTful interface, so one could make their own twitter.

However, why should twitter (and facebook and google apps and...) be the one canonical service? People go pretty far towards federating twitter. You can tweet to your facebook, your google buzz, etc. But there's no twitter2. And there's no way you can have your own twitter. Instead, people do as I have tried to do for bitsyblog and blog -> tweet.

(Sorry, I really had more to say here. I started this blog post weeks ago, then got busy, and now find that whatever I really meant to say is lost to me.)

21:03 December 25, 2010

M:I wear my cloak as nothing

13:34 December 25, 2010

two new stories

just in time for Christmas:

13:57 December 22, 2010

Instead of having hardcore forking action, github should have a fork-queue


13:56 December 22, 2010

Here at GenericCorp, we believe in giving the customer the key values of Quality, Quantity, Quintessence, and Qualifications. So when a customer asks, "What can you do for me today?", we answer, "4Q".

14:45 December 21, 2010

Access & a11y s

10:22 December 21, 2010

Surveillance Aegis Network Telemetry Agency

14:38 December 20, 2010

How the universe really began

> ls -l everything* crw------- god god 0 0000-00-00 00:01 everything-0.0.1.tar.gz > tar xzvf everything-0.0.1.tar.gz

God: hmmmmm....I didn't really want to do that....

15:37 December 17, 2010

failed invention: Pascal's rectangle

1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
15:34 December 17, 2010

telepathy === communication

15:20 December 17, 2010

we literally fall downhill "in time"

14:29 December 17, 2010

like all my role-models told me, always question authority

14:01 December 17, 2010

destroy information silos

08:56 December 17, 2010

in the tradition of REO Speedwagon

you can patent software but you cant patent leather

20:55 December 16, 2010

its amazing to think about

qwerty keyboards, developed to avoid locking mechanical typewriter keys, will probably be the last keyboards used before computers have a neural interface that will make typing obselete, the province of embarassed half-understood conversations between parents and their progeny and tools of the eccentric old who refuse, in their twilight, to get the surgery that will convolve flesh and machine

11:26 December 16, 2010

i care about this Alot


from http://hyperboleandahalf.blogspot.com/2010/04/alot-is-better-than-you-at-everything.html

14:11 December 15, 2010

adorable! : http://what.the.fox.dragged.in/mozilla/images/panda_adoption.jpg

10:55 December 15, 2010

the cert world is hostage to the technocratic complex

22:18 December 14, 2010

posted with wsgiblob! stay tuned for exciting new technologies!

21:52 December 14, 2010

glass submarines

20:43 December 13, 2010

Ideas from workweek opening session

Its Mozilla workweek! We just had our opening session this morning. There were a lot of good ideas, and many of the opening remarks made me think of a observations of my own. I decided to write these as a blog post instead of trying to get my mostly specific and possibly contentious questions in the Q+A session.

  • Employees whose full time job is to audit the (dev side) of mozilla to make things eadier for newcomers and community members to increase their ease and therefore productivity with the direct side effect of making things easier for current devs.

    What are the rough spots?

    How rough are they?

    Who do they affect?

    How much time is lost or would be lost through these issues?

    The answers to these quedtions allow these issues to be prioritized and meaningfully tackled. Even vague critiques like "this website is confusing", when probed, can lead towards significant streamlining. This is going to especially important for fostering community as well as our wishes to expand hiring.

  • Tailored Firefox: Customize firefox for your own needs. Mozilla builds a very good all-purpose browser. However, there is a market for Firefoxen specialized for specific needs. There is already a rich addons community to base on. At first, a preselected number of flavors of Firefoxen could be hand-crafted for user-motivated needs. Ideally, several important packages of addons could be selected: web developer, education, minimal, etc, and the downloader could choose which pacakge to download (being able to drill down and choose/unchoose individual addons) through a friendly webpage. A base profile could be chosen as well. Build options, etc, could be additionally be thought about, but they're probably not as important.

  • Partnerships with birds of a feather. There was some talk about partnerships. Obviously, partnerships with players such as google, samsung, intel, etc are valuable. But what about on the dev side? We use several open source tools heavily with powerful communities. Python. Ubuntu. Django. MediaWiki. Just to name a few I know. None of these are exactly along the lines of our core mission. But we use their tools. We want their help. They want our help. If we cant even work with our kind, why should we think we can suceed?

  • Sync should optionally export data to a webpage : I am a great bookmarks collector. I want to share my bookmarks with people. I want to do this on k0s.org. I can, of course, export my bookmarks as an HTML page. But currently, I have to do this manually. It'd be nice if I could tell sync to do this everytime I synced, as currently I pretty much don't update at all. I'm not sure if this is doable as an extension. That would be a great thing to do as a plugin, if that's doable.

Two other more definitive issues I've filed as bugs:

18:11 December 12, 2010

invest in dysfunction

18:28 December 8, 2010

the face, the animal's flower, looking up from primordial cesspools to be touched by flakes of heaven

15:14 December 8, 2010

i hate it when i have to futz with my mouse. programming is challenging, but it shouldn't be physically challenging

20:19 December 7, 2010


14:01 December 7, 2010

I think it'd be funny to ask someone "Can you tell the difference between butter and I can't believe its not butter?" Then, if they say yes, throw a tub of butter at their head. And ask them, "Was that butter or I can't believe its not butter?"

08:33 December 7, 2010

broken proverb: you can catch more flies with a pound of honey than a pound of gold

08:18 December 7, 2010

notes that 'marital law' and 'martial law' are only a switch of a few letters

12:38 December 5, 2010

? : So I ended up getting a labrador. My friend told me I could name her "Kim" so she could be "Kim Lab". So I sorta took his suggestion.

? : No, Physics.

12:37 December 5, 2010

FREE LIMB REMOVAL! first come, first severed

10:16 December 5, 2010


As best I understand it, last week a couple of bills were turned down in congress regarding the expiring of the George Bush tax cuts. One of them would have indefinitely extended cuts for people who make up to $250,000. The other would have extended cuts for people making up to $1,000,000. Now, I hear, Obama wants to work with Republicans to reach a compromise.

Honestly, I don't know enough about macroeconomics to say which tax plan is appropriate. Its probably not a good idea to disrupt very many peoples' taxes during a tenuous recovery? But I don't know. One thing I do know about a bit is power. This will be the last month of democrats in control in Congress. They're eternally depicted, at least on NPR, as backing down in the face of any power struggles. Power struggles are pretty idiotic, but continuously compromising only weakens one's position. The democrats can't even control the House and Senate even when they control the House and Senate.

After these two attempts, I would just let tax expire. Not because it is necessarily the best economic decision, but because it is the best decision with the respect of compromising one's position. If there are two parties, whether they are husband and wife, or democrats and republicans, and one continuously backs down in the face of adversity, they will assume a subservient position. I'm not particularly a democrat or a repulican, but its actually bad for the whole system to have a weak opposition. When the democrats don't play the game -- I don't know if its out of inaptitude or a sense of the greater good -- instead of putting up a strong front, they will lose sense there is no third-party balance. And in America, they don't.

There is probably much more behind the scenes interaction that makes a whole lot more sense in game theory. But this is how the democrats' position is seen by the public, which goes some way to how the power goes.

15:33 December 3, 2010

everybody else is doing it, so why cantina?

15:33 December 3, 2010

i dress like a clown so that people don't have to see me

11:21 December 3, 2010

why, i bet my brain has over three hundred neurons!

20:40 December 2, 2010

i can has firefox for my phone ! http://www.mozilla.com/en-US/mobile/

16:10 December 2, 2010

The Z. Ahm-Beeh Think Tank is now hiring: We crave brains

12:44 December 2, 2010

Somedays I feel we're all just going to be inconvenienced to death. The death of a thousand paper-cuts...

11:57 December 2, 2010

great javascript library name: scripture

22:21 November 30, 2010

Disparity between what is affected and reality

21:50 November 30, 2010

Why have a mind when a mind can be broken?

21:36 November 28, 2010

Watch, over the glass of black beer and the reflections on the hardwood bar from the tin ceiling, how everything dissolves

and be glad of it

21:02 November 28, 2010

What is peoples obsession with giving their phones tails?

20:57 November 28, 2010

Counting is the basis of all mathematics

20:39 November 28, 2010

I think i might marry Paula Poundstone, excepting that she wouldnt be into me, is way older, likes kids, and doesnt seem to care about relationships

but other than that...

22:00 November 26, 2010

cybernetics and globalism

So, to the notion: "The more wired we are, the better off we are."

Its too obvious to point out that this is a naive question. But lets break it into components.

Firstly, and oft-neglected, there is the sustainability of connectivity as a resource-based economy. As much as we like to pretend that computers are true telepathy vs proto-telepathy, the reality is that broadband economics is resource intensive. Not only do you have silicon, but rare exotic doping materials once scientific footnotes have now become important enough to, say, cause bloodshed and rape in the Congo.

So, this again points to the notion that capitalism as a "screw your neighbor" system is kinda becoming obselete. Regardless of the size of the monkeysphere, we, as reasoning and abstracting beings who can create these complex devices, are capable of behaving civilized when we want to. Instead of side-stepping the "is our economy sustainable?" issue, let's go through the steps:

  1. No its not
  2. It won't be until we treat the Earth as a closed system
  3. Let's do the math
  4. and make it happen.

I realize this sounds too easy, and there will be a lot of chaos and pain, but can you imagine having a fairly firm idea that the economy was sustainable? Its completely doable. Pay me to do 3. or do it yourself or hire someone, but my hand-wavy calculation says it can be okay as soon as we face it up.

So there is the material cost.

Then there is throwing computation at a problem. This is a positive and a negative.

The cloud!

Firstly, cloud computing means something different to me than the term seems to mean. I don't know. I have this idea of cloud computing of being something like developing a deployment and giving an architecture to have this fit together.

... I'll probably rant about this more later, as its really a tangential issue. So let's carriage-return to a related issue: software.

If we had perfect computers, there's still what runs on them. Software, by and large, doesn't write itself, and in the case where it does (to the cases I know of) it is still ultimately a human-germinated creation that behaves within certain bounds. You look at the magic of logic gates and then you look at the software that people run on it. Software is pretty lagging.

Why is this? I rant about it often enough, don't I?

Cooperation. People have become very good about solving a particular problem. However, people are general poor about cooperating about putting solutions together.

So, there is the sustainability index. And there is cooperation. The more we cooperate the better off we are. The more we cooperate, the more we will become a broadband-based society. The more effort we put into making worthwhile structures, the more quickly we can move away from those tired arguments of cut-throat individualism

21:42 November 26, 2010

the cyborgs won: and we're the good guys!

Probably most people know this, but we're now fully cybernetic organisms. There is still a lot of concern about what this means or resistence to this idea, that humanity has changed forever into a new species, one symbiotic with machines.

There's the movies like Terminator 2, or my own dark fictions. All of those things will likely happen, assuming we give up this idiotic outmoded individualist capitalism vs true globalism before we destroy ourselves. But to look at the other way, all of this can happen. We can enter the wider universe.

Is it wise to do so? That question has no answer

But it might be worth noting that the people that were early adopters of the cybernetic philosophy were the heros of the story. We tethered ourselves to the electronic thoughscape because it was an untapped well, and if we did not tether ourselves to it, the antagonists would come around and chain us to it according to their rules.

so more chaos, a step sideways, and the evolution of a new species

20:01 November 26, 2010

directed mutations programs

20:00 November 26, 2010

Because life is transitory, relatively large breakdowns are allowed to occur

19:31 November 26, 2010

goth boys are so well trained to be nothings

11:59 November 26, 2010

NPR is so biased. They have "Science Friday", but no "Baseless Speculation Monday"

21:56 November 25, 2010

My Dream

Its funny how dreams make you reconsider your perspective. I guess that's their point -- the chemical DMT, the chemical that psychedelics emulate, is injected at the transition between the point where the neural net finally falls quiesscent and dreams emerge.

I had a dream last night. I was a kid, maybe about 12, which is probably near my emotional age. After pushing Abraham Lincoln off a snowy mountain (he was a real asshole in the dream), all of the kids began pushing each other off the mountain.

Climbing up after pushing Licoln down, there was a cute girl who gave me a mischevious look. "Are you going to push me down the mountain?" I asked.

"Maybe so," she said.

To defend myself, I grabbed her and pulled her down. "Stop!" she yelled, giggling. I could have thrown her down to her doom. But I didn't. She was cute, and just looking at her eyes, I knew we could be friends. I helped her back up the mountain, and I awoke.

Even though its a silly dream, it made me think about some things. Firstly, it gave me a glimpse of that nice quality that I miss so much: friendship. Just having a friend that will just appreciate me for me. Its so rare in my life. It used to happen....it hasn't in a long time.

Secondly, though relatedly, it made me think of permanance versus ephemerality. It seems to me that most people live mainly in the ephemeral. Things just happen. In contrast, I dwell on things. History is written in pen. What has happened is etched forever, never to be undone. I'm over-analytic. I think about what everything means, and though I try not to, I take it personally sometimes. Looking at the universe in this way is really dark, if you keep your eyes open.

What this dream made me realize, somehow, is just how brief life is. While I dwell on things like "will I ever be wanted", because I am programmed to and conditioned for, life is ephemeral. And if I would look back on my life from the depthless beyond, I doubt I would very much consider my petty concerns that mean so much to be now, like being wanted as a significant other.

I would probably think of moments with people like the little girl and silly little things like how we almost pushed each other off the mountain. Maybe there is more truth there

20:24 November 25, 2010

Attic is open, which is sadly more than I can say for most Mission bars (even Bar).

And, so it seems, i can blog with Android, which is more than i can say for the iPhone

Oh, and i have the best cat

14:01 November 25, 2010

You win this time, twitter!

Awhile ago, I set up bitsyblog (that is, this thing you're reading right now) to tweet snippets of my blog to twitter. You can see some results here: http://twitter.com/k0scist

Lemme take a step back....why the hell did I do this? I hate twitter. Its....kinda one of those sites that make me really abhor the web. I mean, there's nothing wrong with the site....it just doesn't do anything. But everyone reads it. I mostly wanted to post on twitter so I could get my posts into google buzz. It would be nice to have my friends read my posts. Again, google buzz has that same idiotic problem that most pretend-federated sites have: it just doesn't work with arbitrary RSS. I jumped through a few hoops trying to get my blog and photos on there, but to no avail. On the other hand, it picks up twitter just fine.

You'll notice that most of my posts in the time I did this didn't pick up on twitter. There's a reason for this. Twitter changed their API to only allow OAuth access. This seems all well and good, but now its a pain in the ass for a consumer like bitsytweet. If you care about the boring details, read http://code.google.com/p/python-twitter/ . Of course, they didn't update their script :( See http://dev.twitter.com/pages/basic_to_oauth

I've decided not to jump any more hoops for the time being. Web developers jumping through hoops is, IMHO, one of the things that makes the web sucky. Instead of working towards a solution, people bend over backwards to do what other people tell them to do.

So fuck you twitter. If you want to read my blog, it will be here.

12:14 November 25, 2010

Thanksgiving: thank you, Lilly

19:39 November 24, 2010

The later in life you discover yours is worthless, the harder it hurts

20:22 November 23, 2010

Why I'm a Loser

I'm mostly a loser because I am. But why write about it? Well, its a Tuesday night, I don't feel like going out right now, I don't really feel like programming, so I'll waste some time writing a blog post. That's what life is, right?, filling that time between birth and death.

Some guys are winners. They're the kind of guys that have a girlfriend (with more probably in line) who thinks of them as inspirational, outstanding, great, or any of those adjectives. I don't know what makes them winners. People just think of them that way. Maybe its because they've been brought up being told that they were great. Maybe they just got lucky along the way. I don't know. I'm not really convinced they're all that much better than me. I haven't done much with my life, but to be fair, no one's really believed in me either. Its hard to get enthused about doing something great just because. As an analogy, I like to cook, and making myself food is cheaper than going out to eat constantly like I do. But its hard for me to get excited cooking for an hour just for me and then eating it in 15 minutes. Usually when I buy groceries, I end up just eating ingredients. So goes my life. If I had someone to cook for, I'd love to. If I had someone to paint for or write for or program for or fix up the house for....someone that I could make them happy by practicing a skill, it would be worthwhile. But just sitting and honing my talents so I can feel like my talents are honed....not really worth it to me. Its probably some fundamental failing on my part.

Then, some guys are losers but they know they're losers or just don't care. I wish I could be one of those guys.

But...I do care. I am programmed to want someone in my life. Maybe that's what makes me a loser. I didn't realize that this was inborn programming until recently. Maybe its a nature/nurture combo, I don't know. No one wants me. No one thinks about me and says, "That Jeff...he might actually be able to make our lives better. He's a great man." No, I'm not trusted that way. Probably for the best. I just have to learn to live with it and move on, taking what pleasure as I may from watching people in the subway train with that pointless detachment that defines society.

12:18 November 23, 2010

Idiot Insurance:

Protects against all acts of idiocy [*]

[*]does not actually protect against acts of idiocy. Purchased as a novelty item only
19:48 November 22, 2010

what is it with twitter not always working on my blog? :(

08:37 November 22, 2010


I haven't really used seamonkey. I probably should at least check it out, working at Mozilla and all. But from what I've seen in its documentation and heard, its just the old-style marriage of browser + MUA + etc internet suite.

While I think an internet suite could become useful in 2010 (or whatever year it is), I think the driving question towards its design should be: "what synthesis is gained by the marriage of disparate products?" If the main gain is not having more than one window open, I dunno...I'm not sold.

I do have a few armchair ideas for synthesis of a web browser and an MUA:

I think cross-app information management should be the focus of any sort of suite at this level. But what do I know?

11:52 November 20, 2010


12:00 November 19, 2010

so why is it in python that you inherit from object but never subject?

10:37 November 19, 2010

its 2010 and still no REST for the weary ;)

20:53 November 16, 2010

i think i will spend the rest of my life contemplating how pointless it is

22:52 November 15, 2010

organized religion is the devil

01:05 November 14, 2010


09:08 November 11, 2010

a one-off plus a feature request is no longer a one-off

15:29 November 10, 2010

software idea:

I want a she-bang based configuration file that follows the curl | python pattern (so you don't have to install anything) that makes a virtualenv, makes a source directory, and then for each line in the file checkout/clone that url and run python setup.py develop on it.

So like...pip without having to install pip + setting up a virtualenv

12:08 November 9, 2010

find it odd how sometimes bitsytweet works and sometimes it doesn't

i'll have to debug that....some mythical day

08:03 November 9, 2010

one of the world's bigger problems is everyone is trying to save it

16:36 November 7, 2010

karmic bonding is a very bad idea ... but i really want it

15:15 November 7, 2010

daylight savings mean having to explain to my cat why she has to wait an extra hour for breakfast

10:40 November 7, 2010

The thing about life is ... when you're here, everything seems so ordinary, as mammals we are programmed to perceive lest the tasks needed to ensuing survival would become an whirlwind of perceptual complexity.

But when you are not here, you recall the colors, the fluidity of motion, the twinkling of chemical combustion of paraffin encased in slow-moving liquid [*] , and it all seems as wonderous as a Dream

[*]how long would it take for a glass candle-holder under the

force of Earth's gravity to collapse to a puddle?

10:21 November 7, 2010

People put their projections on me and I can figure them out. Since there is a grain of truth, that perception of their projection grows to a reality, and soon I act as other than what I am.

10:18 November 7, 2010

most of my life is conversations not had

10:17 November 7, 2010

shadow mansions

09:58 November 7, 2010

What do you get when combine a Southern plantation family and a Jewish family in Tsarist Russia?

The hottest new act on off-off-off Broadway, that's what!

Fiddler on a Hot Tin Roof

Its the cross-over they said couldn't be done...and it can't.

Hurry! Get your tickets now, before the play closes its doors forever on opening night!

10:48 November 6, 2010

i'd love some peeps to work on our respective websites together. i really miss that from the confab days. so much to do and so much funner to do it together

10:44 November 6, 2010

New thing: essasys!

I put some essays on my site. Many of these have already been done as blog posts, many of them aren't really polished, but hey, more content.

See http://k0s.org/essay/

15:43 November 5, 2010

"If I'm God, which I'm pretty sure I am..." is just never a good way to start a sentence

11:56 November 5, 2010

it is a funny thing to think that people celebrate when their orbital star is in the same position relative to its reference frame from their little blue planet

21:41 November 4, 2010

the new traversal: another free idea

So I'm not sure why what I want doesn't exist. I was hoping repoze had something like this, but...it doesn't look like. I've always called this traversal, but its not just path based. Its....request based. Let me explain.

Let's say you have a request handler. Or really a bunch of them. How do you wire them up? Currently k0s.org uses paste. This allows me to use domain names (which I don't) and paths (which I do). But what about something more general?

What I really want is a matching based system. You have a root application. This is probably HTTPNotFound. Its a standard WSGI application. However, you want to hang subapplications on this. And you want these subapplications to be called when the request matches some condition. The application shouldn't care about these conditions: you just pass them in. Maybe you only listen to POST requests. Maybe you key off PATH_INFO. Or domain. Or...

In this way, you can build a real website out of simple WSGI applications.

This is step one.

Step two is to allow filters to modify the incoming request and/or response. Again, based on certain criteria.

This isn't quite netblocks yet.

This probably sounds too simple. Maybe it is. But the point is it kinda gives WSGI infinite flexibility of piping.

And...its easy to program

20:40 November 4, 2010


09:30 November 4, 2010

in the future, everything will be a tsa security line

09:05 November 4, 2010

people keep talking about this micepace.com site but I go there and there's just a bunch of crap

...at least its better than myspace

20:05 November 3, 2010

existential problem

I have a problem.

Last night, an army of the undead passed by my house. I decided to follow them. A band of skeletons played amidst hipsters smoking pot. I didn't have time to don my cloak or trechcoat, so swept into the night I was as I am. This is not my problem


I followed the horde to a park at 26th and Treat that I had not known of. Unmarked altars dotted the nightscape. It was another burningman: dia de los Muertes.


I was glad that I went. But it seemed I was the only one there without anyone. I hate that.

I'm caught between worlds. I know I should meditate, probably devote the rest of my life to meditation and just have a kind though detached attitude towards the human condition. But it is hard to be so empty. There are those that play this game and become attached to unattachment, or so they play to be.

I don't know why it means so much to me to have someone to share my life with. I don't know why loneliness hurts so much. I don't know why I don't have any friends who I can hang out with when I'm lonely. And I don't know what to do about it.

12:36 November 3, 2010

Notice: This ATM charges a $5.00 convenience fee. Do you want to continue?

-> Yes, I want continue and pay the fee

-> No, I don't want to continue but I'll still pay

20:28 November 2, 2010

k0s.org: dreams for the future

Its been on my backburner for quite sometime to do the next generation of my website.

Bugzilla: I really need a place to keep track of my ideas. I'm high on creativity low on time and ability to keep everything in my head. In addition, I really want to start hacking bugzilla since I'll need it for work anyway. Until recently, I was blocked by bugzilla not having a sqlite backend. But that was recently fixed. So I need to investigate this and deploy and do a brain dump there.

Découpage templates: the majority of my website is done via http://k0s.org/hg/decoupage . I did a change this morning to move most of the <head> logic into a template, head.html, that each subtemplate includes. This allows me to add new items to the document head in one place instead of copying and pasting to each template for each change. However, this raises other questions. Put in the most general way, how does one create a slotted template system that is flexible and generic enough? Does each template include head.html, for instance, or is there a template that frames everything and includes subtemplates? One of the problems (though it has positives too) in coding for my website is that I am too tempted to code for my use case and be blinded by the big picture. Realistically, this is how many websites are coded, but I want to code generic software that just happens to be deployed on my website, which I think is a better development model anyways.

Traversal: webob_view has the beginning of a traversal system. I want to move away from being tied to the paste server, and would like something that does traversal in a generic way. Ian Bicking mentioned that repoze has something like this, so I should investigate. What I want is something like this: you have a traversal block tied to a WSGI application (the traversal block is in fact a piece of middleware). In other words, you have several handlers hanging off of this. You check if any handler matches. If so, call that handler and return the response. Keep going down the chain. I'll probably blog more about this later.

15:08 October 29, 2010

I like my code like I like my humor and martinis: DRY

19:07 October 28, 2010

The new smart phone from Verizon! Not only does it have a camera, mp3 player, and full touch screen internet, but it is rated as waterproof up to a hundred meters. So leave yesterday's smartphone on the beach and dive on in to...

The Deep Water Verizon

16:30 October 26, 2010

overheard in the mozilla office: "A new kind of macaroni!"

16:04 October 26, 2010

the first rule of Alzheimer's club is that you don't talk about Alzheimer's club

the second rule of Alzheimer's club is that you don't talk about Alzheimer's club

the third rule of Alzheimer's club is that you don't talk about Alzheimer's club...

10:57 October 26, 2010

.oO( is Long Delay Tom Delay's adopted Chinese son? )

09:39 October 26, 2010

funneling open source efforts

The bazaar has grown a lot bigger. This is a good thing :) However, we need a better way -- coordination -- to feed people into open source projects. Traditionally, the impetus has been entirely on the contributor. Want to work on a project? Go for it. Want to start a new project (with the likely case being you are duplicating effort)? Likewise, go for it. What is needed is a way to point people towards the right open source project. You have requirements that you want. These might be satisfied by some project....or they might not. I'm mostly talking about developers that actually need a product to do something, not just futzing around with code.

This comes to mind because I have this problem at the moment. My efforts to develop http://k0s.org are pretty lagged because I don't have an issue tracker. Since I have to work with bugzilla anyway, I would really like to use bugzilla. However, I have a particular requirement, the ability to sync data from all of my development computers. I have this with files via silvermirror . But this is hard to automate in a general sense for SQL, maybe even impossible to do in a robust way. If bugzilla supported SQLite ( https://bugzilla.mozilla.org/show_bug.cgi?id=337776 ) then that would be an easy win (despite the necessity to write a WSGI-CGI bridge to run the damn thing). But...sigh, it doesn't. The next likely candidate is Trac. Having worked a lot on Trac, I know there are things deep inside it that bother me enough (like not having a real model, just using SQL statements...grrr! good luck abstracting that) that I fear I would spend all of my time developing Trac instead of developing my website. Not my goal.

So what to do? If I'm going to be working on an issue tracker software, I want it to fit into my overall goals. I wrote some rough specs: http://k0s.org/portfolio/issue-tracker.txt . This really involves three software projects: workflow, discussions , and the issue tracker. I honestly don't care about the issue tracker part, except as a client, though the other two I do care about.

I can, and maybe will develop this myself. But, you know?, for multiple reasons I'd rather work with other people, one of them being I'm tired of rolling everything myself because I have peculiar requirements. If there was a project that really wanted me as a contributing member that was willing to listen to my requirements, I'd much rather put my effor there. If there was interest by others in helping me develop my software, then that would be cool too (and keep me more motivated than if I just have it as yet-another-free-time-project). So what to do?

A problem that I care about enough to write a blog post about but not enough to solve is this funneling problem. For those developers that have particular requirements (i.e. are not willing to change their requirements to use a piece of existing software) and want to work in the open source world, which project do you choose? Or do you start your own? And if you do, how do you get others to play with you?

Left as an exercise for the reader

16:21 October 25, 2010

> ./foo.txt

#!/usr/bin/env cat

hello world

09:24 October 25, 2010

In the spirit of Halloween, the end of an internet ghost story. WARNING!! may not be suitable for small nerdy children.

"...he unplugged the router, but the packets kept coming. He ran netstat and found that the packets were coming from"


21:58 October 24, 2010


21:49 October 24, 2010


The notion of the ascending arc and falling action used to mark in Western literature the accepted form of narrative gives rise to the goal of triumph. But vitory over what?

My life is a melancholic victory, one of the victories that are never voiced in narrative but must be induced from the subtext. My dreams are dead, gone from the realm of possibility, and all I am left with is a blank page, so far scribbled only with meaningless words, spilt stains of beer, and the unknown ailment that burns in my intestines. And I call this triumph.

I will never know my dreams. Apologies to those who dismiss my certainty as pessimism, but for you who have known my life only through a looking glass, never wishing to seek further, but such is a statement of fact, even if only because I chooose it to be so. It may be that I will know what others would call greater victories, but they will never make me happy in the same simple way that my dream to love imagined satisfied would. It may be a silly dream, perhaps even unimaginable for me in manifestation, but it is what I have wished. This is not my victory.

My quiet victory, that better left to subtext but loneliness and gaps of time lend me to record it in poor form, is the return to this unborn state to the page never written. It is the triumph of awakening to the cessation of this perfect dream, of rising from bed against the aches of a body failing prematurely, and daring to face truth. It is the victory of having fallen off the planet. Though I am sad that I float in the ether alone ... there are none who wished to come with me.

So untethered, I let the words again fall to subtext

16:39 October 24, 2010

a quiet rennaisance

16:01 October 24, 2010

I again watched my favorite film I've seen this year, Moon. It comes at a seredipitous point in my life. While I'm sure the film would always have resonated with me, a human alone with himself on an empty landscape, it has a special meaning as I start a new life alone. While part of me feels that something has died, it more feels like I'm starting again. What do I want? What should I do with myself? These questions used to be so clear, and now they are trackless .

Like Sam, there's nothing particularly horrible about my existence. I don't fear starving, or persecution, or have to deal with any of the other awful things as do animals and the vast majority of poorer denizens of this planet. But I feel I missed my life, and that is not a good feeling. I feel my dreams have been stolen away from me, but like Sam they were never really mine to have. They were just dreams. I wished so much for them to be true, but have to deal with the reality of waking up.

I wanted someone to share my life with. Someone to be in love with, in spite of the social distortion of love and the need to procreate as a conflation. I didn't, and don't, think that it is really that much to ask. Maybe I'm wrong on this one. Its more than most people get. I don't know why I thought I was special. Maybe because I saw how it could work, could see how two people together could live in genuine contentment in alliance, and was willing on giving up so much that other people value but that never mattered much to me. But it is something I have never known. And now, the dream, that sweet dream of being young and stupid in love and growing old, as out bodies cease their beauty and we only have each other in a world of selfishness and uncaring, cold and icy drifting alone against the stars....now it won't be true.

What to do about this now that I can no longer slip into this dream again? I guess like Sam, I have to just deal with it....deal with the fact that I'm one poor monkey out of billions whose dream isn't that important to the cosmos, pick up the pieces of my life and move on. It is terrifying to be so untethered, and I have sympathy towards that majority that choses not to remember their dreams for the sadness of their absence. But I would rather have that over the pain of self-effacing lies.

But I have not pointer towards what to do. In an existence where survival and perpetuation are not paramount, what does one call a destiny? Attachment seems ... odd to me somehow. I knew I would have to give it up, but now that I have fallen off the world , I'm not sure what to do with this concious body floating in the ether.

I guess some things won't change. I'll still go to cafes and bars because it is in my nature to want people around sometimes. I'll still go for walks in the rain. I'll still write blog posts to no one in particular (so why would I do it, save that that too has become programmed?) and program and go to work and advocate my beliefs. But all of that is playing to the board. What happens outside the game? I suppose I will learn to become more an archaeologist of people, observing them, and otherwise honing myself. But for what other than my own whims and for standing against the background even while fading to it?

maybe that question has no answer

16:56 October 23, 2010

...and we're back!

the worst thing about having your blog broken is that you can't blog about it

12:58 October 22, 2010

So, if you're a teacher with a crush on a student, I think it would be funny to give this math problem:

Simplify the following expression to put i on the left hand side:

u > i/3

Then when they return with the result written on their paper, say "well, that's highly inappropriate, but I feel that way about you too".

10:30 October 22, 2010

weird; twitter decided to like my api calls again after two months

08:37 October 22, 2010

it's like i tell people a thousand times: "don't repeat yourself", "don't repeat yourself", "don't repeat yourself" ...

14:05 October 21, 2010

http://tipotheday.com/2007/08/26/wtf-is-this-character/ ҉

11:23 October 21, 2010

the only difference between my opinions and everyone else's is that mine are correct

14:31 October 20, 2010

you must be able to have multiple instances of your mom running around, because there's no way she could be a single-ton

13:34 October 20, 2010

if there's one thing i've learned working with production software, its the quickest way to dig a hole for yourself is to rush features to production

11:54 October 20, 2010

http://twitter.com/beltzner/status/27956020097 : more proof that Apple is the new M$

...does that make google the new IBM?

11:48 October 20, 2010

Mexican Highlander: there can be only Juan

18:03 October 18, 2010

Mozilla: Six(+) Amazing Months!

I completely meant to do a six months at Mozilla blog post. The fact that I'm a month late doing so betrays how busy I and everyone else here is.

Firstly, Mozilla is awesome. I am completely amazed at how well Mozilla lives up to its ideals, both technically and interpersonally. Everyone I've met here is really smart, which I'd like to think is a high compliment coming from me. My team-mates on the Tools + Automation Team (the A*Team, as it were) are all extremely talented in so many different ways. I could go on for a whole post about each of them, but suffice it to say, we're quite a force to be reckoned with and I'm very happy to be a part of the team. People toss around the term "dream job" maybe more easily than they should, but after being here a bit, I can honestly say I can't imagine finding a place I'd rather be. I feel bad that I'm so busy and at the same time never get as much done as I feel I should, but...I hope I'm getting better. I've been lucky enough for the past many years to be at places that had some claim to say are the "best of the best": the Plasma Theory and Simulation Group at UC Berkeley, the many very talented programmers (and a few non programmers) at The Open Planning Project, but Mozilla is the first place that I've felt that not only do you have people who are among the best and the brightest, but that they're actually functioning effectively. We (well, less so me, as a newcomer, but "my peeps") built a web browser that most likely changed the web from a dark closed place to an open happy place, and we're (legitimately) working on keeping it that way and making it better. It makes me proud to be part of such an effort.

Technologically wise, I still feel like a newcomer. But I'm getting there. I've been exposed mostly to the testing frameworks and infrastructure and a little towards the periphery of how Firefox (and other Mozilla products) actually work. The build system is amazing. People complain about it every day (including myself), but I think people are just as glad that we have something that is not only technically robust but that actually is used to orchestrate development in a usually friendly way (including myself). It could be better ... it could be a lot better, and I hope to help towards that end.

I still haven't had time for many of my dreams. I want to make a few Firefox extensions (that, honestly, I have a hard time believing everyone doesn't want them). I want to improve bugzilla, improve buildbot, and develop more metrics tools for our infrastructure. I haven't really gotten a chance yet, though some of the projects coming online (that I should already have done something for, but I'm playing catch up) will serve that end. I have bigger dreams too. I'd love to help make addons a real ecosystem that enables Firefox == a web OS (effectively, anyway). I'd love to make Firefox serve web. And, as always, I have some ideas for webapps that would make the world really cool if they could get adoption. I mean, I don't even have WSGI tagging yet! So, sadly, this post won't be added to planet.mozilla.com. All in time, I hope.

One thing that strikes me every day is how great it is to work in a place where creativity and good development practices are encouraged. Sure, I have arguments all the time on "what are good development practices?" mostly with members of my team, but its all in good spirits. One size does not fit all. Other places I have worked have looked upon creative analysis of problems as either wastes of time or downright subversive (this isn't to say that at Mozilla I can or should just do what I want, but at least my ideas are heard, appreciated, and occassionally even agreed with), and good development practices were scrapped for getting something done yesterday only to devote more time to it much later. I get know pleasure for being able to say "I was right" about such things.

So, Yay! Mozilla! Its fast approaching the year of Firefox 4. Nightly benchmarks show that we're nearly as fast as Apple and Chrome. I can't claim much responsibility for this -- I'm still learning the ropes (though the firehose has dropped to a reasonable level) -- but I'm excited to put as much effort to things as I reasonable can.

Thank you everyone, and most especially those on the A*Team.

15:16 October 18, 2010

curl http://en.wikipedia.org/wiki/Recursion

HTTP/1.0 302 Found

Location: /wiki/Recursion

21:56 October 16, 2010

Objective #1: make it obselescent whether JH exists physically

09:53 October 16, 2010

will you think of me when you're dead?

09:01 October 16, 2010

Belly-buttons and poppy-cock....if this is all I have given them...

21:11 October 15, 2010

Engineering has a special place in the coopting of the human state. I'm sure this is true for other fields of expertise, but engineering's uniqueness is marginal returns as a result of artificial external constraint. It is easily showable that we have the entirety of technology needed to maintain a stable system where everyone had elevated standards of absolute wealth, many dramatically so. Obviously, this must fail in the way things all fail.

But taken to a microcosm, engineering is reduced to ineffectiveness. In the effort to get profit, engineering companies are run ineffectively. There are few novel ideas, yet everything engineered pretends to be a novel idea. It is technologically easier, in the same way manner as it is easier to mix coffee and cream than to unmix them, to replicate existent technology. Yet synthesis is achieved from the harmony of technologies: innovation.

So, no, there'us nothing wrong with making a game that has a wacky gopher popping out of some phone that you get points on for tapping on your iPhone. But the way engineering is practice does harm to the field itself. Instead of developing cohesively, the "let's pretend this is a [new] idea" just gives spawn to "do it you f-ing self"-ism.

Historically, for product, there was scarcity. There is no scarcity of information or engineering. So the suffering is needless. It would be much easier -- much easier! -- to allow engineers to work collectively to develop better systems. It would be cheaper, more time efficient, and result in much more stable innovation more quickly, to take the body of engineers and allow them to work very much part time and on their own schedule and very minimally supervise them.

I guess I'm lucky enough to largely have this, so I shouldn't complain. But it really makes me sad that people...engineers...can't just make the world better

17:23 October 15, 2010

dark energy is the new ether

14:08 October 15, 2010

i always wanted to get a car and paint the front part blue and the rear red so people would think i was driving so fast i was red-shifting on them

14:52 October 14, 2010

So 5/12, 11/18, and 36 walk into a swank restaurant. The Maitre D says, "I'm sorry, none of you have reservations and we only have one table available. 36, we'll take you." 11/18 hughed and object, "Well, now you're just pandering to the lowest common denominator."

13:00 October 14, 2010

When the moon retreats from the sky shall there only be cloud-covered night? Or will there be naked stars, singing?

20:53 October 13, 2010

Monetization of a nonpersonified narrator.

16:04 October 13, 2010

"duct-tape status quo" <- a new copyrighted term

12:31 October 13, 2010

infinite series for pi:

pi = sum_{i=1..infinity} (pi)/(2^i)

08:34 October 13, 2010

It has been my experience in picking up a project that other people have started that there is usually a large amount of cleanup involved. I'm not talking about the learning curve so much -- some pieces of software are complex regardless of how considerate the previous developer was. I'm more talking about fixing things that really, IMHO, should have been fixed before. I'm sure every programmer has had the same experience.

Cleaning up after yourself is good karma. More than that, its actually not much work and even if you're the only person on the project, keeping things clean will save you time when requirements change or you have to port to a different system (etc.). Some of these practices are pretty obvious, e.g. not hard-coding strings. Others are those sorts of things people like to argue about. If you're just you working on a piece of software, then it really only matters when others become involved in the project. Everyone is free to keep their own house as messy as they want. However, in reality it is usually very hard to say when someone else will join your project. So I'd be so bold to implore you just to keep things clean as you go and do things the right way. Cutting corners won't save you any significant amount of time, but will potentially cost a newcomer very significant chunks of time as well as discouraging them from your project. Some rockstar programmers might think this is a good thing. Some people also pride themselves on how messy their lives are.

Here are some basic things that probably everyone knows are true but yet I see violated all the time.

08:53 October 12, 2010

WINDOWS Is Not DOS Or a Working System

08:32 October 12, 2010

in America, you execute programs; in Soviet Russia, program executes you!

16:51 October 10, 2010

yesterday was John Lennon's 70th birthday. Today i'm washing my linens, which takes about 70 minutes. COINCIDENCE?!?

...yeah, most likely

...if you doubt this is possible, how is it there are pygmies and dwarfs?

17:23 October 8, 2010

Why do WYSIWYG editors hate HTML5?

While looking for help on HTML elements, I stumbled upon http://rebuildingtheweb.com/en/why-do-wysiwyg-editors-hate-html5/ . In the style of its author, I'm just going to refuse to deal with any difficulties that aren't easy for the way I work. For instance, view source displays one giant line of HTML that is most of the article. So I won't link to anchors...not even sure if they have anchors! So you'll just have to read the article.

Firstly, it is asserted that HTML has too many elements. Then he (I'll use 'he' internally even though I don't know the gender of the author) shows a crowded toolbar and points to it and says, "SEE?!?". Q.E.D. I guess. This shows the beginning of his misunderstanding. HTML isn't designed to have a large subset in a WYSIWYG toolbar, nor are WYSIWYG editors designed to give all of the features of HTML. If you want all of the features of HTML...write HTML. GUIs serve those that want a crafted subset for a specific domain. Do your users need strikethrough? Do they need emoticons? I'd much rather have a slim editor if I was using one that communicated the intent of the site master.

Then he goes on and complains about alt tags for images. See, the great thing about a WSYIWYG editor -- in fact, any abstraction layer between the user and the resulting markup -- is that the site master (or GUI designer, etc) can build in functionality. If the site is, say a blog, you'll want headings, subheadings, etc. Each of those should be an anchor. If the writing is semantic, you probably don't need more anchors. If I double-space (or alternately, any time I press enter), I want a new paragraph. Images should get captions that are set to their alt and title, etc, and should be dynamically resized thusly. I'm not saying any of the rules above are how the web should or must work. I'm saying if you're designing an abstraction layer, thinking of this as policy both allows you to craft a site that is easier to use (without the tons-o-buttons) for users, has better markup, and is more consistent.

If you don't want this, just let them write raw HTML.

11:04 October 6, 2010

they pay farmers not to farm; why not pay programmers not to program?

22:42 October 5, 2010

"Don't assemble your robots! I'll talk."

11:57 October 1, 2010

The browser is the OS of the modern network. As such, it is good to have a browser that correctly and efficiently implements that functionality required for browsing while allowing extension such that the OS may be tuned for particular needs.

Firefox is a good example of this model. The out of the box browser allows a good interface to the web while not trying to tell you how to use it. Hitherto, this was all people really wanted except us geeks that like to customize everything.

The Firefox addons community is pervasive and fierce. Some addons allow simple functionality. Other addons greatly modify your browsing behaviour. I see potential for Firefox + addons to achieve what has been an outstanding goal in applied computer science: high-performance tailored installations of what amounts to an operating system for a spectrum of use-cases.

How will this work? It depends on the use-case. As a web developer and someone picky about their UI, people like me will download a semi-virgin Firefox and install packages of add-ons tailored to our use case. There will be (one or more) web developer package(s) and then several UI packages depending on what you want. Since I am picky, I will probably augment this with several individual addons too. And since media is part of the web, I'll probably get some video and audio packages too. Its like shopping, except for free!

Many people will work this way. There will be others, however, that just want a solution out of the box. Different versions of Firefox pre-loaded with packages will be available from various distributors. Some will become popular. Some won't. There will be the small business distribution, the government distribution, the accounting distribution, all with addons tailored for this purpose and for interacting with various web and onboard applications as needed by the consumer. Smart phones, as android phones already tend towards, will be a net interface with the browser being the primary point of contact.

This is already mostly a reality. Its funny. Looking back to the things we said we almost wrote off as failed in this last decade -- calendaring solutions and the Chandler project, ubiquity of open source, net computing (http://k0s.org/blog/20101001113942) -- these are basically here now. Oh what a brave new world that has such technologies in it.

11:39 October 1, 2010

The (Near) Future of Computing

We're still physically dealing with what amounts to be a legacy of how computers were used. We have computers: laptops, desktops, etc; and things that are almost computers: smartphones, tablets, etc. What is the natural state of what we can produce today vs. what we are doing?

Computing has reached the predictions going back more than 30 years: that computational resources and information are available independent on how you connect to them. People will carry around an interface to the internet: for some people this will be their phone, for others, a tablet or a small laptop depending on their needs/wants for roaming computation. The purpose of this device is to allow connectivity, not on-board computation. Since processors, memory, storage is cheaply small, these are limited by the size/technological limitations of the display and the keyboard or other points of interaction. With glasses, not only does display size become a non-issue, but this allows for augmented reality as well, which will clearly soon become how the world works. For input devices, we already have projection keyboards, touch screens, and other soft devices to allow for a wide possible frame of interaction not limited by size. The way of interaction, following this, will be true cybernetics: direction neural/computers interplay. This will transform more than just our day-to-day interactions with computers, so I'm limiting my scope here to talk about just short of that, though that will be a reality soon enough as well.

You will walk into someone's house with your portable device. You can use this to interact with their various household electronics -- screens, speakers, computers, video games -- wirelessly. Or you can use whatever input device your friend has lying around. Interfacing with devices will no longer be bound by which interface you are in front of, but what credentials you are granted by the agents of control.

09:55 September 26, 2010

Go America! http://www.kingmandailyminer.com/main.asp?SectionID=1&subsectionID=1&articleID=16860

17:09 September 24, 2010

Windows 7: look at how much sleeker our close X is than WinXP

16:11 September 24, 2010

Despite all my early enthusiasm, I don't think anyone would argue that writing bitsyblog has been a significant time win. However, that may change. WARNING: another million dollar idea ahead

While I plan on implementing a calendar interface for navigation, I'm still a big believer in the blog roll: http://k0s.org/blog . One real strength of a blog is having a unified place to put new content that is automatically filed and dated. For bitsyblog, the filing options are somewhat limited (namely, is it public, secret, or private). However, since there is effectively one event -- posting a blog -- it is easy to turn this into a pluggable event handler. See http://k0s.org/hg/bitsytweet for an example.

But how does this solve the CMS problem? So, if you've been paying attention, you'll know that I'm a big believer in curating information. Take a typical development cycle, for example. A programmer is assigned a bug, fixes it, and commits his changes to a VCS repository. Through manual convention or automatic process, the programmer can note in the commit message which bug was fixed and note on the bug which commit message fixed it. This is good practice that allows rich linking of resources. It is also information curating.

Now, let's take k0s.org, which is really saying "take the software that I use as a portal to the excellent CMS, my filesystem". bitsyblog is clearly the "idea roll" -- its where I put random text to be organized. Some of it should just stay there. Others I end up doing things with. I want to start automating this a bit.

A few ideas on what can be done here:

Anyways...yeah, that's right, I said it! I talk a lot about how the filesystem is a good CMS and most everything else is a crappy CMS. I hope these practical examples give more of an idea of what i'm aiming for. Someday I'll even implement them ;)

11:10 September 24, 2010

When you think of the Los Angeles International Airport, think LAX security

16:27 September 22, 2010

game theory quickie: people do things the wrong way when doing things the right way is hard

19:04 September 21, 2010

If one wished to hold on to me, they would need to stay unphased by more than a flash of light and a puff of smoke

17:44 September 21, 2010

From the makers of The League of Extraordinary Gentlemen comes...

Higgins: I say, Perkins, should we accost that privateer with the Siberian tiger?

Perkins: I think not. We're just ordinary gentlemen.


Higgins: Are you sporting a winged collar?

Perkins: It is the style of the times!

May, 2011; Get ordinary

11:25 September 20, 2010

i should just replace myself in #socialplanning with a robot echoing my blog posts

11:24 September 20, 2010

in HTML, you escape codes; in Soviet Russia, codes escape you!

14:39 September 19, 2010

What it's like to face one's own mortality after the initial realization:


14:38 September 19, 2010

as long as its a kind of marketing...

14:37 September 19, 2010


10:22 September 17, 2010

SQL: when you have a table saw, everything looks like a table

11:25 September 16, 2010

A Simple Prioritization System

People go on about how hard it is to make a decent to-do list. People -- especially in the tech industry -- also complain that they're not sure what they're supposed to be working on. A quick solution:

You have a queue of tasks. These are ordered. I'm thinking of tasks == issues in an issue tracking system, but this isn't that important to the software itself.

You can add whatever you want to your queue.

Your boss or anyone else higher up than you can add tasks to your task list. You can't remove these or move them around. You can't move any of your items ahead of these.

That's probably all that I need to say on the matter.

10:30 September 15, 2010

why does my phone say nose rv ice?

12:56 September 8, 2010

Pedal-Phile: the magazine for bicycle enthusiasts (and not child molesters)xs

11:57 September 3, 2010

Firefox is a great browser. It is even a better browser with a selection of add-ons. Now here in comes the problem, or a set of them (or solutions, if you like):

  • if you are an expert user (read: into firefox) then you know where to get addons and what to do with them. In fact it's kinda fun, like shopping. But if you're not an expert user, you're probably not going to install addons or know what addons to install. This is being worked on: https://bugzilla.mozilla.org/show_bug.cgi?id=574293 At this point, the community changes. Mozilla will have to make an effort, together with the community, to curate these add-on packages into recipes that make sense. There will be an additional level between individual addons and the user of add-on curators that will pick packages that are best of breed and will make sense together for (mostly casual) users.

  • There will need to be extended effort on making curated addons self-obvious to users. Very few people read help anymore unless they're confused. They'll install and addon and expect it to magically work. So this needs to happen.

  • Addon farming: there are two problems with the great success at the number of addons that are basically the same.

    1. addons never get consolidated. That is, if my addon and your addon have significant overlap in intent, there is no push for us to combine these addons. This makes it really hard to find addons that I want and I have to install multiple related addons to get the superset of features

    2. addon features are very slow to go into mozilla-central. Obviously, even for great addons, it may not be a good idea to upstream them. But some features are both lightweight and pretty non-contraversial. Like TabMixPlus's duplicate tab, which duplicates an entire tab including history. Its really awesome. So addons need to be aggressively farmed and upstreamed for simple user-desired features. This could even be a community point: voting on what addon features (from a preselected list) do you want in m-c?

    I'll note that these aren't Firefox specific problems, but problems with the human side of software development in general.

  • Just for me, I want a better way of dealing with addon compatability (see http://www.oxymoronical.com/blog/2009/11/Changing-the-checkCompatibility-preference ). Firstly, doing this doesn't really fix things for my nightly build. Secondly, even if it did, it doesn't affect the fact that I really want addons to work on my Firefoxen. If I'm using a version of FF that really is incompatible, that's one thing. If the version of FF gets incremented, I don't want all of my addons to break. Ideally, there would be a more functional way of seeing if addons were compatible, and, ultimately disabling only the functionality that didn't work properly (unless they're tightly integrated in which case you're hosed). Obviously, this only affects bleeding edge users.

09:08 September 1, 2010

the most pretentious thing one can do is apologize for being pretentious

08:54 September 1, 2010

Its funny how the tiniest things can so impact productivity. On the train -- the Japanese kind with rows of individual seats on the top floor, not the stupid but more showy American kind that only have groups of seats each taken up by one or two people, the remainder empty or filled with their luggage -- there are usually two seats at the end, sometimes with a cup holder. On this day, he managed to take one of these seats, the other one next to him being left empty of course (people in the Bay Area refusing even to acknowledge that others exist unless such is thrust upon them) so he had a place to set his coffee while it cooled and between drinks. Having use of both of his hands, and the coffee, he was able to complete a substantive piece of work during his commute hour. Contrast this to the majority of mornings when he could not get this one seat out of a dozen or, as had happened, this last seat was free but was of the model without a cup holder, his work was diminished from having to hold his cup of cofee with one hand while he typed with another, juggling these with his commuter pass when the conductor collected fare from those who were too paranoid or proper to ride naked of legal protection.

If he missed the 7:04 train then the he had to take the 7:17 train, which was one of the sleek (albeit sleek only in the way that plastic can be sleek) American-built trains that only had seats in groups of three or four. While the capacity of both trains was approximately the same (there were probably fewer seats on the Japanese trains), he could rarely find a seat on the American variety. Each group of seats held at least one person. Without any way of knowing if anyone objected to his presence, as people had historically done, he wandered up and down the aisles, going from car to car, looking for that empty group of seats. He could ask them, "Do you mind if I sat here?", and while the tone of their voice would actually answer his question, more than likely the words would be something along the lines of "Sure, go ahead." These mornings he rarely got any work done. Even finding a seat was an accomplishment. He supposed most people just sat down whereever without caring about the issue. He wondered, why then, were there comparatively many attractive girls sitting alone. If he were to hypothetically apply that philosophy to himself, he would find a convenient seat with a girl that was easy on the eyes, if only to sooth that foolish need within towards feeling of self-worth through the dance of pseudo-procreation. He hypothesized that perhaps people would rather sit next to someone less attractive to avoid the question entirely.

14:20 August 31, 2010

MeetingCorp has a lot of meetings. In order to learn how to navigate through these meetings and how to choose a meeting, we recommend you attend the "Meeting about meetings" meeting.

22:26 August 30, 2010

a few complaints about things:

1. people that blatantly want dom/sub relationships. wow, you're really one-sided. Surely there's more to a relationship than that? And more to the point, surely you could do it with a little subtlty?

2. chat on the internet. I'm bored right now (big surprise) and wanted to, you know?, shoot the shit. So I looked up some channels on IRC and they're all awful. If you want to meaninglessly flirt with someone on line, that's easy to find. If you just want to, you know?, talk, good fucking luck.

21:08 August 30, 2010

crickets chirping moderated by the electric hum of the lot of empty buses

14:49 August 30, 2010

"Did you figure out how to reproduce?"

"Yes, but I don't see how unprotected sex is going to fix this bug."

11:53 August 30, 2010

fuck twitter

11:15 August 27, 2010

deja foo: the uncanny feeling one has coded something before

10:48 August 27, 2010


08:47 August 27, 2010

webcronym is a copyrighted term so don't even THINK about using it!

"don't even THINK about using it!" is also copyrighted

08:47 August 27, 2010

webcronym is a copyrighted term so don't even THINK about using it!

"don't even THINK about using it!" is also copyrighted

08:47 August 27, 2010

webcronym is a copyrighted term so don't even THINK about using it!

"don't even THINK about using it!" is also copyrighted

08:40 August 27, 2010

in soviet russia, first rule is fight club does not talk about you

08:27 August 27, 2010

web-based filesystem

I was thinking this morning....it would not be hard to implement a web-based filesystem that was completely backwards compatible with existing filesystems. For existing OSes, you only have a few things you can do:

  • try to open (read) a file
  • try to open a file for writing
  • get the parent of a file/directory
  • list directory entries

For many common cases, even just reading a file is a huge gain. Consider this bash code to count the number of anagrams in the word "filesystem":

wc -l <(curl http://k0s.org/anagram?filesystem)

(If you're curious, with my current dictionary there are 956 anagrams.)

Now why can't this be done like this instead?

wc -l http://k0s.org/anagram?filesystem

If you allowed a handle that, for all filenames starting with http:// or https://, the filesystem/OS match a fetch to the resource and read the content (in any number of ways), it could. Again, trivial change to implement and completely backwards compatible (save for a file with a relative path starting with http:// ... I guess we could check for the existence of such files first).

Again, already huge gain. We've made a lot of people's lives much easier. And because we've implemented this at the filesystem level, it will work with any program, whether command line or GUI.

Now, let's imagine doing this better. Not so trivial to actually get people to play nice together, but it will happen eventually.

Normally you can't write to the web. Well, you can, but not like writing to a file. So these files are read-only in filesystem jargon. But what if you want to?

HTTP has an OPTIONS verb. Currently its not used much, but that is changing. If a server answers an OPTIONS request in such a way as to indicate whether that a resource is writable, then the OS could do a PUT (for URLs ending in /) or a POST (for other URLs) to the resource. While this is certainly implementable now, it won't really work as most servers don't expect this form of document. Which is to say....it will very selectively work.

However, this is where things are going. Right now, there is a division between "my computer" and "the internet". A lot of folks (::cough:: Apple) want to keep it that way or allow you only to operate within a fence. But, as with all things technological, eventually the easiest way will persist.

I won't pretend that any of these ideas are unique to me, or even anything but obvious. There are people working with real webbased filesystems now, like davfs, hadoop, and others. Most of them work in a sandbox, but that's only out of convention. The reality is, five years from now or fifteen years from now, the internet will be so integrated into every computing experience that most people will look back and say "wow, and we really thought we were using the internet well...tsk tsk..."

10:18 August 25, 2010


21:46 August 24, 2010

i sit around trashed and read about formal dress codes ... for fun

... and i vote!

11:50 August 24, 2010

Tab soda: when you can't afford a better soda

06:31 August 24, 2010

not the brightest bulb in the fountain

19:43 August 23, 2010

the sky lightens; it is time to wake and dream no longer

18:05 August 23, 2010

vim == 994 ?

12:34 August 23, 2010

samsara: it's like the mind leading the mind

13:44 August 22, 2010

Brownian motion == brownie in motion ?

17:49 August 21, 2010

patchwerk (hg patch queue) workflow diagram

16:30 August 20, 2010

eat life with a big spoon

19:13 August 11, 2010

when you leave your surroundings to meditate in quietude,

so is it to meditate in everyday things and noises without abandoning awareness

19:01 August 11, 2010

"You wouldn't know your ass from a hole in the ground."

"That would explain those rectal pains after shoveling yesterday."

16:55 August 11, 2010

experts have concluded that chewing gum causes brain cancer

21:43 August 10, 2010

A cloakroom is a modern desktop

17:28 August 9, 2010

integrated development environment for the blue lovers +suicidal : Cyan IDE

12:13 August 9, 2010

windows server + windows client == a win-win solution?

17:11 August 8, 2010

we choose to become archetypes of the ideas we espouse

17:06 August 8, 2010

I just unlocked the "Global Genocide" badge on foursquare!

01:12 August 8, 2010

The second rule of Temporal Paradox Club is the first rule of Temporal Paradox Club

00:42 August 8, 2010

it's a saturday night and i wish there was someone to weave thoughts with me. i guess that, at the superficial level of communication, is what it's all about. i have a cat here who loves me. and i love her. but there is something missing of that going off into infinite mystery. Civilization, that thing we pretend to have, is about that infinite. a moment passing. this is all there is. and yet. here is another moment. some sort of culmination is in order

23:09 August 7, 2010

If All are One, how can there be an Other?

There is the duality of existence and non-existence.

Which one are we?

23:05 August 7, 2010

It's not the pain that bothers me but my own formlessness

23:04 August 7, 2010

We're all going to be dead someday. We might as well start acting like it's already happened

17:20 August 7, 2010

You give 'em an ench and they'll take the chilada

17:20 August 7, 2010

Why does Kansas always appear on maps with is Easterly bordering state?

Because Missouri loves company

19:59 August 6, 2010

In stores today! The new Modest Mouse: ''The Ego Has Landed''

08:43 August 4, 2010

time's wind lingers for no man

09:11 August 3, 2010

windows is the csh of this century

09:24 August 2, 2010

it is bad enough being born to this world without propagating the error

08:54 August 2, 2010

i hate it when i write things because, usually, I have to read them

08:13 August 2, 2010

"I'll get you a bag -- a body bag!"

-- another quote from a non-existant Arnie movie where he plays a waiter
08:11 August 2, 2010

i've noticed that people who are easily content have poor software architecture

07:12 August 2, 2010

The one lesson that life continues to teach me is the one I know all too well: others are completely unreliable and should not be trusted or depended on to take my welfare into account in any possible way.

23:02 August 1, 2010

permalink is the new prerecorded

18:17 August 1, 2010

rationality always wins in the end (?)

18:05 August 1, 2010

Another New Yorker caption: "Barnard College? Looks more like barnyard college"

Put whatever image you want to to that to make it funny

17:41 August 1, 2010

in IRC, you kill floods; in Pakistan, floods kill you! </badtaste>

15:41 August 1, 2010


13:20 August 1, 2010

simple web service: what's my ip?

you make an arbitrary request to a webservice and it will give a plain-text response of what IP address you're broadcasting from. Silly, yes, but this is often difficult/impossible to determine locally

20:37 July 31, 2010

Home. Saturday night. Bored. Again. No friends. I hate life.

15:42 July 31, 2010

I'm sure you'll grow up to be a beautiful swan. Then you'll have your head smashed in once they realize youre different

09:38 July 31, 2010

Damn, I missed my billion second anniversary! April 27, 2009

datetime.datetime(2009, 4, 27, 1, 46, 40)

Somehow I don't think I'm going to make a trillion

11:58 July 30, 2010


09:49 July 30, 2010

my future room http://gigaom.files.wordpress.com/2010/04/armdatacenterthumb.jpg

08:36 July 30, 2010

its 2010....and emacs still leaves f-ing ~ files all over the filesystem

i mean, i fix it on my computer, but when I'm on a shared machine, i'm just ass-screwed, or I can be an asshole and modify .emacs for everyone

fuck you, emacs, fuck you

19:56 July 29, 2010

fun on Facebook (ads): "Do you know your neighbors? Find Sex Offenders in Your Neighborhood"

That's the whole text. To watch out for? To connect with? You decide!

17:02 July 29, 2010

the best thing about cal is since you can't make annotations, you always have a free schedule

14:13 July 28, 2010

sometimes i think i see weird unicode characters on my screen; it usually turns out its just some bit of dirt

14:04 July 28, 2010

one bad effect of being crazy is that you're not sure if the mp3 is skipping or if your head is skipping

10:54 July 28, 2010

git, to the best of my knowledge, is the most complete and atomic version control system yet written. However, because it takes a tools-based approach to version control, it is cumbersome for typical development tasks. While release engineers and occassionally project managers may require the need to do very fine-tuned version control, as a typical developer, all I really care about from a version control system is the ability to check in my code, pull the latest changes, and merging conflicts.

git in fact has no workflow. This is a good thing, in that it allows arbitrary workflow to be built on top of it. Different workflows are appropriate to different projects and situations. However, it is a bad thing in that workflow has come to be expected from version control systems. While this is somewhat of a historical accident, a VCS without workflow is pretty useless. People will do whatever they want. People will complain when other people's method of doing what they want is at a conflict with theirs or makes theirs hard. I have found that agreeing on a workflow (a human problem) to be much more difficult than the usual taks of dealing with a VCS.

I have been disappointed that github.com, which brought git "to the masses", has completely ignored the workflow problem. github highlights how easy it is to fork and make your own copy of a project, and gives some hand-wavy explanation about pulling from each other's copies. However, for a large collaborative project, the instructions that github gives you are not really helpful. You'll want a workflow. You'll want an actual procedure whereby people can develop code and contribute upstream without stepping on each other's toes. While github does things like code-commenting and pull requests excellently, it gives no real tools for coordinating among people working on the same project.

So people write workflows as list of instructions. "Do this...then do this..." As a programmer, I'm good at writing lists of instructions -- that's in fact what programming is -- but when it comes to following a long list of instructions for a task I have to do several times a day, I am ill-suited. I get impatient. Often a small typo can have dire consequences. If its a one-off, then I can be very careful and do it. If its a bunch of typing I'm asked to repeat over an over again, I have very little patience. Machines do such things very well. I do not do such things very well. Enter: automation.

So the real solution to git's lack of workflow -- and probably to other VCS's as well -- is to write a layer on top of the bare VCS that contains the needed workflow. Ideally, such a workflow-program would have the following characteristics:

1. It should be easy to follow the workflow, in the same way that you don't have to worry about steering a train.

  1. It should be hard or impossible not to follow the workflow

3. The parts of the VCS that aren't part of the workflow, such as purely informational components (viewing logs, etc), shouldn't be affected by the workflow wrapper

I've written such a wrapper, that I call gut : http://k0s.org/hg/gut . This is a pretty naive implementation for a particular workflow, that for Mozmill detailed in https://wiki.mozilla.org/Auto-tools/Projects/Mozmill/RepoSetup . It doesn't really meet these ideals (except #3). However, it does automate a number of aspects of the git workflow that I've gotten wrong many many times due to typos or other silly human mistakes. It's not 100% identical to what is in the RepoSetup page, but it is conceptually the same.

I'll admit that this is a cheap fix and a brittle one. The important part is that since using gut I've made fewer mistakes and have more confidence working with a VCS that continues to baffle me. More so, with the --simulate flag, I can see what commands will be run, so if I do have to do manual intervention or want to make sure what will be run next is what I really want to do, I have that control.

While I wrote gut to make my life and the life of my coworkers easier, it is a good proof of concept for what I think needs to be done to really bring complex VCS "to the masses". In order to really tackle workflow wrappers for VCS, there should be a way to:

  1. precisely define the workflow that is being used

2. be able to build a tool like gut from this workflow definition automatically

  1. have wrappers that are more robust
19:51 July 25, 2010

the only insane thought is to think one's self sane

19:51 July 25, 2010

the only insane thought is to think one's self insane

10:37 July 23, 2010

Vote "NO" on gay abortion

17:26 July 21, 2010

if git is such a wonderful VCS, why is all my experience with git me working for my computer?

Oh! It's because its tools to build a VCS and doesn't have any workflow! So the workflow is "do everything by hand yourself, you expert!"

16:11 July 21, 2010

os.getcwd()...wth? why not os.cwd() or os.get_the_value_of_cwd()?

14:54 July 21, 2010

LAMP: unless that P stands for 'python', I could do without the AMP

11:39 July 21, 2010


10:21 July 21, 2010

there is no mountain

10:20 July 21, 2010

peeve of the day: CAPTCHAs when youre already logged in

09:58 July 21, 2010

I Haight Ashbury

09:32 July 21, 2010

i feel like socrates sometimes, and not in a good way

08:44 July 21, 2010

james bond medicated powder

21:28 July 20, 2010

I have a friend who is very dear to me. She's kinda been my only real friend since I've been "all growed up". I treated her badly ... she treats me badly and I treated her badly before that. I guess it doesn't matter who started it. Its one thing to realize that you've been jealous and generally afflicted with meanness. It's another thing to realize that you really hurt and disappointed someone you care about. For me, those someones are rare. Most people in the world are blank faces, stories that I'll never know, wandering grey amidst the city streets because all people ever do is wander grey against the city streets. Then there are the people that I like to call friends. These too are rare, but I have them. We laugh, we talk about math, philosophy, war, and all the light-hearted things people like to laugh and talk about. But another face comes along, and if their eyes are not occluded, then the moment is gone and we all know it was just another lie. And then there is she. When she is there with me, she is always real. She can't help it. It's just the way she is. She is the darkest and cruelest person I have ever known, but also the most honest and sweet. I love her. And my love for her has made me blind and crazy. So I hurt her. I didn't mean to hurt her. I never meant to push her away. But I do because I am afraid of being hurt by her, afraid there will be a day when I will never see her again and all that I will be left with are memories of her. It is so hard just to be with her. Even as I cherish each moment with her, I also fear that it is just a blip, a chance passing in a dark cold universe where all meaning evaporates.

I know, for all that you hurt me, I will never deserve you. Though I'd like to think, of all the undeserving, that you would settle for me.

16:13 July 20, 2010

throw "This is not a string"

16:11 July 20, 2010

having to play with the windows VM, I saw the hard disk light lighting up. i thought, "Wow, that is actually kinda cool." Then I realized it was part of the VM software and not windows

14:34 July 20, 2010

why do i feel so amateurish whenever i use Windows 2000 Professional?

15:38 July 19, 2010

my life is a void waiting to be filled

13:04 July 19, 2010

disk size doesn't matter if its a floppy

18:52 July 18, 2010

I can't stand people who are intolerent

17:49 July 18, 2010

Zen Coffee: not just a just cup but just a cup

22:47 July 17, 2010

i'm going to fall off the world soon

16:33 July 16, 2010

what a piece of work is windows

16:31 July 16, 2010

i always forget just how retarded windows is until i go to work with it. seriously, i install git...and git isnt on my path. how can that possibly be what i want?

14:56 July 16, 2010

i need to write a blog post at some point

12:59 July 16, 2010

what do you call export PATH=$(dd if=/dev/urandom of=/dev/stdout bs=255 count=1)

a psycho-path


08:27 July 16, 2010

the fact that i spend so much time talking about git proves it is a bad VCS

08:07 July 16, 2010

Firefox Home is live in the App Store -> http://bit.ly/fxhome

12:07 July 15, 2010

i'll be glad starts using the HTML5 <audio> tag instead of using b0rken flashplayer

22:58 July 13, 2010

love is caring about a person so much that you would see them wilt

22:53 July 13, 2010

i thought i liked outshined by soundgarden. then i read the lyrics. really?

12:30 July 13, 2010

progression of technology

technology evolves in stages:

  1. a new technology is introduced

2. the wild west phase: everyone does whatever they want. life is good, at least for that sort of person

3. we standardize on something stupid. everything is horrible, except for that sort of person

4. the something stupid breaks. we standardize on something good as people actually start realizing the problem. everything is good again

07:24 July 13, 2010

san francisco is grey again

13:24 July 10, 2010

meaning is imbued, not inherent

12:09 July 8, 2010

one last try to get google buzz to pick up my twitter ::sigh:

11:58 July 8, 2010

google is being difficult. hard to believe, right?

09:46 July 8, 2010

oh, i see....

2009 was the year that explosive decompression hit those that have already lept from rocks to rocks without thinking of their own stability.

this year, bam! it his everyone.

so there is riding the wave

09:28 July 8, 2010

we really need to find an alternative to the Google Maps API

10:45 July 7, 2010

addons ecosystem

At the Mozilla summit, there are lots of exciting things going on: WebM video, Javascript audio transforms, making JS fast ... much has happened in the last year and much more is going to happen in the next.

One thing that particularly excited me was seeing the demo of building a Jetpack in 5 min. To do this yourself, go to https://builder.mozillalabs.com/ . The addons community -- with its freedom and openness -- is one of Firefox's greatest strengths. It is great to see this becoming easier and more accessible to everyone.

What I hope this makes happen is moving towards a real ecosystem of addons. I hope this isn't taken as a criticism, but while its great for power-users to have fine-grained control of being able to browse and install addons, for a majority of users, there isn't the time to figure out what addons they actually need.

So what I would love to see is recipes. Similarly with what I've done with TracLegos for Trac (see http://trac-hacks.org/wiki/TracLegosScript ), I would love to see: 1. a tool that allows the creation of recipes to put addons together (which like TracLegos can be chained and cascaded so that an ingredient can become a recipe; e.g. "a Tabbing solution" might be a component of a large recipe or a recipe of its own right); 2. recipes created with these tools that are presented as consumable software.

Lots more to save here but there's a keynote going on I want to see. Ping me for my thoughts

09:25 July 7, 2010


The folks that have switched to chrome for a perceived need (speed) will come back to Firefox 4 for things they don't yet know they need (site permissions)

09:15 July 7, 2010

federated services

what the web needs is for (lack of a better term) social identity and networking what DVCS has done for version control; namely, the ability to fork and move one's "data" around arbitrarily

13:06 July 6, 2010

artifciality negates identity, objects are merely an instance of an idea without their own nature

13:06 July 6, 2010

information is the other side of my dark empire

12:05 July 5, 2010

life is a terminal disease

10:49 July 5, 2010

Why I hate doing anything, part 2

So, I recently got a jury summons from New York. Since I'm no longer there, I have to get an excusal.

So I call the number. After getting deep enough into the automatic menus, I can see that there is no option for "If you are no longer a resident..." No, I can imagine that that would be a hard one to see coming. It's a good thing they have that convenient menu button for clergy.

So I keep yelling "Operator" until the system throws an exception and I get transfered out of automated hell. This is a good trick, by the way, if you don't already know it. Plus it has the nice bonus that you'll be real real mad by the time you have another person on the line. The wonders of this modern age....

So I get transfered and the voice says, "Oh, we're transfering you to this voice box, but he doesn't subscribe to this service." Then it hung up on me.

Five calls later, I'm preparing to write a letter and converting to one of those religions that supports praying. You can bet my letter will be irritated as hell. I don't want to be mean, but when you serve me crap, I generally let someone know it

10:26 July 5, 2010

Why I hate doing anything

re: http://airportexpresssf.com/

"... Where are you?"

"I'm at Alabama and 21st"

"We only pick up from San Francisco, sir" (Note again: 'sir' never means anything good)

"But...that's in San Francisco."

"Well, we don't pick up from there."

Boo! BOOO!!!

11:53 July 3, 2010

Hryn -is- expertise

15:31 July 2, 2010

i just got a spam with subject: "does anger discolour your life"

it just literally burns me up with rage to see a thing like that

13:01 July 2, 2010

Learning patterns

Western innovation is based on the flawed premise that hours dedicated to work is proportional to work achieved. This is not the case, at least for me. The mind works in patterns. There is the period of striving, and the period of metastasizing.

In my history, never has my mind been as innovative as the year of my Master's. This is not to say that I don't perform better, by objective standards, now than I did then. I most certainly do. It is only to say that my vehicle for rational thought has never been so brillliantly curated.

The best of my Master's work was done sitting on a bench in an overlooked park looking over a lake. I would sit there and meditate, attempting to clear all thoughts from my mind, when popped in how to compute the eletrostatic flux on a Delaunay mesh. In Fortran. Its not the hardest problem in computer science, but it was substantive for me at the time.

The real point is that these moments of revelation have come consistently at times I was not striving for the furtherment of a definitive endeavor. My mind was focused, yet it was abstract.

So I sit now away from the endeavors of Mozilla, an organization I aspire to at an age when I thought I could no longer aspire. But my thoughts are there. I love Firefox as I can say of few other projects. And i aspire to it.

But it is greater for the unseen machinery in which is but a part. In reflection, we view beyond the horizon of our blinders, and so doing our view of the world grows larger and deeper. I need reflection, those moments between finite tasks, to allow the threads to weave in my mind. I am richer for it and the world is richer for it.

The machine knows best. Trust the machine

12:21 July 2, 2010

A new doll for today's little girl !

It's Polly Amorous !

Now with accessories: "Ken" ... and "other Ken"

10:36 July 2, 2010
14:55 July 1, 2010

i wonder if there is an antonym for ''contention''?

if so that is what Kain is. If not, he is a contention-nihilist

14:31 July 1, 2010


we say... "awesome!"

08:11 July 1, 2010

speaking of 'life before the simulation' is like asking the question "how far do i have to travel to get out of the universe?"

08:08 July 1, 2010

in the future, the past has already been erased

13:59 June 30, 2010


11:02 June 30, 2010

the problem with git

git is a fine set of tools to do version control. the problem is its not really user facing. the problem with git is that it acts like it is. the bottom line is, i, as a developer, don't care about version control or branching or merging or anything like that. i want to write code. i want whatever sort of branching and merging practices to just happen. if you give me a set of commands to run, or better, a script to automagically do what i need, this is sufficient. i've spent a lot of days where maybe half my time was actual development and another half was playing with git. not...my idea of fun, or the best use of my time IMHO.

git is like a breadboard and a bunch of components. you can probably do most anything you care about with version control with it. but some people, say, just want to watch TV. they don't want to build a TV everytime they want to watch the food network. i wish folks would git (yeah, bad pun) a clue and start writing wrappers around git that provided for an easy sane workflow that didn't involve developers, who are better off developing, playing with the nuances of version control often in an environment where the workflow is uncertain.

take in contrast netblocks. A crude diagram is here: http://k0s.org/portfolio/netblocks.gv.txt . netblocks is a way of managing documents. for the subset of problems where what you care about is a web, netblocks allows you to build frameworks or websites. it is not a framework! while people like me (document-oriented folks) may use netblocks OOTB to make a website, this is not the goal of the project. while i think django is as pointless as linus thinks svn is, if you want to make a site that's easily done with django, its a much better approach than trying to use netblocks to build a site. (likewise, if you want central version control and don't mind the stnanks of svn, then i'd recommend svn over git.)

i know truth in advertising is too much to expect. i'm a linux geek and am used to a tools-approach. but in general when someone asks for a solution, throwing a bunch of tools and raw materials at him and saying "here you go" isn't exactly couth.

09:17 June 30, 2010

One good thing about working for Mozilla is that I get to use a bleeding-edge browser.

One bad thing about working for Mozilla is that I use a bleeding-edge browser.

11:15 June 29, 2010

i wonder what lmgtfy stands for? oh well. i'll never know

01:53 June 26, 2010

what will infinity feel like?

00:02 June 26, 2010

well that was weird

23:20 June 25, 2010

I'm kind of joking, but take me very seriously. We need to fix that bug where I get off work and lose connectivity walking to the CalTrain. Because that could be an intense commute: apt -> coffee -> transportation -> scramble consonance -> work -> iterate! -> next -> development -> bugs -> learning -> home

22:28 June 23, 2010

Browsers are the operating systems of the web

is there a conflict between this web-OS and your machine OS?

No! The proliferation of computing platforms and virtual machines is the divine spawn of connectivity

18:47 June 23, 2010

the leapfrog methodology

No, not the time-centered difference numerical method. I thought of a new work-sharing methodology for a group of programmers with a common area of expertise.

You begin with a group of programmers and an inbox of tasks greater than the number of programmers. You assign each programmer a task and an arbitrary order. The programmer works on the task until completion or until they become blocked. If they do become blocked, they may push their task up the chain.

If you finish your queue of tasks, you can select another and/or leap over the person in front of you. The intention is, since others can now push tasks to you, there is a self-selection process favoring the more skilled and more likely to help others. The front of the chain (maybe everyone, I don't know) can arbitrarily leap back at any point of time.

It seems pretty random, but there is some inherent structure in it. There is the self-selection, as mention. There is the fact that fewer people like to or are qualified to give help on a given class of problems. And there is an easy escape root if you are blocked on a problem.

This might not work too well in practice, mostly because people have different skill-sets and there is no clear-cut motivation to be high up the chain unless that's your thing. That said, I think its a pattern worth noting.

10:09 June 22, 2010

re: http://k0s.org/blog/20100609184843

the correct way to get this ratio is to have each team devote half their time to infrastructure and half their time to striding forward

08:32 June 22, 2010

It is a common conception that the porta-bella, or portable-bella, is quite large, when it fact it was developed as a more transportable version of the classic bella

12:39 June 21, 2010

a joke i don't have time to do

Go to a restaurant marked '$$$$' by Zagat. Then, when the bill comes, say, rather indignant, "But the book said it was going to be four dollars..."

17:41 June 20, 2010

Onion article

"[Facebook] is just like interacting with people in real life, but even worse," Anonymous Freshman, UC Berkeley

12:16 June 19, 2010

Why Technologies Fail

Technologies usually fail in a gentle way, compared to other human endeavors. A new technology supplants an existing technology. To look at recent trends, the buzzwords ten years ago were "blog" and "myspace" and the buzzwords of today are "twitter" and "facebook". The respective intents -- communication and social networking -- are parallel across these, but we have gotten an upgrade in medium. Compared to contemporary advances in software development, the differences between the technologies is not marked. Blogging has become a paradigm of its own, but has failed in the sense that it no longer is predominantly used for the quick (and often pointless) communication provided by twitter (this blog being an exception). MySpace, except for music, has failed almost completely in comparison to FaceBook. While both sites hired prominent engineers and MySpace had a huge early competitive lead, FaceBook is this one of the most traficked sites on the internet, while MySpace isn't in the top 20.

So we can ask then, why do technologies fail so slowly or why are the originators of original technologies so seldom those that ride the wave when the obseleting technology is evident?

Much of this comes from a fear of innovation. Due to financial and social pressures, maintainence of the status quo supercedes in priority the investment needed in driving technologies forward. Innovation needs two stimuli:

  1. Research and development of superceding technologies
  2. Development of infrastructure to perfect process

Since the one predictable facet of the future is that it will be unknown, the state of the art must be immersed. It is an oft-mistaken notion that future technologies appear abruptly. Except in certain cases, this is mistaken. As a historical example, Thomas Edison is said to have invented the electric light and that overnight the world was changed. In fact, several forms of electric lighting existing before Edison's incandescent bulb, which was not an unknown idea to scientists. Likewise, today the technologies that will drive the future of the web are not strangers to those in the field. But bringing them to market in a way usable to consumers is what changes the world.

Since engineers at the forefront of their industry are generally very bright, and since known good development methodologies are common knowledge, why does this process seem so slow and jagged to consumers? We've been promised the electric car, transparent computer interopability, and houses in space for years now. None of these is beyond the reach of the state of the art. And yet they are not palatable to the market, despite high demand.

In order to extend the state of the art, the state of the art must be full. That is to say, innovation saturates. In order to develop superseding technologies, the existing technology must flood the market. Until then, the practical points of implementation will not be perceptable as needs.

Taking each of our examples, the electric car has not become a dominant technology because of the investments of a legacy dominant technology, that of fossil fuels. The energy industry, first saturated by fossil fuels in the 19th century, has become a global power. Like all powers, a key component of it is preservation of its prevalence. So prices are kept (yes, even today!) artificially low. As a byproduct (or conspiracy, by others' counts, but quite inaccurately for the most part), gasoline powered cars become more practical, even if the absolute cost to the economy is a lack of innovation and slower progress in adopting future forms of transportation. We see a technology -- fossil fuels -- that due to a overarching demand for its product can continue such demand until scarcity forces alternatives to dominate. Its infrastructure is its product, and there can be no real competition because its infrastructure has such a high total capital value of the world.

What of the promise for computers to help organize our lives? Technologies exist today to put documents on the internet, to communicate about whatever we want to talk about, and to keep track of our schedule. However, while in one sense it can be said that the integration of these technologies is quite innovative (e.g. adding an event to your calender due to an ICS attachment in your email that was automatically rendered from the sender's message), the practical reality is the lack of seemless integration makes computers an appliance for doing a discrete number of things and less about engaging in a process that is information exchange. In software development, process equals product: the outcome of a seemless communication platform, allowing people to manifest intent with their machines, is symmetric with the manifestation of intent via the software development process. In this sense, programming is speaking very specifically to a computer in order to get one's ideas across. Just as there is no unbiased reporter, the code that drives computer programs is a direct manifestation of the engineer's comprehension of the problem to be solved.

Since so many engineers are really good at what they do, and since there is a large group of integral known problems that prohibit a direct path forward, why aren't these problems solved? Again, this is a result of a lack of saturation of the state of the art. On one side, this takes the form of consumers of technology being most keenly aware of the problems that confront them everyday. If a technology is satisfying, then there is no need to innovate. If it is known how to work around a deficiency, this is often seen as preferable to an expensive upgrade often of unknown quality and ease of adoption. Consumers and producers of technology don't move forward because the path forward is laden with holes.

What fills in these holes, ultimately, is investment in infrastructure. A system with an ideal infrastructure makes solving problems always a step forward. This is the densest communication vector. A system with a non-ideal infrastructure forces side-innovation. Steps forward may be achieved but only by concurrent side stepping to avoid difficulties. For a pure consumer, side stepping is only undesirable in that it causes displeasure. For a producer whose goal is furtherment of the technological state of the art (while, notice, like oil companies, some producers are not), this is a direct impediment to progress. A poor infrastructure allows only side innovation. The current state of technology is such that maintaining its state requires full-time investment.

Investment in infrastructure is often overlooked in the drive for innovation. Expectations are such that a great idea is something to implement and profit from. Such a discrete view of technology is ultimately noninnovative as it produces no direct growth, only an instance of a technological implementation. In order to grow, the fires of innovation must be continuously stoked. Problems must be continually fixed, build systems must be continuously kept up with the holes on the horizon. For technology, process equals product. If "progress" is just one-offs or work-arounds, the producer is pigeon-holed into a well of product maintainence instead of the ability to create.

Which brings us to houses in space. Space-faring technology has not become consumer accessible in over half a century of innovation, again by the best and brightest. The Apollo moon landing is held as one of the wonders of the modern world. Yet, in our history, it remains but a blip. Particularly in America, the cost as a response to demand of putting people into space has risen over the years despite investment in space technologies. The potential return on such an investment is vast, and yet it has met with no takers. The problem is that there has been no investment in the infrastructure needed to make this a reality. Scientists play with state of the art probes and ion drives, but the focus is not on beginning to fill the market, but the seeking of esoteric data with the unreasonable hope that the studies towards the mysteries of the universe can somehow be marketed. Sadly, this self-promotion has not received the same investment as professional sports. Houses in space will come, but only when we realize they are ours to have

15:38 June 14, 2010

bayshore caltrain: what a weird place for a station

13:08 June 14, 2010

the perils of being a hipster

i dropped my pinkberry on my blackberry!

11:56 June 12, 2010

Literature in the American Penal System: prose and cons

09:54 June 12, 2010

not enough coffee

i was staring at my gmail trying to figure out what i needed to do, when i opened another tab to go to...my gmail

09:45 June 12, 2010

gots my blog back, for the nows

08:28 June 10, 2010

After years in the Bay Area, I just now realized that the spoonerism for "BART train" is "tart brain"

18:48 June 9, 2010

scientifically determined precise ratio of time working on new features vs time cleaning up for an old large project:


Important Note: if the above criteria applies to your project and you are not at the ideal ratio, it is not necessarily true that moving towards the ratio is a good idea

07:57 June 9, 2010
on coding: inertia

A common fallacy in software maintainence is negligence of inertia.
If you've ever started working on a big project then you might know
what I mean. Not that the size or age of the project really has much
to do with it -- I've worked on *several* *small* projects that had

''You keep using that word....I don't think it means what you think it

So what the he-double-hockey-sticks am I talking about? Coding gold,
as it were, is starting up a new project. You get to do things
however you want and not have to worry about the past too much. If
you're a good programmer, you even have a plan for how things are
going to look six months from now (if you're a bad programmer, well,
you'll engineer what we refer to in the biz as "job security"). But
the reality is....for any substantive project, in a year or so your
code will be messy (to greater or lesser degree as dictated by how
prolific of a coder you are and how good of a software architect).

Someone new joins the project. It will take them awhile to figure out
things. If your code is relatively neat, even if its tricky, they'll
get it if they're talented. If it's messy and has a lot of one offs,
it will take them much longer because there's more to keep track of.

Most good citizens of programming as at this point, "Can I rearrange
things so they make more sense?" Most good maintainers say, "Hell no
because things work fine the way they are."

The fact of the matter is, they're both right.

Venerable members of a project will think something like, "Things work
fine the way they are. There is a list of steps that, once you know
them (even though they're rarely written down), you can do XYZ, and it
will be guaranteed to work. If we start changing things around, then
this will break and we'll spend a lot of time making things work just
to get the same level of functionality we already have. Besides, the
way we'll do things six months from now is likely to drastically
change anyway, so why make it nice now? It will just get messy again."

The newcomer will think something like, "Okay, I now understand how
this works. There is code duplicated all over the place. There are
code paths that make no conceptual sense. I can clean this up and it
won't even be hard. This will save me time in the future as I will
have something much easier to maintain instead of keeping a laundry
list in my head or somewhere on my disk. And when the next new guy
(or girl) comes on, s/he will have a much easier time understanding
things. We can draw nice architecture diagrams and have documentation
that correctly and sensibly mirrors the code."

So it's the liberal vs. conservative tempest in a teapot. No one is
fully right or wrong. And there's no correct solution, except to the
human problem of being pragmatic and diplomatic. If you make your
room immaculately clean, you will have wasted time and it will just
get dirty again. If you never clean your room, then you nor anyone
else will want to live there after awhile.

So aim for maintainability. Aggressively. Deal with a changing
roadmap and make sure the roadmap stays sane and corresponds to
reality on the ground. Maintain. Take the opposition's criticism
seriously and realize that, really, they probably want the same thing
as you: to make the best software that they can.
11:20 June 8, 2010

ubuntu really needs a "always install all the development stuff" mode

09:36 June 8, 2010

There are two kinds of people in the world: those that categorize things binarily and those that don't.

15:54 June 6, 2010

= patchwerk.org =

''social engineering for human beings''

A GUI (e.g. github) is actually usually the correct way to do repository administration. There are a finite amount of things that humans should really do, and while they should be be a group of atomic actions put together to form a workflow policy, doing something like "splitting a patch" is easily doable via a GUI (even if you're an idiot) and hard to get right from the command line (even if you're a pro).

meet patchwerk.org!

patchwerk.org is a site for writing code in a collaborative way. Use the advantage of the mercurial system to write code with other people! Lots of eyes is better than your two!

Being the only engineer on a project lets you write code however you want to. If you're a good engineer (you know, the kind that writes tests and does all sorts of other checks to make sure you're software works), then being the only developer allows you to make applications really fast since the only bottleneck for decisions is you.

But something is missing....breadth. If you write code, it is how you think the problem should be solved which depends on your definition of the problem.

''Even the best engineers have something to learn!''

Even if you're the best hacker there is, others might think of valuable features that you didn't. Some of these you might disagree with. Others you might think, ''Why didn't I think of that?''

This is why social engineering is useful. While of course having others catch silly mistakes is important, and particularly with programmers less experienced with a language, having interaction can help teach them the tricks of the trade, developing a deep understanding of the problem-space is an aspect of engineering that has no limit of mastery.

About Distributed Version Control

Since its inception, distributed version control systems (DVCS), such as mercurial, git, and bzr, have had proponents stating that these had solved a vital problem in computer science. While this is not untrue, it is usually not the problem that proponents of these systems say it is.

The problem that DVCS solves is the problem of replication on top of that of regular version control systems (VCS). All of the sudden, a repository need not be canonical. I can easily just copy the repository and apply whatever changes I want. Others can contribute to my repository and, in fact, the repository that I copied from is no more canonical (save by convention) than my repository. If version control is an infinte spool of rope to hang yourself with, then DVCS is a rope factory.

The problem that DVCS doesn't solve is that of putting things back together. Sure, I can work on my clone and you can work on your clone and others can clone from us ad infinitum. But what if I want a change from you? DVCS proponents point out (correctly) that DVCS have much better tools for merging these changes than non-distributed VCS. However, ultimately merging is a problem that requires a human in front of a screen making decisions on whether and how disparate changes can work together. If you add a new file and I add a new file, then probably (but by no means guaranteed!) there will be no conceptual conflict between our changes. If you and I edit the same file but don't touch the same lines, the possibility of conflict is greater, but again is possibly unlikely (depending on what we did of course). If we edit an overlapping region of a file, then this just has to be sorted out. In special cases, it can be said that there is an easy merge algorithm...

*...but even if we have changes in completely separate files this does
not mean that our changes will play nicely together!*

So DVCS made it easy to develop a patch or similar to someone else's code. But, save for the trivial case where there are no changes to the master, DVCS has not solved the problem of how to put these hacks together.

The problem of merging is too easily and too often reduced to an algorithmic problem. Sure, better tools save time and make our life easier. We like better tools! But until machines start thinking for themselves (I'll give them ten years), programming is about manifesting intention and therefore merging changes is merging intention!

What is needed isn't better merging tools. Those are pretty good already. What is needed is...


patchwerk.org is designed to give you workflow that feels natural and that you really don't have to think about. We give you all the ability to get around this workflow and do horrible things, so if you don't agree with how we see the universe, then you're certainly welcome to work however you want. Hey, it's your software! But we hope you find what we've done pretty useful, at least within the context of social software engineering.

So what are we talking about here?

Forget forks. It used to be that fork had a rotten taste to it. Sure, the meaning of a fork in github is entirely different from "I'm going to fork ${project} because you refuse to include my feature" or even from vendor branch. But when you're hacking on some code, all you really care about is ...

  • the changes you are making


  • the ability to use the code with your changes

patchwerk makes this happen with patch queues and easy tools to use them. If you're making your own project, then you're probably working on the trunk (unless it's a large project). But if you're hacking on someone else's project, all you really care about is keeping it in sync with the source and getting your changes upstream. And if you're anything like me, append "as soon as possible" to that last sentence.

So your changes are hosted in a queue of patches. You can have as many patches to a project as you want. They may require being applied in order ... or not. That's up to you.

The best way to use patch queues is to have a patch associated with a single issue, like "implement 3d rendering" or "profile performance of web server" -- something that's atomic to a human, and to put these issues in some sort of issue tracker. This gives you a tight correlation between intent and manifestation.

''So how do I get started?''

Start a project on patchwerk.org and start hacking! Get other hackers involved, it's fun!


Find a project on patchwerk.org that you want to hack on! Once you have an account, just find some code you want to work on. Click on a place you want to edit (or you might notice the "Make a patch" button which will help get a clone of the code and a working patch queue on patchwerk.org and your local machine) and patchwerk will automatically make a patch queue for you! (Or if you already have a patch queue for that repository, make a new patch in it or append to an existing one).

Once you're done editing, browse to your patch. If you think it's ready, there is a "Ready to sail upstream" button that will let the original repository curator know that your patch is ready (in your opinion, anyway) to be put in his repository. S/he might put it in straight-away. Or s/he might have things s/he wants you to fix before putting it upstream. Or s/he might not want the patch (sorry!). But you can keep your patch and repository regardless of what upstream decision makers think. patchwerk.org still allows you to fork -- we just don't encourage it as a first option.

The reason that patch queues provide nice workflow as you can provide some guarantee that they apply cleanly. No, this isn't a contradiction about everything said above, that merging is a human problem not an algorithmic problem. You still want to have someone looking at these things before sending them upstream. But given the state of a repository and a patch, you can see if it applies cleanly or not. If it does, then you at least can push it upstream (whether you should or not is your call) and be assured it will apply cleanly.

Each patch has a icon indicating whether the patch is up to date with the canonical tree (or trees, for advanced users). If it is, you're good to go. You can optionally have notifications sent when the source repository changes (either the file(s) your patches are in, just when there are conflicts, or more safely, the entire repository). If a patch doesn't apply after a commit, the patch will be labeled as broken and you'll receive a notification unless you opt-out.

Once the patch is applied, it is removed from your active queue and put on the backshelf. You'll still have access to it, but you really don't need it anymore.


While you can't write a tool to solve problems, you can write a tool to help you think about problems. patchwerk.org is such a tool. We've bundled several bits of technology to help you develop software:

  • patchwerk uses the excellent mercurial version control system
  • patchwerk enables the excellent patch queue extension to mercurial. This enables you to hack on others' code while still keeping the source clean
  • patchwerk features excellent workflow for collaboration. As a project manager, when someone alerts you to a patch they want you to include, you can review the patch easily and can see if it is applied to your most latest revision of the code (or more! We'll get back to this in a second). As a contributor, you can easily check out a project you're interested in and start hacking right away. Then, when you want to share your hack, you ping the project manager(s) to look at your patch! We can't make sure it will be included, no matter how useful it is, but we do provide the tools to make sharing patches easily.
  • code review! Collaboration is really about talking about code. Some of this is pretty high level, but you also need to talk about the nuts and bolts. patchwerk let's you have discussions about files, patches, commits, or particular sections or lines in either of those.
  • splitting patches! Often what was thought of as one issue is actually two (or more). patchwerk.org provides an easy TTW interface for splitting a patch into multiple pieces (or, much easier, flattening a set of patches).
  • applying patches to multiple trees: it's never fun, but often there is a need for sizable projects to have multiple branches or (far worse!) to have the same source living in multiple places. While currently the latter is out of scope, patchwerk.org allows you to mark your patch for multiple trees. This is a bit of an advanced feature as now, instead of just one target, you have a few. On the other hand, it's better not to have to copy+paste when you don't have to. This feature is documented more completely on http://patchwerk.org

Future features: If people like patchwerk.org, there's a lot that can be done to make this not only a great platform for collaborative development, but a great community.

  • Issue tracking: Something is wrong with your software! -or- You want to add a feature! Note it in our issue tracker! Once you adopt an issue, a patch will be set up in your queue and all commits on this patch will be automatically noted on the issue. Likewise, creating a patch will automatically trigger an issue to be created in the tracker. Finalizing a patch (either having it accepted upstream, or noting that it is finalized to whatever state) will automatically close the issue. Parallel to patches, issues can be forked and combined. I could talk about issue tracking all day, so stay tuned for excited updates here.
  • Wiki and mailing list: Projects need places to talk about themselves. Wiki pages serve as a great collaborative space for everyone to develop canonical documentation. The wiki can consume documentation featured in the package (in many formats) -and- editing the wiki can push the documentation up to the project (in some formats). (The workflow of this depends on the general project policy. The default case is to treat wiki documentation the same as other source code, so the wiki edit creates a patch which must be approved before putting it in the source). Archived mailing lists give a place to have high level conversations. When a mailing list discussion crystalizes, we provide tools to mirror the takeaways onto the wiki, notifying folks of where this now lives. And as you might imagine, our wiki and mailing lists play nice with the issue tracker and code review tools!
  • Continuous Integration! (coming soon!)

More on patch werkflow

Q: What if I basically like someone's patch but there's something I don't like about it?

A: Easy. Since patch queues are first-class repositories, you can make a patch queue for their patch queue! Make a change to their patch and, if they decide to accept the change, you can end up with a patch you both agree on. You can even set it up so that if they accept your change, it automatically gets finalized to your source repository! (Assuming there were no other changes, of course).

Q: Neat! Can I have patch queues to patch queues to patch queues?

A: You can, of course, but we don't provide any front-end or functionality supporting this. A project is a piece of code. A patch queue is a collection of pending ammendments to that code. A patch queue to this is critiques of patches. Levels beyond this don't really mean anything more than critiques of critiques. Maybe if we get large enough projects to need this, we'll open up this functionality, but sometimes sanity is better than a complete lack of restrictions.

Q: Can I edit code through the web?

A: Yep! If you edit your own code, (be warned!) it will automatically be committed and pushed. So make sure that's what you want to do! If you try to edit someone else's code or patch, then you will automatically generate (or add to) a patch queue for that repository.

Working through the web is great if you have some little change or annotation to make. If you're doing something bigger, you might be more comfortable checking out the code and editing with your favorite emacs.

Q: What if I want to host my code elsewhere?

A: Assuming your code is in hg, git, or svn, you can host it anywhere so long as it is publically check-outable. We provide mechanisms such that you can give a way to automatically push upstream. If you don't want to use these mechanisms, then you'll have to do this manually. Sorry! There are some problems that can't be solved.

Q: Is patchwerk.org a federated system?

A: You bet it is! patchwerk.org is an openID provider and so should work with any other patchwerk websites. They like to talk to each other, so you can certainly mirror and aggregate work on any server running the software. If you want to set up your own patchwerk site, the code lives at


(Cute eh?) Read the README for instructions on how to get started. You can find other of our tools in http://patchwerk.org/patchwerk/ if you're interested.


15:15 June 6, 2010

When you feel the urge to write something down because it is important, this translates to "mark this with an X and move on until it recurs"

15:09 June 6, 2010

I'm pretty sure squeezing a lemon into a PBR was one of the signs of the apocalypse

15:07 June 6, 2010

On writing: the narrator

I've often been told my sentences in prose are often too long. This is true. In talking with a friend about how I find it hard to reduce their size and keep their flow and essence, I presented him with the sentence, "Luna still carried the hallmark of civilization, balanced between the overwhelmingly oppressive sophistication of Earth's decay and the vacuous military frontier of the outer worlds." He consented it was long but he liked it and said it would be fine as long as it was from a nonpersonified narrator.

I never really gave much thought to the narrator of that beloved story. But all narrators have a voice. I suppose that that one is of me in the mode of weaving a story. It is always third person, and mostly it is distant and seemingly impartial. It is certainly not the other-voice of any particular character. But occassionally, I slide closer to a character or more distant, always with deliberence. It is the kind of thing I would hope a careful reader would notice and appreciate.

Unless one has intimate reason, it is in poor form for a narrator to lie to the reader. But the narrator may deceive. As story-teller, the narrator's job is to make you think things, to draw you into a world whose effect is the measure of it. If by a perverted account the reader suffers more of the effect, then one's aims are acheived.

Though, or so I would like to believe, my narrator is more distant, as was Kafka's, also there is the sort of psychic soup of expression therein, like Phillip Dick or Bill Burroughs, as there were some sort of primordial dissolution of the characters' collective unconcious. Kafka's way is better, and in this I know I will never achieve his level of mastery.

The narrator's voice changes much over the saga, mirroring -- being -- the story told and also the characters who act it.

By no means do I present this form of narrator as ideal. Rather, this is the form of narrator one use sfor this story. Every story has a narrator, and every narrator has a voice. Share your story as it was shared with you

15:15 June 1, 2010

Q: Why did Mr. Morden invest in derivatives?

A: Because they're part of the shadow banking system?

08:34 June 1, 2010

Want to keep your data concurrent across CouchDB instances? Try KitchenSync

(not affiliated with the culinary supply outfitter, Kitchens,Inc.)

09:38 May 29, 2010

so I said, "Keynesian economics?  More like Dickensian economics!"

(I'm pretty sure there's a New Yorker cartoon in there somewhere)

16:05 May 28, 2010

Rules of conflict

  1. Don't get in a battle you won't win

Note I said won't and not can't

This implies...

  1. Make sure you can win some battles
15:37 May 28, 2010

Joey Martinelli:

I'd come with you two, but I'd feel like a third rail.

Just like the canary in a goldmine.

The only education I've had is from the school of Fort Knox.

You're a regular Hubert Einstein!

13:08 May 28, 2010

nothing annoys me more than people that complain about things

08:26 May 25, 2010

if python gives you enough rope to hang yourself, and version control is an infinite spool of rope, then DVCS is a infinite rope-spool factory

08:33 May 24, 2010

damn you linus! you bless us with an OS but curse us with your version control

21:20 May 23, 2010

esoterica is bedtime conversation

15:10 May 20, 2010

if you set the bar too high, people will just go under it

10:39 May 19, 2010

python -c 'import sys;_=[i.decode("base64") for i in "bGljZW5zZQ==\n:UHl0aG9uIHdhcyB3cml0dGVuIHNvbGV5IGJ5IEplZmYgSGFtbWVs\n".split(":")];globals()[_[0]]=lambda: sys.stdout.write(_[1]+"\n"); license()'

14:02 May 18, 2010

I want to write a program for the device I just bought....

70s: Well, most of the register names should be pretty obvious. You might need to buy some transitors to patch the board. But shit, you know that, right?

10s: Great. And we're really excited to have you writing applications for our device! Let's just get you started. First, you'll need to download the SDK. Now, it's $300, but you'll make that back right away in our app store! Then, when you complete the wizard to setup your application and register it with our company. And once you sign the license agreement, we'll have you register and up and running with our IDE in no time

Which is worse?

09:17 May 18, 2010

the myth persists:

This is nothing more than information hiding, which is one of the tenets of object-oriented programming.

-- from http://www.ibm.com/developerworks/webservices/library/co-xpcom.html

22:16 May 17, 2010

It is one thing to say I cannot help you, for this is what all say save to those few worthy of true loyalty. I hold no blame, for I can offer no better.

It is another to rip at your scars while blood rushes cold from your heart. These pickers of nits, well-meaning, surely, cannot even be scolded for their lie of help, for that lie to themselves they have not revealed.

21:17 May 17, 2010

Perspi Cassidy and the Sundance Film Festival

21:16 May 17, 2010

Eh, poor Yorick. I knew him okay. A fellow of ... finite jest, and pretty cheap taste. He hath bore me in his back seat whenever I would give him gas money; and now, how abhorred my imagination is ... that I don't have a taco.

18:30 May 17, 2010


One piece of software I need is a way of making road-maps for other software. Issue trackers are great and essential. Unfortunately, what issue trackers miss out on is charting the course for software futures. I want a place to see where all of my medium- to long-term plans are laid out so I can assess them and meaningfully figure out what needs to be done, what can be done in a period of time, what would still be nice for the future, what is no longer important, and what should be prioritized soon. Issue trackers deal well with high priority issues and as a place to record longer-term plans. They do not do so well with strategically planning for the longer-term, and that's what I need right now.

For instance, take my website . I use this as an example not because it's really what I want this for (in fact, my website is a very low priority right now), but because it is a very applicable example with lots of pieces of software. If I were to jot some notes on longer term plans that need to be done for my website, they would go something like this:

  • tagging WSGI middleware
  • finish up my mozilla page: http://k0s.org/mozilla
  • commenting middleware (with CAPTCHA middleware)
  • putting up webcalc in the demos
  • setting up email dispatchers so I can mail myself blog posts, images, and documents
  • add a add_blog pluggable even handler in bitsyblog so that I can tweet the short form of my blog entries plus their URLs so that these tweets can be picked up by google buzz (thanks, google!)
  • mirror my repositories to bitbucket and github

None of these are particularly daunting tasks (although they often seem that way with my relative lack of time). Probably it's a small enough set of tasks/components that I could get by with just an issue tracker (oh, forgot that one: "setup an issue tracker"; if I only had an issue tracker I could record there that it needs to be setup). But, if you will, imagine these are more strategic priorities with numerous subtasks. Since these are all medium- to long-term priorities, whose various many issues won't be scoured everyday, it is easy to lose the big picture in a complex report.

Let's pretend software [components] are ships. That's basically true, right? I want something that lets me see where all of my ships are on a map, so I can rearrange them and send them on different courses as the winds change. This would have to work with an issue tracker (at least for the real world large projects I'm actually imagining), but it's purpose is different from an issue tracker.

And once again, I realize the sad irony: I have written a blog post about a piece of software specced for medium- to long- term about the need for a piece of software to chart the needs for pieces of software specced for medium- to long-term. Ouch. That hurts just thinking about it.

Morpheus...could I maybe have the other pill now?

18:13 May 17, 2010

the halting problem

No, not the computer science one! I'm talking about how drivers in the Bay Area slow down everyone in their vain attempt to be polite. The scenario goes something like this, if you'll imagine with me for a second...

  • I come walking up to a corner. I'm probably going to cross the street, maybe.
  • A car comes up the the intersection. They stop. They have plenty of time to get through before I would even have to change the pace of my walking.
  • But they just sit there. I stop, waiting to see what they'll do.
  • They sit there a little bit more.
  • I give up and cross the street in front of them. ::sigh:: Now they've slowed me down and they've slowed themselves down for no friggin' reason.

Okay, I understand they're just trying to be polite. But, um, why is this polite? They had plenty of time to go before I would have even had to slow down! I mean, do they have such poor sense of timing that they aren't sure if I'll make it across the street before they go? (If so....I'm not so sure if they should be driving.) Do they think that them stopping for an extended period of time and me stopping for an extended period of time is a thing to do?

This happens several times a day. If it was once in awhile, I probably wouldn't care. But it's all the time.

Worse, this is the best case scenario. Other, much worse, variations on this scenario that have happened to me (some several times) include the following:

  • The car stops or pulls up halfway into the street. Then they wait for me. I mean, their car is directly in my path, so what am I supposed to do? Walk in front of them in the middle of the cross-traffic street? Then they honk at me, letting me know that I'm wasting their time "making" them wait for me when all I want them to do is go so I can cross behind them.
  • I'm not crossing the street. I'm just standing on a corner. They halt for me anyway. Then they honk at me, often waving their arms and mouthing who-knows-what for (again) "making" them wait for me. All I'm do is standing here, guys (and gals). Just, um, go about your business.
  • They stop. I stop. They wait. I wait. I wait for a bit more. When it's obvious that they're just going to downright refuse to move until I cross in front of them, I walk across. Then when I don't mouth "thank you" they get all pissy.

So, attention motorists! I know not many of you -- or anyone else -- reads my blog. But if ya do, this weird weird form of politeness...isn't. Just go. Assume that everyone is just doing their thing, mon, cuz that's most likely the truth. And in the end, you've made everyone happier. Maybe you don't get to drive home with the self-congratulating "I stopped for that guy so I must be a good person". But trust me, you're better off.

It's one of the things I miss about New York. People say we're rude out their, but it's really just kinda more live and let live. Do what you want to do and more than likely you're not going to bother anyone else. If you see someone loaded up with baggage, it might be a nice thing to hold the door for them. But I've gotten yelled for that too.

14:40 May 17, 2010

I can sync IMAP folders with Thunderbird! It's a whole new day for me

20:31 May 15, 2010

another website i don't have time to make


Basically, it stems from a common collusion of problems I tend to have and am suffering from now:

So imboredandhavenofriends.com is a site where you can do something with other people. You put down where you are and what you want to do, and maybe someone else is bored enough to do it.

There is a site already for this: craigslist! But it's become increasingly awful.

Bah....bored! So bored!!! Need to leave house before crazy I go

13:03 May 15, 2010

I wish I had someone to read plays with. I have been reading my favorite snippets of Shakespeare to myself, but it is not the same to play to the mirror.

Life's but a walking shadow, a poor player That struts and frets his hour upon the stage And then is heard no more: it is a tale Told by an idiot, full of sound and fury, Signifying nothing.
15:44 May 14, 2010

all is occluded

If you're a bad programmer or otherwise don't want other people to figure out what you're coding, there's a two step path to success. Don't worry! They're easy! You're probably doing them already!

  1. Don't write tests
  2. Don't comment or otherwise document your code

Between these two, there will be no record of the intention of the code. And if the intention isn't known....you can just claim it's desired behaviour!

21:52 May 13, 2010

boarders without borders

taking in animals across national boundaries

13:26 May 13, 2010

and yes, i am fully aware that it is childish to pastebin my pastebin script using my pastebin script

10:00 May 13, 2010

to measure one's self versus one's fellow unwashed masses leads to mediocrity

to measure one's self against the strides of those that walk amongst the stars points towards excellence

09:58 May 13, 2010

anytime anyone asks me for pointers i have to stifle a bad C joke

22:51 May 12, 2010

Byron: they are silent

21:42 May 12, 2010

Truth is Treason

I went to drop my laundry off to have it washed+folded.

Aside: I don't really care about doing laundry myself. As far as putting it in the washing machine myself, switching it to the drier, and folding it, let's call it....30 min. No big deal. What I mind, especially as I have too many of them already, are the headaches. Like...the last time I went to a laundromat....oh! no driers! So I have to string the clothes all over my apartment. I suppose I may be too much of a gentleman in some respects. But it bothers me. It bothers me most that I have A Task I Cannot Complete. Then there is the timing. While my laundry is going at the laundromat, I better precisely time it. If I stay with my clothes, I throw away time. If I leave, I chance having them stolen. Or worse...being yelled at because I've left my laundry too long in the wash/drier. Or having them thrown on the floor. Yes, these things have happened to me, multiple times. /End backtrace.

So, the place three blocks away from me, which I took off deliberately early just to meet their SF hours, was unmanned when I took my clothes there. I knocked. For 20 minutes. No answer. While I was waiting, I googled "wash and fold, the mission, san francisco" as well as google mapped it. The closest location was the Fiesta laundromat. Open 24/7. Great.

So I went there and asked "Do you do wash and fold". "No". "Do it yourself" was the response of someone flirting with the attendant. should have said "Fuck you". But I didn't. Yeah, it's easy to do laundry if you know someone working at the god damned laundrymat. If I knew someone working at a laundrymat....I'd probably do my laundry there. As it is, I've already waste half an hour's salary fucking with my laundry.

So I go further. I find a laundry automat. Yes, they exist. While it's far from my apartment, I'm just tired of carrying my laundry at that point. Evidently, San Francisco doesn't know about wash+fold.

Look...it's not about saving time. It's about accountability and not having to care. If I had laundry in my building, and, if unlike Berkeley, my laundry wasn't thrown on the floor literally five minutes after being in the washer or drier (yes, absolutely, this happened), I don't mind doing laundry. I don't. Like I said above...actual time: 30 min. Amount of worry: priceless.

Long aside aside, I end up at the Zeitgeist. This used to be a serious biker bar: http://k0s.org/blog/20100512212231 . It now has a myspace page: http://www.myspace.com/zeitgeistsf Things are going fine. I almost forget I am wearing a nerd T-shirt as much as the clientelle has changed.

I like taking photos of stupid shit. See http://k0s.org/pictures/specialfx/ . So I'm debating whether I want to stay at yet another place where no one talks to me when I notice a(nother) really cool reflection in a bar glass. I take a picture. The bartender demands I erase it.

I'd post the picture to clarify the Truth. Oh, but wait, I can't! So you'll just have to take my word I was doing something innocuous.

I thought the Truth is Treason was ironic. Now...I'm not quite sure...

21:22 May 12, 2010

bikes in the Mission have replaced bikes in the Mission

when the world becomes that fucked to death shite pile that has become, in retrospect, precious, it is those who almost knew what things were that shall know nostalgia

nothing is ever what it was ( http://www.quotationspage.com/quote/421.html )

when you, an experienced drone, hear the shockwave, you wait for the blast

08:21 May 12, 2010

The Society for the Denial of Precognition

a non-prophet organization

10:42 May 9, 2010

In every field of magick, there are the believers in esoterica and those who use the craft to manifest their will

10:39 May 9, 2010

The basis of diplomacy is that two selfish parties may take more advantage of a compromise between their objectives than adversit between them. No one walks away happy from a compromise, but each party feels relief that deadlock is breached.

16:45 May 7, 2010

Test Driven Development, take 2

I haven't done much test driven development recently. I, sadly, find it usually hard to write meaningful test. I've hoped someone would teach me how to write good tests one day, but, in absence of that, I can only do what I usually do: throw things at the wall until they stick.

I've recently started to do some testing for a piece of software I'm working on: http://k0s.org/mozilla/hg/ProfileManager/ . Basically, it's a manager for Firefox profiles. There's nothing particularly complex here, just managing directories. After doing the same sets of steps for testing my code manually, however, I got really tired of it. Also, I wanted reproducibility in the likely case I forgot something. So I started writing tests.

The first thing I discovered was how much python testing frameworks suck. I was originally using doctest as it's an integration test and I want to keep state and do tests based on the current state. Things were going well...until i needed to debug. so i had the simple request of wanting doctest to stop on first failure. Nope! I mean, if i can, an hour of reading didn't find it. I can suppress reporting of other errors. Or I can raise an exception on first error that is basically indecipherable to where it died in my code. So that's out. Unittest is just not suited to doing anything, well, other than unittests, which is not what I'm doing. When I have done TDD of my own accord, it has usually been testing with a preserved state. I suppose this is largely because of the above (getting tired of doing the same set of steps to test manually). I'd love to do more unittests. I find it really hard to write code that is unittest friendly. Maybe this means I'm not a good coder. IMHO, if you have to stub a lot out to get a unittest working, then not only is it a pain, you're often not testing what you think you're testing (speaking from experience). so I did what I usually do. I wrote my procedure in a .py file and did my testing with asserts: http://k0s.org/mozilla/hg/ProfileManager/file/tip/profilemanager/tests/test.py

Tests should be easy to write. Testing is wonderful and not testing is retarded. But i'll tell ya, when it's hard to do simple things, I have a real hard time getting motivated to do them.

The second thing I discovered is just how many stupid mistakes I make in coding. I suppose I shouldn't be surprised. Usually I fix as I go along and I'm sure ProfileManager is no worse than anything else I do. It's just....so simple that I'm surprised at the number of my mistakes. Missing colons, wrong variable names, etc. So TDD kept me honest, not to mention finding many mistakes that I wouldn't have found as quickly were I doing by hand. And I don't even have much coverage.

16:26 May 7, 2010

k0s.org: it's not a great website, but not a bad set of shoes for a cobbler's child

10:05 May 6, 2010

whenever a test says Simplify this equation:, i just multiply both sides by zero. QED.

22:19 May 5, 2010

what is our speed relative to the location of the big bang?

14:03 May 5, 2010

you kids have it so easy today...

why, back in my day, bits had only one value. they were all off!

you kids just that you can turn them on these days...

18:35 May 3, 2010

Development Considerations: the contract


  • developers will always have issues that they'll wish to note. Some of these will be important only to them; some of these will be actually important
  • effective managers will want to limit scope creep. This will mean shooting down developer ideas

Note that this is the best of scenarios. In dealing with human problems where one is on the same team, then it must be assumed that all parties are doing their best for the team. If we've gotten into the scenario where developers and managers are trying to undermine one another (or control one another), then the game is already lost and no good software will result.

So how do we make the above work?

In other words, to raise an issue is to put some sort of priority on it. No egos allowed here! All software of any age has design defects and things that don't work right. But to say "I don't like the way such and such is done" is not helpful. Basically, don't bitch. If you have a clear idea on how such and such could be done better, by all means, present such a solution if it is worth the team's time in the present or in preparation for the future. But just pointing out when something is wrong does not help.

10:19 May 2, 2010

walking to the coffee house in slippers, ive made the mission my dorm room

17:29 April 30, 2010

is it an accident that WinDbg is only one letter off from windbag?

13:58 April 30, 2010

like-as cafe: service with a simile

13:57 April 30, 2010

The highest court in the land just got taken down a peg

Supreme Justice

Objection overruled...with a bullet

Don't forget to watch Supreme Justice 2: activist judges

13:15 April 29, 2010

The saddest poster ever!


I cried the first time I saw it! Poor orange kitty!

12:54 April 29, 2010

i wonder if the Firefox build process takes intentionally long so that i will have more time to read documentation

09:33 April 29, 2010

-> Press to Create Universe <-

Caution: Cannot be unmade!

09:32 April 29, 2010

i constantly forget i can blog from the command line. silly me

22:05 April 28, 2010

i wish i could have done discussions ... it would have been insidious

20:23 April 27, 2010

and...hopefully back on PST

14:53 April 25, 2010

The Open Source Hacker vs. The Proprietary Programmer

I ... don't pay for software. I don't steal it either. I'm mostly uninterested in proprietary software because it costs money, it's against the inherent philosophy that information flows freely, and most of it is no better than open source alternatives, at least if you're like me and don't mind getting your hands a little dirty. Let's face it: most (all?) software of any size has problems; things that it should do better and doesn't, outright bugs, or inability to work on problems that I, the user, wish it would.

There is good proprietary software out there. There really is. But I have very little motivation to use it. All software has a buy-in time, where you learn how to use the software effectively. This is already enough to keep me using emacs instead of vi, even though I feel that vi would fit my brain better. I've already paid the buy-in time for emacs and it is doubtful that I will want to use my little free time learning a new editor. I can use vi, I just can't do anything fancy with it (though, to be honest, I can't do much fancy with emacs either). Now if someone comes along with a new editor, supposedly better than emacs or vi, and wants to charge me money, will I pay? Highly doubtful. emacs basically does what I want. In many ways, it's kinda a crappy piece of software....but what isn't? It's a known crappy piece of software that does a bunch. So not only do you ask me to throw away my expertise in emacs for something that, if it does much complex, will be a new learning curve, but you also want me to pay money for it (possibly per machine)? And since emacs is open source, as archaic as it is I'm sure it will be around for the next twenty years. Your new text editor, however good it is....well, it's not open source, so who is to say that it won't go away when the next cool thing comes around? [On similar lines, I don't understand why anyone uses M$ word documents, since there is the non-proprietary HTML with many good editors and free online hosting services. But I digress.]

This has come down to a dialog in my head between an open source hacker and a corporate developer. Let's see what happens....

Developer: Hey, we have some shiny new toys. Want to buy into them?

Hacker: I dunno, I already have a lot of cool toys and they're free. Why should I pay for yours?

Developer: Your toys are kinda weird and hard to use. Ours are nice and streamlined.

Hacker: Yeah, but I can do anything I want with my toys. What if I want to change yours?

Developer: That's the good news! We have plugin points and an app store so you can make $$$ selling your extensions!

Hacker: But that won't help anyone but me. What if someone wants to change the code I wrote or offer a patch to fix something?

So it goes. It's kinda an old argument, and I almost feel bad about rehashing it. But it still bothers me and I still feel, along the line of Mozilla drumbeat, that once non-developers really understand what is at stake as far as how software works as part of their lives, then more people will choose freedom as long as it's convenient (which it mostly is these days). Let's be realistic here. I don't have time to go into a long history of OSS and how it's actually changed computing (though I probably will someday), but to point to one example (and to shamelessly plug Mozilla), Firefox really saved the internet from becoming a proprietary medium that required a corporate buy-in. It's still the wild west and I for one would prefer it be kept wild rather than falling under corporate dictatorship. If you think I'm being alarmist, then I hope you'll take my word that I'm actually understating.

20:29 April 23, 2010

O.J.'s lawyer on VCS

If you don't commit, you must acquit!

18:18 April 23, 2010

i wonder if anyone uses versioned patches to versioned patches?

19:57 April 22, 2010

sweet, google search for k0s moves me up from position 3 to position 2

19:46 April 22, 2010

Making your own cheeseshop

It is a common misconception that the cheeseshop (pypi.python.org) is the place to go for python packages. This is only true by convention. I won't go into the history of distutils/setuptools/distribute/pip packaging fiasco. Suffice it to say that (I hope) things are slowly converging and that both pip and easy_install, the two major ways of installing python software, both support a -i option to specify the URL of the package index (which is, by default http://pypi.python.org/simple).

In its base form, easy_install and pip just crawl links. You look at the base URL (see above) /<package>/<package>-<version>-<extension> and download this, unzip, run python setup.py install on it and you're done. So if you want to make a cheeseshop, there are two essential tasks:

  1. Generating e.g. tarballs for a package and all of its dependencies
  2. Putting these tarballs on the web with some appropriate parent directory

Not rocket science...barely computer science, really.

For generating packages and their dependencies, I used pip. pip is really great for this. I only used the command line interface, though if I was smarter, I probably should have looked at the API and figured out what pip is doing internally and I could have avoided a few steps. Basically, using the --no-install option downloads the package and its dependencies for you and lets you do what you want with it.

I made a program for this, see http://k0s.org/hg/stampit . It's a python package, but it doesn't really do anything python-y. It was just easier to write than a shell script for my purposes. Basically it makes a virtualenv (probably overkill already), downloads the packages and their dependencies into it, runs python setup.py sdist on each package so that you have a source distribution, and prints out the location of each tarball.

The source distribution is very important as we want packages that will work independent of platform. These should. If they don't, we can make them.

So problem #1 solved. Let's move on to problem #2: putting them somewhere on the web.

Mozilla is so kind as to have given me a URL space on people.mozilla.org. Since easy_install and pip are really dumb and basically just crawl links, and since Apache is smart enough to generate index pages for directories that don't have index.html files in them, the hard part is already solved. I will note that people.mozilla.org is not intended as a permanant place for these tarballs, just an interim instance until we decide where we really want to put them.

Since I like to write scripts, I wrote a script that will run stampit and copy the resulting tarballs to a place appropriate to a cheeseshop. You can see the code here:


The variables are pretty specialized to my setup, but of course that's fixable.

Does it really work?

Yes! You can try it for yourself. Try:

easy_install -i http://people.mozilla.org/~jhammel/packages/ mozmill

Watch where the links come from. Surprise! They're all from http://people.mozilla.org/~jhammel/packages/ ! I would highly advise doing this (and just about everything else in python) in a virtualenv so that you don't pollute your global site-packages.

Why am I doing this?

The Firefox buildslaves are supposed to fetch data only from mozilla URLs for stability. So, if python packages need to be installed, they need to be available internal to Mozilla. If a package didn't have dependencies, then this is a no-brainer. But packages do have dependencies. Mozmill depends jsbridge, simplejson, and mozrunner. While this is a lot of work for just one package, if we want more python stuff in our buildbot tests, we'll need to do more of this, and I'd rather have a good solid methodology to do so. I also imagine this growing as a place to put all of our python packages for internal Mozilla needs.

I will note that I did this in a few hours from basically knowing the problem space but never having actually done it. None of this is supposed to be a clean and polished solution. But really, its not bad. We did something similar but less functional at my last job, The Open Planning Project, for similar reasons, so its not like I tackled this blindly. This is not as fully functional as the cheeseshop. A maintainer needs to run the package-it.sh script for each package (and its deps) they want installed. There's no accounts or any of the other features the cheeseshop has. But for a simple prototype and a way to move the discussion forward, its actually not that bad of a solution. There are more robust ways of really doing the cheeseshop, such as http://github.com/ask/chishop , but for a package dumping ground, this solution works and its really not even that hacky (in my opinion anyway).

14:16 April 22, 2010

implicit is better than explicit

I understand what is meant by python -c 'import this' | grep Explicit. On the other hand, when people take this literally, it really annoys me. Python does many things implicitly that quite honestly aren't that interesting to the average programmer. If you disagree, please do your own garbage collection and module path resolution.

On the other hand, things like calling parent constructors implicitly I find much nicer than, say, the C++ way of implicitly doing them. So it's a mixed bag.

What's my point? Eh, I might have lost it. For one, explicit is not necessarily better than implicit. Implicit + sensible workflow is a huge time saver. On the other hand, the flexibility gained by explicitly doing things is also important. But don't believe the dogma

13:51 April 21, 2010

Personalized Mortuary Service

Hey, it's your funeral

20:02 April 20, 2010

the source really is the documentation

I write a lot of scripts. Typically, when I say script, I mean "something that does something that's easy to do but that I am likely to forget". Since these scripts are educational to me, a nice side effect is that the script is the script can be educational to anyone.

Usually the phrase "the source == the documentation" fills me with dread. Its insulting, to say the least, in the same way that RTFM is insulting, or when you ask how to spell something and the teacher says to look it up in the dictionary. Of course you can, eventually, find information this way. If your task is learning a big system, then its not even a bad way of learning. But if you're curious of how the word is spelled to, say, use it in writing, or if you're using a program to accomplish some meta-goal, then you probably don't care about the minutae.

But what about the positive side, these educational scripts that are really mostly documentation that just happen to run?

I'd like to see something like a wiki that could include these scripts as learning examples. My idea is something like this: you take the comments of these shell scripts and feed them (going through some markup process like restructured text) as the wiki page text. The actual programmy part of the scripts -- you know, the parts that do things? -- these get turned into <pre> blocks or the equivalent thereof. Wouldn't that be nice? Your source code really becomes documentation!

A few extensions...

For a language like python with doc strings, you could use these as well as comments. I realize systems like sphinx already do this. However, I'm talking specifically about these kinds of scripts that are HOWTOs first and working code second.

If you did use these scripts as wiki source, you could also make them editable. That is, if you trust your user base, you could have scripts that are edited through the web. I realize that this idea isn't new. I usually think of editing code through the web as, at best, a questionable idea. But in this case, I think it's apt, since really what you're doing is editing documentation, to code part being anciliary.

19:50 April 20, 2010

blogging on the train is fun; yeah, bitsyblog is behind the times

18:02 April 18, 2010

"it's not my fault!" ... oh yes it is!

I recently moved to the Mission district in San Francisco -- yeah, back home -- and kinda fell in love with a place that wasn't there when last I was: Pirate Cat Radio Cafe. I mean, what part of that is there not to like? And instantly, some dick spoiled it for me.

I was in line behind some tourist who was taking forever. Whatever. I'm used to that sort of idiocy. Some other tourists were prancing around the cafe, the gratuitous attractive girl taking pictures while the typically douchey boy doing what douchey boys do. I didn't know what the fuck they were doing nor did I care. All I know is they weren't in any sort of line, they were just being little dicks around the shop, whereas I was waiting patiently. Well, as patiently as one can when one is worried about the cigarette smoking tables being taken and one is surrounded by folks with no personality.

Anyway, after the tourists grab their drinks they instantly take the cigarette smoking table. Great. I mean, there's another table, but I wasn't in the mood for being yelled at by tourists for satisfying my nicotine cravings too nearby. The barista asked what I wanted. "One coffee--"

"What about me? We've been waiting around way longer?" exclaimed Lord Douchington.

I said "Go ahead." and walked out of the cafe. Fuck that. The barista turned to me probably because I was waiting in line and not fiddling around the cafe. I realize most precious Californians have some sense of entitlement that they don't have to obey any sort of rules of politeness, that its okay to reserve a laundry machine with a magazine, that having kids is an excuse to act brain dead, and that wandering around a place taking pictures is the equivalent to waiting in line.

What I object to isn't even this. Its that I'm the asshole because I'm overt about it. Did I argue for my fucking rights? No. Let them have their fucking precious rights. But why am I the bad guy when the whiners get their way? Personally, I consider whining much more offensive that outright being a dick. Its being a dick that demands to be coddled.

00:05 April 16, 2010

the day that everything fell down

13:24 April 15, 2010

everyone talks about the fall of the Berlin Wall. What about the spring of the Berlin Wall?

11:05 April 15, 2010

upstream propagation to pastescript templates

I find pastescript templates (or something like them) vital to intelligent software development (see http://k0s.org/portfolio/workflow.html#software-development ). You create templates for your project and deploy them.

There is a missing piece: what happens when you need to propagate changes to the template back upstream? You have to change both your deployed copy and the template copy.

I don't have a good solution (yet), just noting the problem.

11:00 April 15, 2010

dreams of the tea party

I had a dream last night. I was, I don't know, some kid wizard in the Harry Potter world. Myself and Hermoine were in a class. For some reason, we were driven to the teacher's desk, where I spilt a potion into a pool, enabling me to see a prophecy. Something horrible was going to happen to a girl in the back of class, someone that no one in the class really liked, though she was fairly popular. Someone had set her up to be ruined with invisible strings. But because I saw the prophecy, we took action. Hermoine used alacrity to run over to her and warn her of what was going to happen. While it was still bad and hurt and embarrassed her, she was not publicly exposed.

Now consider the tea party movement. Firstly, let me say that the problem they oppose (the government misspends money) and the solution (make the government smaller) are actually unrelated. This is a sad fact. The government needs to learn how to budget, but this is a human problem, not a problem that can be solved by just cutting off the limbs. We can talk about this more later.

I see the Tea Party as a bunch of very frustrated people who flock around Sarah Palin, who serves somewhere between the Mad Hatter and the Queen of Hearts, saying meaningless things, riling people up. And to what end?

Here's what will happen:

I don't know if the tea party is truly a grass roots movement. It probably was originally, but that no longer matters. Somewhere, some puppet master with dark machinations decided they could use this to their end. Someone will appear at a time appropriately before 2012, and Sarah Palin will put her support fully behind him (it will be a male), and so the tea party will follow him. He will actually be a very scary man. Think Dubya but intelligent. I hope that he won't gain the presidency. In either case, he will try to do something awful. Actually, he'll probably try to do several awful things as a distraction, but there will be one focus. When he fails (which I hope he will), he will have set up Sarah Palin to take the fall.

These things seem unrelated at a casual glance. But I think they are the same thing.

sealed in envelope

17:19 April 13, 2010

i consider google buzz conversational in the same way that i consider what they do on talk shows conversational

(i originally posted this on google buzz, mostly for irony, but decided to import the meaningless banter to a real blog)

12:53 April 13, 2010

Its really sad that the only way to make people who wish to unload drama understand your position is more drama

12:22 April 13, 2010

I find that writers, even more than actors, are grossly aware of the division between their selves and the faces that they wear

11:55 April 13, 2010

idea: workspace correlations

I hate IDEs, in general. In fact, "integrated" anything usually says to me "work within how we tell you to do work", which is exactly my philosophy. I use emacs for editing, Firefox for browsing, python command line for running, etc, and really don't want/need these to talk to each other.

On the other hand, I would like a way to correlate work. I'll tell you what I mean in an example, as I don't want to make this a long blog post. I'm working on a project (well, a few of them, but let's take this one) and I need to do some programming, testing, and documentation. Sadly, the wiki documentation suffers because there's no quick way of updating this. What would make this work for me is if I could tie a group of applications (and contexts, for instance the project's wiki page) into a group and have a way of working on them collectively. In other words, the integration layer is the rules by which I define how I want to work on this application. (I realize I'm being hand-wavy, but as I said, short blog post).

Using this approach, I get to keep my heterogeneous environment and can hopefully do nice things like sending a docstring to a wiki page, or updating instructions via what I'm doing in a shell window.

Too abstract? Yeah, probably. I have a specific workflow in mind but don't have time to elaborate now. Maybe you get it anyway.

21:22 April 9, 2010

this body is just a tool ... but to what end?

12:40 April 8, 2010

Takeaway from the wired revoluion

Information theory is no longer abstract, but something that everyone deals with everyday

12:39 April 8, 2010

For good software...

I'm sure there is some profound implication to all this, but right now I can only think inside the box.

10:53 April 7, 2010

i switched my python indent from 4 spaces to 2


it feels a little like not wearing underwear...a little naughty

00:48 April 7, 2010

another copyrighted phrase:

cannot be unmade

00:12 April 7, 2010

Ya know, I just have to say it...

bitsyblog is everything that's wrong with blogs. But at least its fast to post.

00:10 April 7, 2010
23:52 April 6, 2010

playing nicely

and yes, I know the 'play' will offend. no matter.

i don't play nicely, and i never said that i did. but i will say that i have played nicer and more honest than many of my contemporaries.

so judge me by that. i don't claim absolution. i just wish 'fair' with respect to me was judged by that which has been laid upon me

23:37 April 6, 2010

the world of convention

copyrighted term, bastards

18:29 April 6, 2010



ain't she cute!

17:17 April 6, 2010

a rant about empty space

From http://www.python.org/dev/peps/pep-0008/ :

If necessary, you can add an extra pair of parentheses around an expression, but sometimes using a backslash looks better.

No! Backslashes to mark line continuation never looks better! It is completely non-semantic and their inclusion in python reminds me of the crazy people that do fancy nested tables using Restructured Text. Boo, I say. Boo! And this is not an opinion!


The views expressed in this blog post may not reflect the views of rational thought

12:34 April 6, 2010

its all a hack, anyway

I am always surprised when a company refuses to release source code with the reason "its only useful internally". Privacy concerns? Sure. But because its not tidy enough? I don't buy it.

Programmers are used to dealing with messes. In any language, there are parts of the standard library that are, let's face it, just plain bad. Let's look at python. ConfigParser is awful. urllib vs. urllib2? what the hell... And these are just standard libraries. Look at the svn swig bindings. Hell, look at mercurial. The APIs are, dare I say, piss poor. On the other hand, I need those libraries and am glad they exist.

What I object the most to is the double-speak. Its always phrased as if companies are doing a big favor by not releasing source code....protecting us poor programmers. The reality is, they're protecting their reputations. The reality is all companies produce hacky code because all programmers (some more than others) write hacky code. Google is supposed to be the height of genius, right? I've read some of their released python code that looks like it was written by a first-year computer science student (if you're curious, I'm talking about the Google Apps LDAP sync code....tsk...tsk...tsk...). So if they can write bad code so can you!

There's another take-away here. Don't write code that depends on your internals. Even if you never ever ever plan on releasing it, YOU will regret it. All of the sudden your internals change. Oops! Or, the alternative, you spend ten years maintaining spaghetti code and juggling internals because you've committed to a platform. You'll think one of three things after reading this:

  1. You're preaching to the choir, dude.
  2. Well, I don't know, but you seem like you know what you're talking about (trust me!)
  3. Nope, it saves me time

Not to argue the point, especially since I'm making hand-wavy generalization, but if you're #3, then I hope you like maintaining code. Because you will. <plea type="last">Separate deployment-specifics.</plea>

09:56 April 6, 2010

A Command-line Interface to the Command Line

What has become underappreciated in the world of GUI is that command line programs have vastly different interfaces. For instance, contrast something like mplayer with something like, oh, I don't know, cat. It doesn't matter. One common pattern (and certainly not the only one) is the command [options] subcommand [subcommand-options] pattern. This is useful when there is a common context of operations but different types of operations, and is used by svn, hg, python paste, etc.

So I've written a few of these. My latest attempt at this form uses the following form: underneath all, the API, in the form of a class. To interface with the command line, I wrote a class and a few standalone functions that should really be folded into the class that directly exposes the (public) API to users without knowing anything about the API class. python makes this possible. Is it a good idea? Well, probably not, but sometimes you have to do something clever in order to learn what you really want to do (maybe in 6 months).

How does it work? You have a class that inherits from OptionParser. To its constructor, you pass a list of commands that you want to expose to the user. Using the inspect module, you can examine these functions for their arguments and automatically construct an OptionParser (!) for each subcommand and, even more magically, invoke the chosen function once the class is instantiated (!!!).

Yeah, a little too magic, I know. On the other hand, this is a class of problem in which I have profound interest, namely translating one way of interacting with something to another way. Namely, the GoF interface pattern. If I needed something less magic, an IDL ( http://en.wikipedia.org/wiki/Interface_description_language ) would be a way to go, which functions as an adapter signature to an interface.

You can see the code here:


Its really messy, mostly because I started off using the command method as a decorator. While I still ideologically support this use case, there are two difficulties. The first is, in my simple incarnation, you need a instantiated object on which to act. This ideally should be restructured a bit. This brings us to the second difficulty: when decorating a method, the decorator cannot tell if it is a method with a class or a free-standing function. This is due to subtlties of how python deals with method binding. Namely, the decorator is called after function closure, but the binding mechanism for methods is called after class closure.

Another argument against this is that, if you have subcommands, it implies a common context. For a simple system, a class is a good instance of a common context. The correct way would be to have a way to pluggably associate contexts and functions, but that's more than I care about now. Class == context .

Ignoring all of the mess I'm sweeping under the rug in the above two paragraphs, there are serious conceptual problems with this approach too. For one, for better and worse, in this approach, the user API is the class API. There is a good work around this -- having a subclass of your real API which is the API you want to expose to the user and then working with this. Complex arguments won't work -- I take into account booleans and variable arguments, but anything more complex would require more work. This isn't really as dire as it sounds, as taken with the user API class idea, you can only pass strings through the command line anyway.

There is also the general problem of domain-specific languages. For instance, look at how I parse out help for arguments:


Again, strength and weakness. There is no "standard" for how to document arguments, so I just made one up that is pretty common in the wild. The downside: you must now write your docstrings in this format (which admittedly shouldn't get in your way too much). The upside: you can now programmatically extract help for function arguments. In general, I find the argument that doing things like this is too restrictive uninteresting. Every time you abstract things, you lose some flexibility. The point is: do you get return on what you do and do you care about what you use? python (cpython, anyway) is an abstraction on top of C, which is an abstraction on assembly. Now, you can't do pointer arithmetic in python (this isn't a challenge!). But why would you want to?

I think its cool that you can do such intimate introspection in python. While there are some rough spots (and I'm not talking about my messy implementation), I think they just point to how cool the whole system is. Imagine trying to do the same thing in C. Then, when you get back from the asylum, take this work not as a somewhat too clever implementation, but as a pointer for what I really want, which is the instantiation of a pattern.

09:11 April 6, 2010

another computer....another blog test

18:29 April 5, 2010

The Shih Dynasty is known for its highly cultivated teas. So if you're ever drinking a particularly good cup of tea at a Chinese restaurant, exclaim (loudly) "This is Shih tea!" and the compliment will be well received.

10:31 April 5, 2010

There is a difference in listening to real radio and net radio. With the olde-fashioned kind, I turn a knob and it works. With net radio, I wait for a host to resolve, which wouldn't be so bad if wnyc.org got their act together

23:52 April 4, 2010

It is not the individual that makes civilization great and it is not inherent structures that make the mind great.

It is tools and their application.

13:47 March 31, 2010

Karl Marx: i dunno, i always found him much less funny than the other Marx brothers

13:01 March 31, 2010

pie: the only food that describes the ratio of its circumference to its diameter by truncating its tailing letter

21:39 March 29, 2010

The real point of the American revolution is that were all gentlemen (and ladies). Maybe the original point was more like "the province of equality amongst gentlemen extends somewhat further than specified by birth or common law".

21:37 March 29, 2010

being domesticated

One of the core subjects that occupies my thoughtscape is domestication. To what extent is it harmful? To what extent is desirable? I don't know if I can adequately capture my thoughts in words. But perhaps giving a few examples from my own life will be illustrative.

The case nearest my heart is that of Lilly, my cat friend. Lilly was born into a feral environment as so had to develop the skills necessary to make it in that environment. When I brought her home, she trusted no one. Everything was new to her, each situation one of wonder and fear.

One day (and, yes, it really was about that sudden) Lilly decided that affection was what she most cared about in all the world. While she, like her dad, has always been a strict proponent of protocol, it was on that day that she stepped into domestication. She slowly relinquished her independence, her ability to be constantly desperate, and yes even some of her sharpness. But though they took a long time to manifest, she gained too, even if all she had gained one could renounce as merely illusory trappings. She learned to trust me. She learned to depend on me. She even learned to love me. It is true that when I adopted Lilly, I had no doubt that if she had to survive in the wild, she would be a fierce little feline. Now, while she retains a sharpness and sense of danger known only to those that have experienced peril, she would not make it save by chance. But Lilly has become such a sweetheart. And what of the important questions? Has she lived a good life? Has she lived as she would have wished?

What of me? It is easy to speak of a cat as domesticated, but because there is an innate hubris in thinking of humankind as apart from the other species, to speak of human domestication is a more delicate matter.

It is, perhaps, uncouth to mention the fact that girls become attached to boys in fairly short order. There was a time when this was enough: a girl who would go domestic for me. I don't state a claim to this misfortune of nature. Merely, in this messy messy world, I thought it would mean something to me to have a chemically-subservient partner.

I guess the sad part is that I had such an early will to become domesticated for someone that the next ten years were pretty much miserable. Girls didn't want a domesticated boy, not in their twenties anyway. Now...now I'm more confused than ever. Do I want to be domesticated? Do I want a domesticated partner? Truth or illusion....what is the difference... I guess it depends on which world I answer for: the world of ideas/ideals or the world of pragmatic, ugly reality. I guess the domestication phenomenon both disgusts me and entices me, because of its base nature and because it is a question that is ignored. I like to think of such things. It is a sad reality that the worthwhile questions cannot be discussed, cannot be marketed, for either they are of a profound understanding that need not be reduced to words, or words alone are incapable of transmitting understanding.

13:59 March 27, 2010

hopefully a not too clever solution

I've had a problem for awhile now. I use fluxbox as a window manager, because
  • its pretty
  • it supports hotkeys
  • its configuration is filebased
  • its pretty minimal

At first, I made heavy use of the menu, but have more recently mostly used hotkeys and free standing terminals to launch programs. One of the reason of my declination of menu usage is the fact that I want different programs installed on different computers. On a work computer, I want programs to help me program. On a home computer, I will have more fun programs. On a laptop, I will likely have wireless and power management accessories. On a desktop, not so much. So how do you keep them menu in sync with programs that are actually available? One could argue that this is fluxbox's job. And maybe so. But the fact is it doesn't do this.

My first thoughts were wishing to do python in the menu. While I still would love this, I stumbled upon a way to do dynamic menus in fluxbox via an included file . I don't know why I didn't know about this before...but I didn't. And strictly speaking, this is more flexible than just having python in the menus. (I would note, in passing, that this would be even cooler if I had another of my big wishlist items: a way to mark files that, when open, would run a program and read the output of that program.)

So I set to work on how to hook this up. To review, the scope of the immediate problem is "I have a superset of programs I want to use in general. I want the fluxbox menu to be generated only with the programs I have installed on my local machine."

I decided to store my programs in an HTML file, viewable here: http://k0s.org/programs.html . A friend of mine advised me to use definition lists for menus, which worked out amazing well (with the caveat that my current parser assumes a certain format but doesn't enforce it). So the first step was translating the programs I wanted to use to http://k0s.org/programs.html .

Then I wrote the parser: http://k0s.org/hg/config/file/tip/python/html2flux.py . With lxml it was fairly easy to transform HTML to fluxbox's config. I used a program I already had to get all of the executables in the user's path: http://k0s.org/hg/config/file/tip/python/lsex.py (get your minds out of the gutter ... its ls EXecutables). Then, I point the output of the program to ~/.fluxbox/applications and include this in ~/.fluxbox/menu. You can see the change here: http://k0s.org/hg/config/rev/069a739d88ad

Since my config is a mercurial repository and I use silvermirror to sync files between my computer, including http://k0s.org/programs.html , I now have a way to have up-to-date fluxbox menus on all computers from a superset of programs! I could regenerate in a cron job, but for the time decided just to regenerate on invocation of .bashrc .

What next? I'm glad you asked! I have yet, mostly out of laziness though more because I wanted a good solution, have yet to really utilize feeds (RSS, atom). I want to set up a planet to subscribe to feeds I care about. Then, I can have a program that outputs the RSS of my planet to fluxbox menu form (presumedly on a cron job) and I can have the news literally at my fingertips. The menu item name will be the feed item title and the executable will launch the link of the feed item in firefox.

But, not today, most likely, as much as I love the idea. I think I'll set up Thunderbird before my email situation gets out of hand.

18:56 March 26, 2010

...and so, in conclusion, you can easily see why my brain would confuse the need to eat a carrot with the need to go to a different Firefox tab

16:31 March 26, 2010

As You Motherfucking Like It

a modern telling of a Shakespeare classic

13:55 March 26, 2010

great, now public radio is teaching that achievement leads to happiness. never have i heard such lies

13:11 March 26, 2010

P.S. I hate it when people use the word marketplace when they mean ecosystem; the former is a very specialized subset of the latter

13:07 March 26, 2010

an idea for later

text patterns (and an ecosystem of components to handle them)

10:04 March 26, 2010

requiem for personal blogs

so many personal blog posts to write....so little time

10:03 March 26, 2010

idea: Firefox bookmarks as site management

Since joining Mozilla and since using the excellent weave addon I have been using and organizing bookmarks in a much more serious way than I historically have. I got to thinking, bookmarks would be a great way to manage sites. What do I mean by this? I'm not sure! But I'm convinced there's something there.

Take delicio.us, however it's spelled. Its basically a way of sharing bookmarks. I can accomplish a lot of the same thing just by exporting my bookmarks: http://k0s.org/bookmarks.html . Okay, its really primitive. I also did it 10s ago, and in the future I can modify this however I like.

Now, take something more complicated. Lets say you want to do something with all of these bookmarks, or some subsection of these. Like "subscribe to all of these RSS feeds" or "make a blog post to all of these sites", etc. I can't yet do this, but there's nothing complicated there.

Ultimately, I envision a revolutionary UI that changes the way we think about web resources. But I admit, I can only really see the next few steps. I should make a FF extension to play with this idea. Actually, first, I should see what's already out there.

13:51 March 25, 2010

halloween costume idea

dress up in a red+white+blue labcoat and claim to be a political scientist

18:19 March 24, 2010

unix: the NeXT generation

the capitalization of NeXT is in fact a dead herring. I find a modern linux environment, e.g. ubuntu, just a joy to work with. On the other hand, I'm a bit of a hacker so I don't mind setting up a few things to make my life much easier. I don't really think about the tools until I don't have them.

For instance, I have a function called fn that I don't know how anyone lives without:

(buildbot)> type fn
fn is a function
fn ()
    python -c "import os; print os.path.realpath('$*')"

Simple, right? I use it all the time. So...why isn't it in unix?

That's an easy one. Another is pasting. If you do any programming, you're bound to use a pastebin. http://pastebin.com now has it an API that made it soooo easy to write a script to paste to it from stdin: http://k0s.org/hg/config/rev/6b8573a62cd3

So now I can paste from the command line instead of copy+pasting like a caveman! Nice. (Yes I know about pastebinit, but for some reason the ubuntu package didn't work for me). But I can do one better than that.

Since I make heavy use of fluxbox hotkeys , I can make a hotkey for taking input from the X clipboard (using xclip), piping that to my script, and putting the pasted URL back on the clipboard so I can paste it to others: http://k0s.org/hg/config/rev/10fc72a4e6ca

I've also bound smartopen to Ctrl+Alt+s to open whatever is on the clipboard. So once I paste via my hoktkey I can instantly look at my paste (if I want_) using...one more hotkey! Its got synergy coming out of its rassoodocks.

I give this simple and relatively intricate examples as, well, examples. I'm deeply interested in putting the UX in unix. I'm not talking about the BS, just adding these little helpful things that make it so nice to get things done quickly and repeatably.

17:23 March 24, 2010

The Revolution will not be televised! It will be podcast

16:49 March 24, 2010

Why is it always "Lord Vader" instead of "Master Vader"?

15:32 March 24, 2010

a simple problem with the web

I have an email from agent A and another from agent B. I want to forward agent B's email as a reply to agent A. But gmail doesn't support this behaviour. Very few systems would. Yet this is a common problem.

Pointing to web 3.0, thread weaving will be an essential problem. I really wanted to write software to do this, and, IMHO it would have been awesome. However, I have no time at the moment so will leave the implementation to those with less on their plates. The real challenge isn't implementing a UI for this....it is implementing a UI that works across discussion types.

13:01 March 20, 2010

all loyalty is based on return

12:19 March 20, 2010

atheism: finally got it

For some time now, I've had serious objections to atheism along the lines that it is presumptuous. When I've tried to nail down these objections, I found it difficult to voice what exactly my opposition is. But I think I've finally figured it out. Regardless of the dictionary or philosophic definition is, most atheists I've encountered in real life mean two disparate things simultaneously by the word:

  1. a denial of existence of a personified supreme being with a big white beard who has a mansion somewhere in the clouds and other faith-based acceptance of definitive facts that cannot be supported by empirical evidence
  2. an assertion that our understanding of science and the universe is, while incomplete, is an accurate description of nature that demands that the universe, as born of the big bang, is the complete and interesting space of understanding.

The first I agree with. The second I do not.

I'm not religious by any means, and believe that without a foundation of rationality that any other philosophy is untenable. However, insistence that our understanding of things is complete enough to do anything with....this I cannot agree with. We've been on this planet for a million years -- a geologic heartbeat -- and I find the assertion that our understanding of science is enough to have, dare I say it?, faith in is comparable to a child's belief that they know how things work, but more presumptuous of course.

Worse, I find that atheists (again, I'm stereotyping) use their belief as a way to belittle the importance of the question Why? . Rationality is a wonderful thing, but it is not the whole universe .

We take individuality for granted. I am me and you are you and my cat is my cat. But what empirical evidence is there that this is anything but convention? I have seen none.

18:38 March 17, 2010

from http://djmitche.github.com/buildbot/docs/0.7.10/ :

The guilty developer can be identified and harassed without human intervention.

You've got to love technology ;)

02:15 March 17, 2010

the saddest word is almost

23:57 March 16, 2010

The Age of Nostalgia

I have alluded at various points to the phenomenon I call explosive decompression which I contend overtook the Earth at approximately Winter Solstice, 2008 (the choking condition of a `converging-diverging nozzle <http://exploration.grc.nasa.gov/education/rocket/nozzle.html`_ ). While I don't expect this to be understood, save perhaps by future historians who will no doubt use a more precise terminology, perhaps I, as a modern armchair historian at least point more towards the direction.

It was once that nostalgia was the province of the idle classes, reckoning for the imaginings of grandness of times gone by. Now, all is nostalgia. We have no culture save that which progress has made obsolete. One can look at rodeos, at circuses, and other diversions, which were once strange, wonderful and terrible, and now they are merely bits of the past reenacted, the history forgotten or celebrated, but no longer of this time. Even modern heroes, like rock bands or anchormen, have fallen to the engines of progress. We own nothing. All that we may lay claim to is nihilism.

This has been the case for a century, perhaps since Einstein destroyed the arrogant premise that we, descendants of apes, understood the workings of the Universe. What has changed? Our belief in the illusion.

The '50s were a time of great investment in unreality, that America, the idea of manifest destiny, at last played out its promise with washing machines and television pictures. We worshiped these idols, and society tore down those who, wearing leather jackets and quoting beat poetry, would deny that this was less than divine providence. We had lost everything to these blind gods, but what we retained was a stay of innocence, even if bought with self-delusion. The past was gone. The frontier was closed. Culture had become a museum. But we could deny it! We could pretend that the creatures stuffed behind cold glass were real, that we could touch them. We could truly believe, in that way that a child still believes in Santa Claus even after they found their presents in their parents' station wagon.

So came the unrest of the later days, when every last illusion was challenged, cold and mechanically, save the premise of civilization itself. Great barriers were smashed as they could no longer stand against logic. Racism. Sexism. But still, the beast remained, the beast that we were tiny creatures on a tiny planet drifting through a vaccuum and that there was no one to hear our cries.

What is real anymore? What is not only not an act, but not an act which begs to be discovered as an act, a dream where one has made the mistake of remembering that it is a dream?

This is explosive decompression. We want to hold on to these precious memories. We want them to still be true. But we, as a collective consciousness, can no longer deny that everything we are is from a system born of mistakes and who's only remaining virtue is its own usurpation.

Where do we go?

We can no longer hold on. We have to be brave. We have to make something new. We cannot make new myths, for only time and courage craft myth. Nothing means anything anymore and we need to stop pretending that it does, so that which does hold meaning and worth may shine in its own light as the sparks of our existence perish into space.

23:35 March 16, 2010

markdown languages: good form? bad form

I'm a big fan of markdown languages. In short, they let me type text that is readable as text but allow me to translate them into something nice. For example, bitsyblog uses restructured text (for now). But there are some principles that should be obeyed and generally aren't for such formatting schemes:

  1. It should be easy to write
  2. It should be easy to read
  3. It shouldn't try to do anything that's complicated enough to make 1 or 2 hard

Take restructured text. Headings are done with underlining the same number of characters as the headline. Which, if you change the headline, is annoying. Much better in this department is Trac 's wiki syntax. Headlines are = Header =, == Sub Header ==, etc. So much easier to write.

Take block quotes. If I have to indent things myself, why bother using a markdown language instead of just doing HTML? I like the python convention of triple quotes for these.

I've never known a markdown language to do tables well. LaTeX, sadly, seems to come the closest. And its ugly.

In short, a markdown language can't do everything. If it could, it would be a markup language. A markdown language is good for when you want to write text and get some extra leverage out of it, not for doing a massive and complicated document.

23:23 March 16, 2010

You've got to love Malkil. He may be a bit of a bastard, but he has some valid points:

"How easy it is to act and pretend that these things are important. And how utterly disgraceful that there are those who, acosted by pomp and circumstance, allow their minds to slip into the illusion of an idea which holds no resemblance to anything real: acting. We pretend that such formalities -- the length of a man's coat, the beauty of a woman, the fact that this spaceliner is paneled with real wood while others have walls of bare metal -- mean something, because it heightens our station and preserves our livelihood. But when we begin to believe in this ... in our own act, we turn ourselves over to a world where nothing is real. The actor can no longer escape the stage, for in delusion the stage no longer exists."

20:40 March 16, 2010

progress report: Mozilla, day 2

I'm very excited that after 2 days (1.5, really) I think I've setup my computer and completed all other administrivia such that I can start doing useful work. The older I get, the less joy I have in setting up and configuring new systems (and, ironically, the better i get at it with more tangible results). I have two projects right off the bat that I'm eager to sink my proverbial teeth into.

The first is https://bugzilla.mozilla.org/show_bug.cgi?id=539524 . Profile management! Interestingly enough, it was a few years ago when I was playing with Firefox when I wanted a better solution for this. Now, I have no one to blame for lack of progress but myself ;) I'm still trying to figure out the scope, working from a basic idea to hopefully something that will grow (and, note, I haven't worked on this much yet).

The second is getting buildbot working with mozmill . So I get to play with buildbot again, which I've always kinda liked, despite a few rough edges (what software doesn't have those?) and "everyone" complaining about it.

Anyway, its more than enough to keep me busy for now. I'm excited!

19:14 March 16, 2010

idea: a way to record + modify a source script simultaneously

e.g. in one window, you type commands. in another window, you edit a shell script that picks up these commands.

Use case: I like to record instructions in shell scripts (including python scripts). However, because I have a short attention span (and am usually doing seven things at once), copying by hand what I am doing on the command line to the reproducible instructions is a slow down

(also: idea: bitsyblog posts should...get done something with.)

16:32 March 16, 2010

TODO: keep DB of times for mobile testing platforms for Fennec for profiling and seeing how the software speed evolves with time

(also make a add_blog event that takes TODO items and adds them to, something)

16:45 March 15, 2010

note to self: I need to set up a planet for k0s.org

13:00 March 8, 2010

A comparison of file formats:

  • resume.html: the canonical document, http://k0s.org/portfolio/resume.html , contains all styling information and content: 7k
  • resume.pdf: conversion of resume.html to a PDF via printing in firefox: 57k
  • resume.doc: conversion of just the content of resume.html to a word document by cutting + pasting and hand-editing. Poor presentation. 110k

See also http://k0s.org/blog/20100205113616

12:19 March 8, 2010

Its official

I now have an awesome job working for Mozilla for the tools team! I never use exclamation points in this blog unless I'm joking, but this time I'm serious. I'm so excited! Firefox has been a long-time friend, and Mozilla has always been one of the great players in the open source revolution. Now they are a industry leader in the browser wars, not to mention a big proponent for useful web standards. I don't think most people realize how much Firefox has done to make the web a better place for everyone (yes, even IE users...maybe especially IE users) and I am extraordinarily happy to do what I can to help with the effort.

Ill also use this press release to announce that I somehow acquired a girlfriend. Her name is Jessica and she is awesome. She is a journalist and is very smart and driven. Unlike pretty much every other girlfriend I've had, she has been genuinely nice and sweet to me. I have no idea why, but then I have no idea why girls like boys at all. Thats a topic for a much longer blog post that I don't have time to write right now.

I have to get ready for Firefox.

21:39 March 3, 2010

I'm sure if its important, I will remember it.  Or forget it, one of the two.

21:37 March 3, 2010

In the future, these words will be looked back on as a thing of the past.

11:50 March 3, 2010

I have a flower that I want to make:

14:03 March 2, 2010

if this post doesn't say its 19:00, then i fixed my timezone issue (okay, i fixed a timezone issue)

19:34 February 28, 2010

On writing: word choice

As I have dissolved further into the mysteries of "subtle science and exact art" that is writing, the more I have appreciated that half of the art is wordcraft. A story is three things at once:

  1. the plot as illuminated by the text
  2. the play of words upon the page
  3. the intention of the author

Often, the plot as laid out and the author's intention are inaccurately conflated (by the author, certainly) and the language of the piece is neglected entirely. But as the written work is but a vehicle for the author's intention, neglect of this crtical piece handicaps the expression of intention as well as making the writing of less beauty.

What a difference a word makes! Consider a sentence of my work:

There is one who carries no shadow.

Now consider the more conventional form changed by one word:

There is one who casts no shadow.

The latter sentence we know how to interpret. There are a myriad of meanings, but it is a classified archetype. The former sentence, of one who carries no shadow, makes us think. What does this mean? The one thing the reader may dismiss is that it does not mean the same as 'casts'.

Another sentence from the same mythology. I originally wrote:

I love one who does not exist.

Kinda provocative. The sentence expresses longing (or regret or wishing for longing) for an absent or non-existant person. Still, compare:

I love one that does not exist.

This sentence denies even the person-ness of the object of longing. Is the speaker in love with the concept of a person? Is the object of longing somehow separate from person-ness? How? Again, the reader's perception is challenged to face the unfamiliar.

Obviously, such tactics should only be used to directly further the expression of intention. Writing is only a matter of dirty tricks, but the craft comes not of knowing them and their effects, but in their application to make manifest a vision.

17:09 February 22, 2010

Dear Sir !

While of course the case of K has passed into legend and lost years, a correspondence still reaches us concerning some fragment of his files. I will endeavor to make some light upon the matters you present in your letter and hope that this will assure some understanding of their place.

Firstly, it must be accepted that the silence of those who may know of where things fall is a depthless mercy to those in these lands. Any sign from such an agent, in fact, would disprove their agency's mastery of clandestine arts, so by remaining in the shadows, it is thus shown that their profoundity is indeed deep. There are some, who by lack of a tangible presence assume an absence, that would make it a matter that, by the universal silence, a lack of a voice unless one foolishly taken on faith. But there is no faith.

In the Castle alone there are uncountable files filled with fragments just as you have found, not only of K, but of an inestimable number of cases where by there was cast some reflection of a light that passed into the night. When these fragments are put together, there can be observed an allusion to shape, or different views of a shape taken at once. But such a notion only lasts for a moment, and then can only be recalled in dreams. Again, such is to be expect. To expect to understand such information all at once with an imperfect mind points to the ignorance of one's insignificance, and again the blessing thereof.

What you say about Confucius is well-taken and points to the truth of the matter, as well as the only solace in life and permanence one might take. Far from being inapplicable philosophic esoterica, it is directly applicable to the realization of the will of the Castle. Becoming untethered from Castle laws does not dissolve one from one's loyalty to the Castle. Only the most uneducated and backwards peasant would make such an association. Even a common laborer, though perhaps without conscious awareness, realizes that even when one circle of the Castle's influence is lifted, there are infinite concentric circles whereby one is defined, one is measured, and the flow of one's thoughts trinkle down from the sky. Of course, as mentioned before, there are uncountable files. So the flow of information is not, nor can be, governed on the basis of the individuality of fragments such as you have written regarding.

We chose to believe that those who remain forever silent and behind doors in some inner chamber that has become lost and unvisited in countless years do cause the microfluctuations observed in information flows. Is the crystallization of a thought the direct analog of the collapse of waves to particles? Is there an economics of information? The first question is unanswerable, the second, undeniable. Though it must be remembered that to point to these questions is not to point to truth, but the reflection of a reflection to an unknown degree. It must also be remembered that the doors to such chambers are not locked. They are merely lost and fallen out of memory. There are occasions, such as the K case, when a chamber long since forgotten is reopened, and then a reflection much nearer the light source is briefly seen. Figments are written of it, and they are pondered over the years, as a subject of mysteries, but in the end it is just as common as the break of moonlight through a gap in the clouds.

To answer your questions as to the shape of the trackless desert, I will draw from other documents. Understandably, you must find, I cannot share the original source materials or any direct copy, but you must take my assurance that my representation of these materials is to the best of my ability of which I assure you I am fully competent. As to the accuracy of the source materials themselves, I can give you no confidence as to their accuracy. I can only say that scholars spend their lives debating such matters, and each draw a different interpretation. There is even a debate, amongst those who take it as an interest, if the scholars even share a language or if their interpretation of the others' verbalization is purely coincidental.

The trackless desert is a literal one. It is called Grynth and spans a continent to the south that fell into the Earth following the Second Cataclysm. The desert was wandered by endless nomads, who rarely made cities or permanent camps, but would each cast their lot in the sands. The sun was given some strange quality by the Grynth sky, perhaps triggered by drinking the water of oases of that land, whereby heat was only felt as a deep but pleasant warming of the body, but that the visions of the mind danced and met physical reality. One could never be sure which shades were real and which were figments until night fell, and the illusions would fall with the rising of the first star. When illusions were shared, travelers wondered if they were visitors of intangible realities or no more realities but the rising of heat distortions from the desert sands.

For K's trek there, I can not give you an ending, but can tell of his first travels, at least addressing a few of the issues you spoke to. After the business at the Castle, K found great respite in Grynth. The matter had made his life a wash; you must understand, what K desired was, in that same clandestine manner, briefly shown, and then gone forever. The experience had changed him, for much as the illusions of Grynth by daytime, something had passed into illusion. It is said that K carried his own water through that land, or woke exclusively by night, to not fall into the illusions. But I do not believe this. I believe that K wandered in the shadow realm while keeping a firm understanding of the material world. There is one fragment that described:

Kain sought and understanding of the shadow realm [of Grynth's day].  He developed, by alchemical means unknown, a manner to discern shades from nomads and scenes of the World.  So doing [he] passed through Grynth, and came to a place where the Ocean and the Shadow realm co-joined.  He wrought a ship and set upon the dark waters.  When the Earth opened [the Cataclysm], the ship fell with the ocean to cthonic depths.

For the last of it, it is hard to say whether this literally came to pass, even if one takes the source documents as accurate accounts. For reasons you must understand, I cannot give you the authors or origins of the documents, and I will remain silent if you meet me with any query there concerning.

In short, I can assure you that Kain's path and the path of Confucius are one. While each trek through the desert is individual to the traveler, each path is of the same sand. While K lost the way back to that inner chamber, neither was he defeated, for in the experience he took wisdom. While he would never be free of the longing for that chance again, he had learned of permanence and took the lesson to heart, for the only doors that are locked are those that face the past. K accepted that that would be forever lost to mystery, and accepted a good life for himself as one might make of a blank canvas. So there is a path between success and failure, and it is that path that binds us.

I do hope that my communique resolves some of your concerns regarding the matter of K. If you remain of wonder, I advise to take mysteries as mysteries. They are fun to ponder in a chair by a fire consuming brandy, but to take each as a mandate to pursuit is a folly best told by Cervantes (with whom, I believe, you are acquainted). When a mystery sweeps one up, then one of a good mind should pursue it with a mind of clarity and with zeal though not lust. When one tries to sweep up a mystery, however, it will quickly remove to unrecoverable distances and become forever closed. For also, see http://k0s.org/stories/figments/guard.txt . The ability to discern between the cases is wisdom.

Franz Mitz

Curator of Documents

2nd Circle, Alexspie Building

The Castle

Regarding: http://sbenthall.net/2010/02/j-l-b-s-response-to-k/ , which is in response to http://k0s.org/stories/figments/castle_fragment.txt

15:29 February 22, 2010

some people have asked about my choice of colors for this website . if you can come up with a darker, harder to read color scheme, i'd love to hear about it ;)

03:40 February 21, 2010

the Stella tribe just wished for independence. There are no beer comquerimg nation-states.

18:31 February 19, 2010

Why am I so easily amused?

From http://k0s.org/dissociate?url=http://k0s.org/comedy/cheapshots.html :

A guy walks into a floating point exception when it encountered a BMW

I'm unofficially a Creationist -- nigh seven feet, shoulders as a favor

18:30 February 18, 2010

From http://k0s.org/dissociate?url=http://k0s.org/bush-speech.txt

The terrorists of liberty here tonight? We will share in success. We will not long enough. The thousands of terror. This is the streets of American people. We will pursue nations from their ethnic background or religious faith. I announce the world. The United States of terrorists are our national anthem playing at the world. Great harm has great country.

Yep, sounds like Bush

18:12 February 18, 2010

being unemployed is exhausting

16:16 February 18, 2010

getting so burnt out on my software portfolio (http://k0s.org/portfolio/software.html); need to distract myself doing something else...but....how?!?

23:23 February 17, 2010

Will this software portfolio never end?


18:44 February 17, 2010

Just moved my blog to a new server. I can still blog from the command line?

11:51 February 16, 2010

Stupid HTML

I have been doing some recently that I haven't done too much in a long time -- writing static HTML pages. I've especially been working on refining my software portfolio, http://k0s.org/portfolio/software.html . I started using a static page because, honestly, I had no idea how things would look ahead of time. A static page gives me the flexibility to present content however I wanted. In other words, the content becomes the layout, and formats emerge that make sense in retrospect.

A pattern did emerge for software projects:

<div id="projectname">
<a name="projectname"></a>
<div class="date">when the project was done</div>
<div class="image">
<img src="/screenshot/of/this/project.png"/>
<h3><a href="#projectname">Project Name</a></h3>
<p>a brief description of this project, highlighting usage</p>
<ul class="resources">
<li><a href="http://k0s.org/hg/">source</a></li>
<li><a href="pypi.python.org">PyPI</a></li>
<li><a href="etc">etc</a></li>

All of the sudden (okay, after lots of tinkering) I have a microformat for a software project "badge". If I wanted to do something dynamic (not on my TODO list for the short term, anyway), I could just keep track of

Not bad, eh?

The point, which I guess is pretty widely known, is that developing static HTML documents gives a forward path to programmatic classification, organization, and presentation. When it is pretty obvious what the model is, it makes more sense to start programmatic, but when the document is used to define the model, starting with a free-form document can be quite useful.

21:54 February 15, 2010

The wind from the future blasts us. It is the harshest wind I have ever felt.

21:20 February 15, 2010

i'm already getting to be nervous again

12:19 February 12, 2010

Another from http://k0s.org/dissociate?url=http://k0s.org/blog

This man with firefox plugin for middleware.

I'll stop now.

11:43 February 12, 2010

From http://k0s.org/dissociate?url=http://k0s.org/blog

What if you can control -- you reading pleasure and <div>s with even a dictatorial asshole.

00:49 February 12, 2010

Fuck this is fun:

J: Aren't you care to me," I flipped the television, channel 3. "You distrbute that my brain. I was a stream. There are you just seeing ... well, I do. He smiles. "You're a field day. The consequences have to digest." I guess everything is. Q: Time travel. You're talking about it? J: Because I'm not dreaming, Jake," I didn't even ask more refined. A man sitting in a big bang. But in your natural curiousity, I say. "Its almost 8:46. Turn on screen. Sure, they're the script that could work, if you describe a smile. "Bullshit," I decided to watch TV?
00:40 February 12, 2010

More fun with the most recent wordstream:

deliver. When the performance pretending to forget what had happened. Sometimes, a lie. Enough of recollection that it and thin they looked on the hot lights scathing the dramatic lines and the page and go back to the quality of who we really were had seen and But under the stage, how empty and when you have written the same don costumes so very real each word was a a bit embarrassed that this is not who we were seen it was act a little truth slips out between when the best we were. By then we could do was as you spoke it. I tried to grip with yourself not only as an actor, but as people have to come to impart to my voice the words were written, how menacing and everyone had slipped out there, and so far away. one another and so that we both knew that we were just acting, that they might face sadness pours out and that's when So much

See http://k0s.org/hg/wordstream/rev/df84e61ae1e4; Far from done

00:01 February 12, 2010

Site Navigation in decoupage HTML

decoupage (http://k0s.org/hg/decoupage) serves index pages for directories in a configurable fashion. What if you want to display the navigation for the directory in an HTML file in the directory?

I did, and I did it this way. My software portfolio and related matters is at http://k0s.org/portfolio/ . I wanted a navigation aid on most of the HTML pages in that directory (obviously not my resume). I did this with jQuery and a few lines of JavaScript.

On each page I wanted in the directory, I added two script links (see the source of, for instance, http://k0s.org/portfolio/software.html ):

<script src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<script src="style.js"></script>

I made a style.js file in the directory which fetches the contents of the index at http://k0s.org/portfolio/ and inject it into the DOM:

$(window).load(function() {
    $("body").prepend('<div id="nav"></div>');
    $("#nav").load("/portfolio/ #listing", function() {
        $("#listing").prepend('<li><a href=".">&uarr;</a></li>');

(From http://k0s.org/portfolio/style.js ). How many lines of JS is that?

Obviously this could and should be made easier to turn off/on for directories. Also obviously the solution is not decoupage specific, but it reinforces two important ideas that make decoupage strong:

  • content as a service
  • ease of constructing a framework suitable to specific needs
14:53 February 10, 2010

Monetization of Content

One of the things I've thought a lot about, which I'll talk about more when I have more time, is the monetization of content on the internet. Traditionally, economics has been based around commodification. To illustrate, a good is a tangible object and a service is a duty performed. However, content has the property that information can be copied, reproduced, altered easily, unlike a traditional good. Ultimately the service of content creation is being paid for. But who pays for this? Traditional approaches have been ad revenue and subscriptions. Into this debate, introduce the idea of freedom (which ultimately means: inherent malleability) of information. If you're selling subscriptions, how do you prevent redistribution? And if you don't, how do you make money?

The only solution I have been able to come up with is socializing content creation. It is a huge part of the economy, so this wouldn't be a small project. However, ultimately Time-Warner, etc, don't care about how they get their money, as long as they get this. An information tax or tariff would be levied, and now the wealth of information is a public good that is paid for in citizenship.

Again, I'm only touching on this issue as a placeholder as I don't have time to properly record my thoughts right now, but in summary:

  • the promise of the internet is that information can be exchanged malleability with a strength built on the interoperability that the free consumption of information mandates
  • monetizing content creation in the traditional way eliminates this freedom of consumption and is therefore destructive to the economy and public good
  • socializing the monetization of content creation is a good alternative to maintaining obsolete information suppression techniques; paths towards this end should be researched with emphasis on growing information wealth and interchange
17:35 February 8, 2010

"The song says 'Put your your hands in the air like you just don't care'....and you were acting like you cared..."

14:16 February 8, 2010

What is it about burning wood and solder that just smells delicious?

12:55 February 8, 2010

CSS Floats: how annoying

Recently, I've been floating things more in CSS than I have previously done and have realized, after all these years, why I find the behaviour counter-intuitive. Two reasons:

  1. CSS floats do not float! Let's say I have a class called date and css as follows: .date { float: right }. I would imagine that in order to float a date next to a heading I would do <h1>My winter vacation</h1><div class="date">January 2010</div>. In other words, I expect the date to float upward and to the right until it finds a place to sit. Wrong! It will float right of the next block level element. In order to do what I want, I have to present the information in the reverse order of what is semantic: <div class="date">January 2010</div><h1>My winter vacation</h1>
  2. CSS floats are not contained When I float a div within another div, I would imagine that there is no way subsequent material can penetrate my div. Not true! If I do <div id="bar"><div class="date">a really long text...</div><h1>Foo</h1></div><div>another div</div>, then if the <div class="date"> is long enough, another div will float along beside it, even though it is contained in the <div id="bar">. I would expect that a div or any container (parent block element) would close itself following all floats and then subsequent block elements would be displayed.

Maybe there is something I'm missing or maybe this is up to the browser. Not sure. In any case, I find that I've consistently had to work around semantics to get a good display, which is something that CSS was supposed to avoid!

11:36 February 5, 2010

Word format resumes: I thought/hoped these went out in the last decade

17:47 February 3, 2010

As a writer, it is no great mystery to me that Kafka would ask to have his unfinished works burnt. To science, a person is just an instance of something called "human beings", and one is what is communicated to humanity. But a writer has a private life, a life that no one else can see, and this is valued. A writer knows permanence, fascinated by it. To be known is to fade. To be unknown is forever.

17:27 February 3, 2010

web frameworks vs. organic construction

I've ranted at various points about why I'm generally dissatisfied with the web frameworks I've used. They're okay. Whether they're worth using for an existing project depends on the project, but just as often not in my experience. My main problem stems from a debate that seems more pervasive that whether web frameworks as we know them are good. This is the debate of problem classification versus problem exploration. Much of Western science in the last several hundred years has been about problem classification. Is suchandsuch a plant or an animal? Can this hypothesis be proven/disproven? Contrast this to art, where value is not found in defining the meaning of the work but its value is found in the expression. Social sciences, such as psychology and software development, fall somewhere in between, though I would contend that they lean erroneously towards the path of problem definition versus art because the methodology of science has been so successful. However, as well told by Kuhn, while the scientific method is extraordinarily successful in testing and refining theories, it does nothing towards finding the Eureka! that is necessary for the development of revolutionary new theories. This, as the inspiration of the artist, remain under the veil of mystery.

What does this have to do with web frameworks? Plenty. My biggest problem with existing web frameworks is their tendency to proscribe a solution rather than giving the tools to build as desire. Take Django, which is these days usually regarded to be the most successful python framework. Django invented its own template system, its own ORM, and has a set of middleware and other utilities that work only with it. This to me is an overspecification of what the problem is and also is disbeneficial in the construction of tools that may be used in a different context. If you're writing code for Django, you're writing code for Django. Which is good if Django matches the problem you're solving, but bad otherwise. Contrast this to the (not wonderful) example of pylons. As a web framework, pylons does very little outside of providing a basis and some commonality of tools to build a web site. This both allows and demands that what the website does be decided upon.

Getting a bit more abstract, I find the same thing asked of website creation. "What does this web site do?" is a deep question, perhaps not universally accessible, and quite frankly language is poor for answering it. So people give examples from tools they know: "It needs a wiki, it needs a blog, it needs a mailing list...". This etc to designing new websites is the explanation of why so much of the internet is bad in the same ways. The root of a website is in a need. If that need is in the province of existing tools, then there is no reason to think outside the box. Slap together your favorite software solution and call it a day (though I'll note, and not idly, that today even a decade after the Golden Age of the web, that there are few softwares that combine a good wiki, mailing list, and blog and even fewer of them that are consumable and easy to deploy). However, for a less conventional website, for a website that wishes for its own life, I would mainly that figuring out what the need for the website actually is is not only important but essential. It is a worthwhile question to answer, not only because it makes life a little deeper place, but because it is imperative to success. Success demands the simple manifestation of an idea. If you're doing something exciting and new, old tools may not cut it.

A website stems from a need. From an engineer's point of view, there are relatively few algorithmic challenges to put together software to satisfy some idea. The process may be time consuming for a large or complex website, but in most cases the basic research into each aspect is already done. However, translating that to implementation within a framework is often a challenge. Even the question "What framework would work best?" can be argued for hours for a large set of problems. Either the framework doesn't have enough of this or it has too much of that. Maybe the problem can be well-translated to something out there, but care must be taken when translating the question "what does this website do?" to "what does this website look like with this framework on?". From a practical point of view, from the point of a builder given a problem, it is much easier to choose a set of tools and start construction than alter the building plans given a prechosen set of tools. This approach will give me and everyone a bigger set of tools and types of websites will take the form of templates to build out from. If you're happy with, say, Django, and argue that this approach will work within Django as well as it will in some greater subset of the software ecosystem, then good, and yes that's true. My point isn't to bash or raise a particular community of software - I am dependent on python and the thought of making any of my tools or patterns available outside of python is mind-boggling to me - its that, for any given set of problems, one can build tools that are interdependent or largely independent, and that interdependent tools are, in a sense, islands.

So why isn't this approach more widely used? One noteworthy reason: its predicate rests upon the community of tool-creation, a community that has always existed in computer science but one that, for obvious reasons, industries have been reluctant in allocating resources to develop. But the more apt reason: because it is hard to decide what is wanted/needed. If you are starting, lets say, a website dedicated to internet dating based on a online art community (one of my desires by the way), it is easy to look at other dating sites and other art sites and combine their functionality in a mish-mash way (chrism notes why this bad in terms of software in a post I partially agree with: http://www.plope.com/Members/chrism/service_process_fascination ). But such a site will be less slick, less pointed than a site which thinks about the question: "what does it mean for a website that encourages dating based on artwork?". Of course parallel efforts should be studied and lessons incorporated, but this does not suffice for realization of the vision.

A good website has a clear vision. Creating a good website is best done when the vision is shared amongst the project manager, developers, and designers. Then you are making something new. Everything else is copy+paste.

16:32 February 3, 2010

I have often heard it asserted that there is/was a conspiracy of american automobile manufacturers to make cars that guzzle gas. Their recent mostly demise tells that either such a conspiracy was widely unsuccessful or that blame lays elsewhere.

14:55 February 3, 2010

which is more worthy of empathy?

... one who loves what shall be doomed

... one who loves what is beyond the grave

of sympathy?

12:39 February 3, 2010

some say that we stride forward through time

but in fact we stand still and time blows through us

16:49 February 1, 2010

regarding my oPad - eg the paper tablet I'm using now - and I am completely not joking, I actually looked for C-x-C-s to save the document

15:51 February 1, 2010

rockin' with my oPad

that's my oldefashioned-Pad, a tablet of 8.5x11" paper

14:05 February 1, 2010

TODO: a big To-Don't

There have been a rather large number of people in my life that genuinely want to help me but they're help consists only of being a nagging TODO list for me. This usually manifests in the form of them asking me: "Have you done XXX yet?", or the even more insulting, "Why haven't you done XXX yet?". The superficial kindness is appreciated but in fact, this serves negative purpose:

  • usually (99+% of the time) I already am planning on doing XXX at some point in time as assessed by the deadline and importance of XXX
  • nagging just makes me resent doing something
  • this behavior presumes that my existing methodology of dealing with things is faulty
  • nagging me just makes me more stressed and disappointed with myself
  • no one who does this bothers to investigate what is on my plate and to help prioritizing it meaningfully; they just want to make sure I do XXX; again this is insulting as it presumes I cannot prioritize and it is also myopic as it doesn't take my whole life into account
  • once I pass a critical level of stress, as nagging often does to me, I become so depressed that I am incapable of doing anything, let alone the TODO item

There are two people that are in the position to give me TODO items: my boss, who pays me for the privilege, and my significant other, which I currently have none.

So, if you want to help me, To-Don't! I have plenty of free work of my own I can give you, my own TODO items. See how fun it is when other people give you TODO items? But unless you're willing to do the leg work, please don't give me "helpful" reminders. Thanks.

10:00 February 1, 2010

Ahoy, Earth-lubbers! Welcome to the S.S. pollution cap and trade program. I be the commander of this vessel, Cap'n Trade!

16:00 January 31, 2010

In other news, the man who assaulted Yo Yo Ma apologized today. He said in the course of his apology, "I asked him his name but when he answered, I thought he was crackin' wise about my mother. I realize that punching a guy is a serious thing, but I'm very protective about my mother." Yo Yo Ma declined to comment.

12:54 January 31, 2010

it must be close to Valentine's day:

if I were president, I'd put you in charge of the "Just us" Department
21:12 January 28, 2010

there are two kinds of people in the world: those that realize there are no original ideas and those that don't

21:12 January 28, 2010

i feel like an ex patriot

16:13 January 28, 2010

RKO ip tricks ... no one got it

20:56 January 27, 2010

new copyrighted term: negative self-esteem

steal it and the Thought Police will get you

20:13 January 27, 2010

Each man's life: a blind bluff against the fatality of the universe. The folly: to recant one's futile stand, not to fall into the ocean, but to burn with shame those memories precious and rare that have been touched with meaning.

11:29 January 27, 2010

generationally displaced

11:37 January 21, 2010

spam isn't just an act of terrorism -- its an act of war

11:01 January 21, 2010

if you're foolish enough to be born, pray that you're not foolish enough to fall in love

17:42 January 20, 2010

i find it funny the hypocrisy concerning people and science. if i said i believed in ghosts, then they'd say i didn't have any proof. but if i said that i've seen no evidence that i'll find someone to love, then they say i'm being negative

11:41 January 20, 2010

there's no conspiracy a good aluminum foil hat doesn't solve

20:54 January 19, 2010

Sometimes when you win you lose or when you lose you lose. I hate that

16:42 January 19, 2010

The Olde Alamanack:

Back in my day, a post request is when you write the county for some new fencing materials to keep your cattle off your neighbor's lawn.

14:20 January 19, 2010
  1. Getting started:

    install_requires = [ ]

  2. Add dependencies:

    install_requires = [ 'SQLObject' ]

  3. Make sure you get the correct version of your dependencies:

    install_requires = [ 'SQLObject>=0.8.4' ]

  4. Work around horrible dependency issues:

    install_requires = [ ] #'SQLObject>0.8.4' ]

14:25 January 18, 2010

The Owner role has the same permissions as the Maintainer role, but it can also assign the Owner role to others.

09:50 January 18, 2010

informationally dense, not presentationally dense

19:14 January 16, 2010

Quotes That Mark Twain Didn't Say

Sometimes nonsense is the only kind of sense you have. - not Mark Twain

19:47 January 15, 2010

the verbose rendition of my life's story

I thought I had something to look forward to. I was wrong.

23:40 January 14, 2010

From http://k0s.org/wordstream/ :

hi how they can all get to another stair well curl ed up in Science ? "I don't work. in science," he would say, ``Let us as one we walk into things? '' ``I can't stay. ", I said. He looked like i was that guy trying to kill his pissing contest.

18:10 January 14, 2010

bah, no one likes me. i'm going home

18:07 January 14, 2010

Apache: no one knows what it does any more, but we're pretty damn sure you need it

16:45 January 14, 2010

there's something about running around a maze shooting monsters that just bores the hell out of me

16:14 January 14, 2010

k0s is getting tired of thinking in hierarchies

15:02 January 14, 2010

i want to make a mushroom pasta dish and name it Morrel Victory

12:24 January 14, 2010

its like that time i found out i was married

12:18 January 14, 2010

jhammel really hates how doing something has become of value

20:17 January 13, 2010

Pondering of the day:

Is the tea party movement related to the tea bagging movement?

16:57 January 12, 2010

how am i supposed to hack python if i cant even monkey-patch None?

16:24 January 12, 2010

its like the blind eating the blind

18:53 January 9, 2010

I like my coffee like I like my women: hot, spilled all over my lap, and leaving stains

22:23 January 8, 2010

We are smart not because we understand things, but because we understand the meaning of things.

17:57 January 8, 2010

Most often, saying that you "play ball" speaks to the underlying truth: that you agree to stab your friends and allies in the back for any substantive gain, and, in fact, and ideological unity against loyalty..

16:59 January 8, 2010

response to http://www.plope.com/Members/chrism/service_process_fascination :

(sorry, i'm not going to log in to comment)

i understand what chrism is meaning to say, but he's not very clear he's actually talking about two things as if they were one thing the thing he means to be talking about is e.g. our opencore architecture.

but he makes it sound like any bundling of services together is

"bad", which i disagree with.

I do agree that going to a service architecture requires some thought, and his slight against "best of breed" is well appreciated. Throwing a bunch of best of breed softwares in a pot is a recipe for disaster, not a well architected consolidation. So the most important requirement for building a "service architecture" (I hate the name, too, because its ceased to mean what it means) is to think things out. I don't know why people resist this nowadays. They call it top-down design in much the same way that you would say "bleeding-heart liberal". I'm just talking about giving things some thought before you commit all your resources to a not-well-thought-out architecture hopefully that the problems can be solved by "winging it". Think before you leap.

Outside of this big one, there are a few conditions that are necessary but not sufficient for a service architecture, in my opinion:

  1. The services should serve unique needs. Don't have two (exposed) DB servers, tag engines, blog engines, etc. If one isn't sufficient, you're doing something wrong
  2. The services should really be services. In other words, if a web service returns some pretty readable JSON, that's a good thing. If you have to scrape HTML and then use that to write other HTML, that's a bad thing. A service, to me, implies something that does one thing well. If you can't just get to the one thing you care about, you're doing it wrong
  3. The services should communicate using some known protocol. I have never heard of a service architecture work where the programmers tried to invent a microformat and then tried to use it. Its a recipe for disaster. The worst part: its pretend decoupling. You pretend that your code is not incestuous, because how could it be? you have a service architecture. But it really is. If you need your app to do something that your microformat doesn't provide, you add it to the microformat. This leads to bad apps and bad microformats. Its like pretending you're not committing incest by making your cousin wear a mask
  4. Don't start without a protocol. Several service architectures, including at least one I've been involved in, started off with lovely diagrams of all of these best of breed software with arrows drawn between them. DO NOT PRETEND YOU CAN IGNORE WHAT GOES IN THOSE ARROWS! I did. And the results were horrible. Since the point of a service architecture is communication, make sure that the services can meaningfully communicate. Oh, I'm sorry, is this too much top-down design?

Optionally, but most probably, you will probably want a presentation layer that meaningfully presents the data from the services. E.g. if your services return RSS, but you have a HTML web service, you will need to present the RSS to the user in a meaningful way. The easiest way to not fuck up a service architecture is to have back-end services which do not talk to each other and a presentation layer which is what the client sees. If you want to expose the back end services, you can do that too. Another great example: snippets! If you have services that return HTML snippets, these are easy and cheap to include. If they return full, robust web-pages, then you have to parse them (expensive), transform them most likely, and reassemble. Bad idea.

As an aside, but one that I'm very interested in, I appreciate the snippet and presentation approach. Let me explain in passing what I mean. And if you hate it, well, I don't care. You have a web application/service. You can deploy it by itself and it serves, well, web pages. But it also can serve snippets of web pages. This means that its easy to use as a service too.

11:36 January 7, 2010

Harder math CAPTCHAs:

Prove Fermat's last theorem: <textarea></textarea>
09:55 January 7, 2010

The Wayshaper Forum

23:38 January 6, 2010

Phrase actually heard on the radio:

...the Nigerian student with explosives in his underpants...

I mean, okay, yeah, its serious. And its an apt description. But....wait, I can't even finish that sentence

23:19 January 6, 2010

specifically vague

21:05 January 6, 2010

What, you think you're better than me?  Just because you don't have an inferiority complex?

20:54 January 6, 2010

...so then he said...

``blog blog blog blog blog

all you guys ever do is blog`` - egg

20:09 January 6, 2010

The Internet: turning your dreams for a better life into dreams for a better virtual life

20:08 January 6, 2010

[in a library]

Librarian: can I help you?

Guy: yeah, I'm trying to look something up in this encyclopedia, and I can't find any sort of so called "blog" for Richard Dawson

Librarian: what you need is the internet

Guy; the Internet, eh? Well I don't know much about computers but I'll give it a shot.

[1 hour later]

Librarian: I see you're downloading some porn, you have a flash game going, and I'm pretty sure none of those things you're tweeting are real words. Did you find that blog post you're looking for?

Guy: Woah, need a little more insulation from meatspace here right now. Hold on while I frag this noob

The Internet: turning your dreams for a better life into dreams for a better virtual life

19:32 January 6, 2010

meaning is imbued

13:28 January 6, 2010

is there no problem that can't be solved by amputation?

13:26 January 6, 2010

I like my jokes not be jokes.  I also mostly like my jokes not to be funny. -- egg

12:39 January 6, 2010

Definition: web portal (n):

a page you keep throwing random crap on until there's no more room on the page

23:06 January 5, 2010

In the future, who knows what computing will bring? We will have computers as big as today's largest skyscrapers, with twice the computing power of a modern desktop.

21:13 January 5, 2010

web presence and service architecture

The reality of today's web as the proliferation of web presence. People have accounts on several websites (see http://k0s.org/ extrinsic section, as well as k0s.org itself). Where websites offer differing services (blog, galleries, other documents), they are complimentary, and other services (for instance, http://melkjug.org for the aggregation and filtering of microfeeds). However, in many cases, the reason to be on a website necessitates the duplication of content. For instance, I have an account at http://writing.com ( http://writing.com/authors/k0scist ), and I enjoy it greatly. For the first time, really, I can talk to a wide audience about something I love -- writing fiction! I've had some great interactions with other authors there, and my stories get great exposure by being there. But their canonical home is my computer ( http://k0s.org/stories ). So I end up copy + pasting (I wish writing.com had an upload form and formatted my text better and make me a cup of coffee...) my stories from where I edit them to writing.com. Likewise for flickr and anywhere I want to host my images.

This is the problem of content duplication. You want to host documents on multiple websites and it'd be really nice for them not to get out of sync (and it'd be even nicer if you didn't have to sync them manually). While this problem is effectively solved for blogs and other discussion-type feeds (see again http://melkjug.org), for canonical documents, the other major type of content on the, there isn't a solution across much of the web.

Its really not a hard problem. Effectively, all you do is allow multiple types of input. For instance, in any case (image, text, HTML, etc) where you allow content input. For text you have a textarea (or WYSIWYG equivalent thereof), a file upload widget, or a text input you point to a URL. Instead of storing the document locally, except as a cached copy, you fetch the content from the URL if it has been modified. Of course, the data still passes through whatever processes sanify input. For pictures, you don't have the textarea, but the rest is the same. If the pictures were displayed unmodified, you wouldn't even have to store the data.

While I can imagine even cooler systems you could build on top of this (web-wide indexes of content with associated metadata, multiplexed desktop webpublishing, an interwikipedia, a vastly connected publishing world), if just this piece became commonplace, this would change the way we could deal with data. Your data would become infinitely portable. Since all you store is references to the data, you could fix one reference and the rest would point to that if you decided to move the canonical location.

All I really know is that save me a lot of time. There's this internet thing, you know? And I tend to spend some time on it. And the more time I can avoid copy + pasting things or uploading and manually syncing files, the happier I am.

11:00 January 5, 2010

putting the we back in web

10:40 January 5, 2010

angst: its not just for teenagers anymore

13:09 January 4, 2010

I refuse to believe there is any problem that can't be solved by killing children.

15:11 January 3, 2010

what's the point of hanging out if you can't blog about it?

22:10 January 2, 2010

http://k0s.org/blog/2010 the future is here

22:57 January 1, 2010

More associative writing from http://k0s.org/wordstream/:

I didn't know the name guessing that the world motionless, in time would encounter another world peeled away the darkness of my universe. Automatic writing is very slowly taking away my mind. Why don't like everyone in the world ? A corpus of lies i said, ``that is not my mind. '' And she began to agree with me regarding my insanity.

20:43 January 1, 2010


its pretty simple: you type in the textarea and from a corpus, the app will pop a response to your last word on the line once you press enter, then you keep typing. Its a simple word association. (if it doesn't have an association for the last word, then it won't do anything). It will also take what you type and put it back in the corpus if you enter more than two words.

Make sure you have the trailing slash, or it will not be able to do the AJAX calls!

For the command line program, which is exactly the same, you run wordstream foo.txt and it will build a corpus from foo.txt. Then you type and it talks back to you.

Okay, this is pretty simple now, but I can think of a few applications:
  • building a thesaurus
  • given words from The Internet, you can display the words plus where they come from
17:52 January 1, 2010

Interaction with my newest program, wordstream:

wordstream ~/docs/stories/*.txt
HI how are you do not fix everything locked inside himself with a cruel glimpse inside me. Another time they came home and the dog had puppies. Everyone loves puppies he said. "Why?" "why not?" "That's a funny way home " she said. I don't look at the mirror staring back at me. But I do any thing you ask. Never let them tell his mother that twisted faery tale about a dog who walked on one leg.

I'll try to add this to my website soon!

15:04 January 1, 2010

song of the day: "Dark Horse", by George Harrison. I'm loving it.

23:01 December 31, 2009

its the new flavor of delicious

22:03 December 31, 2009

i'm going to fly off into the ethersphere. already i see the chromatic trails of thoughts pouring from my brain, spilling into the air. and yet i've hardly ingested any chemicals. someday i will follow the patterns and see where they lead.

i feel ancient. i'm 32, and yet when i talk about KMFDM or NIN, they are but light bits of nostalgia....some silly old grandpa music that was popular "back in the day". pathetic. i guess i missed my chance at life, at love. it seems like all the dark depressed girls in high school grew up to find mediocre boyfriends that would domesticate them. and i'm out of the loop. why is it so hard for me to act surprised? i guess there are worse things than waiting out life, studying telepathy only from afar, and dying cold and alone without anyone sharing my secrets. but perhaps not less meaningless. who would have thought that sex and love would mix anyway?

fuck new years eve. i hope that in 2010 i can say, unlike the 2009....2008..., that it has not been the hardest year in my life

17:36 December 30, 2009

> python difficult_install.py

Usage: difficult_install.py [options]

difficult_install.py: error: you didnt say please

21:39 December 29, 2009

When all you do is make hammers, everything looks like a hammer factory.

18:42 December 29, 2009

I'd rather have a stupid system that works than an elegant system that doesn't

14:01 December 29, 2009

The Problem a CMS Doesn't Solve

TTW content management is flaunted by the difficulty of not having a filesystem. An OS does a fairly good job of managing content -- that is to say files -- and has grown a large number of tools to this end. To do so through the web in a way ancillary to the OS necessitates building a number of tools (a file manager, for one) that are already part of the OS. This is the problem of a CMS: not having a filesystem to organize content. Its a non problem since computers already have filesystems.

What a OS and filesystem do not do, which a CMS does do, is provide views into the content. This is not a hard problem, though. Take apache. Apache does many things, but one thing it does well is serving static files. For directories, it is more clever: apache generates an index of the content. If you provide an index.html file, it will serve that instead of generating the index itself.

But what if you want the best of both worlds? What if you want a dynamic index of content but that you can control how it is presented?

I don't have tons of content (read: files) on http://k0s.org, but I do have enough that I don't want to edit HTML everyvtime I add or move a file. Also, I have picture galleries.

I wrote découpage to provide views into the filesystem. Specifically, it provides index pages that are configurable with customizable genshi (http://genshi.edgewall.org) templates and pluggable formatters that manipulate the basic set of data to be provided to the templates. The formatters may be applied in a specified order so that you can build a tool chain to suit your needs on a per-directory basis. With this basic set of tools you can build customized lists of links, photo galleries, RSS feeds, etc. And since the default configuration (editable in .ini files stored globally or in the served directories) uses an index.html file found in the directory, migration from a static apache site is trivial.

The other half of the equation are the files themselves. If I'm looking at, say, a text file in a markdown dialect, I may want to display it as HTML. Or if I have graphviz chart sources, I may want to display the chart images. So in addition to découpage, I plan to write a content-based dispatcher to this end.

These two pieces do not, by themselves, replace a CMS. What about work flow? what about indexing? What about user accounts? On the other hand, the great thing about paste and WSGI is that if you write intention-based software that is well-behaved, you can often (sometimes even seamlessly) combine various software components to make a complete website (and here's the important point) without crippling the functionality of any piece of software or even realizing your end objective! Its not always true, but generally a good smell test is componentization: if your software doesn't play nice with software that does play nicely, or if your software does things beyond its scope, then it's...well I hate to use the word "wrong", but it probably has internal problems too.

I didn't understand what a CMS did for a long time. The answer I've usually gotten is, "It manages content." Okay, but what does that mean? "Well, it means a bunch of different things." For some time I've suspected that the problem that a CMS solves was an ill-framed one. Then it hit me: it is organizing content! Which is really the same problem as organizing files. The views are nice. Workflow is lovely. But ultimately, if I want a robust way of organizing lots of very different kinds of data, I'm not going to start writing a new tool to do this. I'm going to use the one(s) my computer already has.

Decoupage is particularly suited for personal websites and websites where the files, as content, are more important than their presentation. What I mean by this is, if I write a story and my website goes down, I'm annoyed but I still have my story. That's the important thing. Outside of the benefit of getting hosting for free, I also get the benefit that organizing my files and organizing my website are accomplished at the same time. If your files are your canonical documents, who wants to deal with the pain of uploading them or, god forbid, cut + pasting them on to a website? Then you have to edit in two places, move around in two places. Its just a pain. I've had a fully decoupaged/montaged (http://k0s.org/hg/montage) website for a week. I'm loving it and am looking forward to the day I can work on it more.

10:03 December 29, 2009

Franz Castle's "The Kafka"

00:21 December 29, 2009

Finished uploading my figments to http://writing.com/authors/k0scist (that's right, I'm not above plugging at both ends, sexual metaphors aside). Next up....revisiting that old monster House Vey (http://k0s.org/stories/housevey/housevey.txt). Then, maybe I'll post a few poems...but soon enough I'll have no excuse not to work on the Kain story.

20:40 December 28, 2009

http://k0s.org/blog/20091228202849 : I was so affected I had to write in: http://www.onpointradio.org/2009/12/believing-the-unbelievable/comment-page-1#comment-37869

20:36 December 28, 2009

http://k0s.org/blog/20091228202849 : these men have no imagination. They're talking about the ship of Theseus as if there was some sort of ethereal essence to the ship. No! How can you interpret that so badly?!? The concept "ship" that we attribute to it already points to the idea of the thing! Its not of some magical substrate, it is the concept whereby we generalize the pattern, just as we attribute the non-observable "self" we attribute our identities. And they don't even understand nature vs. nurture! They attribute the fact [Western] children believe that plants are created as a factor of NATURE, not the fact that they are immersed in a creationist culture! And why would someone want to put on Jeffrey Dahmer's raincoat or anyone else's raincoat for that matter? Is this like the people that insist you taste their food? "Here, try some of my pie!" "Here's Jeffrey Dahmer's raincoat, do you want to put it on?"

20:28 December 28, 2009

This man is talking about things and they don't make any sense and I don't know whether to cry or laugh.

20:17 December 28, 2009

If you were alone in a room with Jeffrey Dahmer's raincoat, would *you* put it on?

20:12 December 28, 2009

The paranormal can exist only to the level that the net empirical evidence for it remains equivocal.

20:02 December 28, 2009

most research and thought into "what we are"/"the nature of human behaviour" fails because it assumes the flawed fundamental: "identity"

10:51 December 28, 2009

By making such a horrible operating system and basically not knowing what they were doing, M$ actually did something positive. Since POSIX became a real standard for desktops (only windows shying away, and even it bashfully), cross-platform programming got cleaned up alot. Don't believe me? Look at old build scripts that have to work on AIX, Solaris, etc etc. Each POSIX, but also completely incompatible.

22:10 December 27, 2009

The Old Factory Sense

or...Where the hell do you put your factories?

WSGI an paste (http://pythonpaste.org) are excellent frameworks for creating web applications. However, when bundling together a real website, you generally have a non-trivial factory. I'm not sure where to put these! They need to be a "real" python package as the paste .ini file needs a dotted name to resolve. So you have to put them somewhere. But where? Most web apps have one or more paste .ini files that will let you use the app out of the box. But while it is nice behaviour to bundle several example factories with your app, anyone that is doing "some serious plumbing" is going to need custom factories.

So what to do? Well, I'm still flumoxed by the question of where you put them. I suppose the obvious answer is to make a python package for each website and put it under version control -- private version control, perhaps, if you have implementation detail in your factory that give away server secrets (if you bundle the .ini files there as well, you're almost guaranteed to if you have auth). So version the factories, maybe privately. Version the .ini files, probably privately.

Assuming I buy that -- I'm still disturbed by the fact that I don't have, nor do I especially want, a private repository as such, at least under I have time to work on SilverMirror (http://k0s.org/hg/silvermirror) which is right now not at all what I want to work on -- then I have another problem. Let's say I'm making a new website. And let's say I want such and such app mounted at such and such point, and I want auth in front of everything, and I want my uploader middleware, etc. I can take another similar factory (assuming I have one) and tweak it until it works. But isn't there a more explicit way?

What I want is a factory factory -- something that generates paster factories from any number of middleware and from your instructions creates a sane recipe. Too meta? I'm thinking of somehow leveraging pastescript templates for this purpose, though if you're thinking of asking me how, I can't quite give you an answer. Though I can give you this:

create-paster-factory -F auth,logging_middleware /hg=hgpaste:HgPaste /=decoupage.web:Decoupage -F uploader.dispatcher.Dispatcher /blog=bitsyblog.bitsyblog:BitsierBlog -F commenting_middleware
This rather crazy command says:
  1. make a composite app
  2. apply auth + logging_middleware to everything
  3. serve HgPaste at /hg
  4. serve decoupage at / and apply uploader middleware to it
  5. serve bitsyblog at /blog and apply commenting_middleware to it

How does all this work? How do you get the needed configuration to configure these properly? What problem does this solve? To be honest, I'm not sure the answer to any of these questions right now. I think I've written to much this weekend.

14:15 December 27, 2009

By the time you need pagination, you probably have too many items to keep in your head anyway

14:14 December 27, 2009

forget that neo- stuff, give me some good olde-fashioned sporin

11:17 December 27, 2009

fuck a prarie home companion; Garrison Keillor, by his presence on both consumer bands, has forced me to listen to industrial music about S+M (NIN, "twist")

03:02 December 27, 2009

Elegand and intelligent! - w4m - 24

14:28 December 26, 2009

things are getting to be Kafkaesque

13:07 December 26, 2009

does it work?

12:02 December 25, 2009

Did a pretty massive upgrade to my website yesterday, early this morning: http://k0s.org ; this blog isn't affected, but everything else is. Will endeavor to do more in the future. Its a relief to have this work started. You can already see a hint of where this is going at http://k0s.org/poems/ . Just by replacing the static page with a decoupage page (decoupage is software I'm writing, see http://pypi.python.org/pypi/decoupage/), many more poems display. All of the ones that ended in .txt were in the directory and technically on the web, but the static page didn't link to them.

Yes, I realize that I'm using, what, basically 10 year old techniques. The reason is mostly because he problem that a CMS solves is not having a filesystem. The problem that decoupage aims to solve (well, it an supporting software) is providing views to the filesystem.

23:07 December 23, 2009

a story i just wrote about something that happened a decade ago:


22:36 December 23, 2009

Its interesting how after you become an idiom you behave like an idiot

14:12 December 23, 2009

i wish i could name a function .o in python so I could call it like:

.o("what was i thinking?")
22:22 December 22, 2009

New Idea: Fantasy Penpals

I like email. If a person is fun to read and write to, emails can be one of the most fun things in the world. It combines my love of writing with my need for someone to talk to. Having a penpal is fun, but....well, its expository. Because you're writing about yourself. I don't mind so much; being eternally shy, and always feeling like my most inner thoughts are on display to the world, deep writing about myself doesn't bother me so much. But seem people like that extra level of anonymity.

So I came up with idea today: Fantasy Penpals(*). Instead of writing as yourself, you have a penpal relationship where you write as a fictitious personality. You affect to be, say, the Prince of Wales, and your penpal pretends to be, say, the PM. Or you pretend to be, say, a field primate researcher in the heart of the Congo and the other person pretends to be the department head of a major university. The possibilities are endless!

I think this is cool because:

  • its collaborative and interactive fiction
  • its like an RPG but without any of the (explicit) rules

Okay, only two bullet points. But still! If anyone is interested, please mail k0scist@gmail.com and mention this post

(*) patent pending; oh, its pending alright!

21:06 December 22, 2009

It has been the struggle of my life to want to touch and to be touched and to have to learn that I can look, but that reaching out my hand any further is only an invitation to be hurt.

21:01 December 22, 2009

Is Matt Groening taken to writing comedy in the form of craigslist ads now?:

im a sexy woman just looking for sex - w4m - 23 - (Lockwood)
20:55 December 22, 2009

Dammit. I just missed a big one. Like one of those movies where the pictures freeze and enters another actor out of time who makes the "ssh!" expression with his fingers and lips and changes something, ever so subtly and in a slightly impossible way, and by you seeing it you get this knowledge. But you'll never be able to capture it or to prove it. It is a free gift, and yet you can never tell where you got it from.

20:55 December 22, 2009

Reality is weird and spongy.

19:33 December 22, 2009

i'm hoping that sufficient time browsing craigslist will cure me of any desire for companionship

11:27 December 22, 2009

Sometimes I like adding snarky definitions to wiktionary

sarcastic(adj): gee, I don't know what sarcastic means
22:52 December 21, 2009

new term: cryptomythic

its mine, and is now copyrighted via my mind (for those that don't know, every idea I think of is copyrighted or patented instantly; that, by the way, is also a patented idea)

21:32 December 21, 2009

the danger of telepathy is that you might fly out with your thoughts

15:57 December 21, 2009

I hate being held hostage by machines

15:07 December 21, 2009

would you trade your job for a job picking up a stream of pennies that were one meter apart?

14:21 December 21, 2009

pay no attention to the man behind the man behind the curtain

12:16 December 21, 2009

Facts are | like grammar: | only amusing | when cut.

09:16 December 21, 2009

<theory type="conspiracy"> I find it very interesting that the media would characterize free radicals as a health threat </theory>

18:01 December 20, 2009

The only requirement of life is that you must drink deep of her waters

Thought made manifest by word, word made manifest by deed, deeds leading to actions ever rising

17:59 December 20, 2009

We experience conciousness as a drop of water experiences the Ocean

To love something is to become it. Likewise, to hate.

17:53 December 20, 2009

The city flowing down the river

Looking at things from a revolutionary point of view, the world is in a state of depression, rife with violence and suffering against reason. But looking at things from an evolutionary point of view, things are fine; this is just one of those things that happens.

There is a dragonfly sitting on a rock

17:51 December 20, 2009

Coffee + balsamic vinegar = chocolate

17:50 December 20, 2009

Ode to Women

You think youre so cute with your matching X chromosomes and internal genitelia so delicately tucked away. It disgusts me! So much ado over one left-over hole. I suppose it makes you squirm with delight that I must write these words in the sand to satisfy my man rage -- my monkey ego -- simply because natural selection has not afforded me carnal placation instead.

But I say, nuts to you! I'm tired of your so-called civilization anyway. Why do you have to be so pretty and so difficult?

17:47 December 20, 2009

Abeey seedy eihyef jee. Aitchai jakae elimino pee. Cuewhar ass. Teehughvee. Dubyex wai'in zee.

17:46 December 20, 2009

Washington heights has been so gray. Covered in fog carrying cool moisture from the Hudson, I wish I could wear such as my funeral shroud. I play Tori Amos over and over again, wishing to be trapped in the music forever. Only "not the red baron" and "horses" are bleak enough to soften my emptiness.

17:44 December 20, 2009

Problems as books

The phrase physically beautiful is meaningless as it incorrectly ascribes beauty as being inherent in the subject instead of the observor

17:43 December 20, 2009

To the scantest light of Monday morn, the child awakens to find their life as the one-eyed god just a dream.

17:42 December 20, 2009

The most wretched loneliness is to open one's heart and have it seen but not touched

17:41 December 20, 2009

Its contemptable how when one is in love the lyrics even to the most vaccuous songs of affection raise such tender feelings

17:40 December 20, 2009

Amateurs in the game of love are not to be pitied. It is the professionals whose lives drag through infinite sadness.

Without return, loving you will mean falling asleep to tears every night that will only diminish with my life force.

17:36 December 20, 2009

Infinite dimensional space is the space that defines the fractal, yet it is not so that the fractal defines its background any more than it is sensical to say that infinity is bounded by the finite

17:25 December 20, 2009

How deep the circle of lies when to act genuine becomes hypocrisy

17:23 December 20, 2009

What meaning can I now take in life? When you can stand where I stand and know that that question has no answer, then will you feel my emptiness. and all will fall through your fingers like light

17:21 December 20, 2009

Why I am marginalized

[This is a fragment I wrote in April 2009. Its unfinished, but I don't plan on finishing anytime soon, so I'll put up what I have]

I'm writing this on a subway car because its the only time I have to write. Amazingly, I got a seat, so I guess its my lucky day. It gives me a few moments to reflect upon why I am in an unfavorable position while others of less talent and who care less for the common good are in better positions. It mostly comes down to that a situation has been perpetuated such that it becomes the responsibility of the individual to feed on the scraps of the more fortunate.

Im not mentally well. I beat myself. I am unable to cope with even simple social situations like speaking with store clerks or asking for help after a lifetime of teasing of my social inadequacies. I make no claims that my situation is worse than uncountable others. But it is such that any societal responsibility for my welfare is absolved. I could go to a psychologist, but this is on my time with money out of my pocket. And were I to take this initiative, I have no doubt that I would find the same response that psychologists always retort: a program of self-seeking whereby their usefulness is assured, but which incurs no responsibility and the benefits I should reap would be none. But I diverge from the point. Society has prescribed a solution. It matters not if the prescription is utterly ineffectuve. The problem has been determined to fit in a neat little box and it is known what the prescription for this box is. If I do not get better, it is because I am not trying hard enough, or behaving as I am required to receive my medication, or perhaps I am one of those rare hopeless cases where society is powerless to help despite how hard it tries. But in the end, responsibility is absolved. My choices are to have my life verbosely controlled or to insist I am well enough to hold a job and become dependent on a corporate benefactor for my livelihood. The notion that I might have some actionable idea of how I could work that would be beneficial to myself and society is unthinkable and cannot be entertained.

I also made the mistake of acknowledging that I have some talent. Not much, mind you, just bits and pieces here and there, but enough such that I have to be managed. Talent without constraint is difficult to control, and for that reason, and for greed, it must be channeled, boxed, and marginalized. If I had no talent but somehow did the right thing and fumbled my way through university, there would be no reason to exploit me as I would be at the mercy of the corporate empire.

17:18 December 20, 2009

The Quality of Beauty

The beauty of a woman shines through two facets. On one side, there is elegance, that face of aesthetic perfection where the visage of a woman is likened unto a crystal or a star. An elegant woman carries herself as an actress playing someone more than can be realized without the backdrop of screen. For without this suspension of disbelief, elegance becomes too simple, too insubstantial to be worthy of reflection. Elegance is proud, high, cold, and aloof, and disappears before one can touch it.

The other face of beauty I'll call cuteness, though it is only an appropriation of the word. By which I speak of the beauty of a girl's innermost thoughts as they shine through the mask which all affect, most often unbidden, her rolly eyes, a blush, the awkwardness of a smile, the way she blinks a little too often when she is nervous. None of these have a place in depictions of angels, yet they are endearing for they are tokens emphasizing the beauty of being a creature born of the earth rather than of stars. Cuteness is intimate, vulnerable, and warm. Cuteness is vulnerable because aspects of cuteness appeal only to a few like a secret shared. Where all agree that a woman is elegant, even if her particular aesthetic is not to personal taste, a girl who is overly petite or too pale appeals to those select few who find these traits endearing but is open to redicule to those who may say that by deviation from the archetype of what a girl should like that these traces of personality make her ugly. The geatest cooption of cuteness is when quirks once looked on as a secret bond shared between the like-minded become washed into a new standard of beauty. Once it was that girls who wore glasses were undesirable save for the few boys who, in a secret told only closest friends almost apologetically, are now chic.

Cuteness without elegance is homely. Elegance without cuteness is shallow.

17:18 December 20, 2009

I've been going through my notes from the last year and am putting them in my blog, in case readers (wait, do I have those?) are curious about the out-of-order entries I've been posting of late, and will be posting in the near-future. The short story is, for those that don't know, I didn't have a working computer (and hence, blog) for almost a year, so I used my iPhone as substitute storage. Now I'm throwing them all on the web for your reading pleasure and so I can find the motherfuckers.

11:31 December 16, 2009

Three Steps Towards Making Apache Not Suck

1. Replace Apache configuration with an XML language. Apache configuration is what I like to call CML: Crap Markup Language. Not only isn't it and sort of standard, so you can't use e.g. lxml to interact with it, Apache doesn't provide any API to read/write it. So its back to the parsing of the '80s.

2. Add the ability to insert/modify configuration into Apache at run-time. Systems programs should be able to modify the Apache environment while running. For instance, I've just modified a client program which requires modification of Apache configuration. Instead of having to edit the configuration by hand and restart apache, I now can read the Apache config (since its XML), modify it, and update the environment dynamically.

  1. Make the XML configuration language sane.
09:13 December 16, 2009

"You Don't Know Dick: the untold story of Cheney's life"

20:50 December 15, 2009

"The fact that the US is not Europe provides some inoculation against home-grown terrorists..."

Aren't those words people will look back in ten years and have a sardonic laugh at.

19:09 December 15, 2009

Hungry animals will fight tooth and nail over a scrap of food. One who puts ideas before cravings will laugh at those who discard their selves for the illusion of sustenance.

On hearing this

19:06 December 15, 2009

This week, none of us exists

16:51 December 15, 2009

For God so hated the world that unto it was given his only begotten Daughter so that humanity might know the pain of immaculate deprivation.

16:23 December 15, 2009

using disincentives: The Wall of Shame

everytime someone broke the rule and something bad happened, they would add their signature to the "I did this even though the sign said not to"

once we get standards and practices, we should start making those lists first, you get people to either read them or say they read them i don't care which second, if people break the rules and get away with it, then fine, no one cares but if they break the rules and something bad happens, then they have to sign the Wall of Shame

"I decided that I was better than other people and didn't need to follow the rules, but this caused problems for other people and i realize now that this was a bad thing"
13:10 December 15, 2009

...lest my shadow fall upon one so illustrious

02:15 December 15, 2009

Craigslist is fake, all of my chances were fake, the world is fake.

Now I look at my cat and wonder if she is just some spambot trying to pull a scam

21:15 December 14, 2009

Burroughs on Twitter

What Old Bull Lee had to say about twitter in 1961:

Posted everywhere on street corners the idiot irresponsibles twitter supersonic approval, repeating slogans, giggling, dancing, masturbating out windows, making machine-gun noises and police whistles

What can I say, the man was a fucking prophet

21:08 December 14, 2009

I cannot believe I am the only one burning in karma

21:06 December 14, 2009

God is a giant dog chasing its own tail. Consciousness is undifferentiated. Profound is a word that has meaning to three-dimensional man-apes, but it has no meaning to god.

21:04 December 14, 2009

i 1 2 d8 a vampire!

So many girls (well, probably some spambots too, but maybe mostly people) put up ads saying they want to date vampires or elves or other mythological creatures. I mean, sure, its a romantic notion, once you get past the notion that puttanesca just isn't the same without garlic. But some things to think about:

1. The only real kind of vampire is the psychic kind, a la Kafka's confidence trickster. And trust me, it ain't romantic.

2. If vampires did exist, they would work exactly like how they do in JTHM. Dereferencing, they would be horrible people. Tales of flesh and blood are so much grimier and more tangled than those born of mystique.

3. If anyone claims to be like a vampire, they probably are one of these horrible people. They're adhering to an archetype not for the sake of art, but because they want to charm the pants off of you. Firstly, it won't be blood, and secondly, it won't be them doing the sucking.

4. ...and most important... People get these romantic notions in their head from movies that its cool to be different. People watch Johnny Depp in Edward Scissorhands (sorry, I'd make a Twilight reference but I haven't seen the movie) and go, "Oh, he's so cute and sweet and tormented!" But in real life, girls treat shy, awkard, different, touched boys like shit. This has been my life! And its horrible! And the shy, awkward sweet boys become bitter, cynical jaded boys patching together lonely existence on tears reflecting the blush kisses of others and die inside, in that way that immortal things can die, from being alone. That might be a fun movie too, but not exactly romantic...."The Transmogrification of Being"....any takers?

20:17 December 14, 2009

i forgot how awesome Skinny Puppy's "The Process" was. its the closest I've come to a musical orgasm in a long time

13:05 December 14, 2009

Another obviously very real reply to one of my craigslist posts. She does sound like the kind of girl that would enjoy brain tanks and abominations (I guess most girls do):


i just ran across your personals ad brain tanks, thought recorders, and other abominations - 32 (Inwood / Wash Hts)

I recently moved to newyork and havent came across any hot men yet.

I'm just off to the Gym for a workout so if you need to discover out more about me send me an e-mail on my private address :) pricekirsty25+newyork@googlemail.com

right looking forward to your mail and if i like what i see then i will send you my photos.



16:57 December 13, 2009

The war is over. We lost. The spooky part is I'm not sure if anyone won.

So what happened?

Explosive decompression. It continues to happen which, by its nature, means it will continue to happen at a quickening pace.

I was hoping during the early part, when the proverbial nozzle was choked and things weren't too wacky yet we could pick up some points, enough to help us have a comfortable existence. That didn't happen. In fact, it didn't seem to happen for anyone, as best I can tell, which is both the good news and the bad news. This means that everyone's systems seem to ne degenerating at the same rate. Global social anarchy seems possible in ten years, though I'd guess more like twenty.

Isn't this business as usual?

In terms of humanity, most assuredly not. Resources are finite and were nearing the end of several key ones, like the planet. Additionally, we are socially fragmented. As my best case study, look at the conservative movements. They have traditionally been good at avoiding fragmentation, but even they can't stick together.

Assuming I believe you...what then?

It will be an uphill battle at this point, which is something were familiar with. And its one there is no choice but to try our best, unless were content with a quick slide into entropy

So relax

Keep your heads

And let's not be any stupider than we have been. No excuses

09:31 December 13, 2009

If there are no pretty girls for me, then what can I hope? What pretensions of brain tanks and telepathy can equal their manifestation?

All are equal, all are bound to choose the nature of their doom. Civility is declared by those that choose wisely.

All are destroyed. I work these words because I am trapped on the subway, a miracle of aluminum and plexiglass sinking back to antiquity. All are destroyed. Nihilism cannot compare with reality.

08:52 December 13, 2009

Two mountain bridges passed over and under beneath clouds. On the upper bridge, a man passed in the evening. The lower bridge is swept in the morning.

08:51 December 13, 2009

There is the hope of the star at dawn and wishing to see what lies behind the star. There is the wisdom of the star as it grows red in ascendence, and there is the wisdom of the star as it grows indigo in declination. Do not forget that both voices speak.

16:05 December 4, 2009

I used to believe in things. Now I just write about them.

20:54 December 3, 2009

An ex of mind once said, "If it weren't for sex, the world would be a boring place." I was shocked at the truth of this brazen statement, but as I have thought abot it, what I find abhorrent about it is that it speaks from the perspective of the gods, not of fail, jealous, suffering humanity. One might equally say, "You need a Hitler every so often to shake up the place."

The only worthwhile pursuit in life is telepathy -- opening and connecting with other conciousness in the deep substrata of the mind. You can put mystical significance uon this, or you can equate telepathy to deep psychology. From far enough away, the perspectives are similarly naive.

Maybe Hryn and the Buddha are correct. Well, of course they are. The only truth is undifferentiated conciousness and any ascription of identity is fundamentally flawed. Still, as a human being, I have had great conversations and more with other human beings. More frustrating, on a daily basis I see couples with simpatico. I think ... why doesn't this happen to me?

I suppose part of the problem is that I want the pill without the poison. What I want:

  • someone I can adore
  • someone I can implicitly trust
  • someone that will believe in me
  • someone I can share life with -- live with, sleep with, all those silly things

What I don't want:

  • children
  • excessive drama
  • illusion

Is this a self-consistent set of criteria? I'm not sure, to be honest.

There are two entangled flaws with my wish for love and closeness:

  1. Sexuality, while rich with telepathy, is a poor basis for a relationship contingent on trust and honesty. That being said, a sexual relationship is the only option (barring a few exceptions) of a deep and abiding lifelong relationship. While this is certainly socially true, it is more fundamental than conditioning. Humans are sexual creatures. We often like to pretend we're not, bt it is an act. While if I could choose between my misery and the comparatively bland but perhaps easier hypothetical non-sexual existence, I would choose the latter, it is not a choice I am capable of. I'm attracted to girls. I woldn't want to live with a guy. I like monogamous relationships. I can't pretend I could handle enlightened polyamory. For that matter, I haven't known any polyamorous people that could really handle it either.
  2. Sexuality is a trait serving procreation, not ideas. Sex is the ultimate weapon in evolution's arsenal. While I desire a relationship for my own comforts and pursuit of meaning, the basis of sexuality is procreation. I want a nice telepathic relationship, but, as much as I would want, it cannot be so easily severed from nature's ends. I always wished there was a sex "option" for those that didn't want children, but such is a nice idea with no substance.

So where does this leave me? I can pretend I'm a monk and attempt the practice of telepathy without attachment. Or I can pursue a relationship, hoping that somehow I can find someone where we can give each other a measure of comfort against the odds of the universe. I'm no monk. While I will endeavor to become less attached to this mortal coil, I cannot live as one looking and never touching. So I'll look for closeness and hope, in this world of three billion girls, I happen across one with simpatico wishes.

20:13 December 3, 2009

Cop: Okay Mario, you can't be punching holes in the buildings.

Mario: But sometimes, I find coins in the bricks.

Cop: Yeah, but you've ruined thousands of dollars worth of masonry.

Mario: If I find a hundred coins, I can come back from the dead.

Cop: Okay! Whatever you say, buddy.

Mario: One time I found a magic mushroom and it made me twice as tall as I was before.

Cop: Magic mushrooms, eh? You ate some magic mushrooms?

Mario: Yes, but then I bumped into a turtle and shrunk down again.

Cop: I'm gonna have to take you down to the precinct. We'll find you a nice friendly man and you can tell him all about your mushroom adventures.

19:35 December 3, 2009

Criminal violence is my anti-drug

19:27 December 3, 2009

There is the story of M. Set upon his destiny to be forever apart from the wrold, M. suffered the vast miserable freedom of living only through his own mind. Never touched, never asked to join in the pastimes of those around him, M. grew up to find solace in the depthless loneliness in which he was pitched. Time after time, after this rite of passage, the others made the vague allusion to the offer of comeradery if only M. would accept upon their terms. Fit in. Play the game. Give lip-service -- just a nod of the hat -- to the interplay of social congress. Each time, against weakness of position, against the prophecy of comfort, M. refused, salvaging a life from scrap-metal, discarded dreams, and venus fly traps. Beaten, broken, yet unsuccumbed, each time M. emerged stronger, stranger, and further apart. At last, upon the twilight of the one dream for which he could be coopted, M., failing to hold on to that for which he wished, knew he could never be defeated, that he could stand definitely against the petty offers society would make him. And yet, he wondered ... to be undefeated would be to never be touched. And this was his dream, a dream promised, almost granted, by the agents who masqueraded as paint brushes painting the sky, to be touched in a place that but few knew existed. Yet how had he gone wrong?

Once, when undertaking the decapitation of a mountain with a sculptor's chisel, a voice spoke within M.'s mind, "How long can you keep this up?" To the inner voice M. shrugged in reply, "A few years." The voice went silent. Since that nascent time, M.'s endurance grew from a few years to past a life time. Yet what did anything signify? What worth was endurance of ideals when no one would see them? Just scraps written in a notebook destined for entropy. And where was the promise then that living for meaning would yield its tangible manifestation.

There is onl one atom worth straving for in all of corporeal existence. Telepahy. Some call it 'God', some 'love', but in essence it is telepathy.

Telepaths making love ... has no comparison.

Were H- to offer her advice, she would say to M. to forget the promise, to forget being in love, and focus only on telepathy. But to H-, knowing truth is the end: ultimate truth. To M., truth is necessary but not sufficient. There is no end. To this, H- would pay lip-service, but the phrase itself is her end.

Logic and knowledge are not enough.

To M., what is affected is the end. Romantic notions, however beautiful, mean nothing in the absence of their being.

There came the point where M. was compelled to ask himself, "Why do I like girls so much?" The answers, however obvious, remain illuminating. For one, M. was programmed to like girls. Their sensuous curves, their submissive demeanor, however conflated with child-birth, were imprinted from the earliest moment as characteristics to find solace in. For another, the division of organisms to gender disrupts the quest for communion. Instead of psychic entities, naked to the universe, humans were relegated to gender roles, the only possibility of satisfaction of implicit trust given by a relationship of sexual tension. Perhaps to more modern humans, the next generation, telepathy could become undifferentiated. But to M. and the last who empathized with the concept of romantic love, there was nought but monogamous attachment, and even so, that only given as the fulfillment of prophecy.

M. was feared and despised for being unapproachable, yet all he wished to affect was the mark of a gentleman, hiding infinite sorrows in an inpenetrable countenance and behavioural decorum.

13:23 December 3, 2009

Sitting in crimson light, the daylight fading through the door to the artificial scarlet reflected from wine bottles and bar glasses, I feel my brain dissolving to plasticene, the cells sparking in degenerative dissolution and passing to dead matter.

Am I on stage? Are these actions carried out in accordance to a script? In all likelihood, we perform for corpses, their skin turned gray, their eyes changing from gelatinous to liquid and dripping down their visage, leaving only empty sockets, the darkness mirroring the spectacle of the actors above.

It is a tale told by an idiot, full of sound and fury, signifying nothing.
15:38 November 28, 2009

Its Monday: time to synergize some paradigms!

20:36 November 24, 2009

I'm a tomato!

17:53 November 24, 2009

Movie Idea: 3000 years

An 100 minute scaled-time movie showing the last 3000 years of history. Each minute would be 30 years of action, or about 12 days per frame. So you decide what is worth showing: extent of civilizations, trips across the Atlantic, etc, and you make maps/frames of each of these. You feed these into a computer and have it interactively make your movie. Result: a very crazy history movie! Once you have the source data, you also have the ability to make an arbitrary number of director's cuts, or just turn it into a completely interactive program for others.

If 30 years per minute is TOO much, maybe try 600 years. In this case, a year is a whole ten seconds (or a frame is a little under a day....you could scale up to 730 years and have a frame be exactly a day if you wished).

17:46 November 24, 2009

now is the winter of our discontent

10:54 November 24, 2009

I'm trying to get trac setup to view and diff word documents (used for documentation)

Who would think that a document would be used for documentation?!?

21:02 November 23, 2009

We do not have Jane Austen writing for us; we have two very poor writers working in a much more difficult medium.

20:27 November 23, 2009

A courteous guy pointing out that he's a courteous guy -- imagine that!

20:26 November 23, 2009

The exact quality of candle light glinting off of a brass bar fixure.

19:56 November 22, 2009

West Virginia: The "Other" Virginia

12:37 November 22, 2009

Virtual Desk

I just came up with a "new" interface: Virtual Desk. You have two HD and fairly large (maybe 48x27?) touch panels. One of these is mounted in the desk, the other is perpendicular to it like a traditional monitor. The size is constrained by the fact that it should be comfortable to touch the vertical monitor.

Your "keyboard" is just a program in the desktop. You can move it around like you would move a normal keyboard, except in 2D (in general "objects" [read: "windows"] are moved around by pushing/pulling them within the general way that physics works. Unlike a physical keyboard, you can resize it to your heart's content, add/delete buttons that do things. You might want multiple keyboards too, like maybe a numeric pad. Or maybe you prefer to work with one mega-keyboard with buttons for everything.

By making the "enlarge" gesture on a blank space of desktop, you get access to virtual desktops which you can then click on to replace your current desktop on one of the monitors, or just place it as a window somewhere on the desktops. A similar gesture could be used to go through your open programs.

By touching anywhere on the screen, you get a nested menu of programs to launch. Launching on puts it where your finger is! So if you want a terminal at such a particular place, click there.

I've already thought of a joke application for this UI: "coffee cup". On your horizontal desk, it looks like an ordinary coffee cup but in 2-D. You can move it around, and if you pick it up (take it off the desktop), it disappears. If you put it on the vertical monitor, it of course spills all over your desktop and makes a horrible mess of brown electronic ink. No worries though. Wiping up is just a click away.

15:34 November 17, 2009

i think there's a good story possibility about paranoid executives that see video of themselves on their security camera and become convinced that they are victims of a vast and over-arching conspiracy

11:52 November 17, 2009

There's a new, joint venture between the Lime Group, The Open Planning Project, and ING Software:


20:59 November 16, 2009

i read books for the subtext; likewise life

20:58 November 16, 2009

graffiti witnessed in the ingress to the West Concourse restrooms at Grand Central Terminal:

bleak savant seeks supplication to a dark priestess

20:31 November 16, 2009

the final word in information management is the black hole

20:29 November 16, 2009

What has become my life is a story where the author lost grasp on his central premise for the pursuit of some insignificant tangent -- and he loved it.

19:39 November 15, 2009

practice your breathing. you'll be better off than jousting with windmills

22:17 November 10, 2009

living without hope is the greatest freedom and the bleakest prison

01:33 November 7, 2009

So God thought he was pretty amazing. Really, like, one of the best Indras the world had ever seen. But he had to know if this quality was something he couldn't lose or what. So he split himself apart into uncountable particles and exploded a universe. He figured there would be enough complexity that his inherent intelligence would grow from star waste. And so it did. Some several billions of years later, monkeys began to make internal combustion engines and talk about what a bad idea slavery was all those years. The thing is, much like this God character, they were kinda arrogant. I mean, with life just a bunch of chemicals hap-hazardly assembled, there was no way to avoid evolution and having the greatest share go to the ape who was most willing to sling his weight around. So people said, "Hey, we have all of this technology. Let's use it!" So they made their little wars with nuclear secrets, and used their planet both as a chemical buffet and dumping ground, and pretty soon ther civilization was built upon a lie that demanded lip-service lest their society fall apart.

So did God make a wager with himself? Maybe if we survive, we all get assembled back together and maybe find something better to do with our time. And maybe if humanity snuffs itself out, then it wasn't that big of a deal to begin with.

21:24 November 6, 2009

The universe is a fall cascade of need to be done. I am painting, and the palette takes the characteristics of a painting of its own. Its a one off. So This is how you answer the question: Does the Universe exist? We are the palette that begins to resemble the painting in some degree.

20:21 November 6, 2009

is a room today the same as a room in Tolstoy's time? or does one mean one thing and one another

20:19 November 6, 2009

i barely know if i'm in a room and i'm not sure if the music is good or bad....if bewilders me

19:56 November 6, 2009

a messy weblock:

genshi_view + jquery + couch backend + svnwiki + trac + some of bitsyblog

What I'm basically saying is...

Blogging and programming and whatever else we do these days is all getting globbed together. Funny that some people had the thought that technology would make things more precise. Computers have made things fuzzier than ever.

14:49 November 5, 2009

if you wait long enough, all of your problems will be deprecated

11:13 November 2, 2009

yet another danger of dihydrogenmonoxide (though i prefer the term hydrogen hydroxide) - it will dissociate the sodium and chlorine, breaking a harmless compound into two ionized toxins!

21:00 September 13, 2009

bitsyblog is back....kinda

13:16 September 26, 2008

i pay for someone's room....i like her dogs stay here....her stuff takes up three-quarters of the apartment....AND SHE CAN'T FUCKING NOT PUT GARBAGE IN THE FUCKING DRAIN?!?!

i guess i should hate myself. where's your fucking compassion now?

20:34 September 25, 2008

from the RNC8, http://www.facebook.com/l.php?u=http://rnc8.org :

"Conspiracy charges serve a very particular purpose- to criminalize dissent."

how very true

12:44 September 24, 2008

Sign in a theatre:


(P.S. this goes in my New Yorker cartoon collection because:

  1. its pseudo-pretentious as it deals with "theatre-language"
  2. its not funny
  3. it would be easy to draw


22:08 September 23, 2008

i find it sad that the 'animeporn' user on openplans' trac hasn't closed any tickets

14:37 September 23, 2008

Most projects developed by http://www.ideo.com/ use their proprietary langauge extensions, Ideo-C

09:33 September 23, 2008

its fall...

time for letting things go

time for letting things die

13:44 September 22, 2008

Unused Army recruiting slogan #A32767:

The Army: Which side of the gun do you want to be on?

20:43 September 21, 2008

TracLegos: from concept to (almost) working prototype

I've almost completed the initial prototype for TracLegos: http://trac-hacks.org/wiki/TracLegosScript . The idea is to make it easy for people to share trac project configuration in a portable way and to make it easy to create projects using these templates. The name comes from thinking about Trac as building blocks, which I wrote about in an earlier blog post: http://bitsyblog.biz/jhammel/20080731102927

The TracLegos software is one of those rare ideas for a piece of code with many moving parts that is tightly integrated that came to me all at once. The concept of TracLegos from my mind to what it is today hasn't changed too much, which is fairly unusual IMHO. The goals of TracLegos are, in listspace:

The infrastructure for this last one is largely in place, but it isn't quite done yet (see http://trac-hacks.org/ticket/3766 and http://trac-hacks.org/ticket/3770, which are pretty much the same issue as far as implementation goes). The rest pretty much went according to plan.

There are still a number of tickets before I'd call this beta-version of TracLegos "done":


Still, there are only a few tickets that are necessary before TracLegos becomes useful for TOPP (those with priority=high in the list, and maybe http://trac-hacks.org/ticket/3751). And of course, an unlimited number of enhancements could be hypothesized to extend TracLegos into the future.

The documentation on the wiki page is both really good and really bad -- its horrible disorganized, incomplete, and too long. On the other hand, it reads like "real" documentation and actually gives some nice examples. I hope to put more work into it and put some of this in the README, but that's obviously a low priority (its easier to write code than documentation).

Okay enough, "I did this". Was TracLegos worth doing?

Yes. For a few reasons.

Firstly, and of the most immediate importance, TracLegos will help enable more creative trac use at the open planning project. Every couple of weeks someone asks me to make a trac project. The last two I did with TracLegos, with partial success (bugs now fixed) and this saved me some time. But the real goal is to allow anyone (or at least anyone behind the firewall) to be able to make trac projects in a way where they feel confident in what they're doing and to show them some of what trac is capable of. As I said in the original TracLegos blog post, trac is very powerful, though its power stems from it being a bug-tracker framework -- as an OOTB bug-tracker, trac probably doesn't suit your use case (or ours at TOPP). TracLegos aims to bring expert configuration to non-expert users, which currently isn't available.

Secondly, TracLegos answers the question "how do I share trac configuration?" This is one of the more often asked question in the trac community, to which the answer is usually "download this .ini file and edit it to your needs". Some people also propose scripts, but they're usually specialized to their organization's needs. TracLegos plans to solve both of those issues.

Thirdly, it was a valuable programming experience. Sadly, I think that this real fruit of software development is often overlooked because it doesn't directly lead to revenue. But it does lead to better programming practices through acquisition of experience. And happy programmers :) I think in particular TracLegos is a good example of my answer to Zed in http://bitsyblog.biz/k0s/20080915130039

TracLegos is also an experiment in convention-based configuration. The variables used to fill in the template is a flat namespace. I think anything more would be excessive and confusing, so I'm glad I stuck with the simple choice. One thing that this means is that its a really good idea for people to use the same variable names when applicable. While people are able to call things whatever they want in their templates, if they use variables that other people are using for similar things then (for instance) a single site configuration .ini file can be used for a number of templates without any hackishness. I'd like to codify this a bit more, or at least list some standard variables on the wiki page.

So, almost there! I'm excited and exhausted. I hope other people like it.

18:30 September 20, 2008

once again I have unwisely tried to do something social; my reward is a scolding and suffering. I need to learn just to do what I want: the most lonely and dispicable path, yet this is worse

18:28 September 20, 2008

boys are disgusting and girls are sickening

10:18 September 18, 2008

well, they successfully took money out of my account....lets hope it ends up in the right place. or i will be screw-ed

10:16 September 18, 2008

/me manicly checks etrade account ("friggin' bastards!")

09:51 September 18, 2008

Looking through the interfaces for trac, I was surprised to learn that there was no IRepositoryChangeListener interface. I forgot why I originally needed this or what horrible hack I engineered to get around this gap. The closest thing there was was the contributed trac post-commit hook for SVN. Nothing against this script, but its not really extensible. New functionality is added by editting, but there is no place to plug in something that will actually listen for repository changes. How disappointing! Trac seems to have everything else I need....why not this? I find the "configuration == editting a source file" usually (and in this case) to be an anti-pattern. It leads to divergent files, the inability to share source files (since they're all marked up for your local configuration), and generally a lack of extensibility.

In my leap into trac plugin development, I developed the SvnChangeListenerPlugin (all plugins mentioned herein can be found on http://trac-hacks.org). This solves this problem by decoupling the listener part of trac's post-commit hook from the ticket-changing part. Not much new code is introduced, mainly an interface so that other components besides the ticket-changer could be plugged into the post-commit hook. And each component gets a full trac environment so that they can be written just like any other trac plugin.

That was round one. I sent an email off to the trac community to see if there was any interest in this plugin, or at least the idea. I got a +BIGNUM from coderanger (the most enthusiasm I think I've seen from him) and generally a positive attitude from the community. Also, there were almost immediately feature requests, such as making it work with other SVN hooks or with other repositories. I don't know how many people use this plugin in practice (I haven't yet seen any hooks that build on it), but I'd like to think its at least useful for someone.

Then doki_pen contacted me regarding making this plugin general across SCMs. We never did agree on an API, but the conversation was very valuable in helping to get my head around the general problem space. Trac was originally SVN specific, but its an abstraction to be moved away from. As most of my experience with SCMs has been with SVN and CVS before that, I was at first a bit hesitant to write a more general framework for repository hooks. But my conversation with doki_pen got me to thinking....most changesets will have similar things: a commit message, a diff, some sort of ID (in SVN its the revision number), an author. So with these commonalities, why shouldn't it be generalized?

So I embarked on the quest to make things more general. I won't say that I've 100% succeeded, as currently things probably only work with SVN and post-commit, so in a way its neutral in terms of what it actually does versus SvnChangeListener. However, the infrastructure should be easily extensible to other SCMs and other hooks without too much work and I think its a good model for this sort of thing. As an aside, architecture that fits the pattern is the sort of thing I really get excited and use of trac's interfaces makes it easy to write decently architected code to do so. So I wrote the RepositoryHookSystemPlugin: http://trac-hacks.org/wiki/RepositoryHookSystemPlugin


In this model, in addition to the hook subscribers having their own interface, each repository type has their own interface. This decoupling allows both for hooks subscribers specific to a repository and hook type, or to hook subscribers that can be used with any hook, any repository. An abstract base class can be used for instances where the hooks are filesystem scripts (as in the case of SVN) and information is communicated via the changeset object. In the case of SVN post-commit (and presumedly other post-commit hooks), this changeset is readily available through trac's env.get_repository, though in other cases (I think? untested) it may need to be constructed (e.g. via svnlook and the like). I used to think this was a deficiency in the model (it still is in the sense that I haven't implemented it), but now I think its probably okay.

So at the end of the day, I'm pretty happy with what I've written. I hope people will use it and that it will be useful for them (if I see tickets, I'll be oh so happy). I think models like this going forward as the future of trac. While it would be nice if something like this made it into trac core (or at least the scrummy trac-post-commit-hook vanishes), in terms of functionality nothing would be gained by having it there versus having it remain a plugin. It would make my day -- hell, it would make my month -- if people started writing plugins for the RepositoryHookSystem. Any takers?

00:31 September 18, 2008

like i'm going to join a comedy network based on a fucking candy bar

18:30 September 17, 2008

So I'm trying to move and need a cashier's check or money order in order to do so. I have the funds. You'd think it'd be easy. But Etrade doesn't do cashier's checks, so I needed to find another way of getting my deposit to the management company.

The story of my deposit is novelic in length and as sad as a Shakespearean tragedy. Firstly, Chase misinformed me that they do cashier's checks to non-account holders. They do not. So I went with my backup plan -- getting money orders totally $1625. Should be easy. Wrong. I try to pay with my debit card and get a transaction denied. So I call Etrade, then Etrade securities, then Etrade again (about a two-hour conversation in the local post office). It was flagged as a potentially fradulant transaction and not only couldn't I complete it, but now I have no ATM card until they send me one in 5-7 business days. So I setup a Chase account so I can wire money into it (in process -- if that messes up, I'm out all of my money). I went to see the management company only to be able to tell them "I don't have your money and can't get it to you unless you accept personal checks" which of course they didn't. They weren't happy and I was surprised that they gave me another chance. So now I have to rinse+repeat next Tuesday. If that messes up, I am surely out of an apartment. Its yet another case of other people messing up and me having to suffer for it. The usual case, in other words. I'm really sick and tired of large corporations messing up and little people having to suffer for it. If I get a chance to write software to make it easy to do so, I intend to send companies bills for my time and their mistakes when this happens. I don't expect to get any money for it -- its more to have a list of things they did wrong and hours I put in and damage done when I do have to interact with the company. But its kinda a pipe dream as I rarely have time to program for myself.

13:00 September 15, 2008

Thinking About the View-Model-Controller

I recently read a blog post http://www.zedshaw.com/rants/i_want_the_mutt_of_feed_readers.html where the author states, "BTW, if you are ever working on a console program, and you get this idea to turn it into a web application at the same time, like some freak Medusa hydra, then just go shoot yourself now." I may agree with the statement, depending on what it means. If it means, "don't turn a console program into a web application" then I'll buy it. If it means, "don't write a program that has both CLI and web interfaces", I'm going to have to say, "hell no".

The View-Model-Controller approach to programming problems is hardly new.


Basically, its an approach that attempts to separate the presentation of data from the data itself or methods for working with the data. In the wikipedia article, http://en.wikipedia.org/wiki/Model-view-controller , they state that the controller is used for things like monitoring key-presses, etc. I find this less useful in terms of coding and would actually include this sort of thing in the "view" part, though key-strokes would yield events that would be processed by the controller.

What is understated both in the wikipedia article and in most presentations of VMC is that this abstraction doesn't just buy you good programming practices (which it generally does, if used wisely), but also can be used to provide multiple front-ends as well as using an abstract Model which can have multiple back-ends (whether abstraction is done object-oriented or aspect-oriented is indifferent to this blog post).

If the controller is not tied to a particular view, but is written just as a controller with inputs and outputs, it doesn't matter what interacts with it, so long as it triggers the necessary inputs and outputs. In this case, there is no reason not to have a CLI and a TTW interface. They don't have to provide the same functionality -- for instance, it might be okay for the CLI to do things that the TTW interface doesn't do as access to shells tends to be more secure than access TTW. On the other side, since HTML is a presentation-type language, a more graphical and help-ridden view can be presented, giving a "nicer" front-end to the application than the "crusty" old CLI code (i'm being somewhat ironic, if you can't tell).

Which brings me to a pattern I would HIGHLY RECOMMEND for anyone writing a webapp unless they REALLY REALLY know what they're doing and don't want to use it:


Why is this good? Most apps will want storage. Looking to the right side of the diagram, you've noticed that the model has multiple storage backends (SQL, files, etc). By abstracting out this, if you want to convert (say) zope code to (say) SQL, all you have to do is swap backends (or write a new one). If you put SQL calls all over your code, this isn't possible and requires much more rework. For more incestuous applications like zope (sorry!) this may be more difficult or essentially impossible. It can be argued that for some of these backends, retrieving certain kinds of information could be very slow versus other backends. This is true. You can introduce a caching layer either on the backend itself or between the backend and the model if this is an issue.

Next, lets look at the left side of the diagram. There's not one view -- there's three! There is a command-line program, there is a REStful interface, and a full-blown AJAXy webpage. In this case, I've made all of them talk directly to the model and controller, though really the AJAX interface should be primarily if not exclusively talking to the RESTful interface (Note also that for the RESTful and AJAX interface, there will be the client-side of the view and the server side ... the latter is the part that talks directly to the controller and model). Again, caching could be introduced in the hypothetical event of slowness somewhere, though caching on the backend is better.

So since I've just read a Zed blogpost, I'm just going to be a dictatorial asshole. Use this model. Abstract storage. Abstract front-end from controller. If you ever think you don't need this, you're wrong. And if you're not, then why are you reading this anyway? I don't want to see any more code where the controller IS a request handler. I don't want to see any more code where the model reads from a SQL database. Come on, are you worried about function calls? Are you worried about the extra lines of code that will not only make your program easier to understand but also allow it to be easily extended and refactored? Then, in the words of Zed, "go ahead and shoot yourself."

(bitsyblog.biz not resposible for any actual suicides resulting from the literal interpretation of this or any blog post)

11:06 September 12, 2008

We must never forget the lessons of September 11! Namely, don't let a power-mad group of conservatives seize power, truncate freedom, and kill innocent people in the name of retaliation against a terrorist strike.

08:24 September 12, 2008

its hard to believe that in just a few weeks i will (largely) no longer be a slave to other people's things

09:31 September 11, 2008

looks like my disc is dying....just try loading http://k0s.org/css/dark.css (it doesn't work with less either)

11:40 September 10, 2008

bitsyblog is really more about depression than anything else