According to Google, I am the second-most popular “purveyor of [insert genre here]” in the world, bested only by the purveyor of the world’s finest teas, Upton Tea Import. Being second in this list is lamentable, but under the circumstances not a terrible position considering that I have a better rank than the leading purveyor of fine needlework and supplies, and the purveyor of EarthBalls and Giant Globes. Gloating aside, how the moniker “purveyor of” came into being merits some discussion. C.M. recently asked,
You use the line “purveyor of fine words.” Before commandeering this line, did you look into its etymology? For example, what is correct “fine purveyor of…” or “purveyor of fine…”? Oddly, there is not much online by way of a discussion. There are of course several instances of people using the phrases both ways. I did come across a book about the history of purveyance and it talked about “fine purveyors” as those who procured better cuts of meat or poultry, as opposed to the “coarse purveyors.” However, these days, everyone claims to be a “purveyor of fine something”. I just wonder if they are interchangeable or if one is more correct than the other. For obvious reasons, you seemed like a good person to ask, being a self-titled “purveyor of fine words” and all.
Well, I chose the tagline ‘purveyor of fine words’ as a response to the typical self-deprecating blog name that is so common these days — ones that mix and match words like ‘rambling’, ‘thoughts’, ‘random’, ‘drivel’, ‘brain farts’. I subscribe to one blog that is titled, “Continuing Intermittent Incoherency“, which sounds like the author picked up some kind of Mad-Lib for blog names for inspiration. “Randomised nonsense” and “The Solipsistic Sayings of a Random Infidel” also seem to have been derived from the same template.
Perhaps these titles are a byproduct of today’s disclaimer-ridden society, where consumers are too moronic to realize that a cup of coffee contains scalding hot liquid, or that a pack of peanuts “may contain nuts”, or that power tool enthusiasts should not “attempt to stop a chainsaw with [their] hand”. In the online world, this warning zealotry translates into prefacing statements with redundant acronyms like FWIW or IMHO, which authors use to ostensibly indemnify themselves against criticism. “IMHO, you’re nothing but a fucktard and the best part of you ran down the crack of your momma’s ass”, becomes a quaint jest I suppose. In order to buck this trend, I opted to go big instead and inflate myself to gourmet proportions, and thus I promoted myself to a purveyor of fine words.
In response to C.M.’s question, I don’t have any more insight into the etymology of the phrase, as mine merely parodies Dean & Deluca’s tag line of “Purveyors of Fine Foods and Kitchenware”. I would say that “purveyors of fine…” is much more prevalent than “fine purveyors…” insofar as it’s difficult to explain the difference between a “purveyor” and a “fine purveyor” (maybe the purveyor is very attractive?), whereas the difference between “food” and “fine food” immediately conjures up contrasting images of corn dogs and Iranian caviar.
When developing dynamically generated forms, you often want to attach a single event handler to the main form object, and have that handle the events generated by the form elements, thus saving you the trouble of constantly attaching event handlers to newly generated elements. However, IE 6 and 7 do not bubble the onchange event beyond the originating select element, meaning that you have to explicitly attach an onchange handler to every select you generate. All other current browsers bubble the event properly.
Here is a test form for checking if your browser registers the onchange event beyond the firing select element. Changing the select options should trigger an alert dialog box.
onchange listener attached to parent <div> node
onchange listener attached to parent <form> node
onchange listener attached to actual <select> node
Adblock is the single most useful Firefox plugin available today. Just like watching sitcoms with automatic commercial-skip, adblock’s banner ad supression system elicits a smug sense of satisfaction even after browsing through your 10,000th ad-free web page. However, a huge barrier to adoption seems to be the lack of a default filter set, so when you first install adblock, nothing happens.
The main issue is that adblock does not have any intelligence as to the content that is included with a webpage; it is just a generic regex-based filter system, so it is only as effective as the filters that you provide. There are plenty of pre-made lists available but they tend to be overly-aggressive in what is supressed, resulting in occasional broken pages and/or pages that dead-end because adblock has removed the “Next” button. The most dangerous public set seems to be the EasyList, which has a 360+ item block list. Evidence that the creators know of its greedy nature is their inclusion of a 20+ item whitelist to manually compensate what was initially blocked. Even more unstable is the EasyElement list that searches through the DOM to remove suspected elements directly from the main document — a list of 570+ substrings to search for.
Intead of using such a large, reactive list of simple and site-specific string matches that tries to supress 100% of ads, I posit that you only need 2 adblock filters to eliminate 70-80% of ads, and still be confident that legitimate content isn’t being flagged as a false positive. By getting into the heads of HTML writers, we can pick out the most common patterns used to include ads and create regex patterns to suppress the ads.
/(\b|_)ad(x|s?)(\b|_)//ad.*\d+[xX]\d+/At this point, your browsing experience will be significantly improved, but you can bump up your block rate to about 80-90% with a few more simple substring matches. There are many well known ad providers that exist solely to deliver ads, so we can consildate those in composite filter rules:
/a(2\.yimg|dserv|dvert|tdmt|twola)//b(anners|logads)/
falkag.netRealistically, reducing the ad load by 90% should be more than sufficient for anyone. Chasing that last 10% — and whitelisting the collateral damage — will always be a losing battle. Your time is better used reading the content that is on the page you requested in the first place.
Effective immediately, I have a new title at work — actually 6 new titles…

