In The Public Interest

I realize that with all this blabbering I’ve been doing about social organizations, and politics, particularly the post on Health Care Cooperatives, some of you may have read something into my thinking that I think is very much not there. I think this resonates with the way people people read a certain kind of libertarian streak in Cory Doctorow’s work, which is I think is an uncomfortable association, at least in my reading.

There are two parts of my thinking that I think are important:

First, I think there is a not particularly insignificant range of social and economic functions that fall into the broad category of the “public interest,” that I think would (and are) ill served by the private institutions which are their current guardians. This was the crux of the argument of my health care argument, but I think there are other things that fall under the public interest: education, banking, “utilities” (water, sewage, power, TCP/IP data,) health care, and infrastructure (roads, public transit, rail, power distribution, ), as well as some operations that benefit from centralized organization like aviation.

Second, I would assert that “Market Forces,” are not sufficiently understood to merit trust in their efficacy. Furthermore, the large-scale global markets that have ruled supreme in the recent past tend to sacrifice long-term authenticity, for short term gains at the expense of individuals. This is the problem with corporations that I’ve been harping on for a long time. The way, as far as I can tell to de-incentivize this kind of economic activity, is to focus economic development on more smaller ventures and to decrease the importance of initial capital outlay on business models.

And that’s simply not something you can regulate or deregulate around. To erase the impact of corporate-styled business models on the economy, you have to hack scarcity in some way. Corporation-sized ventures beat cooperative-sized ventures today, because in most areas economies of scale in the production of concrete material, doom cooperative-sized enterprises. One of the effects of the development of technology in the next {{few}}1 years will be, I suspect, to decrease the advantages of economies of scale.

If nothing else it’s an interesting time to be alive.


  1. This gets my standard “until the singularity gets here,” response, so before 2030 or 2040. You heard it here first. ↩︎

microsoft reconsidered

I’ve been thinking about Microsoft recently, and thinking about how the trajectory of Microsoft fits in with the trajectory of information technology in general.

A lot of people in the free software world are very anti-Microsoft, given some of the agregious anti-competitive activites they use, and general crappiness of their software. And while I agree that MS is no great gift to computing, it’s always seemed to me that they’re johnny-come-lately to the non-free software world (comparatively speaking AT&T and the telecom industry has done way more to limit and obstruct software and digital freedom than microsoft, I’m thinking.) But this is an akward argument, because there’s no real lost love between me and Microsoft, and to be honest my disagreement with Microsoft is mostly technologcial: microsoft technology presents a poor solution to technical problems. But I digress.

One thing that I think is difficult to convey when talking about Microsoft is that “The Microsoft We See” is not “The Core Business of Microsoft;” which is to say the lion’s share of Microsoft’s business is in licensing things like Exchange servers (email and groupware stack) to big organizations, and then there’s the whole ASP.NET+SQL-Server stack which a lot of technology is built upon. And Microsoft works licensing in ways that’s absurd to those of us who don’t live in that world. A dinky instance (ten users?) of Windows Server+Exchange for small corporations easily starts at a grand (per year? bi-annually?) and goes up from there depending on the size of the user-base. I would, by contrast, be surprised if Microsoft saw more than 50 or 60 dollars per desktop installation of Windows that consumers buy.1 And I suspect a given installation of windows lasts three to five years.

I don’t think it’s going to happen tomorrow or even next year, but I think netbooks--and the fact that Microsoft won’t put anything other than XP on them--and the continued development of Linux on embedded devices, and the growing market share of Apple in the Laptop Market (and the slow death of the desktop computing market as we know it,) all serve to make any attention that we give to market share of Windows on the desktop, increasingly less worthwhile. This isn’t to say that I think people will flock in great numbers to other platforms, but

I think what’s happening, with the emergence of all these web-based technologies, with Mono, with Flash/Flex/Silverlight/Moonlight, with web-apps, with Qt running cross platform, with native GTK+ ports to windows and OS X, is that what you run on your desktop is (and will continue to become) more and more irrelevant. There won’t be “the next Microsoft,” because whatever you think of the future of IT, there isn’t going to be a future where quality software is more scarce, or harder to produce than it is today.


