Platypus Hands

I found a great new platypus picture. It’s the first one I’ve seen that really shows what a platypus’s front feet are like, and it’s not a bad shot of the face either. Damn, we platypi are cute!

When Clutter Is Good

Cindy reminded me last night of a metaphor that I invented ages ago but don’t think I’ve mentioned here before. My theory is that new facts or ideas don’t “stick” unless we have something to connect them to. If you think of your mind as a physical object, you need an “attachment point” (preferably more than one) to prevent the new piece of information from just drifting away again. These attachment points are, of course, previously learned information. The important corollary, then, is that it’s good to have a lot of attachment points. This is, I think, the goal of a so-called liberal arts education, and also a beneficial side effect of knowing a lot of trivia (which Cindy and I also refer to as “mental lint”). Even if the information isn’t useful in and of itself, it provides attachment points for other information, allowing you to retain it and perhaps later connect it to something else. This connection-forming process is, in my opinion, the real basis for a lot of inspiration and innovation.

It’s also interesting (to me, at least) that this conceptual model of how we assimilate and retain information is mirrored in the physical structure of the brain, where a lot of the “good stuff” tends to happen at the surface and convolutions (which increase surface area) are therefore correlated to the development of higher-order faculties in animals. Sometimes it’s not good to be smooth.

Defining Your Own Style Sheet

I’ve discovered that a lot of web sites look a whole lot better if I use my own style sheet to override some of the so-called designer’s more egregious font and color choices. Unfortunately, though this functionality is considered so important that the web style-sheet standard is even named after it (CSS = Cascading Style Sheets), it’s remarkably hard to find and use. For one thing, you have to know how to write a style sheet, which is just a little bit arcane. Then, you need to find out where your browser hides the option to let you define your own style sheet. Here are some instructions for Internet Explorer:

  1. Select “Internet Options…” from the “Tools” menu.
  2. Click the “Accessibility…” button at the bottom right of the “General” tab.
  3. Check the “Format documents using my style sheet” box.
  4. Click the “Browse…” button to tell IE where (locally) your style sheet lives.

Users of other browsers will just have to figure it out for themselves. Enjoy!

Why I’m Not A Millionaire

I came up with a brilliant product idea: a rack-mount fridge, for those people who have to spend a lot of time in a data center or colo cage and want to have a sandwich or a drink handy. You could slap a faceplate on it so that it looks like a computer or a router, so nobody would be any the wiser unless they happened to see you open it up and take out a beer. Is that a cool idea, or what?

The Engineering Mind

I think the primary distinguishing trait for all engineers, including programmers, is a basic drive to improve or create things through the application of one’s mental abilities. The largest part of this is a continual quest to find, understand and invent tools (including processes). There’s another element of uncovering and exploring cause-effect chains, there’s a third element of reductionism (“divide and conquer”) but it all comes down to a belief that invention and problem-solving can create a better world.

This might seem to many here like a basic *human* trait, but it’s not so. Many people have no desire to create or improve anything but their own situation in what they perceive as a zero-sum game. Others believe that improvement comes about through some means other than problem-solving or inventive forms of thought (e.g. philosophy or spirituality). Many scientists, even, believe that improvement is a matter of understanding rather than building. It’s only among engineers and programmers that this belief in the power and importance of building things (or improving things that have already been built) seems to be universal.

I wrote this for a thread on Joel Spolsky’s site. One thing I should have emphasized more is that the scientist’s or spiritualist’s way of dealing with the world is equally valid to the engineer’s way. They’re just different, and this is about what makes programmers different from other people – not necessarily better. I’ll explain why engineers are better in another article. ;-)

Mind If I Drop In?

There’s an excellent article on kuro5hin about the concept of a “code commando”. Definitely worth a read, especially if you have often felt – as I have – that what you’re doing is fundamentally different from what other programmers around you are doing.

As I pointed out in my response, I’ve often used the term “software paratrooper” to describe myself. Maybe it’s not quite as macho as “code commando” but I think it’s a better fit for someone who often finds himself isolated, behind enemy lines, locating and preparing objectives for the main force that will (hopefully) follow. My comparison to paratroopers is about specialization rather than levels of “elite-ness” and I certainly don’t mean to compare myself to real live airborne troops, but I do think it’s helpful for people who manage software engineers to think about what specialties they need and how those match up against the qualifications or inclinations of the people they have, and the military is a good example of an organization that has learned how to deal with specialists working toward common goals. Do you need more beach-storming marines, or more quartermasters and MPs? Do you have the right ratios of generals to lieutenants, sergeants to privates? Is person X best deployed as a field commander, or a desk jockey? How should the two be treated differently? It’s a useful conceptual framework, and people who actually use it to design an efficient organization IMO have an advantage over those who don’t.

Minor Redecorating

I don’t know if anyone ever looks at my article index instead of just coming to the front page, but I’ve created a new “freenet” topic to distinguish Freenet-specific articles from other technical articles. Some day I might make topics hierarchical, so that I could have a whole technical section with separate subsections for Freenet, generic distributed/networking stuff, other technical topics, etc.

