HomeLog InSource


[View] [Short] [Hash] [Raw]


Sell Me This Pen

The manager gives a pen to the new recruit. “Sell me this pen.”

The recruit doesn’t miss a beat. “What kind of writing do you do?”

“Memos,” says the manager.

“For quick memos, it’s important that the tip doesn’t go dry. This pen uses a special feed mechanism so that its tip always writes the first stroke.”

“Keep going,” says the manager.

“It has a very smooth, high quality ink that is a pleasure to write with. The tip has some yield so it won’t leave indentations or damage the writing surface. It has a molded grip for comfort. It’s well made and feels solid, and it has a good balance. It’s rated for over 1,000 pages of writing and has a lifetime guarantee.”

“Very good,” says the manager. “Now let me show you how to sell a pen.”

He takes the pen back, and holds it horizontally in the air.

“This pen,” he says, “used to be owned by Mother Theresa.”

[View] [Short] [Hash] [Raw]


PR and YOU!

(A few friends have asked me what’s up with my blog. If I were a super-famous blogger, that might be annoying. Since I’m not, it’s fantastic and I appreciate it immensely.)

I carefully curate my news sources, so it’s only dimly reached my awareness, but apparently there’s been something of a meltdown recently because it seems that most people don’t carefully curate their news sources.

That hubbub mostly passed me by, because it seems like a problem on another planet, but it’s come to my attention that there are people I know for whom “public relations,” “spin,” and media manipulation are a problem. In fact, putting aside the well-funded hackers of the Icelandic military, I can successfully propaganda my own friends.

To illustrate, let me tell the shortest possible story.

A friend of mine who doesn’t read my blog frequently asks me for audio cables. I happen to have a huge stockpile of audio cables that I (perhaps foolishly) bought in bulk many years ago, with the intent to resell. I wasn’t trying to make a killing, I was just aware that local stores charge an insane markup but shipping a single cable is expensive and inconvenient. Anyway, when this guy wants a cable, I make him buy a bag that I packaged to sell, at cost ($5). But… eventually I realized that he had started considering me a cheapskate.

Oh shit, public sentiment is turning against me! I’m down in the polls!

That is despite the fact that I do tech support for him for free, let him borrow my tools, help him move things, etc…

Anyway, the point of this story is not to complain (although that’s fun too). The point is, people do not think very hard in order to calibrate their opinions. Even on each other.

Positive PR works too. If someone is mad at you for something you did, drop everything and make it right for them. If you broke something, go to the store that night or first thing in the morning and buy a nicer replacement. If you borrowed something and the owner wants it back, get it back to them without making them wait.

(You can take that too far. One time a neighbor told me to break into his house to get something I had loaned him because he wasn’t home. I didn’t, which he said afterward made him feel awful.)

Later, I went out of my way to get this friend an HDMI cable he needed, for free, which seems to have turned around his opinion of me, at least for now. (I got it at a used goods store for $1 so he’s wrong to think that I’m not a cheapskate.)

Anyway, this is all well and good. At least when it comes to being polite and helpful, there’s nothing wrong with good PR.

But here, take this 5 second PR test:

  1. “We should kill old people.”
  2. “We should legalize euthanasia.”

If you read these two sentences differently, whether you are for euthanasia or against it, you are vulnerable to PR and spin–not just from the media and the government, but also from the people you know.

If you are smart like Bill Gates (at least before he cleaned up his act), you might look at a problem like this and see an opportunity. If you are smart like Ghandi, you might look at an opportunity like this and see a problem.

Please, engage your rational mind and consider the many possible meanings of a single statement, and the many possible statements of a single meaning.

And if someone asks you for audio cables, say you don’t have any.

Bonus: A lot of times, if you offer to do someone a favor and then later recant, or do a “partial” favor but have to stop early, people will get mad at you. This is really, really foolish. If someone so much as lifts a finger for you, you should be thankful.

Bonus 2: “Isolated incident” and “growing trend” both mean “a sample size of one.”

Thank you for reading.

[View] [Short] [Hash] [Raw]


To the Real Person on the Other Side of This Screen

One day I was tooling along at the bottom of the sea, overturning small rocks in search of interesting articles. In one article I hovered over a link and saw a familiar URL appear. A very familiar URL–my own blog, in fact. I was mildly alarmed.

In this case, things seem to have worked out alright. Let me say thank you to angersock, friendlysock, and everyone else whose posts have taught me so much over the decades.

However, this little episode could’ve been a drama if not a tragedy, if whatever thing I had written 3 years ago had been a little bit ruder, or Chris (whom I’ve never directly talked to) had been a little bit less reflective. In fact, let me also do a little bit of pre-emptive damage control by saying my blog is a record of how stupid I was at any given point in the past. That includes as recently as late this morning.

Perhaps the reason things worked out this time is that when I wrote some personal notes 3 years ago, which I later ended up posting on my blog, I managed to remember that the person I was writing about was a real person who, however unlikely, might actually end up reading what I wrote.

It turns out that the internet is extremely small, and if you write about someone they’re fairly likely to actually see it, sooner or later. In this case, it’s happened three times already: I saw angersock’s post about a project merely similar to the one I was working on; he saw mine about his comments; I saw his about mine. And now I assume he’ll see this one.

I have a theory that the reason people often become jerks on the internet (which I have done myself) is due to the sense of powerlessness that stems from feeling like nobody reads or listens to what one writes. It can become a vicious cycle: no one listens, so we become ruder. We become ruder, so no one listens. This sense can be reinforced not because the specific person we replied to didn’t listen, but because it’s all too easy to see the whole internet as a single person who never listens to us no matter how much we shout. We get into a pattern of saying the same things, over and over, because the internet seems to never learn, when in fact we’re getting ruder and ruder to a steady stream of new people.