So this brings us back to servers licensing, and something that I realized only recently. In the Linux world, we buy commodity hardware, sometimes really beefy systems, and if you have a scaling problem you just set up a new server and do some sort of clustered or distributed setup, which definitely falls under the heading of “advanced sysadmining,” but it’s not complex. With virutalization it’s even easier to fully utilize hardware, and create really effective distributed environments. At the end of the day, what servers do is not particularly complex work in terms of number crunching, but it is massively parallel. And here’s the catch about Windows: developers are disincentived to run more than one server, because as soon as you do that, your costs increase disproportionately with regard to the hardware. Say the cost of a production server (hardware) is 4k and you pay 2k-3k for the software. If at some point this server isn’t big enough for your needs, do you: buy an almost-twice-as-good-8k dollar server with a single license, or just shell out another 6k-7k and have a second instance? Now lets multiply this times 10? Or more? (I should point out that I’m almost certainly low balling Software licensing costs.)

At some point you do have to cave and pay for an extra Microsoft license, but it makes a lot of sense from an operations perspective to throw money at hardware rather than distributed architectures, because not only is it quicker, but it’s actually cheaper to avoid clusters.

Microsoft, the company that made its money in microcomputer software has backed itself into being the “big iron” computing business. Which is risky for them, and anyone. Sun Microsystems couldn’t make it work, IBM kills in this space (and Linux mainframes are in the 50k-100k range, which doesn’t look as absurd in light of the calculations above.)

Anyway, this post has been all over the place, and I’m not sure I can tie it all together in a neat bow, but I think its safe to say that we live in interesting times, and that this whole “cloud thing” combined with the rapidly falling price of very high-powered equipment changes all of the assumptions that we’ve had about software for the past twenty or thirty years. For free software as well as the proprietary software…


  1. There’s a line in the Windows EULA, that says if you don’t agree with the terms and aren’t going to use the windows that comes installed on your computer that you can get a refund on this if you call the right people for your machine’s distributor. I’ve heard reports of people getting ~130 USD back for this, but it’s unclear how much of that goes to Microsoft, or to the support for MS products that OEMs have to provide. ↩︎

the day wikipedia obsoleted itself

Remember how, in 2006 and 2007 there was a lot of debate over wikipedia’s accuracy and process, and people though about creating alternate encyclopedias that relied on “expert contributors?” And then, somehow, that just died off and we never hear about those kinds of projects and of concerns anymore? The biggest news regarding wikipedia recently has been with regards to a somewhat subtle change in their licensing terms, which is really sort of minor and not even particularly interesting even for people who are into licensing stuff.

Here’s a theory:

Wikipedia reached a point in the last couple of years where it became clear that it was as accurate as any encyclopedia had ever been before. Sure there are places where it’s “wrong,” and sure, as wikipedians have long argued, wikipedia is ideally suited to fix textual problems in a quick and blindingly efficient manner, but The Encyclopedia Britannica has always had factual inaccuracies, and has always reflected a particular… editorial perspective, and in light of its competition wikipedia has always been a bit better.

Practically, where wikipedia was once an example of “the great things that technology can enable,” the moment when it leap frogged other encyclopedias was the moment that it became functionally irrelevant.

I’m not saying that wikipedia is bad and that you shouldn’t read it, but rather that even if Wikipedia is the best encyclopedia in the world it is still an encyclopedia, and the project of encyclopedias is flawed, and in many ways runs counter to the great potential for collaborative work on the Internet.

My gripe with encyclopedias is largely epistemological:

  • I think the project of collecting all knowledge in a single

    fact that the biggest problem in the area of “knowing” in the contemporary world isn’t simply finding information, or even finding trusted information, but rather what to do with knowledge when you do find it. Teaching people how to search for information is easy. Teaching people the critical thinking skills necessary for figuring out if a source is trustworthy takes some time, but it’s not terribly complicated (and encyclopedias do a pretty poor job of this in the global sense, even if their major goal in the specific sense is to convey trust in the specific sense.) At the same time, teaching people to take information and do something awesome with it is incredibly difficult.

  • Knowledge is multiple and comes from multiple perspectives, and is contextually dependent on history, on cultural contexts, on sources, and on ideological concerns, so the project of collecting all knowledge in a value-neutral way from an objective perspective provides a disservice to the knowledge project. This is the weak spot in all encyclopedias regardless of their editorial process or medium. Encyclopedias are, by definition, imperialist projects.

  • The Internet is inherently decentralized. That’s how it’s designed, and all though this rounds counter to conventional thought in information management, information on the Internet works best when we don’t try to artificially centralize it, and arguably, that’s what wikipedia does: it collects and centralizes information in one easy to access and easy to search place. So while wikipedia isn’t bad, there are a lot of things that one could do with wikis, with the Internet, that could foster distributed information projects and work with the strengths of the Internet rather than against them. Wikis are great for collaborative editing, and there are a lot of possibilities in the form, but so much depends on what you do with it.

