« | » Main « | »

MIT Weblog Survey

Wednesday 29 June 2005

I took the MIT Weblog Survey, and as with most surveys, I was trying to reverse engineer it as I went. I'm not sure where this one is going, or what thesis he's trying to prove. There may be an explanation someplace; I didn't go looking for it. When it chose five random links from my blog, four of them were from my sidebar, so I'm not sure it got much value from my links. Oh well.

Take the MIT Weblog Survey

Windows shell reads XML processing instructions

Tuesday 28 June 2005

I was looking at a file with an extension of .xml in the Windows explorer today. It had an unfamiliar icon associated with it. I tried dragging it onto Internet Explorer to see the XML, and was asked if I wanted to open it. I answered yes, and Office Infopath opened! "Since when does Infopath own .xml files?" I wondered. I'd never used Infopath before, and hadn't recently installed it or anything.

Looking in the XML file, I saw this processing instruction:

<?mso-application progid="InfoPath.Document"?>

Hmmm, this seems to be an application linkage for the file! Sure enough, if I edited the progid to make it bogus, the icon in the explorer changed to a generic XML file icon, and I could now drop the file on IE and have it show me the XML.

I'd never heard of this before, but seems useful, and necessary. If XML is going to be a universal data solvent, then we'll need some way other than file extensions to determine how to launch applications from documents. I just had no idea the shell was willing to parse XML to find the application.

Of course, the progid can be any progid, for example, here's an example of using XSLT to create Word documents that uses this processing instruction to get the data hooked up with the application.

Ajaxian blog

Thursday 23 June 2005

In case you aren't in the web design field, or have been living under a rock, there's this implementation technique called Ajax, an acronym for Asynchronous Javascript And Xml. Google Maps is its best-known showcase, providing a great fluid experience that does all sorts of things that sites like Mapquest and MSN Maps can't do (dragging, resizing, etc).

Now we have Ajaxian Blog, a blog devoted to all things Ajax. Basically, Ajax is inspiring a renaissance in the construction of web applications, and Ajaxian is helping to track it all.

The current explosion in Ajax use is a bit of a mystery to me. I understand why people are jazzed about it, but why did it take so long? The tools have been lying around for ages. I worked at Blue Ripple where Mark Judd and Mike McGlynn were basically doing all of this stuff in 2000-2001. Is there something new that enables this explosion of use, or was the time just right for everyone to catch on? Maybe Google showing it off to such good effect has lit a fire under everyone. I don't mean to sound like an old grouch, I just wonder if I missed something: is there something truly new about Ajax?

Keyed lookups in XSLT 1.0

Thursday 23 June 2005

I write a lot of XSLT for a variety of reasons, but somehow the "key" function has always baffled me. Every time I need to use it, I scour Google, and re-read my own XSLT code, trying to find examples that will help me, once again, understand how it works.

Recently I needed a simple string lookup function, and used document("") and key() to build it, but it was again a process of head-scratching trial and error. I got it to work, and I finally understand it. Here are the results, offered in the hope that they will aid some future fellow craftsman.

» read more of: Keyed lookups in XSLT 1.0... (26 paragraphs)

Stupid flag burning amendment

Thursday 23 June 2005

Once again, the Congress is trying to amend the constitution. This time, it's to ban desecration of the flag. The amendment would read "The Congress shall have power to prohibit the physical desecration of the flag of the United States." It is generally meant to prevent flag burning. This is so dumb.

First is free speech: Why for the first time in our history will we outlaw a form of political speech that is causing no actual harm? Is this what we've come to? Is the "country" more important than the freedoms it is meant to embody? Free speech hurts: people will want to say things that offend you. So be it. It's only talk.

Second: what is "physical desecration"? For that matter, what is "the flag"? Will I be allowed to cut off the corner of a flag? Can I create a flag with a big hole in the middle? Can I make a non-flag that clearly evokes the flag (say, with three stars and five stripes, or the wrong colors), and then burn it? Can I use a flag to make a jacket and then wear it? Can I fly a flag upside-down? Which of these desecration? Who is to say?

Come to think of it: what about those tiny flags people flew from their car antennas until they were torn and tattered? Will that now be outlawed? Those people were trying to honor the flag and the country, and are probably wholeheartedly behind this amendment. Were they stupider then for flying and then ignoring their flag, or now, for sanctimoniously chipping away at liberties in order to "protect" it?

The whole thing is dumb. Yes, the flag is a symbol of our country, but it is only a symbol. Burning the flag is a powerful statement, but it doesn't cause harm. Patriots will be offended, but the truer patriots among us recognize that allowing flag burning is more essential to our freedoms than banning it. Our country is great, precisely because of those liberties. Banning flag burning will weaken us, not strengthen us. We are strong as a country, strong enough to let dissenters burn the flag.

Last place at Special Olympics

Sunday 19 June 2005

This was another Special Olympics weekend. My son competed in the Massachusetts state games. I've written before about how much I love these events. The atmosphere is incredibly supportive. I can strike up a conversation with whomever I sit next to, and find out about their athlete, and cheer them on. Then they'll do the same for me. It's an interesting mixture of competition, but with very little concern about the rankings. Of course, I love to see my son win a gold (as he did today!), but it's an only slightly diminished experience if he doesn't.

