Monthly Archives: September 2008



I like keyword search engines on the web. I find all sorts of interesting stuff when I look for some phrase that pops into my head. Like “software scar tissue” led me to The Goo. I can’t actually say it’s interesting, because it’s hard to know what it is, really, but from a quick poke around, it seems like it at least shares some common concepts with a crazy project I’ve had brewing in my head for a few years. Maybe there’s something I can steal from it, or maybe I can at least see what madness lies along that path…


VNC over SSH to OSX

Not that it’s any great discovery, but since I didn’t get a good hit when I was searching for this myself, I figure I’ll write this up a bit.

I wanted to use VNC over SSH to my headless OSX box (yes, I own an OSX box, no, I’m not a traitor to the Linux race) from outside my network. But when I tried to connect across the tunnel, I kept getting this “channel 3: open failed: administratively prohibited: open failed” on the Mac side. There are lots of hits for that phrase out there, many of them giving what might be good advice in some situations, but what I ended up having to do was to change my ssh arguments.

(Let’s pretend the external IP of the Mac is, and the internal address is
I was doing this:
ssh -L 5901:localhost:5900
but what I needed to do was this:
ssh -L 5901:

(FYI, yes, there is a ‘Linux race’. The papers have been filed with and approved by the World Racial Administration, and your direct or indirect use of the Linux kernel makes you eligible for membership. Benefits include a free copy of the kernel and a sense of superiority over any other groups of people you choose.)


Web apps

Hmmm, got to thinking today: I’ve been involved in developing a pretty wide variety of web apps. Let’s see, I’ve worked the following, in varying but significant ways:

  • large-model 3D viewer
  • phone call simulator to train salespeople
  • elearning viewer in HTML
  • pixel-perfect Flash reimplementation of the above elearning viewer
  • training simulator for CNC machines
  • learning management system
  • 3D walkthrough for a sort of virtual environment builder
  • system for tutoring about other web apps
  • speaker-bureau management system
  • bridges between the above management system and two non-web apps of the same ilk


Well, has it?


Another free business idea

Here’s a way to make some quick cash. Create an online-friend-finder service, where people sign up, create a profile, and get matched up with friends. The secret is all in the matching up: instead of matching site members based on their profiles, you match site members with people trained to be friends.

The training is pretty simple and doesn’t require a lot of skill, so you can hire a large and cheap labor force, especially given the economies of online work. You simply train people to parrot back nearly everything their new friend says, with varying but generally excessive levels of agreement, and paraphrased and stylized and time-shifted in such a way as to thinly veil the mimicry.

Sure, you’ll have some percentage of potential members that will consider this to be a poor substitute for friendship, but just let them drop off, you don’t need ’em.

You could advertise this service with spam; I think there’s a really good correlation between people who pay attention to spam and those who would find this service to be a perfect fit for their personalities.

I have to admit, though, that I haven’t researched this market at all, and the more I think about it, the more I realize that there are certainly a number of services out there doing this already. That’s not to say that there’s no more room in the market for you, just that you’re going to have to spend a lot of your budget on marketing and branding in order to make your members feel like they’re elite compared to members of your competitors.


People, databases, code and history

A couple projects that I’ve been working on for a while now have really impressed upon me the complications that result from the interaction of people, databases and code through their coevolution in the context of a long-running application with thousands of users. Well, I should say in the context of three long-running applications that were separately engineered, are in different parts of their lifecycles, have somewhat separate user bases, but have all their data intertwined.

From a high-level view, none of these applications or data models or codebases or use-cases are super-complex in isolation. But their interactions, plus the pressure of keeping things running continuously while adding new features, etc., really drive up the complexity to amazing levels, at least for my feeble brain.

It’s hard to convey this stuff in any concrete way without writing a few hundred pages, which surely no one would want to read… I guess that’s why it can be a little surprising to a person to run into these situations: millions of people have faced such crazy complexity in their work, but little of that is going to get passed on to others until they experience it directly.

So, I’ll just shut up about it.


EBS speed

In the description of Amazon’s EBS (Elastic Block Store), they say that

The latency and throughput of Amazon EBS volumes is designed to be significantly better than the Amazon EC2 instance stores in nearly all cases. You can also attach multiple volumes to an instance and stripe across the volumes. This is one way to improve I/O rates, especially if your application performs a lot of random access across your data set.

I wonder how they do that. I presume that EBS volumes are generally stored on separate machines, accessed through the network, and that instance stores are generally local disk. Could be that the local disks are really slow and the SAN disks are really fast and it’s just luck that it came out that way… But I wonder, if you had the same speed of disks in the two cases, is there a way to design things to come out as described above. Have to think about that one…



[This is going to be a bit of a ramble, so don’t say you weren’t warned…]

Have you ever tried to define Peace? I don’t know that I’ve ever tried seriously to do so. I think generally my line of thought is “well, let’s see, it’s the absence of conflict. what’s conflict?” at which point the line quickly knots up and I say “ah, I know it when I feel it” or some other cop-out.

When I was thinking about trust recently, and said that people are almost always trustworthy, the image I had in my head was that of buying a soda at the convenience store or something. When I try to say exactly why that’s relevant in my mind, it’s fairly vague, oh well, but the example also popped into my mind when thinking about peace. If I mentally test the hypothesis “economic systems destroy peace” (a hypothesis worth testing if only because I’ve heard variations on it many times), the example is a possible refutation. Most economic transactions I have do no harm to my individual peace, and often they promote it.

That, then, got me thinking about the definition of peace as “the condition where one feels no distrust”. It’s easy to see that that’s at least somewhat different than the initial definition above, since, for example, I can have a technical debate about how to implement some software system (which is a conflict) without losing trust in my interlocutors. That case is important to me, too; technical debates are a sort of conflict that I wouldn’t want to remove in a quest for peace.

I don’t know how good that definition is in general, and of course, I don’t believe in definitions anyway, but I’m going to try it on for a while and see what I learn…

It’s worth noting that one advantage of that definition is that it’s more centered on the individual. I mean, speaking about either conflict or trust requires speaking about two entities, but in the case of conflict, it’s about two subjects, while in the case of trust, it’s a subject and direct object. For this sort of definitional problem, I far prefer definitions where internal perceptions have more weight than second-hand information.