So I guess the obvious questions here are:

  • What’s next?
  • What does the post-wikipedia world look like?
  • How do we provide usable indexes for information that let people find content of value in a decentralized format, and preferably in a federated way that doesn’t rely on Google Search?

Onward and Upward!

Five By Five

Five Things I Could do to Make My Cats Happier

1. Have fewer hobbies that involve non-feline-objects on my lap (knitting, reading, writing/laptop).

  1. Be at home Sleep More.
  2. Grow More Appendages.
  3. Get a roommate/spouse.

Five Books I Would like to Read in the Next Month

  1. Iain M. Banks’ Consider Phebas
  2. The New Space Opera 2 Anthology
  3. Tad Williams’ Otherland
  4. Giles Deleuze’s Difference and Repetition (ha!)
  5. Michael Chabon’s The Yiddish Police Man’s Union

Five Elements of My Daily Ritual That I’d like to Improve

  1. Wake Time
  2. Lunch Preparation (the night before?)
  3. Reading RSS feeds.
  4. Making more time for knitting
  5. Join a Gym to better Exercise at night.

Five Improvements I’d Like to Make to This Blog

  1. Add a wiki
  2. Build more useful archives.

3. Streamline Build Process. (Requires serious hacking. Getting #2 might help this.)

  1. Increase increase discussion quotient.

5. Provide more useful resources, and include more citations and links to the cool things that are happening on the Internet

Five Jobs I’d Like to Have Before I Retire

  1. Editor (of a fiction or non-fiction publication)
  2. Workshop leader
  3. Researcher/Professor
  4. Community Manager
  5. Cultural Critic/Industry Analyst

Praxis and Transformational Economics

Here’s another one for the “economics” collection of posts that I’ve been working on for a while. Way back when, I started this series by thinking about Kim Stanley Robinson’s Mars Trilogy and by the model of economic development presented in the final two books. In short economic activity is organized around ~150 person co-operatives that people “buy into,” and then work for as long as the co-op exists or until they sell their spot so that they can work on a different project/co-op.

In the series, these co-operatives arose as part of a response to the multi/trans/meta-national corporations which were the books antagonists. Corporations which had grown so big, that they resembled nations as much as they did companies in the contemporary perspective. The co-ops came around in part as a response to the metanat’s, but then the corporations themselves restructured in response to an ecological/sociological catastrophe, so that they eventually started to look more like the cooperatives. The “progressive,” meta-national corporation was called “Praxis,” in the stories and Praxis was the organization that lead the transformation from metanational capitalism to, what followed. As part of this series, I’d very much like to think about Praxis and what kinds of lessons we can bring back from this thought, beyond the simplistic “cooperatives good, corporations bad,” notion that I’ve been toting for months. Thus,

  • The corruption and disconnect from authentic economic exchange in that the metanats display in the Mars Books, far outclasses anything that’s happening today. On the one hand, given the nature of Science Fictional criticism, this isn’t such a great barrier to importing ides from the books; on the other, we must also imagine that Praxis is able to “out compete” traditional meta-nationals because of the scale of the issue. That is, the Praxis critique and solution may be valid today, but things may have to get much worse before a Praxis-like solution becomes economically viable.

  • Praxis succeeds in the story, not because it can out compete the meta-nationals at their own game, not because it’s “right.” I appreciate fiction (and reality,) where the winning economic solution wins on economic rather than moral terms. While I’m hardly a Market proponent, it’s hard to divorce economics from exchanges, and I think the following logic fails to convince me: “we change current cultural practice to do something less efficient that may create less value, because it complies better with some specific and culturally constrained ethic.”

    One part of my own thinking on this issue has revolved around looking for mechanisms that produce change and I think Praxis is particularly interesting from a mechanistic perspective.

  • Praxis presents a case of a revolutionary-scale change, with evolutionary mechanisms, which is something that I think is hard to argue for, or encourage as the change itself is really a result of everything else that’s going on in the historical moment. Nevertheless, everyone in the story world is very clear that Praxis-post transformation is fundamentally not the same kind of organization that it was before. In a lot of ways it becomes its own “corporate successor state,” and I think that leaves us with a pretty interesting question to close with…

How do we setup and/or encourage successor institutions to the flawed economic organizations/coroprations we have today without recapitulating their flaws?

open source competition

I’ve been flitting about the relm of political economics, technological infrastrucutre, and cyborg-related topics for a number of weeks, maybe months, and I haven’t written very much about open source. This post is hopefully a bit of a return to this kind of topic, mostly because I’ve been staring at a blog post for weeks, and I finally have something that’s nearly cogent to about an article that kind of pissed me off. Here goes

The article in question seeks to inform would-be-software entrepreneurs how they ought to compete against open source software, and to my mind makes a huge mess of the whole debate. Lets do some more in-depth analysis.

“Open source is only cheap if you don’t care about time,” is an interesting argument that sort of addresses the constant complaint that open source is “fussy.” Which it is, right? Right. One of the best open source business models is to provide services around open-source that make it less fussy. Also I think Free Software is often “a work in progress,” and is thus only occasionally “fully polished,” and is often best thought of as a base component that can be used to build something that’s fully customized to a specific contextual set of requirements. That’s part of the value and importance of free software.

I don’t think we can have our cake and eat it too on this one, (the cake is a lie!) and in a lot of ways I think this is really a positive attribute of free software.

The complaints regarding open source software seem to boil down to: “open source software doesn’t come with support services, and installation polish” (we’re working on it, but this is a commercial opportunity to provide support around open source products in general.)

So to consolidate the argument, the author seems to suggest that: “in order to beat open source software, which sucks because it’s not polished enough and doesn’t have support, I’m going to write a totally different code base, that I’ll then have to polish and support.”

My only real response is. “Have fun with that.”


Before I lay this to rest, I want to give potential “Commercial Software Vendors” (proprietary software vendors?) the following qualifications on the advice in the original article.

1. Save your users time: Sound advice. Though I think the best way to save users time is probably to integrate your product with other related tools. Make your product usable and valuable. Provide support, and take advantage skilled interaction designers to provide intuitive interfaces. Don’t, however, treat your users like idiots, or assume that because your product might have a learning curve it’s flawed. The best software not only helps us solve the problems we know we have, but also solves problems we didn’t know we had, and in the process creates tremendous value. Don’t be afraid to innovate.

Also, **save yourself time*, you can create more value for your customers by not reinventing the proverbial wheel. Use open source software to bootstrap your process, and if the value you create is (as it always is) in support and polish, you can do that to open source just as well as you can to your own software.

2. Market Hard, might work, but it’s all hit and miss. Open source might not be able to advertise, or send people on sales calls to enterprises, but open source has communities that support it, including communities of people who are often pretty involved in IT departments. Not always, mind you, but sometimes.

If you’re a “Commercial Software Vendor” you’re going to have a hell of a time building a community around your product. True fact. And word of mouth, which is the most effective way to predict sales, is killer hard without a community.

4. Focus on features for people who are likely to buy your product, is a great suggestion, and really, sort of the point of commercial software, as far as I can see. Custom development and consulting around open source if you can provide it, achieves the same goal. At the same time, I think a lot of open source enterprise software exists and succeeds on the absence of licensing fees, and so I think would-be-software vendors should be really wary to think of the enterprise as being “cash cows” particularly in the long run.

So in summary:

  • Create value, real enduring value. Not ephemeral profitability, or in-the-moment utility.
  • Be honest about what your business/endeavor really centers on, and do that as best you can.
  • Understand the social dynamics of open source, not simply the technological constrains of the user experience.

And…. done.

fact files

I wrote a while back about wanting to develop a “fact file” or some way of creating a database of notes and clippings that wouldn’t (need to be) project specific research, but that I would none the less like the keep track of. Part of the notion was that I felt like I was gathering lots of information and reading lots of stuff, that I didn’t really have any good way of retaining this information beyond whatever I could recall based on what I just happen to remember.

I should note that this post is very org-mode focused, and I’ve not subtitled very much. You’ve been warned.

Ultimately I developed an org-remember template, and I documented that in the post linked to above.

Since then, however, I’ve changed things a bit, and I wanted to publish that updated template.

(setq org-remember-templates'(
  ("annotations" ?a
    "* %^{Title} %^g \n  :PROPERTIES:\n  :date: %^t\n  :cite-key: %^{cite-key}\n  :link: %^{link}\n  :END:\n\n %?"
    "~/org/data.org" "Annotations and Notes")
  ("web-clippings" ?w
    "* %^{Title} %^g \n  :PROPERTIES:\n  :date: %^t\n  :link: %^{link}\n  :END:\n\n %x %?"
    "~/org/data.org" "Web Clippings")
  ("fact-file" ?f
    "* %^{Title} %^g \n  :PROPERTIES:\n  :date: %^t\n  :link: %^{link}\n  :END:\n\n %x %?"
    "~/org/data.org" "Fact File")
  ))