Internets Strategerist

Sr. Tube Developer

The Decider

Guapo

Scrabblista

Assistant to the Regional Manager
Bonus points if you can match all the cards with their respective references:
When using yum install, sometimes the old GPG keys installed with rpm are obsolete, resulting in an error like the following:
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID db42a60e
public key not available for autoconf-2.59-5.noarch.rpm
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
The GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora (0×4F2A6FD2)
is already installed but is not the correct key for this package.
Check that this is the correct key for the “Fedora Core 4 - i386 - Base” repository.
To fix, just add the new keys to rpm (changing the path for you particular install):
rpm --import /etc/pki/rpm-gpg/RPM*
Some forum posts have suggested disabling GPG (i.e. gpgcheck=0), which can be a foolish thing to do. You want to maintain some level of assurance that what you’re downloading is legit.
del.icio.us has changed their API host, which breaks the current direc.tor because of the xmlHTTPRequest’s domain security policy. To fix this, the del.icio.us guys have added a couple public pages to allow direc.tor to continuing functioning. Now, you must first browse to https://api.del.icio.us before starting the direc.tor bookmarklet. Let me know if you are having any issues.
Although PHP has a great library of functions, many of them are not included in the standard build, or haven’t been included into the popular package installers like yum or apt-get. The man page doesn’t leave you with much instruction, other than something like “compile PHP with the flag –with-pspell[=dir]”. At this point you have 2 options:
.so) that you copy into a PHP directory, and edit php.ini. If you are running multiple machines on the same OS, you can just copy the file to all those machines as well. Much easier, and you can turn it on and off at will.
Here’s how to create the extension for modules that appear in the PHP manual on a linux-based system (for third-party extensions, it’s most likely the same).
php-devel. You’ll need its components in a few steps.ext/ directory that should contain a subdirectory for the module that you’re looking for. Change to that subdirectory, i.e. ext/pspell/.phpize./configure –with-pspell=/usr--with-mysqli=/usr/local/mysql/bin/mysql_config. Be aware that the path is sometimes a base directory, and sometimes needs to point to a specific file. Read the PHP docs carefully.make.so file (most likely in the modules/ subdirectory of your current location). Copy the .so file to your PHP extensions directory, i.e. /usr/lib/php/modules. If you don’t know this, it’s listed in your php.ini file under the extension_dir parameter. You’ll need root access to do this.extension=pspell.so/etc/php.d directory in it’s own ini file for a cleaner installation approach.
phpinfo() to verify that your new module is installed
I’ve been looking for a nice web Javascript spell checker, and came across a great implementation by Emil that he named LiteSpellChecker. It mimics the spell checker in MS Word by underlining misspelled words and presenting a nice substitute word selection menu. The javascript takes a standard <textarea> element, erases the background, and inserts a shadow <div> underneath that holds the redline segments.
The current implementation on his site has some bugs, so I’ve started to tackle some of them:
Since many of my users will be working with long documents, performance is key.
SPELL_CHECK_DELAY variable.Download my source code. Important: read Emil’s demo page before attempting to do anything with these files.
I ordered a couple prints from Flickr’s new print service to check out the quality. Here are my comments:

