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!

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 ↩︎

Free Software Misunderstood

This post is in response to two things that I’ve observed recently:

1. A Misinformed Critique of the Debian Project

2. The largely unfair dismissal of free software/open source/hackers on the grounds of purported zealotry.


Debian, Critiqued

The above linked article, presents a number of critiques, leveled at the Debian project. While these complaints with user experience are valid, I was left with a serious, as we say on the Internet “WTF” moment. Read the article if you haven’t already before you get to my response, if you’re so inclined.

Also I’d like to challenge the Editors of that website to exercise a little more digression in what they publish in the future.

My response:

1. Stable releases of Debian are for the most part not intended to be run as desktop operating systems. The software in Debian Lenny is, at this moment nearly two years old. That’s fine (and even desirable) for a server, but most users want things that are a little more up to date than that. This is why we have distributions like Ubuntu, which manages to walk a much better line between stable (and benefits from the efforts of Debian) and current.

2. It’s possible to install Debian packages that aren’t contained in the repository, or provided in older versions of the operating system. Download the package with wget and then use dpkg -i [package-file].deb. There may be GUI tools that support this. While we might like to have Linux systems for “new comers” to the platform that don’t require using the command line, Debian stable isn’t one of these operating systems.

3. Installing fonts on most systems is usually as simple as putting the files in /usr/share/fonts or $HOME/.fonts and and running fc-cache -f. The complainer focuses a great deal on the absence of a familiar font management program (which appears to be a command line tool that exists in Ubuntu 9.04 which is a “newer” system than Lenny).

I still don’t see how “contempt” is the right word, to describe the fact that a massive project that is the result of a loose organization of hundreds of people, failed the address a few specific needs of a user using the system in a non-standard/non-recommended pattern qualifies as “contempt for users.”

As it stands it sort of feels like the author is attempting to stir up controversy by attacking a historical weak spot, and stretching the bounds of reasonable criticism in the process. I think editors of any publication should be above this sort of thing. thumbs down.

Dismissal of Free Software on the Grounds of Zealotry

We see this a lot, and I’m kind of sick of it.

I’ve seen a lot of people--who actually agree with almost every tenant of the most “ideologically pure” free software advocates--dismiss version 3 of the GPL, or RMS, or the FSF for being “too radical,” or obsessive, or “communist,” which is both intensely interesting and intensely troubling. It’s often in the form of “I wouldn’t say that like RMS,” or some such.

For starters, I think its interesting to note the prevalence with which “communist” is used as a dismissal of the “Free Software” movement, particularly because while there is a very vague “anti-corporations” and “anti-trust” vein in the free software world, in point of fact the biggest “big picture political” ideology around is a very ad hoc libertarianism. The “communist” jab is, probably more at the sort of heavy-handed ideological positionally of the “copy left” movement. Furthermore, I think it’s probably clear that Free software as we know it today wouldn’t be possible without commercial interests, input and, energies, and resources.

And yet. Free software/open-source, gets red baited. Interesting. And disappointing.

On Reading and Writing

I may be a huge geek and a hacker type, but I’m a writer and reader first, and although while I’m blathering on about my setup it might seem like all I do is tweak my systems, the writing and reading are really more “my thing.”

I wrote that sentence a few weeks ago, and I’ve written a great many more sentences since then, but I’ve felt that that sentence needs some more exploration, particularly because while it seems so obvious and integrated into what I do from behind the keyboard, I think it bares some explanation for those of you playing along at home.