What this does, reflects something I noticed in the way I was using the original implementation. I noticed that I was collecting quotes from both a variety of Internet sources and published sources. Not everything had a cite-key (a key that tracks the information in my bibtex database,) and I found that I also wanted to save copies of blog posts and other snippets that I found useful and interesting, but that still didn’t seem to qualify as a “fact file entry.”

So now there are three templates:

  • First, annotations of published work, all cross referenced against cite-keys in the bibtex database.
  • Second, web clippings, this is where I put blog posts, and other articles which I think will be interesting to revisit and important to archive independently for offline/later reading. Often if I respond to a blogpost on this blog, the chances are that post has made it into this section of the file.
  • Third, miscellaneous facts, these are just quotes, in general. Interesting facts that I pull from wikipedia/wherever, but nothing teleological, particularly. It’s good to have a place to collect unstructured information, and I’ve found the collection of information in this section of the file to be quite useful.

General features:

  • Whatever text I select (and therefore add to the X11 clipboard) is automatically inserted into the remember buffer (with the %? tag)
  • I make copious use of tags and tag compleation which makes it easier to use the “sparse tree by tag” functionality in org-mode to just display heading which are tagged in a certain way.) So that I can see related content easily. Tags include both subject and project-related information for super-cool filtering.
  • All “entires” exist on the second level of the file. I’m often sensative to using too much hierarchy, at the expense of clarity or ease of searching. This seems to be particularly the case in org-mode, given the power of sparse trees for filtering content.