Now, this theory may or may not be true. But nobody tries to become a Bastard Operator From Hell. It’s something we just slip into, usually without noticing. We must remember, or merely hope, that someone is listening: maybe the author, maybe a lurker, maybe someone in the distant future.

From the aforementioned article, there is something I’d like to highlight:

One of the other rather odd things I noticed was that, as I started putting those principles into practice, I became sensitive to posts by other users that didn’t follow these practices.

I found myself keying off immediately on people being overly negative or starting a reply off with some kind of grumpiness or just plain being impolite. Part of me wondered (wonders?) if that’s how folks read my own work.

Lately my thoughts about posting on Snacker News (sometimes called Yakker News) have been about making the site itself as respectable and welcoming to experts as possible.

HN is remarkable for the famous and successful (IRL) people in computing who sometimes deign to grace its pages with their comments. Often these comments add a big dose of real-world experience from someone who’s been there. Sometimes they’re grumpy or low effort, just like anyone else’s.

What concerns me is that people who are famous and successful (IRL) have no reason to put up with “internet randos” questioning their experience or giving them shit. In fact, no one has a reason to put up with that, but with some notable people, the loss is more obvious (if not necessarily greater).

It made me think of developmental stages of internet posting. Motivations for posting might be broken down into these categories:

  1. “what I think”
  2. “what will convince people I’m right”
  3. “what will make me look good”
  4. “what will make the site look attractive (intelligent and balanced) to other smart people”

I want to be clear that motivations 1-3 are not necessarily bad. However, I think they should all be tempered with a healthy helping of motivation #4. After all, if you post on an online forum, you probably also read it. Making the forum appealing to other smart people is in your best interest (unless you’re insecure, in which case work on dropping the ego first).

When you post a comment online, imagine that someone you respect will read it (which you should want!). Because they might.

I have some small suggestions to smooth out common interaction problems, particularly on threaded forums with voting (like Flobsters, HN or Reddit):

Comments being cynical or negative is actually normal and fine, up to a point. But keep in mind is that there is a real person who wrote the article or comment that you are replying to, and who is very likely to see your reply. If you’re going to publicly reject something someone else posted, please give them something constructive to go on.

Just to be clear, no, the internet does not need to be a giant hugbox. Personally I have a relatively thick skin (against rude individuals, not thermonuclear hate mobs), so I have the privilege of being able to tolerate assholes. I actually consider it part of my competitive strategy: I will make an effort to put up with almost anyone as long as I can learn from them. But I also recognize that others can’t or won’t do that, so it’s in my interest as much as everyone else’s if we can all be a little bit nicer to each other. (This can also be thought of as an example of Postel’s law.)

As the internet gets bigger and older, the culture seems to be fracturing into multiple groups who don’t like each other very much. I’m not sure we can do much about that, but I have a dream of permissionless collaboration, which to me means that even people who hate each other should be able to build on each other’s work. Sometimes I worry that if Einstein had been a bigger asshole, we’d still be stuck on Newtonian mechanics.

As an aside, I would highly recommend everyone read the n-gate.com Hacker News digest. It’s a little bit jaded (ha), but it can be helpful to have a mirror held up to one’s community every once in a while.

I’d like to leave you with a concerning comment from a very interesting thread I saw recently:


It feels like intelligent and mentally healthy individuals have been opting to abstain from online discussions in general over the last few years in droves after realizing their time and energy and better spent elsewhere. Especially with the trend of comments being taken out of context to attack individuals employers/livelihood. That leaves the young, socially broken and depressed (myself included).

The incentives for posting online are very small. Most of us do it to have fun, or learn things, or even make friends. If someone lashes out at you, or downvotes you when you were trying to be constructive, the ROI can easily go negative. I’m afraid of what it would be like if we entered a “cultural ice age.” Perhaps in the future we’ll have to go back and read old archives from the golden age of online forums.

I think that would be really unfortunate.

Previously, a guide to posting on internet forums[#].

Keywords: internet forum culture

[View] [Short] [Hash] [Raw]


Content-Addressable Storage versus Eventually Consistent Databases

Content addressing is, as far as I know, the best way to build an eventually consistent database. But it’s become apparent to me that there is actually not a lot of overlap between the two concepts beyond that.

My project StrongLink tries to be both. It provides content-addressable storage for files, and lets you find files by hash URI. It also tries to track file meta-data using what I called “meta-files”, which are files that store meta-data about other files.

This split personality ended up majorly over-complicating everything. Per-file meta-data ended up being a per-file eventually consistent database, with more complexity and less generality than a single large database would’ve been. Syncing was especially confusing, because you can use the meta-data in order to decide what files to sync (you basically end up needing two separate sync algorithms).

There are other differences and tradeoffs between content-addressable storage and eventually consistent databases. Content-addressable storage deals in files, which are likely to be large and mostly or entirely redundant, even during normal use. An eventually consistent database deals in commits or transactions, which are more likely to be small and rarely if ever redundant, except when healing after a network partition. A database needs to parse transactions into indexes; a storage system may need to break files into chunks (although I still maintain this is bad if your users rely on your hashes as part of your public interface, especially if they must be compatible between different storage systems).

If you want an eventually consistent database, building it on top of a general-purpose content-addressing system might not be the best fit, unfortunately. And if you want a pure content-addressing system, especially for performance, an eventually consistent database will be both overkill and slow.

It’s quite possible that this split simply mirrors the traditional dichotomy between file systems and databases. One is fast, dumb, and wide; the other is slow, clever, and deep. Don’t mix them up like WinFS did.

Keywords: tradeoffs