What “I do” in the world, is write. And that’s pretty clear to me, and has only gotten more clear in the last few years/months. There are a couple of important facts about what “being a writer” means to me on a “how I work” on a day to day basis. They are:

  • There’s a certain level of writing output that’s possible in a day, that I sometimes achieve, but it’s not sustainable. I can (and do) do the binge thing--and that has it’s place--but I can’t get up, pound out two thousand or more words every day on a few projects and go to bed happy. Doesn’t work like that.

  • Getting to write begets more writing, and it’s largely transitive. If I write a few hundred words of emails to blog reader, collaborators, and listservs in the morning, what happens in the afternoon is often more cogent than if I spend the morning checking twitter.

  • Writing is always a conversation, between the writer and other writers, between the writer and the reader, between the writer and future writers. I find it very difficult to write, even the most mundane things, without reading the extant discourse on the subject.

  • Writing is an experimental process. I’ve said at work a number of times, “you can’t edit something that isn’t there,” and in a very real sense, it is hard to really know “what you want” until you see the words on the page. Written language is like that I suppose. That’s what the blog is about, I guess.

  • Ideas aren’t real until they’re written down. I’m not much of a Platonist, I guess, and I think writing things down really helps clarify things, it helps point out the logical flaws in an argument, and it makes it possible for other people to commend and expand on the work that you’ve done. That’s a huge part of why I blog. It’s very much not publication in the sense that I’ve created something new and I’ve finished and I’m ready for other to consider it. Rather, I blog what I’m thinking about, I use the blog to think about things.

    Though I think it’s not clear to me (or to you) at this point, I’m very much in the middle of a larger project at the nexus of open source software communities, political economies, and units of authentic social organization. The work on free software that I’ve been blogging, the stuff about economics, the stuff about co-ops. I’m not sure how that’s all going to come together, but I’m working on it. Now, four months into it, it’s beginning to be clear to me that this is all one project, but it certainly never started that way.

The technology that I write about is something that I obviously think has merit on it’s own terms--hence the Cyborg Institute Project--but it’s also very true that I use technology in order to enable me to write more effectively, to limit distractions, to connect with readers and colleagues more effectively, to read things more efficiently. Technology, hacking, is mostly a means to an end.

And I think that’s a really useful lesson.

personal desktop 2

For a few days last week, in between the time that I wrote the Personal Desktop post and when I posed it yesterday, I had a little personal computing saga:

1. One of my monitors developed a little defect. I’m not sure how to describe it, but the color depth suffered a bit and there was this flicker and I really noticed it. It’s not major and I probably wouldn’t have noticed it, except I look at a very nice screen all day at work and I had a working display right next to it, I saw every little flicker.

2. I decided to pull the second monitor, and just go back to one monitor. While I like the “bunches of screens” approach, and think it has merit, particularly in tiling environments, I also think that I work pretty well on one screen, and with so many virtual desktops, it’s no great loss. Not being distracted by the flicker is better by far.

3. I pulled the second monitor and bam! the computer wouldn’t come back from the reboot. Shit. No error beeps, nothing past the bios splash screen. No USB support. Everything plugged in. Shit.

4. I let things sit for a few days. I was slamed with stuff in other areas of my life, and I just couldn’t cope with this. It doesn’t help that I really like to avoid messing with hardware if I can at all help it. Fellow geeks are big on building custom hardware, but the truth is that my needs are pretty minimal and I’d rather leave it up the to the pros.

5. On Friday, I sat down with it, pulled the video card that I’d put in it when I got the machine (an old nvidia 7200 series), and I unplugged the hard drives and futzed with the ram, and after re-seating the RAM it worked. I’m not complaining, and I figure it was just some sort of fluke as I jostled the case.

6. So now I’m back, with one monitor, no other problems have been fixed from the last post, but I can live with that.


As I was fretting with the implications of having a computer die on me like this, and thinking about my future computing trajectory. I realized that my current set up was deployed (as it were) under a number of different assumptions about the way I use computers. I got the desktop with the extra monitors when I was starting a series of remote jobs and needed more resources than I could really expect from my previous setup (a single macbook.) I also, in light of this downgraded my laptop to something smaller and portable that was good for short term tasks, and adding mobility to my setup, but that really didn’t work as my only computer for more than a day or two.

Now things look different. I’m not doing the same kind of remote work that I got the desktop for, and I have a killer machine at work that I’m only using a portion of (in a VM, no less). I have a VPS server “in the cloud” that hosts a lot of the “always on” infrastructural tasks that I needed from my desktop when I first got it.

I’m not sure what the solution is. Make the desktop at home more “server-y” (media files, downloading stuff + writing) exchange the laptop at some point for: a 15" notebook that would be my primary machine--particularly useful for long weekend trips, un/conferences and so forth, and some sort of small netbook-class device, for day-to-day portability.

It’s a thought. Anyway, on to more important thoughts.

Cheers!

personal desktop

I wrote a series of posts about setting up my new work computer as a way to avoid blathering on and on about how the movers lost the cushions for my couch, and other assorted minutia that seem to dominate my attention. What these posts didn’t talk about were what I was doing for “tychoish” and related computing.

