The Dumping Ground
And who cares?-
The Marion Barry: A Shot In Honor Of The Former Mayor-For-Life
Posted on February 16th, 2010 2 commentsIt’s been a big news day for the former mayor-for-life. The investigations into his use of earmarks have finally boiled over with the release of the Bennett Report. The upshot? His goose is cooked.
This seems an opportune time to introduce to a broader audience the shot we invented on this year’s Marion Barry Day. I give to you: The Marion Barry.
- One part Stoli Blackberry
- One part Southern Comfort
- One part Blue Curacao
- One part grenadine
- Drink up, slam the glass, and holler in your best just-got-caught-with-crack-in-a-hotel-room voice, “Bitch set me up!”
The concoction is sweet and quite drinkable, and is rife with symbolism. The Stoli Blackberry is because the marionberry is a subspecies of blackberry. The Southern Comfort makes it in because the former mayor-for-life was born in Mississippi. And the Blue Curacao and grenadine are there for flavor, and because together the purple hue they create reminds us of the purple velour jogging suit the elder councilmember has been known to sport from time-to-time.
Originally called “The Bitch Set Me Up”, we re-named it to be a bit more obviously associated with the man.
-
Update Flash Without Adobe’s Crappy Download Manager
Posted on February 16th, 2010 No commentsRecently, Adobe has pulled a hall-of-shame move and began trying to sneak in the installation of a craptacular background program called the “Adobe Download Manager” when updating Flash. That’s just great, you know, since there are security updates for Flash almost every month. So how do you get your required security update without Adobe’s bullshit download manager?
It’s a fairly simple process, and actually takes advantage of the generally-hated-by-most-people User Account Control (UAC) in Vista and 7 to block an unwanted action by a program. And people say it’s nothing but annoying.
(Note: These instructions are for Firefox on Windows 7 or Vista; anything else and you’re on your own.)
- Download the Flash updater directly from here.
- Close all browser windows (including any opened by Prism).
- Run the updater.
- Start your browser back up. Adobe will now sneakily try to install their awful download manager on your system. This will generate a UAC prompt asking for administrative permissions to install.
- Click “No” on the UAC prompt to stop the installation in its tracks.
Screw you, Adobe. You’re in the Hall of Shame for trying to install backdoor software with critical security updates to a ubiquitous web technology. And win one for UAC!
-
I Am Not A Search Engine; Google Didn’t Buy Me; Please Don’t Sue Me
Posted on February 13th, 2010 No commentsThe big news from the Google front yesterday was their purchase of Aardvark, a search engine that leverages social connections to find folks who might know the answer to your question. It’s pretty cool looking technology, which you can try for yourself at vark.com, but all the hype is prompting me to make a few points here.
- I am a person, not a search engine.
- Google didn’t buy me.
- Ardvaark is spelled differently from Aardvark, which is way different than vark.
- The name Ardvaark (or the variation Jr. Ardvaark) has been my handle since I first started coding a quarter century ago.
- The domain ardvaark.net has been my personal home page on the web since 2001.
- My site ends in dot-net, not dot-com.
- So you see, Google, there’s no cyber-squatting here. Please don’t sue me.
That is all.
-
Web Hall Of Shame: Wired News Hijacks Your Clipboard
Posted on February 12th, 2010 1 commentIt’s a given that you can’t trust the Internet. I mean, you’re connecting to random strangers’ computers, downloading code and data, running some of that code (usually in a sandbox of some sort), and then hoping nothing bad happens. For that reason, I use the NoScript add-on to Firefox, which aggressively blocks scripts (especially third-party scripts) from running – unless I whitelist them.
Despite my general distrust, though, I still harbor a hope that most of the sites I regularly visit aren’t bad actors. When it turns out they are, it’s a bit of a shock. When it turns out to be one of the oldest names in net publishing, it’s really disheartening.
Wired News has a really cool article on lasers blasting mosquitoes out of the sky. When you copy-and-paste from that article, it hijacks your clipboard and changes what you copied. Try it yourself! (Of course, if you’re running NoScript, you’ll need to temporarily allow all scripts on the page.)
From the article, copy:
The laser lights quickly located the mosquitoes in flight.
And then paste:
The laser lights quickly located the mosquitoes in flight.
Read More http://www.wired.com/epicenter/2010/02/death-star-laser-zaps-mosqitoes-dead/#ixzz0fKgTWFBU
Yup, they hijacked your clipboard, and added a tracking link. Who the hell does that?
Wired, you’re officially in the Hall of Shame.
-
Vacant and Blighted Property Testimony
Posted on January 28th, 2010 No commentsCouncilmember Bowser and Councilmember Evans held a joint hearing yesterday on B18-546 and B18-448. Both bills are an attempt to better define who gets hit with the city’s super-tax on problem buildings, which was essentially eliminated right as it started to produce results. I testified yesterday on four key points that I believe need to be addressed in the bills.
- Keep the vacant property registration system.
- Include ANCs in the exemption process.
- The proposed “blighted” classification is too subjective. An objective system, such as DMV-style points, should be considered.
- Vacant (but not “blighted”) properties are still a problem. Multi-year vacancies must also be taxed at a higher rate to promote their productive use.
My full testimony can be downloaded here. You can watch the full meeting online here. (My testimony begins at about 3:35:00, and then there is some Q&A at the end of the panel.)
-
January 18th is Marion Barry Day
Posted on January 18th, 2010 No commentsJanuary 18th is an inauspicious day for the citizens of the District of Columbia. It marks the date of the arrest of Mayor Marion S. Barry, Jr. in a drug sting for possession of crack cocaine. This year is the twentieth anniversary since the former Mayor-For-Life spoke his most famous of utterances, who has continued to serve in DC public office despite his ongoing run-ins with the law.
-
Windows 7 Chkdsk Prompt Hangs At 1 Second: How I Fixed It
Posted on January 5th, 2010 No commentsA few weeks back, something bad happened to my computer. I’m not sure what, but my nightly backup reported a failure to run due to corrupted folders. So I immediately pulled out the toolbox and scheduled a chkdsk for the next reboot. And then I rebooted.
When Windows rebooted, I was greeted with the familiar notice, “A disk check has been scheduled.” As anyone familiar with Windows knows, you then get a ten second countdown to abort the disk check. I waited (10…9…8…) patiently (7…6…) while it ticked (5…) off (4…) every (3…) excruciating (2…) number (1…), and then … nothing. I had one second left, permanently. The computer had frozen, and hitting the any key did nothing. Hitting CTRL+ALT+DEL did nothing, either, and so I was forced to hard-off the machine.On reboot, I received the same prompt, and once again it hung at one second. I couldn’t even get it to abort the disk check, the very purpose for the countdown prompt! Woe is me! I was stuck in a reboot loop. At this point, I am going to fast forward over the gory details of booting the rescue tools off my install CD, unlocking my encrypted drive, fixing the disk, resetting my TPM state, and all that. Trust me, it’s for the best. But in the end, I had a working machine again.
Last night, and right before bed no less, I encountered the same problem. Googling led me to the same results I had seen before. But this time, reading through the top result, there was a new post. The comment by Tayloradical on December 10 recommended removing all the peripherals, including any SD card. I have lots of peripherals, including an SD card I use for ReadyBoost. After a somewhat systematic cycle of decoupling and rebooting, the chkdsk finally kicked off normally after removing the SD card!
So, if you encounter this problem, try removing your SD card, and maybe some other peripherals as well.
2010-02-02 update: This is a known issue, and Microsoft has issued a hotfix. Also, for my machine at least, the fix has been rolled into a update sp46718 from HP.
-
Living 64-bit: Why Windows Thumbnails Show Up Randomly
Posted on December 17th, 2009 No commentsWindows Explorer has had support for showing thumbnails instead of icons for many years now. Support is built-in for many common formats, like images or rich text, but it doesn’t know how to deal with more complicated formats like PDFs and ODTs. To compensate for this lack of support, there is an extension mechanism that third-party applications can use to teach Explorer how to render thumbnails. Then, whenever you create or modify a file, Explorer notices that it has changed, recreates the thumbnail, and saves it to a cache file. This behavior is very evident if you save files on your desktop, since it is one Explorer window that is always visible.
Unfortunately, in a 64-bit world, this approach often fails for the same reasons that Windows Search Filters often fail. In 64-bit Windows, Explorer is a 64-bit process, but most third-party application programmers only provide 32-bit extension DLLs. Since Explorer is unable to load the 32-bit DLLs, it cannot render the thumbnail – and you’re left with an ugly icon. If you’re living 64-bit, though, you’ve no-doubt noticed that many of the thumbnails do get generated, but seemingly at random. You might have a PDF sitting on your desktop for weeks, and suddenly one day it will switch from an ugly icon to a thumbnail. What gives?
The secret is that Explorer is not just a running process for viewing your files and folders. It is exists in a series of libraries and common controls that third-party applications use to provide common functionality with a familiar interface. For example, almost all “Save” and “Open” dialogs either use or extend the built-in Windows versions, and those Windows versions use the same libraries as Windows Explorer to hoist some of that familiar functionality into the applications. In a very real sense, Explorer is being embedded in these third-party applications.
But remember: These third-party applications are 32-bit. That means that there are 32-bit versions of the Explorer libraries hanging around Windows, in case these applications need to use them. So when a 32-bit application opens a “Save” dialog and you navigate to a folder, you’re essentially pointing a 32-bit version of Explorer at that folder. Like usual, Explorer notices there are thumbnails that have not been generated, but now it can properly load the 32-bit third-party thumbnail extensions. It renders the thumbnails and writes them out to the cache file.
Surprise! Thumbnails for a file you weren’t even working on have suddenly been updated. It’s not random at all, but because you were working on a different file, it just seems random.
-
The Web Paradigm Four Years Later: King Browser
Posted on December 4th, 2009 No commentsIn my first post in this series, we took a quick look at where we were at the start of 2006 in re-defining the Web, and then asked, “How are we doing? Have we made progress during the intervening fourteen-hundred days?” The answer is, “Yes, we’ve made a lot of progress on the web, but we have yet to take the big leap. And we are in danger of taking some serious steps backwards.”
(Too Bad) The Browser Is Still King
When you think of the applications with the most impact on people’s day-to-day lives, chances are many of them will start with the letter ‘G’. Google has done an amazing job pushing the limits of what applications in a browser can do. They have pioneered new frontiers in web standards, compatibility, scripting, and browser user-interface capabilities. All of this has taken place inside of a web browser which is essentially unchanged since its inception. The browser is still king of the Web.
And yet, for all the advances in web user interfaces, they still suck. Take Google Calendar, for example: The CSS-styled interface is flat and ugly. Your options for different views are severely limited. Right-clicking brings up a context menu devoid of any calendar-specific context. Printing is a crapshoot, at best. When you have a meeting in five minutes, Google Calendar can’t interface with your desktop to provide a nice notification (like Growl or the Balloons); instead you get a ugly JavaScript pop-up and the default system sound. (And that’s not to mention more complicated issues like process isolation and window sizes and task switching!)
Need I go on?
Where Does Value on the Web Come From?
So why bother to use a web application like Google Calendar at all? It’s certainly not because we like the poor interface or lackluster usability. Rather, we get value comes from the accessibility of the important information it contains. Who gives a damn about a fancy calendar interface if it forgets your wife’s birthday! What’s more, we want access to our data. We want it to be available and accessible when we need it, in a format most appropriate for the access mechanism. Whether we’re scheduling our next hair cut on the iPhone, planning a trip home on our PC, or booking a meeting room at work, it has to be accessible any place and any time. A calendar in the cloud does that.
And it is easily shared with people you know and other systems you use. Metcalfe’s Law predicts that the value of our individual applications goes up exponentially with the amount of sharing we can do. The accessibility of the information gives a crappy interface connected to the web greater value than a fantastic – but lonely – user interface.
If we do value the connectedness of our data more than the interface in which its presented, then Google’s success with products like Docs, GMail, and Calendar are easily explained. That their interfaces happened to suck less than competing web applications merely gave them the leg up needed to take the majority of the market. So far.
Having And Eating Our Cake
Twitter shows us the future of the Web. The user interface on Twitter’s home page is as technologically up-to-date as any of Google’s applications: it’s a full-on CSS-styled, HTML-structured, JavaScript-driven, AJAX-enhanced web application. And it looks just as lackluster as GMail or Google Calendar. But Twitter isn’t about HTML and CSS – it’s about data and the APIs to access and manipulate it.
More than 70% of users on Twitter post from third-party applications that aren’t controlled by Twitter. Some of those applications are other services – sites like TwitterFeed that syndicate information pulled from other places on the web (this blog, included). Others are robots like JackBot, my Java IRC bot which tweets the topics of conversation for a channel I frequent.
Most, however, are specialized user interfaces, designed for humans to read, write, respond, dm, link, post pictures, and otherwise poke at their Twitter accounts. Each one is unique, and each one has specific features that particular users find the most useful for their purposes. Clients like TweetDeck target the power-tweeter with multiple columns and advanced features for multiple accounts. Other clients, like Tweetie, aim to provide a full-featured interface within the limits of a mobile device. Still other clients, like Blu (my personal choice), are full of fancy graphics and animations.
These applications successfully meld the web and the desktop. They harness the value of Web-connected data while in rich, interactive experiences. And its not just flash and bling. By leveraging their platform’s capabilities, each application can be tailored to the needs of its users, making it possible for each person to extract the most value from their data.
So if Twitter is the model for how Web applications should be written, then why aren’t we there yet? In the next post, I’ll discuss why we’re so far behind, and why I see Chromium OS as a step in the wrong direction for web-centric applications.
-
The Web Paradigm Four Years Later: Where We Started
Posted on December 2nd, 2009 1 commentEverything old is new again. The advent of Chromium OS, and discussions at work with David, have prompted me to dust off these old posts and revisit my positions, arguments, and examples. This is the first of a multi-part series, and is intended as a refresher (mostly for myself) on my past posts on the topic.
Long-time consumers of my site might remember a four-part series from 2006 entitled “What Does ‘Web Paradigm’ Mean, Anyway?” In Part 1, I described how the web browser has been struggling – and mostly failing – to replicate the desktop user’s experience. That’s not what the Web was designed for.
Notice that web applications have always striven to behave more like desktop applications. Since the very beginning, any web application of any complexity yearned to present a stateful, responsive, user-driven application flow. Sessions, cookies, and Javascript were all created with this in mind. Witness the advent of Ajax as the latest effort in this campaign to make the web more like the desktop. It’s the next logical step in a path that began with the <form> element all those years ago.
In Part 2, I took the path of the web browser as the canonical application platform to its logical conclusion – complete reinvention of the operating system – and discussed the folly of re-implementing decades of established engineering.
In the short-term, it allows for a quick path to closer web integration. In the long-term, however, it leads you down a slippery slope, demanding the question, “How far do you take it?” An IRC plugin may as well connect to AIM, Y!, and MSN. It’s only a short step from a peer-to-peer application to an Apache extension. After that, why not integrate file-level security and access control into your browser? With all of these different plugins, though, we can’t allow one malicious or buggy extension to monopolize the browser’s resources; so we’ll need to write a fair preemptive scheduler and memory manager.
In Part 3, I charted a path that allows us to combine the Web’s strengths with the Desktop’s strength’s.
There must be things we can do to more effective use the web in our daily lives than Firefox and Internet Explorer, right? We’ve taken pretty good advantage of the hyperlink, but can we finally take full advantage of the common languages and ubiquitous protocols, the final two things the web offers to us?
Finally, in Part 4, I gave some examples of how that might work, and what kind of platform and tools we need to make it happen.
We need a platform, independent of any particular application, that makes obtaining, parsing, transforming, aggregating, and forwarding XML as natural as displaying a window. Web integration needs to be a first-class citizen.
Projects like XULRunner are very strong steps in that direction. Microsoft is getting awfully close with .NET 2.0, and maybe we’ll see the first real platform in this space with Vista and WinFX. Finally, like Firefox, the ideas behind Smart Clients and Java Web Start are a good intermediate step, but they are not the future.
So, four years later, how are we doing? We’ve made some bold steps in the right direction, but we have yet to fully harness the potential of the web in our daily experience. In my next post, I’ll talk about the limitations of the status quo, and the model we should strive to emulate.