One of the things that struck me this weekend was the crowd's reaction to the last place finishers, and especially the ones far in the rear. A few times a day, you'll see a swimmer who can barely move through the water, and as a result, is working harder than anyone else to finish. Yesterday, a boy was wheeled to the pool in his wheelchair and lowered into the water. He swam the 25 meter freestyle, with a twisted, tortuous stroke that seemed very difficult for him. Of course, he came in last in his heat. By the time he neared the end, most of the crowd was cheering for him. When he finally reached the end of the lane, everyone applauded him. Incredibly, the same boy also competed in the 50 meter freestyle.

Another case was a girl in the backstroke competition. She had a coach in the water behind her, giving her directions. Her stroke and kick were erratic enough that she would turn randomly in the water. As she suddenly turned 90 degrees and headed toward the lane line, her coach would yell, "left, left!", and she would correct her course, often over-compensating. She'd kick hard, but the more power she put into it, the more off-course she would get. Of course, it took her a long time to finish the heat, but again, she worked harder than anyone, and when she finished, everyone was on her side.

Naturally, the athletes are striving to win, and their coaches and families are hoping they will, but watching the sheer effort is the most inspiring thing about these events. The sense of comraderie and support is overwhelming. Everyone there is rooting for the least capable, the most challenged, the ones furthest behind in last place. If you've never been to a Special Olympics, I highly recommend it.

Spolsky/Scoble workplace fracas

Saturday 18 June 2005

Joel Spolsky and Robert Scoble have managed to get into a "did too"/"did not" about whether Microsoft is a good place to work or not. I saw it through Damien's summary and thoughts on the matter, so you might as well start there.

Scoble's points are good ones: big companies with lots of power and money can do lots of cool things that small companies cannot. And the cool Microsoft things Scoble links to do sound really cool (except the Hummer). But in my experience, the coolest of those things happen to a vanishingly small fraction of the company's workforce. At the end of the day, what matters is how you actually spent your eight or ten or twelve hours of work. I vastly prefer small companies, because I can personally have a larger impact on the organization, and there are fewer inefficiencies in my way day-to-day. Some would dismiss it as being a big fish in a small pond, but I like it better than being a small fish in a big pond (or as a friend who is in the process of being assimilated by the Microsoft borg put it, "a guppy in an ocean").

Robyn Miller's blog

Thursday 16 June 2005

Robyn Miller, one of the brothers Miller who created Myst, has started a blog: tinselman. It's got erudite postings about things that would not be out of place in a Myst world: odd corners of the world that somehow feel other-worldly, fantasy creations, artistic endeavors, and so on. He's also recently covered some Myst history, posting the original proposal for the game.

BOM synchronicity

Saturday 11 June 2005

It's funny how things happen. I was at the Boston Python Meetup the other night, and one of the things we got talking about was the intricacies of Unicode, including the Byte Order Mark (BOM). The BOM is a "character" in the Unicode standard, U+FEFF. It doesn't render as anything (it is considered a Zero-Width Non-Breaking Space, or ZWNBSP). It's purpose in life is to be a tell-tale indicator of the endianness of a UTF-16 text file.

If you read the first two bytes of a Unicode file, and they are 0xFF 0xFE, then you know that it is UTF-16, little-endian (low-order byte first). If they are 0xFE 0xFF, then you know it is UTF-16, big-endian.

So we were talking about this Thursday night, and about how funky things can happen and to diagnose them correctly, you have to grok all this BOM stuff (not to mention other things like UTF-8, UTF-16, and so on).

OK, so the next day, I'm setting up a Remote Desktop Connection on my Windows box, and the video settings offer me 1280×1024 or full-screen. But I want 1400×1050. I figure I'll create the .rdp file at 1280×1024, then open it up, find the display resolution and change it. I open the .rdp file, and what do you know, it's text! I edit the text, save the file, double-click the .rdp file, and nothing happens. Huh?

Then the previous night's conversation comes back to me. Sure enough, when I hexdump the edited .rdp file and an unedited one, the original has a BOM, and the edited one does not. Both are legit UTF-16, both are little-endian, but the one with the BOM works, and the one without does not. Now that is not proper Unicode support, but at least I understand what went wrong. I open the file again in TextPad, use the document properties to instruct it to write the BOM, save the file again, and everything works gloriously.

Ah, Unicode. It makes life so much simpler, doesn't it?

Stick figure adventures

Wednesday 8 June 2005

Two Flash stick-figure puzzle games: Hapland and Smart Stick Adventures. Each page includes links to follow-on games. These games are not as slick as some, but require some clever thinking. The simple graphics appeal to all ages. Hapland was a good ice-breaker at a recent gathering that included children from 7 to 13.

Rinus Roelofs

Monday 6 June 2005

Rinus Roelofs is an artist. He's taken up where Escher left off, combining mathematical forms in unexpected ways to produce objects and images with both subtle order and extraordinary beauty.

