Preposition Chart

I found myself in a situation (in an online venue) wherein I wanted to refer to this chart, but the site in question didn't provide an easy way for me to attach an image to my message. So I'm posting it up here. This is a visual chart depicting several common English prepositions.

The chart is inspired by a similar one that William D. Mounce used to explain Greek prepositions in his excellent grammar (which I highly recommend to anyone who has even a slight interest in Greek in particular, dead languages in general, or the etymologies of English words; it is hands down the best textbook I have ever encountered, on any subject).

All Made Out of Win

Okay, so my last set of lyrics turned out kind of emotionally down. I didn't set out to make them that way (and wasn't even in a down mood when I wrote them -- a weird mood, yes), but that's how they landed. So lest I present myself as some kind of bizarre incoherent emo-depressive nitwit, I wrote another set of lyrics. (These, no doubt, will still make me look like a bizarre incoherent nitwit, but in a much more upbeat way.) So, umm, here they are.





Yo, put me in a trebuchet and launch me to the stratosphere:
I'm gonna have some fun today, and then I'm gettin' outa here.
I've got a lot of gumption, and I'm gonna raise some ruckus now,
'Cause if I gain some traction I can bust it all up anyhow.
The secret of contentment isn't havin' things or doin' stuff.
You follow that old siren and you never ever have enough.
Hey, take me to the river.
Put me in a basket, or
Lock me in a tower.
I'm gonna prosper yet.

I'm always feelin' happy when my mojo gets to flowin' good.
A billion-dollar industry has taken over Hollywood,
But nevermind the critics, we're a celebratin' irony,
'Cause once we have the hutzpah we can write an awesome comedy.
Forget about the dazzle, nevermind about the cam'ra work:
We'll shoot it in a castle, and we'll use the spoon and skip the fork.
Hey, show me all the money.
Livin' out of pocket, I've
Never had a problem.
Now, tell me your excuse.

Our attitude is everything, so I am gonna celebrate.
An institute of joy has really drawn me to matriculate.
I'll never let my circumstances rule my mind or get me down,
And if I ever graduate then count on me to go to town.
I'm singin' and I'm dancin' and I'm tellin' lots of corny jokes.
Now tell me just what imag'ry my energizing rhyme invokes.
Hey, let me lift your spirits.
Lookin' on the bright side, we're
Tackle-in' the issue.
I'm all made out of win.

[Musical bridge.]

Take me to the river.
Put me in a basket.
Lock me in a tower.
Show me all the money.
Livin' out of pocket.
Never had a problem.
Let me lift your spirits.
Lookin' on the bright side.
Tackle-in' the issue.

[Short musical interlude.]

I'm gonna prosper yet.
I don't need no excuse.
I'm all made out of win.
All made out of win.
All made out of win.

Screenshot, from my current game on nethack.alt.org

Why am I posting an ASCII screenshot of nethack here?

 ----------------------------------------------------------------------------
