shimon/journal entries


There was a major computer scare this morning with my desktop computer system. I had booted it into Windows to play with some ASP.NET stuff, and just after it finished booting I got the message:

Unknown Hard Error; please save your work. Machine will reboot in 55 seconds.

What the hell is a Hard Error? Is that tougher than an Easy Error? Anyway, after I clicked OK on the one dialog box that remained, the machine rebooted… almost.

In fact, it started rebooting, and stopped at the motherboard's splash screen. As I sat there watching that frozen screen for minutes and minutes, and the hard disk light blinked on and off and on and off—trying to communicate some message of lost hope that I didn't understand—I started to question myself. Maybe it wasn't wise to always buy the cheapest available computer components? If I had spent more than $40 on a motherboard, perhaps it wouldn't have crapped out in so devastating a fashion? Would I be spending my Sunday driving to and from Micro Center and hoping that the data on my hard disks remained alive?

In a last measure of desperation, I slid the cover off of the computer. Perhaps a cable had gone loose. Perhaps some dust landed in a bad spot, shorting some circuit. So I tapped all the important cable connections, and I huffed, puffed, and blew out a LOT of dust.

And miraculously, it worked. I turned the machine back on, and it booted without complaint. I guess I can continue buying the cheapest possible equipment… if I keep my fingers crossed…

On the way to work this morning, just over Arlington, Massachusetts, there was a huge gorgeous 180-degree rainbow. It was nice not having a camera and just wiggling around the car, moving my eyes from one end to the other.

It wasn't quite as good as this rainbow over the Baltic Sea, pictured here with my friend Chris Holmes.

For all mothers in the audience: don't worry, I wasn't driving.

It's my first night in Paris. Ever.

I'm rather tired from travelling, but I'm still very excited to be here. I'm staying with some family in their apartment near the Bastille, which enables the visit to remind me that both my French and my Russian are in tragic disrepair.