So that’s what I’m doing. As always, alternate solutions feedback are more than welcome.

writing like a programmer

I’m unique among my coworkers, in that I’m not a developer/programmer. This is a good thing, after all, because I’m the writer and not a programmer; but as a “workflow” guy and a student of software development one thing that I’ve been particularly struck by since taking this job is how well I’ve been able to collaborate with coworkers who come from a completely different background/field and furthermore how helpful this as been to my work and development as a writer. This post is going to contain some of these lessons and experiences.

For starters, we’re all pretty big fans of git. As git is one of the most interesting and productive technologies that I use regularly, this is really nice. Not only does everyone live in plain text format, but they mostly use the same version control system I do. I’ve definitely had jobs and collaborations in the past few years (since I made the transition to pure text) where I’ve had to deal with .doc files, so this is a welcome change.

I’ve long thought that working in plain text format has been a really good thing for me as a writer. In a text editor there’s only you and the text. All of the bullshit about styles and margins and the like that you are forced to contend with in “Office” software is a distraction, and so by just interacting with text, by exactly (and only) what I write in the file, I’ve been able to concentrate on the production of text, leaving only “worthwhile distractions” to the writing process.

Working with programmers, makes this “living in plain text” thing I do, not seem quite so weird, and that’s a good thing for the collaboration but--for me, at least--it represents an old lesson about writing: use tools that you’re very comfortable with, and deal with output/production only when you’re very ready for it. Good lesson. I might have taken it to the extreme with the whole emacs thing, but it works for me, and I’m very happy with it.