Now that I actually seem to have a regular audience and a comment system, I’ve been thinking about some other changes to the site as well. For example:

  • Integrating the content-management code with the comment-system code. Check out this alternate view of PlatSpot topics for an idea of how it might look.
  • Adding (optional!) cookies so that users can save topic preferences. I know that most of my guests come here for the extremely technical stuff that is and will continue to be the backbone of the site, but I also know that at least a few would prefer to skip past that stuff to the cultural/philosophical/humorous bits.
  • Adding (still optional!) cookies to track identity on PlatSpot, and possibly highlight not-yet-read posts.
  • Chucking the whole idea of using entirely my own code, and switch over to some “off-the-shelf” journal/news/comment system – probably PostNuke instead. I enjoy writing my own code for this, and I like having the site reflect my own “vision” of how stuff should work instead of someone else’s (e.g. simple linear comment format instead of nested/tree structures) but there’s no way I can ever keep up with the feature set (e.g. RSS syndication) that these long-term multi-person projects provide.

If you’d like to provide feedback on these ideas, or other suggestions, feel free to send me mail or (even better) start a topic on PlatSpot.

Ummm…What Was The Question Again?

I was just re-reading Theodore Hong’s paper on Freenet performance, and I was struck by an interesting anomaly. Here’s a quote from the paper’s introduction:

I want to know the answers to questions such as,

Â?How long will it take to retrieve this file?Â? or Â?How much bandwidth will this

query consume?Â? These answers will have a direct impact on the success and

usability of a system.

Indeed they will, Theodore. Indeed they will. Here’s the problem, though: your paper doesn’t answer those questions. As I mentioned in a recent response to a later paper, the performance/scalability analysis that has been done for Freenet is actually quite distinctly non-quantitative and unrealistic. It doesn’t actually answer questions such as “how long” or “how much bandwidth” at all.<

Save The Whales Using Freenet

Freenet advocates often find themselves having to explain what Freenet is good for besides trading pornography and pirated music or software. The “helping Chinese dissidents” meme is probably the most frequently used example of such a socially redeeming use. Here are some examples:

Brandon Wiley, in The Register
FreeNet is uniquely useful for dissidents in China…so please don’t mess it up.
Steven Hazel
The requirements of people who want to distribute DeCSS in the United States are not as strict as those of political dissidents in China. There are different threat models, and different optimal solutions.
Guardian article about Freenet
The software – created by a 23-year-old Irish programmer, Ian Clarke, working at Edinburgh University – could easily circumvent the censorship activities of 20 governments, including Saudi Arabia and China.
Ian Clarke, in The Industry Standard
Clarke envisions Freenet supporting the publication of suppressed material, in particular pro-democratic material. “Governments always want to control to the greatest extent possible what’s going on in their country,” says Clarke. “It’s up to the public to draw the line and prevent them from doing that.”

One might naturally ask whether this potential for Freenet has actually been realized. Evidence for that seems scarce. Since Freenet itself is not searchable, it’s hard to tell how many documents published via Freenet have anything to do with political dissidents, but anecdotal accounts seem to indicate that sightings of such documents in the wild are extremely rare at best. I did manage to find one document that was critical of China and mentioned having been published (from Canada) via Freenet, but that’s all.

This shouldn’t really come as a surprise. Here’s why, from the Freenet project’s own website:

To work correctly, Freenet requires that other Freenet nodes can establish TCP connections with your node, typically a NAT or a Firewall will prevent this

In other words, Freenet can be blocked with a simple firewall, or even unintentionally by using NAT (Network Address Translation). How hard do you think it would be, then, for an organization like China’s government to keep wannabe Freenet nodes from finding each other? My own employer’s network admins have made it impossible to use Freenet and – trust me – those guys are none too bright. Freenet does indeed preserve anonymity, but as long as it makes no attempt whatsoever to deal with NAT or firewalls I don’t think it can realistically claim to be helping in any effort to get information into or out of a place like China.

In conclusion, then, I believe that “Freenet helps dissidents in China” (and variations on that theme) is a myth. It’s a myth that helps the principals portray (and perceive) themselves as idealists, and tar anyone who criticizes Freenet as an enemy of free speech, but it’s still a myth. Back here in the real world, Freenet still has yet to demonstrate the sort of socially redeeming uses that its proponents claim for it.

No, They’re Not Paying Me

I really love The Atlantic magazine. This month alone, they have:

  • A short piece pointing out the similarities between racial profiling and affirmative action, and the inconsistency of people (both liberal and conservative) who support one while opposing the other.
  • Another short piece about Eurosnobbishness and its extremely shaky foundations.
  • A longer piece about using computers to simulate social behaviors, with some very interesting results. Any article that mentions Axelrod’s work, even in passing, is highly likely to be worth reading

I haven’t even finished the simulation article yet, or anything past it. Really, even if you don’t subscribe you should check their one-month-behind web version every month.

OK, that was a little bit tour-guide-ish. Don’t worry; when I finish the article I’m highly likely to subject readers here to my own random thoughts based on it. For now here is a link to one of the earlier articles on this site, in a similar vein.