I found him in a footnote to a paper on orderly tangles. I got started down the whole thread because I've been playing with a tangle ball I found in my son's room. It looks like this dog toy.

Exploded soda

Monday 6 June 2005

Today at work, Pete discovered an exploded frozen soda in the fridge:

Exploded soda

The can in the photo is the same orientation it was in the fridge: the soda has blossomed up and out of the can, then immediately frozen in place. The sudden drop in pressure as the contents burst out of the can must have frozen the soda nearly instantaneously.

Here's another description of the same phenomenon. There's no photo, but it includes a very realistic description of how a soda can could be neglected in the freezer in the first place: "Ooh, something shiny on the Web!"

While reading about the relationship between pressure and temperature, I found the frightfully informational Phase diagram of water. It turns out ice can form in a number of different ways, depending on the pressure and temperature. I was amazed to see that there really is a substance called ice 9, just like in Vonnegut's Cat's Cradle, though I hope it doesn't end up like his did (the whole world froze).

Quick links: contraption, real life, easter egg, shufflehacks, lightsaber

Sunday 5 June 2005

A few choice links from Boing-Boing:

¶   The Great Ball Contraption, a modular Lego scheme for building a huge ball doo-dad.

¶   Coolest thing ever, Half-life in real life, tutorials on how to render synthetic objects into real scenes.

¶   Episode III Easter Egg Hunt, the tiny details you'd never notice on your own.

¶   shufflehacks

¶   The LightSaber Maker program

Customizable keyboards

Sunday 5 June 2005

My wrists are hurting again, so I've bought myself a bent keyboard to use with my laptop rather than just slouching on the couch. By coincidence, I came across the Ergodex DX1 "input system". It looks pretty cool: you can place keys anywhere you like on a special tray, and assign them any function you like. They aren't selling it for use in typing text, but as a giant customizable function-key pad. They're especially pushing it for gaming, I guess because that demographic doesn't mind spending money on cool toys that can potentially help them push a lot of buttons a lot faster.

For my own problem, though, a bent keyboard helps. What would be even better though, would be to break myself of the habit of using hand-twisting key combinations. For example, when hitting Alt-Tab, it's a lot better for me to push the Alt key with my right hand, and the tab key with my left. I'd like to customize my keyboard so that modifier keys wouldn't work if they were used with a regular key on the same side. That way, I'd be forced to use the gentler two-hand combinations. Does anyone out there know of a way to do that?

There's a registry key that can change how keys map to keycodes (Scan Code Mapper for Windows), but I don't think it can do what I want.

XML alternatives

Saturday 4 June 2005

If you think XML is full of crap that no one needs (DTDs, anyone?) or could have been made simpler (we need element names in end-tags why?), then Paul "PaulT" Tchistopolskii's page of XML Alternatives is for you. He lists a number of projects whose goals are similar to XML (to structure data for computer use). The list also includes things like intuitive text markup schemes (like wiki text), and front-end languages for bizarre XML syntax (like NiceXSL).

Of course, none of these alternatives will come anywhere near XML's ubiquity, but it's good to know there are other possibilities. Lots of people use XML in situations where interchange isn't required, and other options are perfectly reasonable choices.


Saturday 4 June 2005

As a web-head, I'm used to reading about obscure things like Googlebombing. I'm not so used to having ordinary citizens want to discuss it. I was at a family gathering today, and an uncle wanted my advice on improving his ranking for his bamboo web site. I explained the concept of Googlebombing to him, and he was all for it. Is the general population getting savvier about this stuff? Does everyone now understand Google and search rankings the way they understand Nielsen ratings or the weekend box office?

Google sitemaps

Saturday 4 June 2005

Google sitemaps are Google's definition of an XML sitemap file. The file can be used by search engine spiders to know which pages to fetch, including expected change frequency, and priority within the site. Very simple, but an effective way for site maintainers to direct spiders to the parts of their site they want spidered.

It's breathtaking to watch Google constantly re-invent the domain of information on the web. This isn't such a big innovation, and really helps the search engines more than anyone else, but no one else would have been able to put a spec out like this and expect it to be adopted.

BTW, I thought it was cool that in the Google blog entry about it, Shiva Shivakumar gives examples of webservers as "(e.g. Apache, Lotus Notes, IIS)". It's not often Lotus Notes is mentioned as a webserver ahead of IIS!

Quick links: tiny houses, organic desktops, anti-social, beach animals, robot hut, star wars logo

Thursday 2 June 2005

¶   Tumbleweed Tiny House Company, tiny but perfect houses, shipped to your yard.

¶   Bartelme Design — Creating organic desktops

¶   How to not talk to someone

¶   Theo Jansen and his beach animals. I've linked to this before, but they're so cool!

¶   Robot Hut Museum, lots of robots.

¶   Suzy Rice, the designer of the Star Wars logo.

Daily Type

Wednesday 1 June 2005

I want to be able to draw type like this: Daily Type is a visual blog of type sketches by five Russian type designers. Somehow, the Russian samples are even more enticing: since I can't read them, and don't even recognize all the letter shapes, I can just appreciate their "typiness".

« | » Main « | »