But, using git, with other people has been a great lesson, and a great experience, and I’m getting the opportunity to use git in new ways, which have been instructive for me--both in terms of the technology, but also in terms of my writing process.

For instance, when ever I do a git pull (which asks the server for any new published changes and then merges them (often without help from me) with my working coppy) and see that a coworker has changed something, I tend to inspect the differences (eg. diffs) contained in the pull. Each commit (set of changes; indeed each object, but that’s tangential) in git are assigned a unique identifier (a cryptographic hash) and you can, with the following command generate a visual representation of the changes between any two objects:

git diff  6150726..956BC46

If you have colors turned on in git (to colorize output; only the first line affects diffs, but I find the others are nice too):

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

This generates a nice colorized output and of all the changes between the two revisions, or points in history as specified. The diff, is just the output of the format that git uses to apply a set of changes to a base set of files so it displays a full copy of what the lines used to look like at the first point in time, and then new lines which represent what the lines look like in the second point in time, as well as contextual unchanged lines to anchor the changes to, when needed. Colorized the old content are darker (orange?) and the new content is brighter (yellow? green?), contextual anchors are in white.

The result is that when you’re reviewing edits you can see exactly what was changed, and what it “used to be” without needing to manually compare new and old files, and also without the risk of getting too wound up in the context.

Not only is this the best way I’ve ever received feedback, in terms of ease, of review and clarity (when you can compare new to old, in very specific chunks, the rationale for changes is almost always evident), but also in what it teaches me about my writing. I can see what works and what doesn’t work, I can isolate feedback on a specific line from feedback on the entire document.

While I’ve only really been able to do this for a few weeks, not only do I think that it’s productive in this context, but that I think it might be an effective way for people to receive feedback and learn about writing. People involved in the polishing of prose (professional editors, writers, etc) often have all sorts of ways to trick themselves in attending to the mechanics of specific texts (on the scale of 7-10 words) stuff like reading backwards, reading paragraphs/sentences out of order. Reading from beginning to end, but reading sentences backwards, and so forth. Reviewing diffs allows you to separate big picture concerns about the narrative from structural concerns, and some how the lesson--at least for me--works.

Programmers, of course, use diffs regularly to “patch” code and communicate changes, and the review patches and diffs are a key part of the way programmers collaborate. I wonder if programmers learn by reviewing diffs in the same sort of way.

This will probably slowly develop in to a longer series of posts, but I think that’s enough for you. I have writing to do, after all :)

Cheers!

the mainframe of the future

It seems really popular these days to say, about the future of computing, that “in a few years, you’ll have a supercomputer in your pocket.”1 And it’s true: the computing power in contemporary handheld/embedded systems is truly astounding. The iPhone is a great example of this, it runs a variant “desktop operating system,” it has applications written in Objective-C, it’s a real computer (sans keyboard and a small screen). But the truth is that Andriod and Blackberries are just as technically complex. And lets not forget about how portable and powerful laptops are these days. Even netbooks, which are “underpowered,” are incredibly powerful in the grand scheme of things.

And now we have the cloud, where raw computing power is accessible and cheap: I have access to an always-on quad-core system, for something like 86 cents a day. That’s crazy cheap, and the truth is that while I get a lot for 86 cents a day, I never run up against the processor limitations. Or even gotten close. Unless you’re compiling software/graphics (gaming) the chances of running into the limits of your processor for more than a few seconds here and there, are remarkably slim. The notable exception to this rule, is that the speed of USB devices is almost always processor-bound.

All this attention on processing power, leads to predictions about “supercomputers in your pockets,” and the slow death of desktop computing as we know it. This is, while interesting and sexy to talk about, I think it misses some crucial details that are pretty important.

The thing about the “supercomputers in your pocket” is that mobile gear is almost always highly specialized and task specific hardware. Sure the iPhone can do a lot of things, and it’s a good example of a “convergence” device as it combines a number or features (web browsing/email/http client/phone/media viewer) but as soon as you stray from these basic tasks, it stops.

There are general purpose computers in very small packages, like the Nokia Internet tablets, and the Fujitsu ultra mobile PCs, but they’ve not caught on in a big way. I think this is generally because the form factor isn’t general purpose and they’ve not yet reached the commodity prices that we’ve come to expect for our general purpose computing gear.