| % % ) ( |
| -%| --- | | - ----- - --------- --- ---) --- | --- --- - | - --- | | --- |
| | | | | | % | | | | |* | | % | % | | | | |
| | --- | ----- ----- --- ----- | ---.| | | | - ----- - | --- | | --- --- | |
| |.| |[| |%|* | | | |[| | | |
| |-- | - - | - ----- ----| | -.-.--..--- | | | --- | - | ----- |-- | |%--- |
| | | | | | | | | | |.......... ) |
| | | |-- | | | | | - | | | | | -.......- |.--- --- |.--- - |%--- --- | --- |
| | |^ | | | | | .....>.*..| |. | |. | | |^| |
| --| | - - |--%| |-- | | | ----..........|.--- |.---.-^----- | --- - | | - |
| ^ ........................|.| | | | | | *| |
| --- - - - | | - -- -- - .|.|................@....| | | | | --- ----- |
| ) % | | | | ^ | |.|..................<..... |
- - | | --- --- | | - - | --- - - |.--- |.|.|.| | --....--- | ------- --- - |
| | | | |^ | | | | | | | | . |.| | |..*|^| | | | | |
| | | | |%- - | | --- --- | ---*----- -----.| -----.|.--- --- - | --- - ---*|
| . p..|. |
----------------------------------------------------------------------------
Jonadab the Champion St:18/** Dx:23 Co:18 In:24 Wi:24 Ch:17 Lawful S:2396967
Dlvl:37 $:0 HP:364(364) Pw:174(174) AC:-40 Xp:26/60006894 T:112414


Because I don't have a good way to post it to usenet at the moment.

Now for something completely different...

I was in a weird mood and wrote some lyrics, or poetry, or something. I'll just post what I wrote without further comment and let you draw your own conclusions...


Hungry is the bear who lives
A life of shameless luxury
Within the porticos of tents.
Never have the learned ones
Bathed all the infants of the poor
With such aromatic ointments.

I've come from Alabama
With a basket full of questions,
But no one ever answers me.
I'm running from the lawyers,
But I'll sing you my life's story
With the banjo laid on my knee.

Run me ragged.
Rain on my parade.
Strip me naked.
Only the truth will set me free!

Ride the endless bullet train
Until the early winter sun
Sprinkles you down upon its bust.
Cover our ears with cotton
As the earwig conceals its pups
With a thousand motes of sawdust.

I am just a single man,
Treading grapes of speculation
In the winepress of my own mind,
I've sold my hesitation
For that bread and red lentil stew
Because my brother was so kind.

Ride me roughshod.
Call me a loser.
Take my ephod.
Only the truth will set me free!

File down your fingernails
Until the marrow shows right through,
Until you've beaten a dead horse.
In a universe of pain,
Nothing fills the head with knowledge
Like the dread tutor of remorse.

Clench my collar.
Listen to me wail.
Hear me holler.
Only the truth will set me free!

Feed me toxins.
Halt my reverie.
Sell my organs.
Only the truth will set me free!

Cut me deeper.
Drain out all my blood.
Kill me faster.
Only the truth will set me free!

Niagara Falls


I suppose I should at least post one photo from the Niagara Falls trip, eh?

Hmmm... maybe I'll make it one from each side...


BTW, if you ever go, I do recommend riding the boat. That was significantly better than I expected.

Web Browser Upgrade Cycles (Update: including Webkit browsers)


Okay, my last post was purely editorial, so this one is going to be purely observational, with no editorial commentary. These graphs show how the two most popular browsers (MSIE and Firefox) compare in terms of new-version uptake, among users of a website that I maintain. From looking at these graphs, it is clear that new Firefox versions achieve, on average, much more punctual uptake than new MSIE versions. This is apparent despite the fact that the graph skews things significantly in MSIE's favor by using version numbers (as opposed to release dates), even though Firefox versions are released much more frequently.

Firefox 2.0 was released in October 2006; MSIE 6 was released more than twice as long ago, in August of 2001. IE 7 was released in October of 2006, around the same time of Firefox 2.0, and has an absolutely overwhelmingly higher remaining usage share, taken as a percentage of the overall usage share for all versions of each respective browser: around twenty percent versus around half a percent during the last two months. (If you do the arithmetic naively you get 19.4% versus 0.54%, but there's significant false precision there. It's based on only two months of data for just one site, so you really have to consider the results as round, approximate figures.)

If you look at the stats for a different website, your numbers will of course vary. Nonetheless, it's very clear from these graphs that new Firefox versions are installed, on average, rather sooner than new IE versions. I could speculate on possible reasons for that difference, but for now I'll leave that as an exercise for the astute reader.

Update: Here are my graphs for the two major Webkit browsers.


Note that, with the sample size being only one site and the usage share of these browsers being smaller, these graphs can (potentially) be significantly skewed by a relatively small number of users. For example, why did usage of Safari 4.1 only become noticeable after 5.0 was released? My guess would be that this is an anomaly. At its peak, Safari 4.1 made 218 page loads from our site in a quarter. That's full page loads, not raw hits, but it could still be explained by a single user.

Still, you can definitely see a trend toward fast uptake of new versions, particularly on the Chrome graph. I could speculate on the reasons for this, but at the moment I'll refrain. If you really want to see a difference, compare the Chrome graph here to the MSIE graph up top. There's obviously a marked difference in upgrade frequency from one browser to another.


Finally, here's a version of the Firefox graph that breaks down minor versions (3.1 versus 3.0 and 3.6 versus 3.5), which is better for comparing Firefox to the Webkit browsers. The first Firefox graph, which groups minor versions, was intended for comparing against MSIE.

Firefox: Why I Refuse to Upgrade

Everybody knows, newer is better, right? Well, sometimes. Sometimes not so much. Sometimes newer is worse. Sometimes newer is a lot worse.

Recent versions of Mozilla Firefox, for example, have been getting a great deal worse in a wide variety of ways. In this post I will catalog just a few of the most annoying reasons why they are worse, and why I am steadfastly not upgrading.

However, lest anyone think I am entirely negative all the time, I want to start out by spending a couple of paragraphs pointing out a couple of good things.

In the first place, I want to note that I am only talking about this at all because Firefox is my primary browser, the one I use most. Being a web developer and a geek, I experiment with a wide variety of browsers. Firefox is the best of them. When I first started discovering the problems that the rest of this diatribe will talk about, I considered switching to another browser, but the plain and simple fact is that I was unable to find another one that's as good. There isn't another one that's as good. Firefox is the best.

On top of that, the Firefox dev team have been working, trying to make improvements, and a handful of the improvements they've made have been good ones. They've added support for CSS properties that weren't handled before. One of the ones I personally find useful, not just for aesthetic purposes but in some cases for practical reasons, e.g., improving legibility when there's an image in the background, is text-shadow. That's a very worthwhile thing. Even better is the new support for display: inline-block, which makes whole categories of layouts easy to do that were previously, in a word, not. There have also been some performance improvements, which are quite noticeable on older single-core hardware. So I don't want to imply that the Firefox developers haven't been doing anything good. They have.

But they've also been making mistakes lately, some of which are quite serious.



Here's something that's easy to see: recent versions of Firefox can't seem to display certain images (a LOT of the images on the web) without darkening them considerably. Here are a couple of screenshots (one cropped, the other scaled down, but they're not doctored in any other way) showing the same image in Firefox 3.6 and in Gimp. I want to be clear that this is exactly the same image, bit-for-bit. Notice how much darker it looks in Firefox? It's not supposed to be like that.


The same problem shows up in every build starting around version 3.5. Here's a screenshot of Firefox 4.0.1. Again, this is cropped but otherwise undoctored.


How did Firefox 2.0 handle it? Well, let's see here... Oh, look, Firefox 2.0 displays exactly the same thing as Gimp. The latest versions of other browsers, such as Opera and Chrome and even MSIE, do the same thing as Firefox 2. So does every other image display program I have tested. Recent versions of Firefox are the only software I have found to have the odd darkening effect.

Update: Here it is in an alpha build of Firefox 8:

(Yeah, the desktop there looks different. When testing new versions, I use a separate user account, so as not to mess up the profile -- add-ons and configuration and such -- in my regular account. It's easier than dorking around restoring from backups.)

Okay, so that's purely an aesthetic issue. I mean, it's annoying, but it doesn't cause any real material harm. It's not like the images are totally black and impossible to see, or anything. It's just like you're looking at them through really dark glasses. So, no big deal, really. Sure, it's a bug, and they should fix it, but on the balance if that were the only problem I'd upgrade in a heartbeat.

Here's something more serious: all versions of Firefox starting from the 3.0 dev cycle have a serious dataloss bug that shows up if you use bookmarked tabsets. What happens is this: the first time you choose Open all in tabs after upgrading, every single website you already had open in a tab vanishes. You panic and just about keel over from a heart attack on the spot, but once you take a few deep breaths you discover, much to your relief, that the back button does work. You have to go through and hit the back button on every tab, but you're able to recover (at least most of) your tabs. Okay. So, now, how to stop that from EVER happening again? You hunt through the prefs and find the option that controls this disastrous never-should-have-been-implemented new behavior, and you turn it the everliving %#$@! off, and you think you've solved the problem.

But you have not solved the problem by changing the preference. You've just made the problem more subtle, so that each time it happens it can go unnoticed until it's too late to retrieve what was lost. What happens now, each time you click Open all in tabs, is that one of your existing tabs is replaced. If you don't notice this, you make the mistake of hitting close-tab like you normally would when you're done with a page that you've opened, and now you're now short one of the pages that you had open, probably one you weren't done with, possibly something important that you needed to remember to deal with. This happens every single time you click Open all in tabs, until over the course of a few hours or days of regular browser use you eventually figure out what's happening. It took me about three days. I knew I was losing tabs, some of which were kind of important, and I was very much in a lather about it, but I didn't understand out how or why it was happening. Undo Close Tab only showed me pages I didn't need any more, and I couldn't find the ones I'd lost. It was like returning to the bad old days before sessionstore, when a plugin crash or power outage meant things you'd had open were just gone. (Update: this one will be fixed in version 8, but the fact that such a serious bug persisted across no fewer than six releases before finally being eliminated is very telling. Somebody was a little too concerned about dorking with the toolbar layout and just completely forgot about checking to see if there were any dataloss bugs that should be fixed before release -- several times in a row.)

Firefox 3 also crashes significantly more often than Firefox 2. (I don't rightly know how crashy Firefox 4 is or isn't. I haven't used it very much, on account of the fact that it hasn't addressed the above problems.) Firefox 2 never crashes, unless you try to open completely insane numbers of tabs at once. Firefox 3 crashes more than any previously released version of Firefox since clear back when it was called Phoenix.

I haven't even talked about insane new behaviors and UI (*cough* tabs on top *cough*) that can be configured away by changing some settings, because hey, if changing some settings is all I have to do to get things working right, I can handle that. End users might feel differently, but I'm a network administrator. If I can handle tracking down dependencies and compiling things from source, I think I can manage changing a couple of settings. I could write another whole post explaining why e.g. Tabs on Top is stupid and why the arguments in its favor are nonsense (maybe I will write that post later, if I have time), but ultimately it's not important, because I can just turn it off anyway with a pref, so who cares?

But I do want to say one general thing about the UI changes in recent versions: starting with Firefox 3.0, every single UI change, without exception, is something so undesirable that I have difficulty imagining anyone would ever actually want it. Not a single one of them is useful, even potentially. As long as I can turn them all off with preferences I don't really care, but when there are big outstanding bugs, including dataloss bugs, persisting over *multiple* versions (and I'm not talking about a couple of point releases), maybe it's time to stop needlessly fiddling around so much with the UI for a while and concentrate on basic stuff like stability and correctness. IMO, if the Firefox team spent the next entire release cycle just fixing bugs and not introducing any other changes at all, that would be a good thing.

So that's why I'm not upgrading to recent versions of Firefox. I've got 2.0.0.20 both at home and at work now, and I'm sticking with that as my primary browser for the forseeable future.

What would have to happen for me to change my mind? Someone would have to release a browser that's better than Firefox 2.0.0.20. That is all.

Rejected Ideas for Library Summer Reading Promotional Themes

Sometimes the summer reading themes they send you are a little bit lame. (One of them this year is You Are Here. Really.) Sometimes this gets us talking about the possibility of creating our own theme. It shouldn't be that hard...

But sometimes we get silly. Here are some of the ideas that didn't make the cut...


  • You Will Read and You Will Like It!

  • Reading: It Ain't Rocket Surgery.

  • Summer Reading... Where the Sun Don't Shine

  • Alien Vampires versus Ninja Nanobots

  • Studying All Summer Long

  • In Which We Examine Thoroughly All the Greatest and Most Widely Renown Literature of the Last Three Millennia and Draw Some Interesting Conclusions, @ Your Library!

  • O HAI. I K/\N H4Z BUXZ?

  • Tell Me Another One, Gramps!

  • Cooped Up Inside Reading

  • Books Is Good

Three-Balloon Clown (with Twisting Instructions)

The event at the Y on Sunday night was great. We had a fantastic turnout.

For my part, the balloon animals were very popular, and I was able to satisfy all the first-requests from children (i.e., all the requests made by children who didn't already have a balloon animal) save one.

That one, of course, bothers me. Sure, eventually the mother talked the little girl into something I actually knew how to make, but you could tell she wasn't really happy with it. Also, it's not like what she asked for was bizarre (Can you make me a balloon of the invisible man?), an overly-specific licensed character (Dora the Explorer, please!) or inherently difficult (e.g., porcupine). No, all she wanted was a clown, and I didn't know how to do it. A clown. That should be easy, right?

If I'd had five minutes to figure it out, I probably could have come up with something, but I was on the spot in the middle of a crowd of about fifty balloon-seeking supplicants within a two-yard radius, so I didn't have the luxury of spending a lot of time doing custom design.

So it bothered me, and I came home and did some quick searching on the internet, but it turns out to be pretty hard to find twisting instructions for a clown, on account of the fact that every third twisting design for a dog or monkey or anything is "by so-and-so the clown". You get a lot of irrelevant hits.

However, I happened to be browsing around over at balloon-animals.com and ran into Michael Floyd's design for a balloon gingerbread man, and a light went on for me. A gingerbread man is at a very basic level a humanoid design. A clown is also a humanoid shape. The difference is mostly about color.



So, here we are, a three-balloon clown, using standard 260Q balloons.

The red and blue balloons are each inflated about three quarters of the way and have identical twists: pinch twist for the heel, petal twist for the foot (which you can make a little bigger than I have if you want floppy big-shoe feet), longer bubble for the leg, small pinch twist for holding things together, a bubble for the body, another pinch twist for holding things together, then the arm, petal for the hand, pinch twist for the thumb, cut off the rest and tie. Once you've done that with both colors, twist the two halves together via the small pinch twists at the top and bottom of the body. (All of this so far is basically just like the aforementioned gingerbread man, except in different colors, and if you follow the above link there's a video you can watch that shows exactly how to do it.) Arrange it so that the right arm is the same color as the left leg and the left arm the same color as the right leg. Then tie the white balloon in at the waist, make three small bubbles for the buttons, stretch them out a little and tie in at the neck, then do a small petal twist for the face and a larger petal twist for the hair. Cut and tie. Put the smaller white petal (face) inside the larger one (just like making the wheels on the two-balloon motorcycle; Floyd has a video for that too) and arrange it so the face faces forward and the outer petal (which will be the fro wig) is around the edge like a lion's mane. Draw the make-up and rainbow hair on with markers, and use standard shaping techniques to put bends in the knees and elbows.

Voila, a three-balloon clown.