kind of writing/rants


link

If it weren't for that god-awful dock, I might have actually considered buying a Macintosh. Unfortunately for Apple (OK, they seem to have done alright anyway) I just couldn't get past the repugnant uselessness of this apparatus. With the cool floating effect, I had to scrub the icons to reveal names and pick the one I wanted. Without the effect, it was just a bunch of big icons I rarely used, with some ambiguous facility for switching between already-running applications.

Apparently, I'm not the only one who feels this way.

link

A friend emailed me asking what I thought about Ruby. I've only recently picked up a book on Ruby and am charmed by its comprehensive non-annoyingness. Here's what I wrote back to him. What do you think?

Will it take off? I doubt it. I think it has been steadily gaining over
the past few years, but there isn't anything so revolutionary about its
design or its culture that I think will let it dethrone Perl, PHP, and
Python (perhaps it's the lack of a letter P). At least not in the US. Ruby
originated in Japan, and may well be a leading scripting language there.
It's well-enough known, it has its O'Reilly books, but I don't see it
becoming THE HOT THING. It certainly has little traction in big software
companies.

There is a web application framework for Ruby called Rails [here's a promising recent article], which is rumored
to be a very lightweight, easy-to-start-with framework. Their website has a
10 minute video where someone installs it and builds a sample site. This
is highly laudable in a world where suits insist on web applications written
in J2EE, a framework so byzantine that it makes Software Architects
confident they cannot understand the details of programming, while making Programmers confident they cannot understand the scope of design.

Well, that may be a bit of an exaggeration of OpenOffice's evils, but it did just lost about two hours of my work on tomorrow's presentation.

Luckily it only takes about a fifth of the time to re-do work. But it's still frustrating.

link

Amid much ranting, this person (who I think I know) has a few good points about what in frassle is hard to understand. Some of these are addressed in the upcoming version, but others aren't. A lot of his points refer to categorization. Are you listening, Josh?

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.

link

A pretty great rant about the sorry state of aggregators. I mostly agree, and am amused by the tone of the writing.

But unless you're some anal-retentive Asperger's Syndrome poster child, you're only going to care about a sub-set of the endless sea of crap out there, and the software should help you filter it down to manageable, crunchy chunks.

Also has a link to decafbad, who has more good ideas for making aggregators more useful.

Update: I think I figured this out. See bottom.

Quick semi-technical explanation: a character encoding is the way that letters and glyphs are represented in a computer. For example, you might decide that in order to convert a chunk of binary data into letters, you'd first split it into byte-long chunks. Since a byte has 256 possible values, you'd then map each of these to different glyphs, such as capital letter A or m dash.

I've been served pretty well by the belief that character encodings were things I'd never have to actually worry about myself; they'd always be so low-level that the operating system, or web server, or database server would just take care of it.

Well, not today.

It turns out that frassle pages that are filled with weird characters—like spaces and a Euro symbol where a dash should be—should show up correctly now, because I've configured my web server to serve them as UTF-8. The reasoning behind this, however, makes no sense.

Here is the experimental data. The first two rows are the old and new configuration on the server you're using right now. The only difference is that HTTP responses are now sent with a UTF-8 charset header. The last 4 rows are testing I've done on my own development server.

The columns from and to describe how the webserver is re-coding each page. Where these say none, I have tested disabling the recoding.

Machine
DB Coding
from
to
served
Result
production ISO-8859-1 UTF-8? ISO-8859-1 UTF-8 Good
" " " " ISO-8859-1 BAD
development UTF-8 (Unicode) UTF-8 ISO-8859-1 UTF-8 Good
" " " " ISO-8859-1 BAD
" " none none UTF-8 BAD
" " none none ISO-8859-1 BAD

Why, oh why does the page get converted to ISO-8859-1 and then get properly processed only as UTF-8? The conversion isn't just faking it; the length of the string actually changes as you'd expect in a conversion.

I'm guessing that something is wrong with the way I've been loading data into my DB. But what possible format could I actually be storing the data in such that treating it as UTF-8 and converting to ISO-8859-1 would produce correct UTF-8 encoded data?

Based on this experience, I suggest UTF-8 be renamed WTF-8. The new acronym has a structure that reminds experienced Unicode users of the original, yet includes a helpful hint to newbies that they are about to enter a world of pain and frustration.


Update later that evening: Joel on Software has an essay on this that has helped to clear my mind. Check out The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

Still later: I think I know why the conversion didn't work. The text I was testing with was picked up by my aggregator. Since I was in the "what you don't know can't hurt you" camp when I wrote the aggregator, it simply took the text from RSS (it was UTF-8) and dumped it into my database (pretending it's ISO-8859-1). Something like this must have happened:
  1. Start with UTF-8 text.
  2. Put it through a totally inappropriate filter, like ISO-8859-1 to UTF-8.
  3. Now you have some incoherent garbage.
  4. But if you run that garbage through a UTF-8 to ISO-8859-1 filter, you end up with your original text, in UTF-8.

This can explain the mystery of valid UTF-8 pouring out of a UTF-8 to ISO-8859-1 filter. I still need to find out where the first, invalid filter is; and I need to make the aggregator encoding-aware. But at least there might be a plausible explanation.

Jeez, I feel so dirty having written all that software without even thinking about character encodings.

link

"For people who play (Internet) games all night and don't have any friends, don't have any hobbies, to come into the army is a very big shock," said Commander-Captain Jyrki Kivela at the military conscription unit.

Are you saying playing on the internet isn't a hobby?

Erm, I mean, you scandinavian wimps, toughen up! The strength of your armed forces is essential to… to… national solidarity. Yeah, that's it.

link

Philip Greenspun has a thought-provoking post, Maybe teenage pregnancy is a good thing:

Now that I'm 40 years old most of my friends are in their riper years. The women who are trying to have children in their late 30s and early 40s are going through torture. Hormones, needles, in-vitro fertilization, miscarriages, etc. Maybe teenage pregnancy isn't such a bad idea after all. I wonder if in pre-industrial societies it wasn't the case that the grandparents did most of the child-rearing that required judgement and experience. The teenage girl did the child-bearing but was still living surrounded by extended family so that her 30-35-year-old mom and mother-in-law could provide adult guidance for the baby. Perhaps we believe that teenage pregnancy is bad only because our family structures have been broken up.

This follows up on another insightful post on the problems with high school, one speculating that home-schooled kids have better manners, and a few others. I tried to find a unifying thread for this recurring source of rant. Here's the comment I left:

Actually, you're onto something here. Teenage pregnancy is risky in modern Western society because it reduces the opportunity for a girl to become a productive participant in the economy. But with child-rearing, you can easily spread out the work if you have a geographically clustered, trustworthy group. This is traditionally the extended family, a structure which is now rare but can perhaps be replaced by a more geographically convenient "adopted" family (as Christopher Alexander suggests in A Pattern Language).

Similarly, the abomination that is the factory high school is also mandated by the combination of nuclear families and economic convention. Proper consumer living requires both parents to work, which is only feasible when the kids can be supervised during the workday. It's no wonder that teenagers, restrained in the artificial world of the suburban high school, often fail to learn that their actions have consequences and act out with violent music or crime. They don't need to get the best tutors in India; just doing real work in any real town could teach them important practical and social skills far better than the years of health and speech classes.

Oh, you can also blame the disintegration of the extended family for suburban sprawl, the SUV, exploding health care costs, and epidemic overdependence on psychiatrists. Funny that the "family values" types are so worried now, as if there's much more to lose.

Shimon Rura – 7/18/04; 11:39:58 PM
I was delighted to tie together so many of Philip's favorite topics.

link

The New York times has a Circuits piece on Amplify, a tool that lets you easily combine stuff from multiple websites on a single page. So you can create a tiled view of different wallpaper and furniture patterns, or combine info from several sites on the same topic. Here's an example.

Sounds like blogging, eh? Jeff Jarvis, Steve Rubel, and Rafat Ali deride it as a weak attempt to do blogging in a proprietary format. I guess they're right. But to the extent that Amplify is useful or successful, what can we learn from it? What can we learn from it suckage?

First the successes—or anticipated successes. The frames design is horrid for most things, like the Bushisms example linked above, but it is good for some things. Sometime you want to compare things side-by-side. Doing this with frames might work for some people.

Getting in the New York Times is good. Perhaps it's paid placement, but in any case it is a good way to reach out to thousands of people likely to be interested in a high-tech product.

Now the suckage. Frames-based design is usually bad. People are good at using scrollbars. The site has some classic design flaws, but the chief problem is that there are lots of links with vague feel-good titles that nobody will ever click on. Consider the seven things in the HUGE Amplify bar at the top of each amp page, from left to right:

  1. Cone-shaped doohickey. Turns out this just goes to Amplify homepage, as does the huge logo on the right. It almost looks like some sort of magical control widget that allows you to set the volume, but that metaphor makes no sense here.
  2. Back button. BACK button? What the fuck? It's just like the back button in my browser except it's in the wrong place and doesn't work.
  3. "What is Amplify?". Another link to the homepage. Brilliant!
  4. "Get Amplify". Download for MSIE/Windows. The most straightforward item of the bunch, though not something you'd click more than once.
  5. "Amplify Community". Links to a collection of hierarchically categorized pages by other amp users. This is a reasonable features, but if it said "see 5 other amps about animals having sex" instead of something totally generic maybe people could be interested enough to click on it. Comment links on every fragment of an amp page would be better.
  6. "Share this amp". Send a link via email. Useful enough, but why not just say "email this amp"?
  7. Huge amplify logo. Goes to, shockingly, the home page.

Oh, and I found out what the back button does. It takes you to the previous amp you were at. Rather than just letting your browser's back button work, it introduces a puzzling UI behavior by opening any amps on top of each other in the same window. If you use your browser's back button, it goes to some intermediate page momentarily and then forwards you to the page you were just viewing. Lame.

Well, I guess I turned from taking an optimistic look at Amplify to ragging on it hard Jarvis-style. Sorry Amplify, but maybe these suggestions can help you improve your interface. I'll leave you with some wisdom from Strongbad, whose love for scrolling could serve as a good lesson for the frames-addicted amplify developers.

Every day you come a-scrollin' back, scroll buttons gettin' ill like a heart-attack. Uh!

Next Page »