So while I think the “how we’ll use pocket-sized” supercomputers still needs to be worked, I think the assertion that computing power will continue to rise, while the size will continue to shrink, at least for a few more years. There are physical limits to Moore’s Law, but I think we have a few more years (10?) before that becomes an issue.

The question that I’ve been asking myself for the past few days isn’t “what are we going to do with new supercomputers,” but rather, “what’s that box on your desktop going to be doing.”

I don’t think we’re going to stop having non-portable computers, and indeed, as laptops and desktops have functionally converged in the last few years: the decision between getting a laptop and a desktop is mostly about economics, and “how you work.” While I do think that a large part of people’s “personal computing” going to happen on laptops, I don’t think desktops are going to just cease to exist in a few years, to be replaced by pocket-sized supercomputers.

It’s as if we’ve forgotten about mainframe computing while we were focused on supercomputers.

The traditional divide between mainframes and supercomputer is simple, while both are immensely powerful supercomputers tend to be suited to address computationally complex problems, while mainframes are designed to address comparatively simple problems on massive data-sets. Think “supercomputers are processors” and “mainframes are input/output.”

My contention is that as, the kinds of computing that day-to-day users of technology starts to level off in terms of computational complexity (or at least is overtaken by Moore’s Law), the mainframe metaphor becomes a more useful perspective to extend into our personal computing.

This is sort of the side effect of thinking about your personal computing in terms of “infrastructure”2 While we don’t need super-powerful computers to run our Notepad applications, finding better ways to isolate and run our tasks in parallel seems to make a lot of sense. From the perspective of system stability, from the perspective of resource utilization, and from the perspective of security, parallelizing functionality offers end users a lot of benefits.

In point of fact, we’ve already started to see this in a number of contexts. First, mutli-core/multi-processor systems are the contemporary standard for processors. Basically, we can make processors run insanely fast (4 and 5 gigahertz clock speeds, and beyond) but no one is ever going to use that much, and you get bottlenecks as processes line up to be computed. So now, rather than make insanely fast processors, (even for servers and desktops) we make a bunch of damn fast processors (2 or 2.5ghz is still pretty fast) that are all accessible in one system.

This is mainframe technology, not supercomputing technology.

And then there’s virtualization, which is where we run multiple operating systems on a given piece of hardware. Rather than letting the operating system address all of the hardware at once as one big pool, we divide hardware up and run isolated operating system “buckets.” So rather than having to administer one system, that does everything with shared resources, and having the headache of making sure that the processes don’t inter-fear with each-other, we create a bunch of virtualized machines which are less powerful than the main system but only have a few dedicated features, and (for the most part) don’t affect each other.

This is mainframe technology.

Virtualization is huge on servers (and mainframes of course,) and we’re starting to see some limited use-cases take hold on the desktop (e.g. Parallels desktop, VMware desktop/fusion), but I think there’s a lot of potential and future in desktop virtualization. Imagine desktop hypervisors that allow you to isolate the functions of multiple users? That allow you to isolate stable operations (eg. fileserving, media capture, backups) from specific users’ operating system instances, from more volatile processes (eg. desktop applications). Furthermore, such a desktop-hypervisor would allow users to rely on stable operating systems when appropriate and use less stable (but more feature rich) operating systems on a per-task basis. There are also nifty backup and portability related benefits to running inside of brutalized containers.

And that is, my friends, really flippin’ cool.

The technology isn’t yet there. I’m thinking about putting a hypervisor and a few guest operating systems on my current desktop sometime later this year. It’s a start, and I’ll probably write a bit more about this soon, but in any case I’m enjoying this little change in metaphor and the kinds of potentials that it brings for very cool cyborg applications. I hope you find it similarly useful.

Above all, I can’t wait to see what happens.


  1. Admittedly this is a bit of a straw-man premise, but it’s a nifty perception to fight against. ↩︎

  2. I wrote a series of posts a few weeks ago on the subject in three parts: one, two, and three ↩︎

Ongoing Projects

I’ve been talking with people recently about “what I’m working on,” and I’ve realized two things. First, that I’m beginning to get spread thin; and second, that I haven’t really used this blog as an effective tool to track these projects and facilitate ongoing work on these projects. So I’m going to write an “ongoing projects update.” So there.