About a week and some change, before I moved, I packed up my desktop computer and started using my laptop full time. It’s small, portable, and sufficient, if not particularly speedy.

I can do everything with the laptop (a ThinkPad x41t, which is a 2005-vintage 12" tablet) that I can do on any other computer I use, and while I often prefer it because small screen means that it’s really easy to focus intently on writing one thing at a time. This, inversely, means that it doesn’t work very well for research intensive work, where I need to switch between contexts regularly. It’s a fair trade off, and I did OK for weeks.

But then, having been in town for two and a half weeks, I decided it was time to break down and get my personal desktop setup and working. And it’s amazing. The thing, works just as well as it always has (which is pretty good,) and it’s nice to have a computer at home that I can do serious writing on, and the extra screen space is just perfect. I’ve been able to be much more productive and comfortable with my own projects since this began.

There are some things that I need to address with this computer, that have been queuing up. In the spirit of posting my todo lists for the world to see…

  • I need to get a new keyboard. My “fancy” “Happy Hacking Lite 2” keyboard is at work, as I’m comfortable with it, I do a lot of writing at work, and I set up that keyboard first (and the current default Mac keyboard sucks.)

    I’m thinking of either, getting another Happy Hacking keyboard, or more likely at this point, getting a das keybaord ultimate because how could I turn down blank keys and variable-pressure mechanical switch keys. And writing is what I do, so totally worth it.

  • I need to install Arch on this computer. I feel like cruft is beginning to accumulate here, I’ve never quite been happy with the ubutnu experience, and there are some things that I can’t get to work right (namely mounting of USB-mass storage devices) My concerns are that getting dual monitors setup on this box was a royal pain. But that might have been ubuntu related. I’m not sure.

  • My current thought is that I’ll buy a new (small) hard drive (eg. 80 gigs) to run a clean operating system install on (arch) and then use the current drive as storage for the stuff that’s already there (music, video). But I might just get a larger additional drive and do it in reverse. I dunno. The current situation isn’t that bad, and I think that I’ll archify the laptop first.

Annnyway…

are web standards broken

When I started doing this website thing on the eve of the millennium, the burgening buzzword of the time was “web standards.” All of us in the know were working on learning and then writing to web standards like HTML 4.0 and eventually XHTML 1.0 along with CSS 1 and 2. And we were all hankering for browsers that implemented these standards in a consistent way.

Really all we wanted was for our web pages to look the same no matter who was viewing the page.

This pretty much never happened. Web browsers are pretty good these days, or they at least--in many ways--don’t suck as much as they used to, but they’re all a bit quirky and they all render things a bit differently from each other. And on top of that they’ve got poor architectures, so as programs they’re really bloated, and prone to crashing and the like. I’ve written before about being “against” websites, webapps, and the like and I think my disdain for the “web” grows out of the plan and simple fact that:

the web browser is broken, beyond repair.


So where does this put the cause of web standards in web design? Thoughts and questions:

Do we write to standards which aren’t going to get adopted usefully? Is ad hearing to standards a productive use of time?

Do we write to clients (specific browser implementations) that are broken, but at least assure that content looks “right?”

When the previous goals two goals aren’t compatible which wins?

Will HTML 5 and CSS 4 fix these problems, or is it another moving target that browsers won’t adopt for another 10 years, and even then only haphazardly?

Are there other methods of networked content delivery that bypass the browser that might succeed while the browser space (and the content delivered therein) continues to flounder? I’m thinking object/document databases with structured bidirectional, and limited hierarchy (in the system, objects might have internal hierarchy)?

Is the goal/standard of pixel-perfect layout rendering something which the browser is incapable of providing? Might it be the case that CSS is simply too capable of addressing problems which are outside of the ideal scope for defining a consistent style for a page: Let me run with this idea for a moment:

Maybe the problem with XHTML and CSS isn’t that it’s implemented poorly, but rather that we’re trying to use CSS classes and IDs and div tags in an attempt to make pixel-perfect renderings of pages, which is really beyond CSS’s “mission.” What would web standards and the state of the browser look like, if you dropped CSS IDs (eg. #id-name{ }) and made single instance classes (eg. .class-name{}) verboten? Aside from crashing and burning and completely killing off browser-based applications?

I look forward to hearing your thoughts on the subject.