After meeting my uncle (technically, my dad's cousin, but they were very close) at the Gare de l'Est train station and taking a shower at his place, we went out for Sushi. Then we took a little walk around the neighborhood and returned home for tea.

But the highlight of the evening was a car ride around Paris. We drove along Place de la Concorde and Trocadero (rue? place? j'ai oublie), stopped briefly by the Eiffel tower, passed the amazingly vast Louvre… it was too much to take in on my first night and after travelling all day, but it was still pretty amazing.

One thing I can definitely take away: Paris driving is insane. It makes Boston driving look like steering a shopping cart through a yuppie supermarket. Paris highlights its hugeness with swarms of people much more than I had expected, and many of these people are driving cars or (more crazily) motorcycles. Thanks to Zurich's walkability, I haven't been in a car in about a week, which is very rare for me; the ride, though fun, didn't exactly give me the best taste of what I was missing.

Personal Service Annoucement - What should I do in Paris?
Readers, if you have any suggestions for what I should do as long as I'm in Paris, send them my way. My favorite suggestion will win something cool and French.

It's labor day, but I thought I'd show off my iconoclasm by working anyway. (Actually, I missed a deadline and am in rapid-recovery mode.) I'm sitting at home, loving the simple workingness of broadband internet and Windows Remote Desktop Sharing, and then boom.

No, really it was more of a squeak, creak, groan. The software has gone out of control and the computer no longer has time to pay attention to me. Network packets fall into the abyss. The door is open but there's nobody home.

It needs to snap out of it. It needs a little chiropractic attention on its reset button. And I am here, after a pleasant 21 mile drive, to provide that attention.

At least the commute to work today is guaranteed not to include traffic.

The upcoming version of frassle has a major piece of new functionality, called the page builder. The page builder (light bulb above head, details) lets you construct custom views of the information in your weblog as well as other weblogs published on frassle or aggregated via RSS. You start with a blank page and add blocks that contain dynamic content. The content is selected according to a rule called a noteset expression. Frassle looks at your noteset and pulls out all the matching blog posts (notes), then formats them according to a template you've selected.

For example, you could get a list of titles of everything on your todo list. You could get the most recent 15 posts to your blog and show their full or excerpted text. You could mix up recent posts from a bunch of your friends' blogs and present them together. You could even use frassle's inter-category similarity tracking to present recent headlines by topic, like a personal Google News.

I'm definitely excited about this feature. The major bits are done and it's working on my development machine. There is a lot of polishing to do, but the fundamental idea works and is profoundly powerful.

But I am also confronted with a challenge. This is a conceptual challenge that I need to think about for a while—days or weeks. It's about a relationship between concepts in software—in this case, between frassle's idea of a noteset and its idea of a feed.

If you build software, you know how important it is that the key concepts in your system are clearly articulated and differentiated. When you, as the chief designer of the system, find it difficult to grasp the ramifications of choosing one approach over another, it is a sign that the facilities you've built are confused and redundant. You can't excuse yourself for this, because you built it: you shouldn't be sitting around wondering why. The desired effect is quite the opposite: simple, clearly understandable concepts leading to profound power by virtue of their clever combination.

(Diversion: I don't want to insist on 100% orthogonality in software design. I don't believe that there should always only be exactly one way to do it. But when there are multiple ways, they should be distinguished from each other—whether by factors of efficiency, flexibility, future possibilities, or simply taste. There must be a way to choose consistently within yourself, so you can trust your old code and simplify your assumptions. This is my rationale for still loving Perl and its motto, There's More Than One Way To Do It.)


(OK, here's where I get to the actual thinking. The part below is still a work in progress.)

So yeah, notesets and feeds. A noteset is a flexible way of selecting a set of notes. A feed is associated with a person or some other kind of coordinated publishing entity. One piece of tricky business is that a feed in frassle is either a blog belonging to a user or an RSS feed aggregated from outside. But frassle publishes notesets (and subcategories within feeds) as RSS feeds too. So what happens if you subscribe to the RSS feed of a frassle noteset? You suddenly get this view of a dynamic note set cast into the guise of a coordinated feed. Should subscriptions in the aggregator associate with a feed, or with a noteset that selects recent items from that feed?

(to be continued/edited…)

I really should be going to bed, but I'll do a quick recap of this fun Thursday evening before I forget entirely.

The usual Thursday blog meeting was colocated today with a talk by Shorenstein Center Fellow Rebecca MacKinnon, who runs NKZone. Rebecca is a fascinating person who has been CNN bureau chief in China and Japan, and is currently devoting significant effort to covering North Korea. On NKZone, she takes on a very tough subject—there is virtually no journalist access into DPRK—by engaging any available sources on the net and digesting reports from China and South Korea. Her talk touched on a lot of interesting points, such as the role of weblogs in journalism, the atmosphere of secrecy and fear in DPRK, and the ways weblogs can engage a community.

But what really makes Rebecca interesting is that she's very unusual for a journalist: she has resigned from CNN to take a detour into exploring what she sees as a new kind of news medium. (I was delighted to hear that although her year at Shorenstein is nearly up, Rebecca will be staying at Harvard for another year thanks to the Berkman Center.) I no longer find it acceptable to consume news that doesn't include links that discuss, vet, and provide supplemental material for each story. As a generation of world citizens grows up used to these possibilities, the CNN demographic will continue to age and shrink.

Of course, this does not imply that blogs written by amateurs will overtake professional reporting. I strongly believe both postions will learn from each other in the next few years, and we will have a better world for it.

The talk included pizza, drinks, and cookies. I stupidly went to a spicy Asian all-you-can-eat buffet for lunch so I wasn't able to sufficiently take advantage of this opportunity. Though actually, Harvard's pizza wasn't very good.

After the talk we stayed in the room and had our "Berkman" meeting. This one was quite different than usual: a much smaller group and in a different space. Sun, Jessica, Rebecca, Dave, Rick, Tom Griffin, and I were in attendance. We talked a bit about the future of our meetings in the anno-Daveini era. Then Dave and Rebecca schemed a bit about how to kill Google. They both see it as too powerful.

In my opinion, they are overreacting to a couple of small fringe services Google has only dabbled in. I hope Google does well not only because they provide vast good in the universe but also because they could be a valuable counterbalance to Microsoft. Microsoft also provides vast good but has a history of and inclination toward causing severe damage by killing whole market segments in willful, cold calculation. I'd waaaaay rather Tim O'Reilly, dirty rotten bastard though he may be, get rich off Google's success than give Microsoft more cash so they can strangle another innovator while DOJ Antitrust Division sleeps.

The other topic of discussion was the Iraq war. Oddly, I was the only person speaking who might conceivably have been pro-war. Dave thought we should high-tail it out of there ASAP. Rebecca didn't disclose as much opinion but seemed clearly anti-war. Rick initially supported the war but only due to the danger of WMD. I don't think I clearly articulated this at the meeting, but I am actually a supporter of the Iraq invasion and occupation regardless of WMDs. Iraq is an opportunity to shape part of our military into a long-term security force that can enter a dangerously disconnected place like Saddam's Iraq and leave behind safety and economic links to the rest of the world. The middle east will need this kind of intervention time and time again if the US and emerging superpowers (China, India, Russia) are to expand their energy imports without a corresponding increase in terrorism imports. We had better get started, and notwithstanding my favorite sarcastic Bush campaign slogan—Don't switch horses in mid-apocalypse—we'd better stay in Iraq until it's well on the way to becoming a sunny vacation destination.

I should add that, although I am pro-war in this case, I am anti-Bush. A better president would have gathered the support of his countrymen and allies, rather than giving us all a fat old middle finger.

After the Berkman meeting ended, Sun, Jessica, and I went to get some ice cream and hang out outside. I gave them a tour of my frassle to-do list (no kidding, they actually asked), which resulted in at least 10 new feature requests. I could talk all about that now, but it's really, really time for me to sleep. Goodnight, friends.

Tonight at 10:16pm on the way back from a work conference, I failed to yeild going into the Concord rotary on Rt. 2. My mistake entirely; I must have been very tired and misjudged the distance. Worst of all, I failed to yield to a cop.

I was very apologetic and polite, and he let me off with a warning. If you factor in increased insurance premiums along with the ticket itself, a ticket would have cost me at least $700. So thank you, officer. I'll drive more carefully in the future.

I took advantage of today's sunny, balmy 30° weather to go for a walk. I went to my old favorite walk destination, Arlington's Spy Pond. As I got closer, I saw people— on the pond! Of course any Bostonite can tell you that by now ponds are frozen so solid you could drive a tank across them, but I hadn't made the connection with my local pond.

This was the first time I'd seen so many people out on the ice. I counted over 30 people skating, walking, biking (!), and playing hockey. I walked and slid around for a while. The ice glowed a beautiful bright blue against the sunset. I especially enjoyed the air bubbles under the ice: frosted over on the inside, they looked like bright white mushroom caps rising through the ice. A pretty surreal experience, walking on water.

During my freshman year of college, while walking through the path in front of the Williams College Museum of Art, I invented a piece of personal doctrine. The principle I invented was small and easy to understand but with profound implications, just like a good computer program. It was that

I should never do anything I'd be ashamed to have appear in a personal journal on a public website.

Naturally, there are some obvious exceptions. For example, if a friend confides in me and I listen to his secrets, those do not go up on the web journal of my thought-experiment. Details of my sex life are also not the public's business. But the point was to give myself a tool for evaluating certain long-term consequences of my decisions as I decided them.

In particular, this got me into the habit of asking myself how my actions could be scrutinized. I didn't want to please everyone or get everyone to agree with me. What I wanted to do was avoid any situations where I might have to defend something I felt was indefensible.

As a result, I always wanted to find and reconcile small personal conflicts before they became big ones. I got into the habit of reflecting on my actions and trying to understand what motivated them. I'd take a devil's advocate position, pretending I was someone out to prove that Shimon was stupid or evil. Real Shimon and Devil Shimon would argue (politely) in my head. The goal was to be able to either honestly refute or honestly take responsiblity for any shortcoming Devil Shimon could find.

Did this prevent me from making any mistakes? Hardly. But it made me realize that I can make mistakes, even mistakes that hurt people or hurt me, and that it's OK. I can learn from them, and I can be careful and avoid them in the future. But the doctrine of honesty gave me a powerful tool for dealing with my mistakes: it enabled me to consider them scientifically.

If you have not been in a good writing workshop, you may not know the value of confronting your own mistakes scientifically. The reason is that by nature, human beings have a certain level of pride in and expectations for thier work. We are usually not conscious of our pride and expectations until they're injured or unmet, hence the popular truism you don't know what you've got till it's gone.

The problem with having pride and expectations is that you subconsciously support your pride, or your expectations. These concerns become hidden assumptions; the things you can't say. Well, at most crucial junctures in thinking, there is good sense to saying those things you can't say. In science, the major breakthroughs must not, by definition, fit into current paradigms. In therapy, the fears that a patient is unable to talk about are the most crippling.

Unsurprisingly, this scales to one's day-to-day life. Those actions you take that you're least inclined to examine, those motivations you're least inclined to explore for fear of what it might admit, are exactly your greatest opportunities to improve yourself as a human being. Just like those problems in a poem you bring to a workshop that you're most afraid will expose your lack of skill will in fact do that and show you, conspicuously, how to improve both your current poem and your overall ability.

Maybe that's why I blog— to keep myself honest, and to remind myself that I can make mistakes. In writing. Several times a day. :)

My mind is dragging. I should be making progress on frassle but I don't even know if I've fully woken up today. Probably I should take a shower and clean up and do laundry. Instead I imagine I'll try vainly to work on frassle for a while and eventually give up and sleep or sweep or something.

« Previous PageNext Page »