Overall, a well executed service that has been long awaited on Flickr. I’ll probably try a matte print, and larger sizes soon.
This year I spent Thanksgiving not sitting at home in front of a heaping pile of white and dark meat, but rather in the middle of the desert — Death Valley to be exact. Although the valley is the hottest place in the world, it was a fantastic 75 degrees the whole time. See the pictures
[Part three of a recurring series...part one, part two.]
Starting in June 2009, the US government will require a passport or "similar federally approved document" for entering the US by land. Both US and Canadian citizens living near the borders are unhappy. [Salon]
Fifty percent of the Australia's houses sit less than 8 miles from a beach. Eighty percent of Australians live within 80 miles of the sea. [Architectural Record]
The capacity of Niagara Falls is controlled artificially; the flow is doubled during normal tourist visiting hours. [Newsweek]
As a reward for returning the Stradivarius left in the backseat of Mohamed Khalil's taxi, violinist Philippe Quint gave the cabbie a reward of $100, a private 30-minute performance in the taxi waiting area at Newark, and tickets for him and his family to Quint's next performance at Carnegie Hall. Khalil also received a medal from the city of Newark. The Stradivarius is valued at $4 million. [BBC]
Toilet bowls are cleaner than the average computer keyboard. Studies differ on how much cleaner...1/5? 1/67? 1/400? [Gelf Magazine]
When actively used, women's ballet shoes can last anywhere from 2 weeks to 2 days. [Arizona Daily Star]
For $6,000, you can buy a Worldchanging Carbon Clean Slate gift for your graduating high schooler, which will offset all the climate emissions that your kid has accumulated from birth. For $25,000, you can offset their entire life. [Worldchanging]
By 2015, Moscow will have the 10 tallest office buildings in Europe. The rent for Moscow office space is currently higher than in midtown Manhattan. [Newsweek]
And finally, a holdover from the last week (which itself was a holdover from the week before). Bob Herbert got his "a third of all American high school students drop out" stat from a report prepared by the Editorial Projects in Education Research Center. As I erroneously surmised last week, the ~10% rate from here is not an annual dropout rate. I don't know how you get from 10% of 16-24 year-olds not having a high school diploma in 2005 to 1/3 of all students dropping out of high school. Final update.
A lightbulb in a firehouse in California has been burning more or less continuously since 1901. You can check on the light's status on its WWW home page. (thx, john)
(link)Last night, folks on Twitter began to contemplate what will happen if Barack Obama wins the nomination. The meme seems to have begun with Andrew Crow's vision for the future:
When Obama wins... unicorns will crap ice cream and pastries.
I collected a bunch of the best ones and made a page that cycles through them: When Obama wins.
Do we really need science to tell us that the DNA of an egg-laying, no nippled, duck-billed mammal is unusual?
(link)Just in time for my newly formed headlines tag: Great tits cope well with warming. (thx, ryan & alex)
(link)This is pretty incredible...John Resig has ported the Processing visualization language to JavaScript. Wow. (via waxy)
(link)The stodgy old New Yorker has a Twitter account and its friends are NPR, Harper's, Gothamist, Huffington Post, the NY Times, and the WSJ, among others. Magazines should have friends, no? (Sniff, the WSJ has no friends.)
(link)British architect David Adjaye observed that not only are public buildings built for "the public" but they also create "the public" by establishing a space for it to exist. I guess by the same token, buildings built for private citizens also create private citizens...hence, eventually, gated communities and the like.
Adjaye also described his native Africa as layered combination of its different eras: colonialism + nation building + European + Islam + urban/capitalist.
The chefs panel, with Bill Buford interviewing Daniel Humm, Marc Taxiera, and David Chang, was the most entertaining of the day. Right at the end, David Chang told a short anecdote about a customer who complained to him about the amount of fat in the Momofuku pork bun...pork as in pork belly and pork belly as in mostly fat. Chang told him that's the way it came and that he wasn't getting a replacement. Shrugging, he told the audience he had a different idea about hospitality than most restauranteurs..."the customer is not always right".
Michael Novogratz, the 317th richest American, explained the current financial crisis. Goes something like this. The fall of the Berlin Wall and the opening up of China and India for both trade and labor laid the groundwork for globalization. Lots and lots of cheap labor available made for cheap goods and low inflation. Between early 2003 and late 2007, globalization kicked into high gear and people thought, this is it, this is the end of inflation forever. But the workers in Eastern Europe, India, and China gradually became consumers. They bought TVs and cars and better food and whaddya know, inflation is back. The bubble burst.
Amy Smith challenges her students to try living on $2 a day for a week...that includes food, transportation, and entertainment. This video of a talk that Smith did at TED in 2006 covers much of what she talked about today at the New Yorker Conference. The NY Times covered her clever inventions back in 2003.
Haseltine came from an unusual place to the NSA: Walt Disney Imagineering. Between his overuse of the phrases "bad guys" and "war on terror", there were a couple of interesting moments.
In Haseltine's estimation, something called Intellipedia is the biggest advance in the intelligence community since 9/11. Intellipedia is basically an internal Wikipedia for people who work for one of the 16 US intelligence agencies. Its goal is to break down some of the barriers between these agencies in terms of information sharing and colloboration.
Right at the end of the session, interviewer Jane Mayer asked Haseltine if perhaps the Bush administration is overreacting to terrorism...if the mindset that danger lurks everywhere is appropriate and realistic. He replied that since he got involved in the intelligence community, he doesn't sleep well at night. "I know too much."
I'll admit I don't watch politicians speak that often, particularly in public. So maybe I'm being a little naive here, but San Francisco mayor Gavin Newsom is nothing short of a magician up on the stage. He talked for 20 straight minutes (his would-be interviewer could only get in 2-3 questions during that time and Newsom pretty much ignored them and talked about whatever he pleased) and it felt both like 5 minutes and exhausting at the same time. By the time he'd finished what I would term a sermon, I wanted to sign up for whatever he was selling at a price no lower than my heart and soul. I haven't non-sexually crushed this hard on a speaker since Robert Wright.
Ok, two particularly interesting things that broke my gaze long enough for me to scribble them down in my notebook.
1. Newsom talked about building filling stations for electric cars that relied on exchanging batteries instead of plugging in and waiting for your car to charge. You don't need to own your particular battery.
2. In SF, he's hoping to exchange the payroll tax for a carbon tax. In his words, tax a bad thing (carbon use) instead of taxing a good thing (jobs). That way, the incentives are in the right place...people aren't penalized for working but are penalized for using excessive amounts of carbon.
Update: Oh, don't get me wrong, I have no idea if Newsom was telling the truth or what...it's just that it all sounded so good coming out of his mouth. Even when it sounded like bullshit I wanted to believe him. I felt so dirty and manipulated afterwards, but still wanted to believe. Like I said, love...what's truth got to do with it?
The purpose of the Genetic Information Nondiscrimination Act of 2008:
To prohibit discrimination on the basis of genetic information with respect to health insurance and employment.
It passed the Senate earlier this year is expected to be signed into law by the President soon. No Gattaca! (via nyer conference)
(link)Links provided by kottke.org.