While I don’t think there’s sense in making this a “weekly feature” I think taking the opportunity to check in with you all about my projects, to mention cool things that are going on with these projects.

  1. The Novel

I’ve not managed to make this into the habit that I want it to be. Having totally missed my goal of finishing the draft in August, I’ve set a more tentative goal of getting it done in time for NaNoWriMo this year. I don’t know if I’ll do a NaNo project this year--probably not, I’m too contrary--but it seems like a good and doable goal.

What has me hung up at the moment, is I have a few scenes that I need to be written by a particular character that I’ve come to despise, not because he’s a bad character, I just find him frustrating to write. This is mostly interesting, insofar as I initially thought that he’d be the easy character to write in the story.

Despite this hang up, I’m really quite close to being done with this monster. Three or four more chapters, and some editing across the board. Not a huge deal. I just need to do it. That’s a lot of what this Labor Day weekend has been about.

  1. This Blog

You’re all aware of this project, I trust. I’ve been able to keep up my “mostly daily” schedule for a long time now. Two or three years and counting. Since I’ve started the new job, and since my posting entries (if not actually writing them,) is a manual task (with Wordpress, I could queue things to Autopost). I’m not as good as I once was about getting entries posted in the morning as I would like to be. But it gets there.

Also, while I’m not cruising toward the A-List like I might have dreamed about when I was a teenager and getting started with this whole blogging thing, I’m actually pretty pleased with how this blog is going. Most entries evoke some sort of response that I see: on identi.ca, on facebook, or in comments. I get to have cool email conversations with you all. I’m pretty pleased. I’m still trying to figure out how to do a little better, because I think it’ll be awesome for all of us, if there are more voices and conversations going on, but I love blogging, and I’m really pleased with this project.

  1. Cyborg Institute and Sygn System

This is the project that I’ve started with deepspawn, to create a distributed social networking and “user generated database engine.” Notes and other work related to this project are starting to come together on the Cyobrg Institute Wiki, and it’s something that I put a lot of work into a few weeks ago, but I haven’t really given it the kind of love in the past two weeks that its needed.

My list at the moment, for Sygn related projects is to do some reorganization of the wiki (the constant struggle), to announce and promote the xmpp muc for the sygn project (a chat room), to help people develop a basic reference implementation (and maybe learn some Python in the process?), and generate a few more use cases, to help folks understand the implications and possible utility of the project.

  1. Cyborg Institute Systems Administration

One of my contentions about the future (of technology specifically, but I think it’s generalizable to some extent) is that as “previously scarce resources” like data connectivity, storage space, and software, become less scarce, the one thing that will continue to have concrete value is systems administration. Having people in the world who are really good at keeping larger systems running, at making sure all of the pieces talk to each-other, at making sure the people who need technological services have the right kind of service that they need. There’s real value in that.

And that’s a huge part of what the “Cyborg Institute” project is about. Sure there’s a lot of cyborg-related content and theorizing that I’m interested in working and developing, but really I can do that here on tychoish, what Cyborg Institute lets me (and you!) do is make this conversation much larger, it lets us work together and it allows me to help people do awesome things.

While the product of this work isn’t particularly visible, and I don’t really have the ability to say “I did X, Y, and Z for CI” this week, there are a lot of little things, and I think it’s definitely a worthwhile project.

5. `Critical Futures <http://criticalfutures.com>`_ `Relaunch <http://wiki.criticalfutures.com/>`_

This is definitely a Cyborg Institute project: it’s running on CI servers, we’re using CI tools, and I think the project--a collaborative fiction wiki--is very much one of these new technology-things that makes the whole “cyborg moment” so interesting.

I should point out that [brush][] is largely spearheading this. I’m just doing a bit here and there, and making sure the system runs well. I’m excited about this, and I’m glad that Critical Futures is going to get some love. There’ll be some other projects of mone--the novel, and so forth--on Critical Futures as well someday, but that’s down the road I think. Good to do something here, no?

  1. Knitting

I think it’s a good day when you can be like “You know tycho, you should watch more TV.” my current knitting project is very much a “do it whilst watching television” kind of project, and I’d very much like to be able to create a space in my day(s) to get more work on this done.

That seems about good for now. What are you working on? :)