<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>0xDECAFBAD - Tag: mozilla</title>
    <link href="http://decafbad.com/blog/atom.xml" rel="self"/>
    <link href="http://decafbad.com/blog"/>
    <updated>2012-02-27T19:57:14+00:00</updated>
    <id></id>
    <author>
        <name></name>
        <email>l.m.orchard@pobox.com</email>
    </author>
    

    <entry>
        <title>Putting clouds in boxes for webdevs at Mozilla</title>
        <link href="http://decafbad.com/blog/2011/10/02/putting-clouds-in-boxes"/>
        <updated>2011-10-02T22:45:37+00:00</updated>
        <id>http://decafbad.com/blog/2011/10/02/putting-clouds-in-boxes</id>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;At Mozilla, we're redoubling efforts to attract contributors. And, in the Webdev team, we're &lt;a href=&quot;http://blog.mozilla.com/webdev/2011/10/04/developing-with-vagrant-puppet-and-playdoh/&quot;&gt;using virtual machines&lt;/a&gt; to make it even easier to get started hacking. It makes no sense to demand that a JavaScript ninja or a CSS artisan also be a Python-wielding sysadmin, so we're trying to build &lt;a href=&quot;https://wiki.mozilla.org/Webdev:DevBoxVMImages&quot;&gt;ready-baked VMs for our projects&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/erix/3998080471/&quot; style=&quot;display: block; float: right; text-decoration: none; border: none; margin: 0 0 1em 1em&quot;&gt;&lt;img src=&quot;{{ site.baseurl }}/images/cloud-box.jpg&quot; style=&quot;width: 300px&quot; /&gt;&lt;br /&gt;&lt;small&gt;Lieferung 3 by erix on Flickr&lt;/small&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firefox is more than just a desktop browser, and Mozilla is more than just Firefox. An ever-growing mass of our code is going toward building web sites and services that &lt;a href=&quot;https://wiki.mozilla.org/ReleaseEngineering&quot;&gt;build&lt;/a&gt;, &lt;a href=&quot;http://www.mozilla.org/en-US/firefox/fx/&quot;&gt;ship&lt;/a&gt;, &lt;a href=&quot;https://wiki.mozilla.org/AUS&quot;&gt;update&lt;/a&gt;, &lt;a href=&quot;http://support.mozilla.com/&quot;&gt;support&lt;/a&gt;, &lt;a href=&quot;https://wiki.mozilla.org/Engagement&quot;&gt;promote&lt;/a&gt;, &lt;a href=&quot;https://addons.mozilla.org/&quot;&gt;augment&lt;/a&gt;, &lt;a href=&quot;https://developer.mozilla.org/&quot;&gt;document&lt;/a&gt;, &lt;a href=&quot;http://www.mozilla.org/en-US/mobile/sync/&quot;&gt;sync&lt;/a&gt;, &lt;a href=&quot;https://wiki.mozilla.org/Labs/F1&quot;&gt;share&lt;/a&gt;, &lt;a href=&quot;http://identity.mozilla.com/&quot;&gt;identify&lt;/a&gt;, and &lt;a href=&quot;https://wiki.mozilla.org/Socorro&quot;&gt;report&lt;/a&gt;. (And I'm sure I'm missing a further cast of hundreds, here.)&lt;/p&gt;

&lt;h3&gt;Sighting storm clouds on the horizon&lt;/h3&gt;

&lt;p&gt;In other words, more and more of Mozilla is in the &lt;em&gt;cloud&lt;/em&gt;. Unfortunately, many of these projects are really hard to get into as a contributor. It's often hard to find what needs doing in Bugzilla, and it's often hard to get the code up and running in a meaningful way without being both a bit of a sysadmin and a Mozilla insider.&lt;/p&gt;

&lt;p&gt;This is a huge problem. Although Mozilla has a core group of employees, we're not nearly enough to build all of these projects and pursue &lt;a href=&quot;http://www.mozilla.org/about/mission.html&quot;&gt;the mission&lt;/a&gt; on our own. We've gotten to where we are thanks to the volunteer efforts of thousands of contributors—and the only way we'll get where we want to go is through the efforts of thousands (or &lt;em&gt;&lt;a href=&quot;http://commonspace.wordpress.com/2011/02/22/nmm-redux/&quot;&gt;millions&lt;/a&gt;&lt;/em&gt;) more. The good news is that is feels like we're &lt;a href=&quot;https://wiki.mozilla.org/Mozilla.org/Contribute&quot;&gt;waking up to this problem&lt;/a&gt; and starting to get &lt;a href=&quot;https://wiki.mozilla.org/ReMo&quot;&gt;really serious about it&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Sharing recipes for fluffy clouds&lt;/h3&gt;

&lt;p&gt;For my part, I've spent idle time over the past few years trying to work out how to make webdev projects more accessible to new contributors. We've come a long way from the days of just uploading WordPress to an FTP server; these things come with a lot of moving parts nowadays, and the &lt;code&gt;INSTALL.txt&lt;/code&gt; files run long and consume weekends. And so, they filter out all but the most dedicated (or masochistic) volunteers.&lt;/p&gt;

&lt;p&gt;For months, I spun my wheels playing with virtual machines and exporting appliances, doing a lot of things by hand. But then, earlier this year, I discovered both &lt;a href=&quot;http://vagrantup.com/&quot;&gt;Vagrant&lt;/a&gt; and &lt;a href=&quot;http://www.puppetlabs.com/&quot;&gt;Puppet&lt;/a&gt; and had my mind blown. With those tools, I could share recipes for VMs right alongside my code.&lt;/p&gt;

&lt;p&gt;I would never have to set up a webdev environment for myself by hand again—all the fiddly bits of installation and configuration could be codified, checked into github, and flushed from my brain.  But, the real magic is that I could &lt;em&gt;share&lt;/em&gt; this stuff. So, future coworkers and collaborators could benefit from the same reproducible dev enviroments—&lt;em&gt;never having wasted brainpower and weekends on an INSTALL.txt to begin with&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This is a really big deal. I &lt;a href=&quot;http://lanyrd.com/2011/osbridge/sdxby/&quot;&gt;presented on it this past June at Open Source Bridge&lt;/a&gt; in Portland (&lt;a href=&quot;http://decafbad.com/2011/06/os-webdev-vm/slides.html&quot;&gt;slides&lt;/a&gt;). I've been talking myself blue about this stuff for months, in opposition to my usual serially enthuastic habits. But, it looks like I've infected my coworkers at Mozilla, because now we're talking about &lt;a href=&quot;http://blog.mozilla.com/webdev/2011/10/04/developing-with-vagrant-puppet-and-playdoh/&quot;&gt;developing with Vagrant, Puppet, and Playdoh&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;No assembly required&lt;/h3&gt;

&lt;p&gt;So, with &lt;a href=&quot;http://vagrantup.com/&quot;&gt;Vagrant&lt;/a&gt;, &lt;a href=&quot;http://www.puppetlabs.com/&quot;&gt;Puppet&lt;/a&gt;, and &lt;a href=&quot;http://blog.mozilla.com/webdev/2011/10/04/developing-with-vagrant-puppet-and-playdoh/&quot;&gt;Playdoh&lt;/a&gt;, we'll have projects that you can fire up with just a &lt;code&gt;git clone&lt;/code&gt; and a &lt;code&gt;vagrant up&lt;/code&gt; in a command line shell. Forget about &lt;a href=&quot;http://macports.org/&quot;&gt;MacPorts&lt;/a&gt; or &lt;a href=&quot;https://github.com/mxcl/homebrew/&quot;&gt;Homebrew&lt;/a&gt; on Mac OS X, or whatever it is that people using Windows have to install. Take a bike ride or go to lunch, and you'll have a fully configured server running and source code ready for hacking.&lt;/p&gt;

&lt;p&gt;I think we can do better, though. For one, spinning up a fairly complex virtual machine from scratch with &lt;a href=&quot;http://vagrantup.com/&quot;&gt;Vagrant&lt;/a&gt; and &lt;a href=&quot;http://www.puppetlabs.com/&quot;&gt;Puppet&lt;/a&gt; takes a long time and a lot of bandwidth. This can be sped up by &lt;a href=&quot;http://vagrantup.com/docs/boxes.html&quot;&gt;packaging pre-built boxes&lt;/a&gt;. So, one improvement we can pursue is to spin up VMs with Vagrant as a part of our continual integration and deployment processes and package boxes for public download. These are also handy on a thumb drive for sharing at hack events and meetups.&lt;/p&gt;

&lt;p&gt;This still requires &lt;a href=&quot;http://vagrantup.com/&quot;&gt;Vagrant&lt;/a&gt; and working with the command-line, though. Not everyone who has something valuable to contribute is a command-line jockey. And, a few of us webdevs have run into issues with &lt;a href=&quot;http://vagrantup.com/&quot;&gt;Vagrant&lt;/a&gt;—it's still early days for that project, after all. Additionally, not everyone who could be a Mozilla contributor owns the kind of hardware necessary to support running a substantial virtual machine.&lt;/p&gt;

&lt;p&gt;So, I've also started playing with &lt;a href=&quot;http://www.puppetlabs.com/&quot;&gt;Puppet&lt;/a&gt; by itself, to build plain-vanilla VM appliances and to spin up cloud servers on &lt;a href=&quot;http://aws.amazon.com/ec2/&quot;&gt;Amazon EC2&lt;/a&gt; and &lt;a href=&quot;http://www.rackspace.com/cloud/&quot;&gt;Rackspace Cloud Servers&lt;/a&gt;. It's going pretty well, and it's conceivable we could do without &lt;a href=&quot;http://vagrantup.com/&quot;&gt;Vagrant&lt;/a&gt; to script the build of &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Virtualization_Format&quot;&gt;downloadable VM appliances&lt;/a&gt; and to spin up disposable cloud servers.&lt;/p&gt;

&lt;h3&gt;So, now what?&lt;/h3&gt;

&lt;p&gt;There are still some issues to be worked out, so &lt;a href=&quot;https://wiki.mozilla.org/Webdev:DevBoxVMImages&quot;&gt;I've started a wiki page&lt;/a&gt;. And, we need to spread the word that we're doing this to see what people think—and more importantly, see if this helps attract more help. From my years at Mozilla so far and bouncing between projects, VM appliances are things I wish I'd had when faced with a new project. So, having been there—albeit with insider advantages—I'm pretty optimistic that this is a good step forward.&lt;/p&gt;

&lt;p&gt;Of course, it's not the only step: The other thing I mentioned—and have conveniently avoided addressing again throughout the rest of this post—is the issue of finding things to do in Bugzilla. Well, we're working on that too. It's a bit beyond the scope of this blog post, but we have a Mozilla-wide effort to start classifying &lt;a href=&quot;https://bugzil.la/sw:%5Bgood%20first%20bug%5D&quot;&gt;good first bugs&lt;/a&gt; for new contributors and &lt;a href=&quot;http://blog.paulbiggar.com/archive/helping-new-contributors-part-2-mentoring/&quot;&gt;identifying mentors&lt;/a&gt; to contact for help.&lt;/p&gt;

&lt;p&gt;So... what do you think?&lt;/p&gt;

&lt;!-- vim: set wrap wm=5 syntax=mkd textwidth=70: --&gt;

</content>
    </entry>
    
    

    <entry>
        <title>Badger 2: Return of the Mustelidae</title>
        <link href="http://decafbad.com/blog/2011/07/18/badger2"/>
        <updated>2011-07-18T15:03:13+00:00</updated>
        <id>http://decafbad.com/blog/2011/07/18/badger2</id>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;A year ago, I said I wanted to build a badging service
for the Mozilla community, so we could all celebrate how awesome we
all are. Well, I putzed around and didn't get far, so I'm starting
over with something more immediately useful.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;{{ site.baseurl }}/images/badger-logo-working.png&quot; style=&quot;width:98%; display: block&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(This is an awesome illustration by &lt;a href=&quot;http://seanmartell.com/&quot;&gt;Sean
Martell&lt;/a&gt;, used entirely without permission.
I'll take it down if anyone gets mad.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Almost a year ago, &lt;a href=&quot;http://decafbad.com/2010/07/badger-article/&quot;&gt;I wrote about building a badging service for
all of Mozilla&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In a nutshell, I left the &lt;a href=&quot;http://www.flickr.com/photos/gen/4784616521/&quot;&gt;2010 Mozilla Summit&lt;/a&gt;
wanting to build a tool that empowered people to craft social objects
representing achievement and gratitude, and give them to each other.&lt;/p&gt;

&lt;p&gt;Since then, I've &lt;a href=&quot;https://github.com/lmorchard/badger&quot;&gt;played around with a prototype in Django with
Pinax&lt;/a&gt;.  But, I abandoned that thing due to getting super
busy with the Firefox 4 release. It also didn't help that I was a
Django newb and that I got caught up in screwing around with shiny
things like &lt;a href=&quot;http://pinaxproject.com&quot;&gt;Pinax&lt;/a&gt; and &lt;a href=&quot;http://lettuce.it&quot;&gt;Lettuce&lt;/a&gt; and neglected the actual feature
set.&lt;/p&gt;

&lt;p&gt;So now, finally, &lt;a href=&quot;https://github.com/lmorchard/badger2&quot;&gt;I'm picking the thread back up again&lt;/a&gt;. This
time, with a little less ambition and a few more practical aims.&lt;/p&gt;

&lt;h3&gt;Make something more useful right away&lt;/h3&gt;

&lt;p&gt;While I &lt;em&gt;have&lt;/em&gt; spent some dangerous time screwing around with shinies like
&lt;a href=&quot;http://vagrantup.com&quot;&gt;Vagrant&lt;/a&gt;, &lt;a href=&quot;http://pupetlabs.com&quot;&gt;Puppet&lt;/a&gt;, and &lt;a href=&quot;https://github.com/mozilla/playdoh&quot;&gt;Playdoh&lt;/a&gt;, I think I've gotten that
mostly out of my system and have gotten down to work &lt;a href=&quot;https://github.com/lmorchard/badger2/commits/master&quot;&gt;as of last
night&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Rather than build a Grand Central Station for badges, I've reset my
goals to a progression of practical results:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a reusable Django app that supports some basic use cases of
creating and awarding badges to users.&lt;/li&gt;
&lt;li&gt;Add &lt;a href=&quot;http://activitystrea.ms&quot;&gt;Activity Stream&lt;/a&gt;s narrating &lt;a href=&quot;http://wiki.activitystrea.ms/w/page/27189812/Badge&quot;&gt;badge claims&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add support for &lt;a href=&quot;http://code.google.com/p/pubsubhubbub/&quot;&gt;PubSubHubbub&lt;/a&gt; with Badger activity streams&lt;/li&gt;
&lt;li&gt;Add a REST API, maybe with OAuth&lt;/li&gt;
&lt;li&gt;Accept badges for local users, via &lt;a href=&quot;http://code.google.com/p/pubsubhubbub/&quot;&gt;PuSH&lt;/a&gt; from
external sites&lt;/li&gt;
&lt;li&gt;See what the &lt;a href=&quot;https://wiki.mozilla.org/Badges&quot;&gt;Open Badges Project&lt;/a&gt; is up to, and how Badger can
fit in with their goals.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The idea here is to make Badger a practical, reusable, drop-in app for
existing sites—preferably (but not necessarily) the
&lt;a href=&quot;https://github.com/mozilla/playdoh&quot;&gt;Playdoh&lt;/a&gt;-flavored sites we're building at Mozilla. Then,
incrementally and optionally empower a Badger-enabled site to become a
badge hub by accepting reports of badge claims from other
Badger-enabled sites.&lt;/p&gt;

&lt;h3&gt;Take baby steps to federation&lt;/h3&gt;

&lt;p&gt;So, for example, let's say we dropped Badger into a few sites like
these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.mozilla.org&quot;&gt;http://developer.mozilla.org&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://support.mozilla.com&quot;&gt;http://support.mozilla.com&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://addons.mozilla.org&quot;&gt;http://addons.mozilla.org&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;At first, Badger would just augment those sites with badging
facilities for their respective user bases. That could fill some needs
right away.&lt;/p&gt;

&lt;p&gt;Then, say we built a site that offered personal profiles to members of
the Mozilla community.  With the &lt;a href=&quot;http://activitystrea.ms&quot;&gt;Activity Stream&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/pubsubhubbub/&quot;&gt;PuSH&lt;/a&gt;
augmentations, users could connect their profiles with each of the
other Mozilla sites they use.  That way, whenever they claim a badge
out there, it gets delivered to their community profile.&lt;/p&gt;

&lt;h3&gt;Why bother federating at all?&lt;/h3&gt;

&lt;p&gt;If the only cross-site goal to build an all-in-one display case for
badges on a community profile, I could just build JSON feeds and wrap
them in a JS-based widget. In fact, &lt;a href=&quot;http://activitystrea.ms/specs/json/1.0/&quot;&gt;a JSON-formatted Activity
Stream&lt;/a&gt; will work nicely for that. Drop that into the profile
page, and we're done.&lt;/p&gt;

&lt;p&gt;There are lots of reasons to federate. But, at least one thing not supported by
this solution are &lt;a href=&quot;http://decafbad.com/2010/07/badger-article/#section-105&quot;&gt;meta-badges&lt;/a&gt;. That is, badges awarded for badges.&lt;/p&gt;

&lt;p&gt;Let's say you close 100 bugs on Bugzilla, answer 100 questions on
SUMO, edit 100 pages of documentation on MDN, and author 100 add-ons.
And, let's say you get badges on the respective sites for all of those
activities.&lt;/p&gt;

&lt;p&gt;Well, now, I'd like to give you a badge on your community profile for
being a &lt;strong&gt;Mozilla Superhero&lt;/strong&gt;. I could just do that by hand, having
observed all your greatness. But, I'd rather the system just do that
automatically.&lt;/p&gt;

&lt;p&gt;If your community profile treated all your badges from your chosen affiliated
sites as first-class citizens, then I could build the meta-badge
trigger right there.&lt;/p&gt;

&lt;p&gt;Of course, I could also write a program that monitors badge feeds from
various sites. Then, use the community profile site's Badger API to
issue a badge when the conditions are met. But, as maintainer of the
monitoring program, I'd have to keep track of what feeds where count
for which people, which could be a mess.&lt;/p&gt;

&lt;p&gt;There's still some thinking to do here.&lt;/p&gt;

&lt;h3&gt;What about identity and co-opting badges?&lt;/h3&gt;

&lt;p&gt;I'm still thinking through how someone connects a profile to other
sites. As in, how can Badger ensure that the owner of the community
profile is also the owner of a badge claim feed on MDN?  Maybe some
kind of OAuth dance that results in a &lt;a href=&quot;http://code.google.com/p/pubsubhubbub/&quot;&gt;PuSH&lt;/a&gt; subscription between
sites?&lt;/p&gt;

&lt;p&gt;Consider the least-capable federation case: a Badger-compatible feed
hosted as a static file on Amazon S3. And, by Badger-compatible, I
mean an &lt;a href=&quot;http://activitystrea.ms&quot;&gt;Activity Stream&lt;/a&gt; that contains &lt;a href=&quot;http://wiki.activitystrea.ms/w/page/27189812/Badge&quot;&gt;badge claims&lt;/a&gt;. You
shouldn't need my specific implementation of Badger-in-Django to
produce one of those.&lt;/p&gt;

&lt;p&gt;Although &lt;a href=&quot;http://code.google.com/p/pubsubhubbub/&quot;&gt;PuSH&lt;/a&gt; is still the ideal case (I think), occasional
polling of an &lt;a href=&quot;http://activitystrea.ms&quot;&gt;Activity Stream&lt;/a&gt; feed should still be supported. If a
user connects that up to their community profile, we just have to take
their word for it. We'd rely on community members to
flag stinkers trying to claim badge feeds that aren't theirs.&lt;/p&gt;

&lt;p&gt;Beyond that, there's probably some crypto-voodoo we can invoke here,
for cases where badge claim validity really matters—as opposed to the
fun and games I have in mind for Mozilla.&lt;/p&gt;

&lt;h3&gt;What about the Open Badges Project?&lt;/h3&gt;

&lt;p&gt;From various conversations over the past year, it sounds to me like
the &lt;a href=&quot;https://wiki.mozilla.org/Badges&quot;&gt;Open Badges Project&lt;/a&gt; is getting the parts in place to do even
more interesting federation of badges that gives ownership of the
badge hub to the user.&lt;/p&gt;

&lt;p&gt;In that scenario, you have a backpack in your browser and can carry
your badge claims with you between sites with no prior coordination
between the sites themselves.&lt;/p&gt;

&lt;p&gt;This sounds like something in which Badger should be able to
participate, eventually. If not as a hub, Badger should at least offer
the tools to create and award badges that work with the user-owned hub
scheme.&lt;/p&gt;

&lt;h3&gt;So, what next?&lt;/h3&gt;

&lt;p&gt;Now that I've written all this out, I need to hack on it. If you're
interested in this stuff, let me know. That way, it'll look like
someone might actually find this stuff handy when I get something
working!&lt;/p&gt;

&lt;!-- vim: set wrap wm=5 syntax=mkd textwidth=70: --&gt;




&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-256743407&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=afd2a7efeaad01509a571bae031dfc5c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;David Boswell&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-256743407&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-07-19T01:18:24&quot;&gt;2011-07-19T01:18:24&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;Very cool to see an update on Badger.  I'm definitely interested in this and would love to see something like this show up in the Mozillians phonebook that will be ready soonish :)

David&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-257292756&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://briks.si&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=29e2f1888cdcc9c451d32ab902d5a19c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://briks.si&quot;&gt;Brian King&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-257292756&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-07-19T15:12:01&quot;&gt;2011-07-19T15:12:01&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;Over at the Mozilla Reps program, we are discussing the possible use of badges - https://wiki.mozilla.org/ReMo&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-257331862&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://kanai.net/weblog/&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/gkanai.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://kanai.net/weblog/&quot;&gt;Gen Kanai&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-257331862&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-07-19T15:48:22&quot;&gt;2011-07-19T15:48:22&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;Agreed with DBos. Would love to see Badger as an official service, especially with the new Campus Reps program that Jason Haas is rebooting as well as with the Mozilla Representatives program. Also you might get a badge for contributing to the Join Mozilla program? So many great uses for us.&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-278082903&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/interstar.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;interstar&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-278082903&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-08-05T03:15:39&quot;&gt;2011-08-05T03:15:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;Hi Les,

Very very interesting. 

I was just thinking that there needed to be something like the Open Badges project today. (I'd even got as far as knocking up a data-model in web2py.) And then I saw this.

I quickly cloned and tried out your app with an ordinary Django project but it's blowing up without jingo and I guess other Playdoh related modules. Are you committed to Playdoh for Badger2 ?

&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-278514925&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://decafbad.com/&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/lmorchard.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://decafbad.com/&quot;&gt;Les Orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-278514925&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-08-05T18:05:31&quot;&gt;2011-08-05T18:05:31&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;I'm committed to Playdoh insofar as my initial users will probably be my co-workers at Mozilla, who are all building Playdoh-based sites.

But, there's no reason why it shouldn't eventually work with vanilla Django. It's using core template loaders and shortcuts, so switching over to standard stuff shouldn't be an issue for the views and models.

I'm hoping at some point to put together some more Django-conventional template tags and templates toward that end, unless someone gets to it before me in a pull request (patches welcome!). Really, I think the template tags are the more important thing, since any templates out of the box will likely get overridden on a real site.&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-301119028&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.integrating-technology.org/&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/nelliemuller.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.integrating-technology.org/&quot;&gt;Dr. Nellie Deutsch&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-301119028&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-09-02T14:07:45&quot;&gt;2011-09-02T14:07:45&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;I love the idea, Leslie.  I've been heading a self-funded organization that provides free online professional development workshops for educators around the world since 2006. We need badges for our graduates.  Let me know how I can be of help. &lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Pay phones and Firefox features</title>
        <link href="http://decafbad.com/blog/2011/02/07/pay-phones-and-firefox-features"/>
        <updated>2011-02-07T04:32:31+00:00</updated>
        <id>http://decafbad.com/blog/2011/02/07/pay-phones-and-firefox-features</id>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;Pay phones have been disappearing, and so might some Firefox features. But, that's not necessarily a bad thing: Some features steal attention from others that are more important. Some could be spun off into add-ons, which are getting easier to make.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;em&gt;Feel free to comment on this blog post. But, if you feel strongly about these features, you might get a better discussion with more people on &lt;a href=&quot;http://groups.google.com/group/mozilla.dev.apps.firefox/browse_thread/thread/fa6f83e781b962a4&quot;&gt;this thread from the &lt;code&gt;mozilla.dev.apps.firefox&lt;/code&gt; newsgroup (in Google Groups)&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p style=&quot;display: block; margin: 0 0 1em 1em; float:right;&quot;&gt;
&lt;a style=&quot;display: block;&quot; href=&quot;http://www.flickr.com/photos/thomashawk/4925985819/&quot; title=&quot;Phone Don't Work No More by Thomas Hawk, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4099/4925985819_9ccbb166f7.jpg&quot; width=&quot;333&quot; height=&quot;500&quot; alt=&quot;Phone Don't Work No More&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/thomashawk/4925985819/&quot;&gt;Phone Don't Work No More&lt;/a&gt; by &lt;a href=&quot;http://www.flickr.com/photos/thomashawk/&quot;&gt;Thomas Hawk&lt;/a&gt;
&lt;/p&gt;


&lt;p&gt;When's the last time you used a pay phone? For me, it's been over a decade—which is about how long I've had a cell phone.&lt;/p&gt;

&lt;p&gt;As it turns out, &lt;a href=&quot;http://www.nytimes.com/2006/02/19/nyregion/19phones.html?_r=1&amp;amp;pagewanted=print&quot;&gt;pay phones have been disappearing&lt;/a&gt; for awhile now. Why? Because pay phones are expensive to keep in working order. If more and more people have wireless phones, it's less likely that any particular pay phone will result in value for the phone company.&lt;/p&gt;

&lt;h3&gt;So what?&lt;/h3&gt;

&lt;p&gt;The reason I'm thinking about this is that I'm troubled by a few bugs I ran into in Bugzilla:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622051&quot;&gt;Remove support for microsummaries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622045&quot;&gt;Remove smart bookmarks support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622047&quot;&gt;Remove support for tagging bookmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622049&quot;&gt;Get rid of livemark support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Are these like pay phones?&lt;/p&gt;

&lt;p&gt;Each one requires engineering effort to keep working from release to release in Firefox. Some of them have issues in performance and functionality that could use some attention. And, the introduction of &lt;a href=&quot;https://services.mozilla.com/&quot;&gt;Firefox Sync&lt;/a&gt;, for example, introduces some new complexities in tracking changes.&lt;/p&gt;

&lt;p&gt;But, do any of these features provide enough value to justify continued attention?&lt;/p&gt;

&lt;h3&gt;Microsummaries&lt;/h3&gt;

&lt;p&gt;Ever heard of &lt;a href=&quot;https://wiki.mozilla.org/Microsummaries&quot;&gt;microsummaries&lt;/a&gt;? I have, and I thought they'd be neat. I installed a plugin on my blog to offer a microsummary, and I tried hacking them into Delicious at one point during a Hack Day.&lt;/p&gt;

&lt;p&gt;That was about 4 years ago, and I haven't thought about them much since. Sounds like a pay phone to me.&lt;/p&gt;

&lt;h3&gt;Smart Bookmarks&lt;/h3&gt;

&lt;p&gt;I always wondered how those out-of-box &quot;Recently Bookmarked&quot;, &quot;Recent Tags&quot;, and &quot;Most Visited&quot; folders worked in Firefox. Turns out that you can bookmark &lt;a href=&quot;https://developer.mozilla.org/en/Places_query_uris&quot;&gt;queries against the internal Places database&lt;/a&gt; as a persistent search folder. Seems pretty keen.&lt;/p&gt;

&lt;p&gt;But, I've been using Firefox for years and only just learned about this in the past month. The feature's not very exposed, and it's not obvious how to use it. In fact, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622045#c0&quot;&gt;the bug to remove it might list the clearest hints on using it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Seems like it might be a good feature to jettison into an add-on, like a pay phone to play with in your basement.&lt;/p&gt;

&lt;h3&gt;Tagging Bookmarks&lt;/h3&gt;

&lt;p&gt;This is a no-brainer for me: &lt;a href=&quot;http://www.amazon.com/gp/product/0470037857?ie=UTF8&amp;amp;tag=0xdecafbad01-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;%0D%0Acreative=9325&amp;amp;creativeASIN=0470037857&quot;&gt;I like tagging my bookmarks&lt;/a&gt;. The problem is that I've exceeded 16,000 bookmarks. It's been years since any browser coped well with my corpus of bookmarks—that's one of the reasons I started really liking Delicious.&lt;/p&gt;

&lt;p&gt;However, tagging bookmarks in Firefox is kind of rough. The UI isn't awesome, and the database supporting it could use some work. Rather than improve things, though, &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622047&quot;&gt;bug 622047&lt;/a&gt; proposes removing the functionality altogether.&lt;/p&gt;

&lt;p&gt;Here, I'm conflicted: I don't use tags in Firefox, because I don't use bookmarks in Firefox. If they worked better, I might use them. Instead, I use &lt;a href=&quot;http://pinboard.in/u:deusx&quot;&gt;pinboard.in&lt;/a&gt; or a private Delicious clone of my own that copes with my scale—in fact, I got to this scale because those services handle it. So, usage data from me would support the feature's removal despite what I think I'd like to see.&lt;/p&gt;

&lt;p&gt;But, does my &lt;em&gt;suspicion&lt;/em&gt; that I would use a feature justify someone else's time in making it better? I don't think I can ask for that with a straight face.&lt;/p&gt;

&lt;p&gt;Put another way, I could see how that pay phone they removed from the corner gas station could someday come in handy, but should I expect the phone company to keep it clear of graffiti until I come along with quarters?&lt;/p&gt;

&lt;h3&gt;Livemarks&lt;/h3&gt;

&lt;p&gt;Live Bookmarks (or Livemarks) are bookmark folders whose contents are generated from RSS and Atom feeds periodically polled by Firefox. They're feed subscriptions, built into the browser.&lt;/p&gt;

&lt;p&gt;So, when I saw &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622049&quot; title=&quot;Get rid of livemark support&quot;&gt;bug 622049&lt;/a&gt;, my first thought was &quot;&lt;strong&gt;Hey! I'm using those!&lt;/strong&gt;&quot;&lt;/p&gt;

&lt;p&gt;I just spent a week building an &lt;a href=&quot;http://decafbad.com/blog/2011/01/27/introducing-fireriver-a-river-of-news-for-firefox-4&quot;&gt;add-on powered by Livemarks&lt;/a&gt;. I've been using &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/fireriver/&quot;&gt;Fireriver&lt;/a&gt; on a daily basis, and I've been thinking about trying more experiments. But, if livemarks are going away, then &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622049#c11&quot;&gt;I'm working toward a dead end&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Like tagging bookmarks, the UI and feed polling code behind livemarks could use some work. My add-on was an attempt to improve the interface, but I did &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=629742&quot;&gt;report a bug&lt;/a&gt; on performance issues raised by my import of around 700 subscriptions from Google Reader. That's just one more strike against livemarks for &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622049&quot; title=&quot;Get rid of livemark support&quot;&gt;bug 622049&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the end, if livemarks go away &lt;a href=&quot;http://www.google.com/reader/shared/l.m.orchard&quot;&gt;I'd still have Google Reader&lt;/a&gt;. I'll have blown a week or so on this add-on, though I did learn some interesting things. And, if Google Reader goes away, &lt;a href=&quot;http://www.amazon.com/gp/product/0764597582?ie=UTF8&amp;amp;tag=0xdecafbad01-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;c%0D%0Areative=9325&amp;amp;creativeASIN=0764597582&quot;&gt;it's not like I've never written a feed reader before&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Still, this one bothers me the most, in terms of what I want to see for the web itself. &lt;a href=&quot;http://decafbad.com/blog/2011/01/27/what-should-be-done-about-feeds-in-browsers&quot;&gt;This is better explored in another blog post&lt;/a&gt;, but I want my browser to do more of the surfing for me. I think of bookmarks as long-term relationships to web resources—and livemarks turn those static links into live updates. I can think of a lot of uses for this functionality built into the browser, rather than delegated to &lt;a href=&quot;http://ascii.textfiles.com/archives/2848&quot;&gt;lobster traps&lt;/a&gt; and content silos.&lt;/p&gt;

&lt;p&gt;But, livemarks do complicate things for Firefox engineers. They don't interact well with Sync, and the feed polling code has cases where it can really drag down the whole browser. And, of course, livemarks aren't good for much when a laptop's closed or if Firefox isn't running. Granted, the former happens more often than the latter for me, but we're not talking about an always-on server here in any case.&lt;/p&gt;

&lt;p&gt;Are livemarks a pay phone feature? Personally, I don't think so. I think Firefox is diminished if it loses this feature, rather than taking it further.&lt;/p&gt;

&lt;p&gt;Although I'm reticent to do so, I might just rebuild livemarks in some form with an add-on if they go away. The good news is that add-ons are getting easier to write, which also deserves its own blog post. The bad news is, I might not have time or motivation to do the work myself. But, either, I'm not all that comfortable clamoring for other people's time for this &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622049#c11&quot;&gt;beyond registering my disagreement&lt;/a&gt; and &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=622049#c14&quot;&gt;backing off&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Most of these things do indeed look like pay phones to me. Most of them seem not to offer enough value to pay for upkeep.&lt;/p&gt;

&lt;p&gt;Livemarks are the exception, in my mind, but I don't have answers as to how to fix their flaws. Maybe they're inherently doomed in the face of ubiquitous computing, maybe they're just in need of a better execution. But, I won't expect other busy engineers to drop what they're doing to come up with those answers in the meantime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;em&gt;Feel free to comment on this blog post. But, if you feel strongly about these features, you might get a better discussion with more people on &lt;a href=&quot;http://groups.google.com/group/mozilla.dev.apps.firefox/browse_thread/thread/fa6f83e781b962a4&quot;&gt;this thread from the &lt;code&gt;mozilla.dev.apps.firefox&lt;/code&gt; newsgroup (in Google Groups)&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085107&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=023d45129c2e79e103635a8df49811c6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Bo&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085107&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T05:38:07&quot;&gt;2011-02-07T05:38:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I don't care about microsummaries or smart bookmarks, but Firefox without tags would totally break how I interact with my several hundred bookmarks.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085108&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jhatax.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3af6377feb65f03d2455cdf9c70ca538&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jhatax.blogspot.com/&quot;&gt;Manoj Mehta&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085108&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T06:20:40&quot;&gt;2011-02-07T06:20:40&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Agree with you 100% of the way.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085109&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=bfba18494ff430d4694380f97a5106a3&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Anon&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085109&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T06:24:22&quot;&gt;2011-02-07T06:24:22&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Interesting read, but it hurts, after spending a lot of time searching for barely-existent documentation, to configure a great system with smart bookmarks keeping track of my tags and bookmark organizations. I'd really miss the feature and I don't think a bookmark can provide the same level of functionality.
On the other hand, I loathe live bookmarks and I use google reader and minor desktop applets to fetch site updates.&lt;/p&gt;

&lt;p&gt;Notice that what I consider useful and productive you consider a pay phone. Firefox's strength over its competition is the customization power (because no matter how you put it, Chrome's extensions are laughable in comparison). I think that, out of the 4 features, only the first is actually useless to most users.&lt;/p&gt;

&lt;p&gt;Smart bookmarks were neglected after getting out of the 3.0 heat, while pursuit for other things such as Ubiquity, Jetpacks and Panorama took place.
I hope Panorama doesn't get abandoned this fast, as I really see myself using it (although can't upgrade until imglikeopera does).&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085112&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085112&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T07:37:13&quot;&gt;2011-02-07T07:37:13&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Would Smart Bookmarks still be useful to you, if they were enabled with an add-on? I suspect it could be done, which might be win-win for core Firefox devs vs people interested in carrying the feature foward in an add-on&lt;/p&gt;

&lt;p&gt;I never knew what Smart Bookmarks were until this month, and I've been using Firefox since the beginning. So, yeah, they look pay-phone-y to me.&lt;/p&gt;

&lt;p&gt;Nonetheless, it might be interesting to see what kind of system you have working with them. They seem like they could be pretty powerful&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085119&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=5f53c0fae4a569280d0987a6fd5a699e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;blufive&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085119&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T08:35:39&quot;&gt;2011-02-07T08:35:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;(pardon me for butting in)&lt;/p&gt;

&lt;p&gt;yes, an add-on would work for me.  &lt;/p&gt;

&lt;p&gt;My system is pretty much that suggested by David Regev below: use the smart bookmarks to create a &quot;folder&quot; system based on tags.  This is way easier to maintain/update than manually sorted folders, and allows bookmarks to exist in multiple locations.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085126&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=bfba18494ff430d4694380f97a5106a3&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Anon&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085126&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T12:07:12&quot;&gt;2011-02-07T12:07:12&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;If the full capabilities of both tagging and places queries are available, then yes, as long as it's not one of those &quot;can't update firefox until it updates 2 months later&quot; extensions...But from the sounds of it the whole backend is going to be removed or simplified. Will it be possible for an addon to get there?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085111&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=764e805358f07949f88ea94d87fc6a46&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;David Regev&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085111&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T07:09:59&quot;&gt;2011-02-07T07:09:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I’ll add some input from my own experience with bookmark tagging. I have bookmarks going back over a decade. Until about a year ago, they were a huge mess and nearly impossible to deal with. The big problem was that the folders were too restrictive and, so, the placement of many bookmarks was pretty arbitrary. So, I finally decided to go through every bookmark, delete all the useless stuff (the vast majority of bookmarks), and attach one or more tag to each bookmark. It took about a week. The result: the organization system now makes sense, and I have few enough bookmarks that I actually use them quite a lot. The problem is that the interface is designed for folders and not tags. I cannot drill down tags like I can with folders. Tags don’t appear in the bookmarks menu like folders. I had to create smart bookmarks to work around this limitation. Even with these artificial limitations in the interface, tags are &lt;em&gt;much&lt;/em&gt; more humane than folders.&lt;/p&gt;

&lt;p&gt;My suggestion: deprecate folders altogether. In a future version of Firefox, migrate everyone to tags by converting them to tags. Moreover, fix the interface so as to make sense for tags instead of folders. Do that, and you’ll find that people start using tags. I agree that it’s kind of overkill to have both folders and tags. But the solution is to get rid of the archaic system of forced hierarchy (folders) and give tags the chance they deserve (by greatly improving the tagging interface).&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085116&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085116&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T07:40:18&quot;&gt;2011-02-07T07:40:18&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;FWIW, if I used bookmarks in Firefox, this is exactly what I'd do. I really prefer using tags over folders, for escaping restrictions of hierarchy and for organizing on the fly&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085121&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=7006484d9601d2ccbfcb0c110bd23668&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Asa Dotzler&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085121&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T09:01:44&quot;&gt;2011-02-07T09:01:44&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Folders currently have the advantage of &quot;open all in tabs&quot; which is kind of nice for batches of sites you commonly access at the same time. I'm not saying that the same feature couldn't be implemented for groups of tags, but currently folders have it and tags don't.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085136&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=764e805358f07949f88ea94d87fc6a46&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;David Regev&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085136&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T18:55:10&quot;&gt;2011-02-07T18:55:10&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Asa: That’s actually already possible for tags (such as when exposed as smart bookmarks). The command doesn’t appear in the submenu, like it does for folders, but it’s there in the context menu. You can also middle-click on them instead.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085122&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0d86a43816e04d32defb7fad91c1c33e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Matěj Cepl&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085122&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T09:22:12&quot;&gt;2011-02-07T09:22:12&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;You don't need to look through tags ... just throwing bunch of them in the AwesomeBar will put the appropriate links to the top of the list. From all mentioned payphones tags would really hurt me, and I am on the fence with LiveBookmarks ... I don't use them (rss2email works better for me for reading feeds), but I distrust The Cloud and I don't like the trend to save all our personal data with an advertising agency for their free use. Certainly better UI would help.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085113&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e0ad94a966cfab0b02d938e4bf9cd1c1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;Felix Pleșoianu&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085113&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T07:39:30&quot;&gt;2011-02-07T07:39:30&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&quot;I’ve been using Firefox for years and only just learned about this in the past month. The feature’s not very exposed, and it’s not obvious how to use it.&quot;&lt;/p&gt;

&lt;p&gt;That's the problem right there. It's like putting a payphone into a basement, inside a broom closet with a sign on the door labelled &quot;beware the leopard&quot; and then complaining nobody uses it.&lt;/p&gt;

&lt;p&gt;&quot;And, of course, livemarks aren’t good for much when a laptop’s closed or if Firefox isn’t running.&quot;&lt;/p&gt;

&lt;p&gt;Neither is a dedicated RSS client by that logic. I agree that live bookmarks are largely useless (too fussy about the feed format is what bothers me most about them), but you're using the wrong argument.&lt;/p&gt;

&lt;p&gt;More generally, I agree that these features are rather obscure and may not be missed by most people, but do they complicate and slow down Firefox more than, say, XUL? Seriously, Opera manages to have a proper RSS reader, mail client and lots of other features built in while being much smaller and lighter than Firefox. And it's a proprietary browser. Aren't you picking on small issues while ignoring the large ones?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085117&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085117&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T07:59:28&quot;&gt;2011-02-07T07:59:28&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&quot;It’s like putting a payphone into a basement, inside a broom closet with a sign on the door labelled “beware the leopard” and then complaining nobody uses it.&quot;&lt;/p&gt;

&lt;p&gt;That's true, and part of what bothers me. Seems like some features can get axed with usage data as the rationale, but they could be made better.&lt;/p&gt;

&lt;p&gt;But, whether any particular feature got a fair shake or not, dev priorities change.&lt;/p&gt;

&lt;p&gt;&quot;Neither is a dedicated RSS client by that logic.&quot;&lt;/p&gt;

&lt;p&gt;Actually, the argument I left out is ubiquitous computing. That is desktop to laptop to mobile to TV to car. &lt;/p&gt;

&lt;p&gt;I stopped using a dedicated RSS client around 4 years ago when my phone got capable of skimming feeds and I couldn't get to NetNewsWire on my Mac from it.&lt;/p&gt;

&lt;p&gt;&quot;More generally, I agree that these features are rather obscure and may not be missed by most people, but do they complicate and slow down Firefox more than, say, XUL?&quot;&lt;/p&gt;

&lt;p&gt;I can't really speak to that... I'm more webdev than core Firefox dev. You can read the bugs, though, to see the arguments made. Though, from what I hear, XUL isn't really such a big problem, especially not since the JS code behind the scenes enjoys the same performance boosts as JS in page content.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085118&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1231dd25c2fce9325d24713406c52ebc&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Mardeg&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085118&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T08:06:49&quot;&gt;2011-02-07T08:06:49&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;It seems most of these revolve around the hassle they've become for Firefox Sync to support. Here's a thought: Sync &lt;em&gt;was&lt;/em&gt; an extension to begin with, let's move it back there after Firefox 4 is released and it fails to cope with the massive influx of people using it, instead of killing the other features in an attempt to prevent Sync dying.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085120&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=01822efaf66e4b81d6f947cba7e0613a&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;FP&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085120&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T09:00:15&quot;&gt;2011-02-07T09:00:15&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Do the developers not realise that driving away power users doesn't just lose you a few users it loses you a whole network of users since many power users maintain their friends and families PCs too? It also loses you popular support from tech blogs and sites etc.&lt;/p&gt;

&lt;p&gt;Anyway, I hope they don't remove tagging and livemarks that would be painful, like Mardeg, I'd much rather lose sync than these features.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085123&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://npinp.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=81ba937c565c72bdb6c9b80105f6b385&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://npinp.com&quot;&gt;Nathaniel Tucker&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085123&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T10:02:06&quot;&gt;2011-02-07T10:02:06&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Please don't remove bookmark tagging! I like being able to find webpages using the awesomebar, and I couldn't do that without control over labeling. I don't see what's so horrible about the UI - you just enter what you want.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085124&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.michaellefevre.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=a8800fcd6ba0714d8e0f6d07ac7e260f&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.michaellefevre.com/&quot;&gt;Michael Lefevre&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085124&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T10:50:16&quot;&gt;2011-02-07T10:50:16&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I can't say I make a lot of use of any of those features. I do use tags, but I could do the same thing with bookmark folders.&lt;/p&gt;

&lt;p&gt;The trouble is that Firefox is still introducing features which aren't very polished or discoverable. If Firefox 6 is going to drop support for, say, sync or panorama, then it has been a bit of a waste of core development time implementing those features, hasn't it?  Is there a way of getting development to focus on improving the existing stuff, rather than focusing on new features?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085125&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://xhva.net&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8881df9aa39a9862bdfd29c6f2cca338&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://xhva.net&quot;&gt;Andy&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085125&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T11:38:11&quot;&gt;2011-02-07T11:38:11&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Mardeg has a point. Throughout FF4's development it's felt like any new team or project can make drastic changes to the browser with seemingly flimsy justification (see the UI team's constant fiddling with a stable interface to save miniscule amounts of vertical space and emulate Chrome's aesthetic). Sync is a nice feature but it needs time to bake just like everything else; we shouldn't rip out other features that have existed for years to prop up something unproven.&lt;/p&gt;

&lt;p&gt;In some ways I think the Test Pilot program has been dangerous; the statistics gathered tend to result in design decisions that favour the tyranny of the majority while breaking long-term usage patterns employed by smaller groups (&quot;power users&quot; as they're affectionately called, also known as Firefox's Chief Proponents). This popularist-majority mindset can be seen in the design decisions regarding the status bar, tab positioning, the hiding of the bookmark bar on first launch after upgrade and the new awful addons manager.&lt;/p&gt;

&lt;p&gt;It's also lame to see it argued on the bugtracker that tags should be stored in the cloud but that we shouldn't use the new feature that does exactly that to put them there. Who knows which direction Sync will go a year after release? Maybe we'll gain the ability to set bookmarks public and browse them on a website like Delicious... surely we'll need the tag info then.&lt;/p&gt;

&lt;p&gt;One last thing: this may be a little snarky, but if a major argument for removing tagging support is an underexposed and unpolished UI then Sync is doomed. A menu entry that shows a dialog with no description of the feature isn't the best way to sell it. I still don't have a clue whether it's working or not.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085127&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://xhva.net&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8881df9aa39a9862bdfd29c6f2cca338&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://xhva.net&quot;&gt;Andy&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085127&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T12:16:15&quot;&gt;2011-02-07T12:16:15&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Mardeg has a point. Throughout FF4's development it's felt like any new team or project can make drastic changes to the browser with seemingly flimsy justification (see the UI team's constant fiddling with a stable interface to save miniscule amounts of vertical space and emulate Chrome's aesthetic). Sync is a nice feature but it needs time to bake just like everything else; we shouldn't rip out other features that have existed for years to prop up something unproven.&lt;/p&gt;

&lt;p&gt;In some ways I think the Test Pilot program has been dangerous; the statistics gathered tend to result in design decisions that favour the tyranny of the majority while breaking long-term usage patterns employed by smaller groups (&quot;power users&quot; as they're affectionately called, also known as Firefox's Chief Proponents). This popularist-majority mindset can be seen in the design decisions regarding the status bar, tab positioning, the hiding of the bookmark bar on first launch after upgrade and the new awful addons manager.&lt;/p&gt;

&lt;p&gt;It's also lame to see it argued on the bugtracker that tags should be stored in the cloud but that we shouldn't use the new feature that does exactly that to put them there. Who knows which direction Sync will go in a year after release? Maybe we'll gain the ability to set bookmarks public and browse them on a website like Delicious... surely we'll need the tag info then.&lt;/p&gt;

&lt;p&gt;One last thing: this may be a little snarky, but if a major argument for removing tagging support is an underexposed and unpolished UI then Sync is doomed. A menu entry that shows a dialog with no description of the feature isn't the best way to sell it. I still don't have a clue whether it's working or not.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085128&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0f0f4e5c8446a0f6fd5bd888760eee02&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Benedikt P.&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085128&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T12:55:49&quot;&gt;2011-02-07T12:55:49&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;My bookmarks are organized in a rather flat manner with little to no sub-folders.Being able to tag a bookmark and search and save the searchs (Smartbookmarks?) are much more useful to me. (I have hundreds of bookmarks not thousands, though)&lt;/p&gt;

&lt;p&gt;Microsummaries sound useful in theory but I think I never found one in the wild.&lt;/p&gt;

&lt;p&gt;Livebookmarks are unnecessary for me. Firefox is just not a real feed reader.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085130&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.rushyo.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=87cac0a523e2334c0dbf220b5ffd1bc1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.rushyo.com&quot;&gt;Danny Moules&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085130&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T13:01:25&quot;&gt;2011-02-07T13:01:25&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Are Livemarks really a niche thing? I started using them after seeing a large number of users using them and wondering what I was missing. Now my entire bookmarks toolbar is full of them.&lt;/p&gt;

&lt;p&gt;We don't even have metrics to back this up, do we? I would have never anticipated that this would be a feature worth dropping.&lt;/p&gt;

&lt;p&gt;Anyway, I've replied to the bug. I wonder what we'll get from test pilot if it goes that way..&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085131&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ironymark.diwan.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=6e59b9b65ca5d86670c053d1da92d964&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ironymark.diwan.com&quot;&gt;Adil Allawi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085131&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T13:59:29&quot;&gt;2011-02-07T13:59:29&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&quot;The payphone in the basement&quot; is a good idea for (to use a horrible phrase from Yahoo) sunsetting little-used browser features into add-ons. But the problems happen when new browser versions come out that are incompatible with these add-ons and no one is around to update them. I will have this issue moving to Thunderbird 3.3 and a number of add-ons that i depend on will no longer work.&lt;/p&gt;

&lt;p&gt;My suggestion is to make sure such features are reimplemented in new browser APIs like JetPack (and update JetPack to support the hooks needed by these features). Then make sure the JetPack API is stable enough not to break in future browsers.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085132&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=ff6fac10b30d4f19bc083164c4c9b328&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Gruber&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085132&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T14:14:35&quot;&gt;2011-02-07T14:14:35&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Tags are the best feature introduced that was introduced with Fx 3.0! I don't need the other stuff, I don't need folders but tags (together with the Awesome-Bar) are one of the two reasons I love Firefox (the other is the extensibility through add-ons, and I am thinking about a particular that ATM can't be ported to other browsers).&lt;/p&gt;

&lt;p&gt;BTW, I always thought pay phones were heavily subsidised.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085133&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://mysite.verizon.net/alanjstr/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=84246c75f9a33c18e9130f5bffe10eef&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://mysite.verizon.net/alanjstr/&quot;&gt;alanjstr&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085133&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T14:21:22&quot;&gt;2011-02-07T14:21:22&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Of those features, I see more potential for Smart Bookmarks/Tagging than I do for the other two.&lt;/p&gt;

&lt;p&gt;If a website has a microsummary, I have no idea.  I don't know where it would show up in my web browser.  I had to Google to find The MozillaWiki describing them as &quot;Microsummaries are better for labeling bookmarks than static page titles, because they give users quicker access to the most interesting information behind a bookmark, and they give web sites a way to notify users of updates and entice them to revisit the site.&quot;  If you have your bookmarks open constantly, and are monitoring something, then sure that would be helpful.  But usually if we want real-time monitoring of something, there are other methods that we use.  We have moved to increasing screen real-estate, making tabs into just icons and hiding the bookmark toolbar.  &lt;/p&gt;

&lt;p&gt;I never got the hang of LiveMarks in the browser.  That definitely has a lot to do with UI.  But trying to turn a web browser into a full-fledged feed-reader, as part of the core technology, isn't the right direction.  There are addons, websites, and stand-alone readers that do a much better job.  The more RSS feeds you subscribe to, it quickly overwhelms the basics.  Personally, I do like having the little orange button in my URL bar to subscribe (I have it auto-routing to Google Reader), but that's mostly because it provides a fast way to subscribe instead of me hunting for a link.&lt;/p&gt;

&lt;p&gt;Lastly, Smart Bookmarks and Tags have a lot of potential, especially as the volume of bookmarks grows.  I don't use either of them, but I wouldn't want to see them gone.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085135&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=ff6fac10b30d4f19bc083164c4c9b328&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Gruber&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085135&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T14:35:08&quot;&gt;2011-02-07T14:35:08&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;One more thing, I wonder if these arguments against these &quot;pay phones&quot; could/will also be made for Panorama and Tab Groups, I personally wouldn't shed a tear for it.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085138&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=5406d41679a6d770aac64a86a1d1c815&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;augustm&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085138&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-07T19:16:39&quot;&gt;2011-02-07T19:16:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Firstly SQL has been broken in Firefox 3.6.x and 4.0b since the summer.
It makes searching on tags in bookmarks almost impossible. 
So tags are mostly broken. Any data on hot areas is unusable- the interface
does not work.&lt;/p&gt;

&lt;p&gt;Sync has deleted, duplicated, re-ordered my bookmarks multiple times.
Disaster! Worse than anything else, multiple data-loss bugs, requires
restore from backup (Mac's have time machine)&lt;/p&gt;

&lt;p&gt;There is not document that says what Sync does. How does it manage
the use of multiple machines? I am on a campus where I read, mark and
delete in five departments. How do I manage asynchronous marking and deleting?
I often turn on/off machines quickly. What is my mental model of the final state?&lt;/p&gt;

&lt;p&gt;I should have stayed with rync!&lt;/p&gt;

&lt;p&gt;Bookmarks needs a project leader&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085139&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0aca37f58793f486f52b9b211bca0c42&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;James Napolitano&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085139&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-08T08:49:27&quot;&gt;2011-02-08T08:49:27&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;About the idea of moving features into addons: dbaron had a nice post a while back about the drawbacks of this approach: http://dbaron.org/log/2006-01#e20060122a
The situation with addons.mozilla.org may have changed since then, but I think a lot of what he says still holds.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085140&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=84db05f42e637a27a2a2922d5850c731&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Mook&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085140&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-08T08:54:22&quot;&gt;2011-02-08T08:54:22&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Seems like for all of these features, the problem is that the UI wasn't really that good.  It's somewhat difficult to create microsummaries or smart bookmarks (as a user, without the web site supporting it).  Tags are easy to create, but are presented everywhere as a single list, which makes large numbers of them infeasible (rather than something closer to a tag cloud).  Livemarks... well, they basically have no useful way of showing the summary, just... half a headline :p  Only if it actually opened the feed preview page rather than a useless dropdown...&lt;/p&gt;

&lt;p&gt;As I understand it, it's mostly things getting cut to make the release, then... well, just getting dropped on the floor once the release is out, really.  There's never a focus on polishing things.  But that's pretty much true of all the projects I've looked close enough at, sadly.&lt;/p&gt;

&lt;p&gt;I wonder which ones would be next?  Devtools, with the backend sticking around for Firebug? More changes to the URL display on hovering links? Firefox menu-button?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085141&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=26d56d0c6c57d3b7fdd01a15917ecfde&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;csb&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085141&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-02-08T20:09:45&quot;&gt;2011-02-08T20:09:45&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Bookmark tagging is one of the best features of Firefox.  If anything the problem is that as currently implemented it has not enabled more great addons like tagsieve [1].&lt;/p&gt;

&lt;p&gt;[1] https://addons.mozilla.org/en-US/firefox/addon/tagsieve/&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085142&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://stuart.woodward.jp&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=5986cb06ad9e14631dcb08d4a3966a70&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://stuart.woodward.jp&quot;&gt;Stuart Woodward&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085142&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-05-18T14:45:46&quot;&gt;2011-05-18T14:45:46&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Several years ago, my wife laughed when I accidentally bought a prepaid payphone card instead of train card. It sat in my wallet for years until the day my cellphone battery died and all I had was my WIFI iPad. I looked up her phone number in my contacts and called her from the nearest payphone though it was a struggle to find the payphone in one of the most modern building complexes here in Tokyo.&lt;/p&gt;

&lt;p&gt;Another payphone story that came to mind was shortly after the recent Earthquake. Tens, if not hundreds of thousands of people walked home. Some walking several hours. In my short walk to camp out a nearby friend's house, I saw people queuing up for payphones after their mobile phones had become unusable due to the mobile network congestion. The line to use the payphone was hundreds of people long. I'm sure that the maximum queue length at that phone in the previous 10 years was 2 people. This experience changed my mind. &lt;/p&gt;

&lt;p&gt;There are much fewer payphones than their heyday 15 years ago when we had payphones with ISDN jacks to plug in your laptop. It is difficult to find one now. Also, payphones are clunky and in Tokyo at least, very reliable. They are going to work, if nothing else works.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>What should be done about feeds in browsers?</title>
        <link href="http://decafbad.com/blog/2011/01/27/what-should-be-done-about-feeds-in-browsers"/>
        <updated>2011-01-27T06:11:00+00:00</updated>
        <id>http://decafbad.com/blog/2011/01/27/what-should-be-done-about-feeds-in-browsers</id>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;Browsers need help doing a better job using feeds for discovery, aggregation, and publishing on the web to keep us from swimming into self-destructing lobster traps.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Last week, I wrote &lt;a href=&quot;http://decafbad.com/blog/tag/bug578967&quot;&gt;some blog posts&lt;/a&gt; about &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=578967&quot;&gt;Bug 578967&lt;/a&gt;, wherein the feed auto-discovery icon in &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/beta/&quot;&gt;Firefox 4&lt;/a&gt; has been moved off the URL bar and hidden by default. I support that decision of &lt;a href=&quot;http://planet.firefox.com/ux/&quot;&gt;the UX team&lt;/a&gt;, because &lt;a href=&quot;https://heatmap.mozillalabs.com/&quot;&gt;that feed button is a slacker&lt;/a&gt;. And even if it does get used, &lt;a href=&quot;http://decafbad.com/blog/2011/01/15/what-happened-to-feed-autodiscovery-in-firefox-4#serving&quot;&gt;I'm not a fan of what it does anyway&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But, I've got lots more rattling around in my head about this stuff.&lt;/p&gt;

&lt;h3&gt;What's the point of feeds?&lt;/h3&gt;

&lt;p&gt;Feeds—that's RSS and Atom and maybe even JSON—let robots pull lots of stuff from a bunch of places and pile it all together in one spot for your perusal, analysis, and remixing pleasure. Feed readers and news aggregators do the surfing for you, so you don't have to.&lt;/p&gt;

&lt;p&gt;But, Twitter and Facebook and others have managed to make &lt;em&gt;the people themselves&lt;/em&gt; all gather in one spot. So, to see what those people are saying and doing, you just have to go &lt;em&gt;there&lt;/em&gt;—kind of like what feeds promised, right? Only, you go &lt;em&gt;there&lt;/em&gt; rather than all that stuff coming &lt;em&gt;here&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The problem is, even if the logo says it &lt;a href=&quot;http://www.flickr.com/photos/dunstan/524137648/&quot;&gt;loves you&lt;/a&gt;, the people who made it say that &lt;a href=&quot;http://www.flickr.com/help/forum/en-us/107408/&quot;&gt;won't always stay in charge&lt;/a&gt;. And, someday, when whomever's left rides off into the &lt;a href=&quot;http://techcrunch.com/2010/12/16/is-yahoo-shutting-down-del-icio-us/&quot;&gt;sunset&lt;/a&gt;, you'll learn how much &lt;a href=&quot;http://archiveteam.org/index.php?title=Why_Back_Up%3F&quot;&gt;they didn't care about you&lt;/a&gt; in the end.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/herzogbr/2261662706/&quot; title=&quot;Flickr Loves You by herzogbr, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2003/2261662706_db086ea4bb_m.jpg&quot; width=&quot;&quot; height=&quot;64&quot; alt=&quot;Flickr Loves You&quot; /&gt;&lt;/a&gt; &lt;strong style=&quot;font-size: 200%; padding: 0.5em;&quot;&gt;vs&lt;/strong&gt; &lt;a href=&quot;http://www.flickr.com/help/forum/en-us/107408/&quot;&gt;&lt;img src=&quot;http://l.yimg.com/g/images/en-us/flickr-yahoo-logo.png&quot; height=&quot;50&quot; style=&quot;padding: 7px; background: #fff&quot;&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;For some people and some places, that's no big tragedy. It's just a party; you go home when it's over. You made memories, you hope to find some of those people again elsewhere. &lt;a href=&quot;http://blog.pownce.com/2008/12/01/goodbye-pownce-hello-six-apart/&quot;&gt;Pownce croaked&lt;/a&gt;, and &lt;a href=&quot;http://www.wired.com/epicenter/2010/09/six-apart-shuts-down-vox/&quot;&gt;so did Vox&lt;/a&gt;, but who cares? There's always Twitter next door for the afterparty.&lt;/p&gt;

&lt;p&gt;But, what if a world you lived in &lt;a href=&quot;http://ascii.textfiles.com/archives/2444&quot;&gt;evaporated while you were on vacation elsewhere for the holidays&lt;/a&gt;? I guess you could say that was just a game and, again, who cares?&lt;/p&gt;

&lt;p&gt;What if &lt;a href=&quot;http://www.flickr.com/&quot;&gt;Flickr&lt;/a&gt; went away just like that? People are not only partying there—they're leaving their visual memories at the coat check. Things are a little more real there, by some definitions thereof.&lt;/p&gt;

&lt;p&gt;What if you never swam into that &lt;a href=&quot;http://ascii.textfiles.com/archives/2848&quot;&gt;lobster trap&lt;/a&gt;, though? What if your words and images and creations were borrowed and copied, but never wholly kept in someone else's bucket? What if &lt;a href=&quot;http://www.flickr.com/&quot;&gt;Flickr&lt;/a&gt; were just like &lt;a href=&quot;http://google.com&quot;&gt;Google Search&lt;/a&gt;? That is, a collector and an index—but never the host—of photos and conversations?&lt;/p&gt;

&lt;p&gt;Feeds can help make that happen, but not by themselves.&lt;/p&gt;

&lt;h3&gt;Do feeds belong in the browser?&lt;/h3&gt;

&lt;p&gt;Well, yeah. Would sites like Twitter and Facebook have been as successful if feeds worked better in the browser? I think so. But, by working better, I don't just mean improvements to that funky blue thing that showed up in the location bar every now and then. No, I mean all of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Discovery&lt;/strong&gt; — help me find and follow interesting people and things&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aggregation&lt;/strong&gt; — give me one spot where what I find and follow is delivered to me&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publishing&lt;/strong&gt; — enable me to post things where people (and their agents) can find and follow&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;To me, this is where Twitter and Facebook are totally nailing it. But, much of this can happen in the browser, and I think more of it should. Projects like &lt;a href=&quot;http://www.rockmelt.com/&quot;&gt;RockMelt&lt;/a&gt; and &lt;a href=&quot;http://www.flock.com/&quot;&gt;Flock&lt;/a&gt; have seemed promising to me in this context, but have yet to really thrill me. I don't think they go far enough.&lt;/p&gt;

&lt;p&gt;There is a point where the rubber (client) meets the road (server)—but that point can live &lt;a href=&quot;http://scripting.com/stories/2011/01/11/howToShareABucketOnS3.html&quot;&gt;so much farther down the stack than it does now&lt;/a&gt;. Mind you, I don't want a revival of &lt;a href=&quot;http://www.zisman.ca/netgold/&quot;&gt;Netscape Gold&lt;/a&gt; as such—but recall that &lt;a href=&quot;http://news.bbc.co.uk/2/hi/technology/4132752.stm&quot;&gt;&quot;the first browser was an editor, it was a writer as well as a reader&quot;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We need some services and hosts out there as rendezvous points for our browsers and agents, but we really don't need any of those services to collapse into &lt;a href=&quot;http://buddycloud.com/cms/content/we-are-aol-days-social-networking&quot;&gt;the next all-encompassing AOL-style singularity&lt;/a&gt;. There's money to be made there, but most of us are the product.&lt;/p&gt;

&lt;h3&gt;Whose job is it anyway?&lt;/h3&gt;

&lt;p&gt;I'd like to see my employer, Mozilla, do more with feeds in the browser—and I suspect we will. &lt;a href=&quot;http://mozillalabs.com/blog/2010/03/online-identity-concept-series/&quot;&gt;Mozilla Labs has had some interesting Concept Series topics&lt;/a&gt;, and I look forward to seeing some of those things get pursued further. If I can carve out the time, I wouldn't mind helping.&lt;/p&gt;

&lt;p&gt;Something I find interesting about feed auto-discovery—the thing that started this latest round of buzz—is that it didn't originate with browser makers. &lt;a href=&quot;http://diveintomark.org/archives/2002/05/30/rss_autodiscovery&quot;&gt;RSS auto-discovery&lt;/a&gt; was itself discovered &lt;a href=&quot;http://decafbad.com/blog/2002/05/31/oooago&quot;&gt;by bloggers&lt;/a&gt;, way back in 2002. It wasn't until we sussed out the details of that &lt;a href=&quot;http://www.w3.org/TR/REC-html40/types.html#type-links&quot;&gt;HTML link tag&lt;/a&gt; and shoved it into our pages that browsers like Firefox started looking for it.&lt;/p&gt;

&lt;p&gt;Hell, even though &lt;a href=&quot;http://en.wikipedia.org/wiki/Rss#History&quot;&gt;RSS started with Netscape&lt;/a&gt;, it took &lt;a href=&quot;http://scripting.com/davenet/2000/09/02/whatToDoAboutRss.html&quot;&gt;Dave Winer and UserLand and friends running with it&lt;/a&gt; to keep it alive and kicking. Now, Dave's &lt;a href=&quot;http://scripting.com/stories/2011/01/11/krocCamenProvesRssIsVeryMu.html&quot;&gt;suggested forking an open source browser&lt;/a&gt; to show Mozilla how it's done. I support the sentiment, but there are easier ways to go about this.&lt;/p&gt;

&lt;h3&gt;Making it your job&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://camendesign.com/rss_a_reply&quot;&gt;Christopher Blizzard&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;We created add-ons with the original Firefox as a way to be able to say “no” in a constructive manner. If you want something that you think is important to you, you can make an add-on.&lt;/blockquote&gt;


&lt;p&gt;That could be taken as a cop-out, but it's not. With the efforts behind &lt;a href=&quot;https://jetpack.mozillalabs.com/&quot;&gt;Jetpack&lt;/a&gt;—now just &lt;em&gt;the&lt;/em&gt; &lt;a href=&quot;http://blog.mozilla.com/addons/2010/12/09/announcing-add-on-sdk-1-0b1/&quot;&gt;Add-on SDK&lt;/a&gt;—building add-ons for Firefox is being made easier. Rather than dealing with a morass of XUL and obscure APIs that I know has scared me personally away all these years, you can now do most everything you'd like though &lt;a href=&quot;https://jetpack.mozillalabs.com/sdk/1.0b1/docs/#package/addon-kit&quot;&gt;much-simplified JavaScript APIs&lt;/a&gt; and HTML/CSS.&lt;/p&gt;

&lt;p&gt;In other words, if you are a web developer—albeit a fairly advanced one—you can make an add-on for Firefox. Hopefully, as the Add-on SDK advances, the bar to participation will continue to drop.&lt;/p&gt;

&lt;h3&gt;To be continued&lt;/h3&gt;

&lt;p&gt;I'm running out of steam and it's time for bed, so I think I'll just trail off for now. I do have a bit more in me, though. The next thing is about taking my own advice in that last section and making some of this &lt;em&gt;my&lt;/em&gt; job to fix.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086137&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=52674e2ce2d7671878b26ed534b0c662&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Majken &quot;Lucy&quot; Connor&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086137&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T06:38:04&quot;&gt;2011-01-27T06:38:04&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yay!&lt;/p&gt;

&lt;p&gt;Feeds are soo soo soooo great, but not as live bookmarks. Google Reader is the place to be in terms of functionality, but there's no reason I have to put everything through google.&lt;/p&gt;

&lt;p&gt;When I find a site I like, why should I have to go to it to check for new content? A feed reader brings it to &lt;em&gt;me&lt;/em&gt; AND it remembers where I was. I've been trying to get my kids hooked on it, though they seem to forget about it.&lt;/p&gt;

&lt;p&gt;Speaking of the kids, their teachers are getting all technical and they post the homework online, but I've been pulling my hair out for 2 years trying to get them to do it in a way that enables feeds. Several nights it happened that they didn't write down what they had and then we had to remember to check periodically because the homework wasn't updated right away.  &lt;/p&gt;

&lt;p&gt;Right now they're sent home with books with it all written down and I'm supposed to sign that I saw it, but who remembers to look at a book all the time? It's such a complicated process - kids have to write it down in the first place, then one of us has to remember to show it to me. FEEDS!!! No one has to remember, it just shows up where I'm already looking!&lt;/p&gt;

&lt;p&gt;So glad you're on board.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086159&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086159&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T20:54:22&quot;&gt;2011-01-27T20:54:22&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Not sure if the homework lists online are behind a login or not, but if it's in HTML we can hack a feed out of it :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086141&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=adfd6aa4efe2aa64f5e091abf07f2766&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Bee&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086141&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T08:13:46&quot;&gt;2011-01-27T08:13:46&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&quot;Discovery — help me find and follow interesting people and things
Aggregation — give me one spot where what I find and follow is delivered to me
Publishing — enable me to post things where people (and their agents) can find and follow&quot;
.. Erm google reader?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086148&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086148&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T15:02:20&quot;&gt;2011-01-27T15:02:20&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yup. I use Google Reader every day. Google owns it, though. It's not Facebook or Twitter, but it's not mine.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086152&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://beesbuzz.biz/&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/plaidfluff.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://beesbuzz.biz/&quot;&gt;fluffy&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086152&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T17:01:25&quot;&gt;2011-01-27T17:01:25&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Whenever I'm going through my occasional &quot;Google scares me&quot; phases I go back to FeedOnFeeds. It has a few rough edges, but it has the nice advantage that it's software you install on your own server somewhere, and it works pretty much just like Google Reader in terms of aggregation.  It also has some rudimentary publishing stuff, although IIRC it's in the form of a public RSS feed that other people subscribe to.  Which actually isn't a bad model, really.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086153&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086153&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T17:34:03&quot;&gt;2011-01-27T17:34:03&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I think I've used &lt;a href=&quot;http://feedonfeeds.com/&quot; rel=&quot;nofollow&quot;&gt;FeedOnFeeds&lt;/a&gt; before, though it looks like it's not moved in awhile. There's also &lt;a href=&quot;http://tt-rss.org/redmine/&quot; rel=&quot;nofollow&quot;&gt;Tiny Tiny RSS&lt;/a&gt;, which looks a little more kept-up.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086145&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ciarang.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=18910207650685d4592d9a6a71528180&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ciarang.com/&quot;&gt;CiaranG&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086145&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T10:45:08&quot;&gt;2011-01-27T10:45:08&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Do feeds belong in the browser? Well, to the extent that while looking at a web page, there may be related feeds that the browser can auto-discover. Do I want to read them in the browser? No.&lt;/p&gt;

&lt;p&gt;All I ever wanted was for the feed button in Mozilla product A, Firefox, to be able to add a subscription to that feed in Mozilla product B, Thunderbird. You'd think that would be a simple and obvious thing that would just work, but even by hooking the two together with a selection of Heath Robinson-style scripts, it's still never been possible to get them to play nicely.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086149&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086149&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T15:06:57&quot;&gt;2011-01-27T15:06:57&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;That's a good point - a lot of this falls under the bailiwick of Mozilla Messaging, who work on Thunderbird. Personally, I never liked feeds in an email client, though.&lt;/p&gt;

&lt;p&gt;But, that reminds me they've got this thing called &lt;a href=&quot;http://mozillalabs.com/raindrop/&quot; rel=&quot;nofollow&quot;&gt;Raindrop&lt;/a&gt; that I haven't looked at in awhile. It might be interesting.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086147&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://home.kairo.at/blog/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=59d914ad47e5c3fcd4c89668adcd43a2&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://home.kairo.at/blog/&quot;&gt;Robert Kaiser&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086147&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T14:42:53&quot;&gt;2011-01-27T14:42:53&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Fun that you say that XUL scared you away from doing add-ons, as doing everything that I think should be markup in JS scares me away from doing restartless add-ons or using the new SDK. I guess there's different people thinking differently. ;-)&lt;/p&gt;

&lt;p&gt;For the actual topic, I think you're dead-on. I have subscribed to feeds from twitter, statusnet and identica, but as there's no interface to write messages from there, I just don't post anything there (and I intentionally don't have accounts on monolithic services like Facebook or twitter).&lt;/p&gt;

&lt;p&gt;We need to get a better integration for pulling together info and communication in the browser. My &quot;RMD&quot; concept - http://wiki.kairo.at/wiki/RMD - could be one possible basis, but it might be overdoing it, given that I very much come from traditional messaging...&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086171&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086171&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-28T18:32:07&quot;&gt;2011-01-28T18:32:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yeah, XUL has been one of those things on my to-research list for years and years, but I've never really dove in. Then, Jetpack comes along, and at least the entry point is similar to what I've been doing for the last decade or so.&lt;/p&gt;

&lt;p&gt;But even that is sneaky, because I have access now to those &quot;obscure Mozilla APIs&quot; and I'm finding myself learning them now anyway since Jetpack got me in the door. :)&lt;/p&gt;

&lt;p&gt;Your RMD concept is interesting, though. Might be more to the point than the piggy-backing I'm doing on Live Bookmarks. I've also been wondering how things like pubsubhubub might feed into things like this&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086155&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://vocal.ly&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8b71ac29d4c8fbc68955337e5143d549&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://vocal.ly&quot;&gt;@sull&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086155&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T19:50:36&quot;&gt;2011-01-27T19:50:36&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Question.  Whats your opinion on FF (and other browsers) handling of the direct feed url?
I've long wanted browsers to back off from forcing their own baked-in handling (stylesheets, functionality etc).
I've just wanted the simple alert dialog (now standardized for all alerts like geolocation, passwords etc) to appear when necessary before the browser takes over (Like you include with Fireriver auto-discovery).&lt;/p&gt;

&lt;p&gt;The obvious example is when a feed specifies its own XSL stylesheet but FF ignores this instruction and the sniffer only cares about the presence of the &amp;lt;rss or &amp;lt;feed element before treating this &amp;#039;document&amp;#039; differently than any other XML document.  This can be overcome with some hacks but that is a moot point.&lt;/p&gt;

&lt;p&gt;Ideally, the browser will adhere to the content publisher&amp;#039;s (or feed generator&amp;#039;s) instructions on how to handle the presentation of the data.  That plus XSLT is a W3C standard.&lt;/p&gt;

&lt;p&gt;Definitely interested in your thoughts on this angle of the &amp;quot;feeds in browser&amp;quot; discussion.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Sull&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086158&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086158&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-27T20:52:52&quot;&gt;2011-01-27T20:52:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://decafbad.com/blog/2006/11/02/firefox-20-breaks-client-side-xsl-for-rss-and-atom-feeds&quot; rel=&quot;nofollow&quot;&gt;I'm not a fan of the built-in stylesheet for feeds&lt;/a&gt;. That change actually cost me a bunch of hours at work back then, trying to figure out why my XSL stopped working. &lt;/p&gt;

&lt;p&gt;IMO, that broke something I was using, but didn't go far enough to make it worth breaking. And, it's not really gone much farther since then.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086161&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://vocal.ly&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8b71ac29d4c8fbc68955337e5143d549&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://vocal.ly&quot;&gt;@sull&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086161&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-28T03:23:25&quot;&gt;2011-01-28T03:23:25&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;thanks for pointing out your post from yesteryear.
the issue needs some new noise.
FF4 is unchanged.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086163&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=181ae3c6e4a87c35bfbd987c5838a135&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;skierpage&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086163&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-28T11:09:07&quot;&gt;2011-01-28T11:09:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&quot;We need some services and hosts out there as rendezvous points for our browsers and agents,&quot;&lt;/p&gt;

&lt;p&gt;Why?  I can e-mail directly to another user at a computer; BitTorrent transfers file chunks directly to other computers.  So why can't my computer transfer my pictures, status updates, favorite links, snarky comments, etc. DIRECTLY to the computers of lists of people (misnamed as &quot;friends&quot; by Facebook)?&lt;/p&gt;

&lt;p&gt;The correct response to the dangers of centralization is running your own server.  That needs to become the norm rather than some scary IT project that only geeks ever attempt!  Your &quot;server&quot; could just be Firefox accepting connections from lists of people.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086168&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086168&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-28T18:04:52&quot;&gt;2011-01-28T18:04:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;No, generally, you can't e-mail directly to another user at a computer. You send a message to a server, which then sends it to their server, and eventually their mail client picks it up. There are intermediaries.&lt;/p&gt;

&lt;p&gt;BitTorrent relies on trackers (ie. rendezvous points) before you can start transferring chunks, though the distributed hash stuff helps get away from that. But, if all that were easy (including discovery), it would have taken off long, long ago.&lt;/p&gt;

&lt;p&gt;You can't go P2P for everything, at least not easily. Not every P is online at all times, so we need store-and-forward services. Some P's have multiple devices and agents, and most of those are behind firewalls and NAT. So, we need servers out there as accessible fixed points that are (mostly) always available. We can try to build P2P meshes that do the same thing, but servers are simpler.&lt;/p&gt;

&lt;p&gt;And, yeah, I do believe that running your own server is the ultimate solution. Or, at least, finding someone to run it for you who cares about keeping it up, whether through direct payment or other direct incentive (ie. they're family or friends). Otherwise, you still have the problem where what they care about doesn't match what you care about (eg. ad supported services).
&lt;/p&gt;&lt;p&gt;But, with the way the user agent picture is splitting up across devices (eg. the cloud, ambient computing), I don't think Firefox will ever be the server. Even if you connect user agents together with something like Jabber/XMPP, you still need a server out there—though at least that's pushing things in the right direction, since an XMPP server can be agnostic about the messages that go through it&lt;/p&gt;

&lt;p&gt;I do have another blog post rattling around in my head about hosting. It's too hard right now; charging money smothers a lot of use; etc.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086173&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://vocal.ly&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8b71ac29d4c8fbc68955337e5143d549&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://vocal.ly&quot;&gt;@sull&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086173&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-28T21:17:32&quot;&gt;2011-01-28T21:17:32&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Opera Unite is out there but it too leverages a centralized service as a proxy.  But it is a great experiment and give them credit for moving it forward and into their browser product.
The problem that will creep up is of course bandwidth limitations, especially on the UP.  And this is only going to get worse as providers tighten up the pipes.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>How to use feed auto-discovery in Firefox 4</title>
        <link href="http://decafbad.com/blog/2011/01/15/how-to-use-feed-auto-discovery-in-firefox-4"/>
        <updated>2011-01-15T17:20:22+00:00</updated>
        <id>http://decafbad.com/blog/2011/01/15/how-to-use-feed-auto-discovery-in-firefox-4</id>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;The feed button is not dead; it's just been sent to sing backup in Firefox 4 because it's not pulling its weight up front. This post discusses how you can still use feed auto-discovery, even restoring the icon to the toolbar with a few clicks and a drag.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There's &lt;a href=&quot;http://camendesign.com/rss_a_reply&quot;&gt;a brouhaha&lt;/a&gt; about &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=578967&quot;&gt;Bug 578967&lt;/a&gt;, wherein the feed auto-discover icon in &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/beta/&quot;&gt;the Firefox 4 Beta&lt;/a&gt; has been hidden by default. Being a feed nerd, the author of a book on the stuff, &lt;em&gt;and&lt;/em&gt; a Mozilla employee—I've got at least a few opinions.&lt;/p&gt;

&lt;p&gt;This post is one of &lt;a href=&quot;http://decafbad.com/blog/tag/bug578967&quot;&gt;several on this subject&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Feeds are too ubiquitous to need an indicator&lt;/h3&gt;

&lt;p&gt;Feeds are so successful and ubiquitous that it's simpler to assume every site has one, rather than keeping an un-lit indicator around to tell you when one's missing. So, Firefox 4 has an option in the bookmark menu to subscribe to the current page:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-002.png&quot; alt=&quot;feed-sub-00.png&quot; border=&quot;0&quot; width=&quot;600&quot; height=&quot;242&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only indicator of a missing feed is that the menu item greys out. Since feeds are everywhere, you should feel comfortable reaching for that subscription menu whenever you like. Of course, this assumes that subscribing to a page falls into the same thought process as bookmarking it—but I don't think that's an unreasonable notion.&lt;/p&gt;

&lt;p&gt;On the other hand, if you didn't know that subscribing to a page was possible—or if you worry there might be people (ie. the potential readers of your feeds) who are in that position—this change may seem problematic.&lt;/p&gt;

&lt;p&gt;I don't think that's an unreasonable notion, either. But, I'll get back to that in a future post.&lt;/p&gt;

&lt;h3&gt;The feed icon isn't dead, it's just hiding&lt;/h3&gt;

&lt;p&gt;Even with the new bookmark menu item, the feed subscription button is still available and ready to return to your toolbar in &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/beta/&quot;&gt;the Firefox 4 Beta&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, right-click somewhere in the empty space of your Firefox 4 toolbar. Try somewhere after the tabs, or somewhere between the toolbar buttons. &lt;a href=&quot;http://blog.fligtar.com/2011/01/16/how-to-customize-firefox-4s-ui/&quot;&gt;This is how it works on Windows&lt;/a&gt;, and this is what it looks like on my Mac:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-toolbarmenu.png&quot; alt=&quot;feed-sub-toolbarmenu.png&quot; border=&quot;0&quot; width=&quot;220&quot; height=&quot;161&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Click Customize, and you'll get a panel like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-01.png&quot; alt=&quot;feed-sub-01.png&quot; border=&quot;0&quot; width=&quot;500&quot; height=&quot;&quot; /&gt;

This lets you customize which buttons and controls appear on the toolbar. If you scroll down in the panel, you'll see a &quot;**Subscribe**&quot; button. Drag that from the panel to a position in the toolbar, and you'll get a result like this:

&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-02.png&quot; alt=&quot;feed-sub-02.png&quot; border=&quot;0&quot; width=&quot;500&quot; height=&quot;&quot; /&gt;

Click &quot;**Done**&quot;, and your browser should end up like this:

&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-03.png&quot; alt=&quot;feed-sub-03.png&quot; border=&quot;0&quot; width=&quot;600&quot; height=&quot;203&quot; /&gt;

I took my browser screenshots with [Dave Winer's screenshot of the old Firefox feed icon](http://scripting.com/stories/2011/01/15/mozillaPleaseKeepTheRssIco.html) for comparison. The result is different, but not radically so. It even enables and darkens when you visit a site with a feed:

&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-04.png&quot; alt=&quot;feed-sub-04.png&quot; border=&quot;0&quot; width=&quot;600&quot; height=&quot;271&quot; /&gt;

The main difference is that Dave's screenshot is the default in Firefox 3.6, whereas mine is the result of the last few screenshots of toolbar customization in Firefox 4 beta 9. That customization is easy, if you know it's possible—but the worry is, as they say: out of sight, out of mind. 

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082410&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e0ad94a966cfab0b02d938e4bf9cd1c1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;Felix Pleșoianu&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082410&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T08:00:44&quot;&gt;2011-01-16T08:00:44&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I have to take issue with some of your points, based on my personal experience. :)&lt;/p&gt;

&lt;p&gt;&quot;Feeds are so successful and ubiquitous that it’s simpler to assume every site has one,&quot;&lt;/p&gt;

&lt;p&gt;Um, no. I follow a hundred webcomics, and while the situation has gotten better recently, many of them still don't have a feed. That's not unique to webcomics, either. Lack of a newsfeed is common enough that being able to tell at first glace is very useful. Heck, many people, even website owners, are ignorant of RSS. More about that in a moment.&lt;/p&gt;

&lt;p&gt;Besides, the feed button serves a second purpose, which is to allow easy access to the feed. Just as I don't want to hunt for an &quot;RSS&quot; or &quot;XML&quot; link inside the website, I don't want to hunt for it in the browser's interface.&lt;/p&gt;

&lt;p&gt;Last but not least, many people still don't know about RSS. That big prominent orange icon is a big auto-discovery feature, not just in the technical sense, but also because a newbie could see it and click it out of curiosity, and thus learn about feeds. I had to explain what RSS is to someone whose browser didn't have one, and that proved to be quite difficult.&lt;/p&gt;

&lt;p&gt;Of course, all this talk is for nothing as the decision has already been made but, you know. Just my two cents.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082411&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.factoetum.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=d7a5934cd119837d75f98dc7e99043d8&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.factoetum.com&quot;&gt;Bruce Wayne&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082411&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:34:59&quot;&gt;2011-01-16T11:34:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Nice explaination
But by removing the rss indicator Firefox has shifted content aggregation control from an open browser to closed siloed companies.
There is no valid excuse for this.... Even the one you have eloquently made.... I'm quiet certain that with this decision Firfox will speed up it's demise...Just to let you know... we are close to launching several application platforms for consumers that use RSS as as a content transport protocol&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082413&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082413&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:38:58&quot;&gt;2011-01-16T11:38:58&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;blockquote&gt;
  &lt;p&gt;Feeds are too ubiquitous to need an indicator&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So why do i need to resort to Yahoo Pipes so often on sites i want to see updates on?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082427&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082427&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:36:00&quot;&gt;2011-01-16T21:36:00&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I don't know why you need to resort to Yahoo Pipes so often—what kinds of sites are you trying to subscribe to? I haven't touched Yahoo Pipes in years, and I have 1000 feeds in Google Reader, having amassed them over the course of 8 years or so.&lt;/p&gt;&lt;p&gt;That said, I know there are exceptions—I'm being optimistic in my explanation here. In my experience, most sites really do have feeds.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082436&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082436&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T09:14:50&quot;&gt;2011-01-17T09:14:50&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Web Comics, Web 1.0 blogs, software download listings, just to mention a few.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082438&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082438&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T16:13:18&quot;&gt;2011-01-17T16:13:18&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Those sound like exceptions to me—that, or sites whose owners have intentionally chosen not to offer feeds. Either way, the feed icon doesn't really help you there anyway.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082442&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=95ad3e9a65078288849e0ce56cf032c4&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082442&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T18:42:08&quot;&gt;2011-01-17T18:42:08&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Of course it does. Its existence leads to more people using it, which translates into pressure on webmasters to implement it.&lt;/p&gt;

&lt;p&gt;THAT is the whole damn point of why everyone is upset. Its existence may not be a strong pressure, but it is a constant one. It going away means less webmasters will bother to implement rss feeds. This is a plain fact.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082414&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082414&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:48:09&quot;&gt;2011-01-16T11:48:09&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;blockquote&gt;
  &lt;p&gt;out of sight, out of mind.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Wow, you seriously have not managed to understand that that is the ENTIRE crux of the issue?&lt;/p&gt;

&lt;p&gt;Dead or hidden does not matter, because it does the exact same thing: It means less people will realize RSS feeds exist and are useful.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082428&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082428&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T23:31:21&quot;&gt;2011-01-16T23:31:21&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;No, I understand that's the crux of the worry. But barely anyone's using that button anyway—so if the whole existence and usefulness of RSS feeds rest on that one icon, feeds are in big trouble.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082433&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082433&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T09:12:38&quot;&gt;2011-01-17T09:12:38&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;blockquote&gt;
  &lt;p&gt;barely anyone’s using that button anyway&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Complete fallacy. 3% out of the group participating in a time-limited beta test clicked on the button during that timeframe to subscribe to new feeds.&lt;/p&gt;

&lt;p&gt;Now ponder how often you discover new feeds in comparison to how often you use the reload button.&lt;/p&gt;

&lt;p&gt;It just plain has a different use model. A more realistic measurement would've been to compare how often an rss preview was opened via the button versus a link on the page itself.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082439&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082439&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T16:36:15&quot;&gt;2011-01-17T16:36:15&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;If you think that'd be an interesting study, go ahead and propose it to the Test Pilot team: https://testpilot.mozillalabs.com/&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082443&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=95ad3e9a65078288849e0ce56cf032c4&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082443&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T18:45:07&quot;&gt;2011-01-17T18:45:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I've tweeted at them, since their site does not provide an email i can send something at. If you know of an email address of theirs or better, an actual chat contact, please let me know.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082444&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082444&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T20:34:39&quot;&gt;2011-01-17T20:34:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I don't think there's a direct email contact, but the Test Pilot / Labs site lists all of these things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Forums - http://groups.google.com/group/mozilla-labs-testpilot/topics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proposals - https://wiki.mozilla.org/Labs/Test_Pilot#Propose_and_develop_Test_Pilot_studies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IRC - irc://irc.mozilla.org/labs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082415&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f52cca129b9dd25a2d1c71d715fcbbaf&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Craig Overend&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082415&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T13:06:07&quot;&gt;2011-01-16T13:06:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Feed discovery is already a pain in the arse, now it's made even harder. I'm going to miss the bright orange dropdown icon (until someone brings it back as an add-on). Does the new &quot;space wasting&quot; icon drop down with the &lt;em&gt;list&lt;/em&gt; of feeds still?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082429&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082429&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T23:32:29&quot;&gt;2011-01-16T23:32:29&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Both the icon and the subscribe menu list the available feeds. Have you tried the new beta?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082416&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082416&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T16:13:16&quot;&gt;2011-01-16T16:13:16&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;More flat out wrong stuff:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;subscribing to a page falls into the same thought process as bookmarking it—but I don’t think that’s an unreasonable notion.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is completely and utterly unreasonable.&lt;/p&gt;

&lt;p&gt;One bookmarks a page to be able to quickly visit it later and directly.&lt;/p&gt;

&lt;p&gt;One subscribes to its feed in order to avoid having to actually visit it at all.&lt;/p&gt;

&lt;p&gt;I sincerely hope i do not need to explain how these concepts are completely and utterly opposed to each other.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082426&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082426&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:33:47&quot;&gt;2011-01-16T21:33:47&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I disagree. To me, the bookmark menu is the place where I manage a long-term relationship with a page. That's where I'm coming from.&lt;/p&gt;&lt;p&gt;That menu includes all my bookmarklets for sharing, making new bookmarks—and now, subscribing to a page. Makes sense to me. Maybe it would make more sense if the menu was renamed.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082435&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082435&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T09:13:47&quot;&gt;2011-01-17T09:13:47&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;blockquote&gt;
  &lt;p&gt;a long-term relationship with a page&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are different kinds of relationships.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082417&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://silverwav.wordpress.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2f109fbd8bfbecf91d6886a84c1fc2a1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://silverwav.wordpress.com/&quot;&gt;SilverWave&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082417&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T17:19:01&quot;&gt;2011-01-16T17:19:01&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I think Mozilla missed fully exploiting RSS in Firefox after a great start with LiveBookMarks...&lt;/p&gt;

&lt;p&gt;You can fix it like I did with some small add-ons...&lt;/p&gt;

&lt;p&gt;I use Boox with Places Full Tiles and Stay-Open Menu.
Then all your feeds are on the BookMark Toolbar and easily accessible, bolded if unread.&lt;/p&gt;

&lt;p&gt;RSS nirvana.&lt;/p&gt;

&lt;p&gt;Oh yeah - sorry but put the RSS icon back !&lt;/p&gt;

&lt;p&gt;Heh ;-)&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082425&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082425&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:31:49&quot;&gt;2011-01-16T21:31:49&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I actually agree that Mozilla (and Microsoft, and Apple, and Google) have missed out on exploiting RSS by not going beyond Live Bookmarks—I'm probably going to write about that in the near future. And, yes, the feed icon can be put back in its former place by way of add-on. But, it won't be going back in Firefox 4&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082419&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://bronikowski.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1a2473f3fce807b88f6dfdd17d779733&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://bronikowski.com&quot;&gt;opi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082419&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T18:36:51&quot;&gt;2011-01-16T18:36:51&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;But if it's not being there by default most of users won't reactivate it so we're going to lose readership. What percent of Firefox users do changes to its chrome? I know I do, but I can dig RSS URI straight from website code.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082430&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082430&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T23:35:02&quot;&gt;2011-01-16T23:35:02&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;The reason it'll no longer be there by default is because it's rarely used. I doubt you got much readership from it in the first place.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082422&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.mwd.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=c8f98a19c4c9e6eafc8e841439b66bee&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.mwd.com&quot;&gt;@JoeHobot&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082422&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T18:48:17&quot;&gt;2011-01-16T18:48:17&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Great article my friend. I liked the fact you pointed out &quot;The feed icon isn’t dead, it’s just hiding&quot; &lt;/p&gt;

&lt;p&gt;Anyway, hope that FF4 is coming out soon, out of beta release.&lt;/p&gt;

&lt;p&gt;Wish you good day now..&lt;/p&gt;

&lt;p&gt;Founder of MWD&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082423&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.graphicrating.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1df14f19c33cca19969a7f55ab0174bf&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.graphicrating.com&quot;&gt;Andy Gongea&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082423&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T20:45:36&quot;&gt;2011-01-16T20:45:36&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I understand that the idea is to make the user interface lighter and without any distractions. On the other hand I also understand that a lot of blogs depend on this feature to increase their readers base.&lt;/p&gt;

&lt;p&gt;Let's try a scenario somehow similar to the RSS problem. 
What if, Firefox would be launched with the Navigation Toolbar hidden? How many will enable it?&lt;/p&gt;

&lt;p&gt;I have another one, less scary.
What if, Tabs on Top would be unchecked by default? How many people will change this setting?&lt;/p&gt;

&lt;p&gt;Similar to these scenarios, RSS usage will drop on FF.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082431&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f836de283983db304b0191e3777c2eda&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;dude&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082431&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T03:33:25&quot;&gt;2011-01-17T03:33:25&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Great point. I have an even scarier proposition, what if tabs were a hidden feature?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082432&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e0ad94a966cfab0b02d938e4bf9cd1c1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;Felix Pleșoianu&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082432&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T06:30:09&quot;&gt;2011-01-17T06:30:09&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I forgot to mention something.&lt;/p&gt;

&lt;p&gt;Saying that the feed icon is rarely used misses the point big time. There are websites I've been visiting three times a week for years, but I only needed to click the feed icon &lt;em&gt;once&lt;/em&gt;. That's what feeds are &lt;em&gt;for&lt;/em&gt;: to spare you from manually clicking a button to check for updates.&lt;/p&gt;

&lt;p&gt;Statistics are great, but they don't substitute for common sense.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082445&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082445&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T20:38:43&quot;&gt;2011-01-17T20:38:43&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;So, if you only use it &lt;em&gt;once&lt;/em&gt; per site, then why should it be there in the toolbar all the time for every site? &lt;em&gt;My&lt;/em&gt; common sense tells me that's a good candidate to put somewhere less obtrusive. Beyond that, the feature still does everything else you mention.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082449&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e0ad94a966cfab0b02d938e4bf9cd1c1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://felix.plesoianu.ro/&quot;&gt;Felix Pleșoianu&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082449&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-18T07:00:57&quot;&gt;2011-01-18T07:00:57&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&quot;So, if you only use it once per site, then why should it be there in the toolbar all the time for every site?&quot;&lt;/p&gt;

&lt;p&gt;For the same reason you have fire hydrants everywhere in a city, even if they are very rarely used. Heck, ideally you should &lt;em&gt;never&lt;/em&gt; need them; but would you advocate taking them out?&lt;/p&gt;

&lt;p&gt;I gave a bunch of reasons why the RSS feed icon is good in my first comment. And I hope all of them were already known, and have been weighted, when the decision was made.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082440&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://about.me/michaelkpate&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=a134ff4c7a21a2854b0595b9acbdcc9e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://about.me/michaelkpate&quot;&gt;Michael K Pate&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082440&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T17:53:19&quot;&gt;2011-01-17T17:53:19&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;In Chrome, I have the &lt;a href=&quot;https://chrome.google.com/extensions/detail/nlbjncdgjeocebhnmkbbbdekmmmcbfjd&quot; rel=&quot;nofollow&quot;&gt;RSS Subscription Extension (by Google)&lt;/a&gt;. Now in Firefox, I guess I will be installing &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/rss-icon&quot; rel=&quot;nofollow&quot;&gt;RSS Icon&lt;/a&gt; every time (or at least as soon as it is updated).&lt;/p&gt;

&lt;p&gt;I still regard the decision to break functionality as disappointing, though.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082447&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082447&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T20:40:45&quot;&gt;2011-01-17T20:40:45&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;This is one of those things I file under not pleasing everyone. I'm guessing there are lots of people who are just fine with it, and so aren't a part of these discussions. How much outrage has there been over Chrome lacking a feed icon by default, versus people praising Chrome's UI simplicity over Firefox?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082448&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f836de283983db304b0191e3777c2eda&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;dude&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082448&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-18T02:43:52&quot;&gt;2011-01-18T02:43:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I read more about Firefox starting slow, Chrome being responsive, than I do praise for &quot;Chrome's UI simplicity&quot;, and yes, people do harp on Chrome for the lack of a feed icon as well.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082450&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://dannyayers.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=7028f422ca6da0180de6c9d922a3228f&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://dannyayers.com&quot;&gt;Danny&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082450&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-18T19:23:44&quot;&gt;2011-01-18T19:23:44&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;If my own experience is anything to go on, the feed icon's benefit in spreading the idea of feeds is being highly exaggerated in some of the comments here. It was a very long time before I noticed it, for pages without an icon in them I would do View Source to find the alternate links.&lt;/p&gt;

&lt;p&gt;On the other hand, I reckon having something in the bookmarks menu would give more exposure to people who want to do more with a given resource (bookmarking and subscribing to feeds are both rather unidirectional relationships!).&lt;/p&gt;

&lt;p&gt;In fact it would be really useful to have a fully integrated, user-accessible system for handling all such things, ideally one that could be transparently shifted to the Web (with appropriate access control). A built-in HTTP server would be a good start (is there one yet?), plus support for (say) Atom protocol for shoving data out. This could make it a lot easier to work with semi-social sites like del.icio.us and Bloglines. It's notable that these kind of tools have traditionally been very server-driven, with browsers playing (limited) catch up with plugins. Why can't the client set the agenda for a while?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082451&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082451&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-19T03:16:41&quot;&gt;2011-01-19T03:16:41&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;FWIW: Firefox Sync does some shifting of things to the web. It's a pretty dumb store, providing just enough structure for the client to push encrypted hunks of data into a storage cloud shared between devices. But, it &lt;em&gt;is&lt;/em&gt; a bespoke API for sync and not composed from standards like Atom.&lt;/p&gt;

&lt;p&gt;As for a built-in HTTP server... I've been toying with the idea of playing with something like that since I started poking at the new &lt;a href=&quot;http://hg.mozilla.org/projects/addon-sdk&quot; rel=&quot;nofollow&quot;&gt;add-on API&lt;/a&gt; and seeing a lot in common with node.js. It seems like that's getting easier soon&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082452&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0eb178cec364c022a189c3814e5f7483&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Dexter&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082452&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-05-03T13:14:26&quot;&gt;2011-05-03T13:14:26&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Thanks for your explanation. Even though it is helpful, FF's decision is still a step back. Fortunatelly, there are addon developers that help fixing FF's stepabacks: https://addons.mozilla.org/en-US/firefox/addon/rss-icon/&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;
    

</content>
    </entry>
    
    

    <entry>
        <title>What happened to feed auto-discovery in Firefox 4?</title>
        <link href="http://decafbad.com/blog/2011/01/15/what-happened-to-feed-autodiscovery-in-firefox-4"/>
        <updated>2011-01-15T16:18:56+00:00</updated>
        <id>http://decafbad.com/blog/2011/01/15/what-happened-to-feed-autodiscovery-in-firefox-4</id>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;The feed button is not dead; it's just been sent to sing backup in Firefox 4 because it's not pulling its weight. This post talks about why things have changed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There's &lt;a href=&quot;http://camendesign.com/rss_a_reply&quot;&gt;a brouhaha&lt;/a&gt; about &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=578967&quot;&gt;Bug 578967&lt;/a&gt;, wherein the feed auto-discover icon in &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/beta/&quot;&gt;the Firefox 4 Beta&lt;/a&gt; has been hidden by default. Being a feed nerd, the author of a book on the stuff, &lt;em&gt;and&lt;/em&gt; a Mozilla employee—I've got at least a few opinions.&lt;/p&gt;

&lt;p&gt;This post is one of &lt;a href=&quot;http://decafbad.com/blog/tag/bug578967&quot;&gt;several on this subject&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Defaults are hard to pare down&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;http://decafbad.com/blog/2011/01/15/how-to-use-feed-auto-discovery-in-firefox-4&quot;&gt;feed icon still lives&lt;/a&gt; in &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/beta/&quot;&gt;the Firefox 4 Beta&lt;/a&gt;; it's just not there by default any more. But, if you look at the controls available in &lt;a href=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-01.png&quot;&gt;the toolbar customization panel&lt;/a&gt;, you'll notice a &lt;em&gt;lot&lt;/em&gt; of things that don't show up by default—there are a lot of things in there, period.&lt;/p&gt;

&lt;p&gt;This is the dilemma for &lt;a href=&quot;http://planet.firefox.com/ux/&quot;&gt;the Firefox User Experience team at Mozilla&lt;/a&gt;: Like it or not, one of the main themes of this next generation of browsers is minimalism—faster, smaller, less browser to get in the way of what you're browsing. Yet, at the same time, Firefox 4 has the features of Firefox 3.6 and more.&lt;/p&gt;

&lt;p&gt;You can't just cram it all in there, so what gets prime real estate by default? People say it's just a few pixels, that feed button—but is it so much more important than anything else that could go there? And before you answer, consider that not just for your personal use, but for the 100's of millions of people using Firefox. How do you check your own biases and make a decision on that scale? You could make an educated guess, make a gut check. A lot of brilliant design happens that way.&lt;/p&gt;

&lt;p&gt;You can also &lt;a href=&quot;https://heatmap.mozillalabs.com/&quot;&gt;gather some telemetry from beta installs to see what people really use&lt;/a&gt;. Looking at a heatmap of clicks, the feed button is an absolute stinker. This isn't a random whim of the UX team—seriously, it's an &lt;strong&gt;order of magnitude&lt;/strong&gt; less used than anything else in the toolbar (notice the one black spot):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://heatmap.mozillalabs.com/&quot;&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/heatmap.png&quot; alt=&quot;heatmap.png&quot; border=&quot;0&quot; width=&quot;600&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There have been comments dismissing the validity of that heatmap study. But, as far as I can tell, none of them really stick. So, for the sake of argument and a shorter blog post, let's assume barely anyone is using the feed icon and that it's not pulling its weight in this new age of browser minimalism.&lt;/p&gt;

&lt;p&gt;Keep in mind that Firefox isn't the only browser to deprioritize the feed button: &lt;em&gt;Google Chrome doesn't even have a feed button at all&lt;/em&gt;, and for many people that's the gold standard for minimal browser UI:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-chrome.png&quot; alt=&quot;feed-sub-chrome.png&quot; border=&quot;0&quot; width=&quot;600&quot; height=&quot;242&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;serving&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Serving the users&lt;/h3&gt;

&lt;p&gt;Let's hammer on the point of disuse some more—what's the payoff for clicking that thing, anyway?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2011/01/feed-sub-styling.png&quot; alt=&quot;feed-sub-styling.png&quot; border=&quot;0&quot; width=&quot;600&quot; height=&quot;424&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;+1 — You get an option to create a &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/livebookmarks.html&quot;&gt;Live Bookmark&lt;/a&gt;, which is really handy for things like Bugzilla searches or light headline reading. (I like those so much that I tried building them on the server at Delicious once, but we never quite worked it out at scale.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;0 — You get a list of sites to which Firefox will delegate subscription, if you happen to have &lt;a href=&quot;https://developer.mozilla.org/En/DOM:window.navigator.registerContentHandler&quot;&gt;installed a content handler&lt;/a&gt;. Useful if you know what it's about; a mystery if you don't—not much more useful than a bookmarklet, to me.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;-1 — You get a plainly-styled version of what you were probably already looking at on a site, &lt;a href=&quot;http://decafbad.com/blog/2006/11/02/firefox-20-breaks-client-side-xsl-for-rss-and-atom-feeds&quot;&gt;something I criticized back in 2006&lt;/a&gt;, like some are criticizing the feed icon change now.  (At the time, I was working for &lt;a href=&quot;http://organic.com&quot;&gt;a marketing company&lt;/a&gt;, and the change cost me days trying to incorporate branding in feeds on &lt;a href=&quot;http://www.jeep.com/en/autoshow/feeds/jeep-all.xml&quot;&gt;a client's site&lt;/a&gt;. I think we gave up after a bit, but I suspect that &lt;a href=&quot;http://feedburner.com&quot;&gt;FeedBurner&lt;/a&gt; built a nice business routing around that change.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;That's been status quo for years, and it's less than compelling—I've even had people ask me if they broke the page when the button was clicked on accident.&lt;/p&gt;

&lt;p&gt;So, given little reward for clicking that feed icon, &lt;em&gt;pushing it into the background in &lt;strong&gt;its current state&lt;/strong&gt; is a service to the users of Firefox&lt;/em&gt;. In other words, that feed button has to get a lot more interesting if it's going to serve alongside UI all-stars like &lt;strong&gt;Back&lt;/strong&gt;, &lt;strong&gt;Reload&lt;/strong&gt;, and &lt;strong&gt;Location&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Hell, even with Firebug installed, I use &lt;strong&gt;View Source&lt;/strong&gt; more than the feed button these days, and I've never stuck &lt;em&gt;that&lt;/em&gt; on the toolbar.&lt;/p&gt;

&lt;h3&gt;Leading the web&lt;/h3&gt;

&lt;p&gt;The most compelling response I've seen to the &quot;removal&quot; of the feed auto-discovery button is the challenge that Mozilla and other browser makers should be &lt;em&gt;improving&lt;/em&gt; feed-related features, rather than pushing them into the background. With this, I wholeheartedly agree—but I'm not entirely sure what to do about it.&lt;/p&gt;

&lt;p&gt;So, there's a balance here: Make the &lt;strong&gt;experience of the web better&lt;/strong&gt; by improving how Firefox handles what's already out there, and &lt;strong&gt;make the web itself better&lt;/strong&gt; by building more powerful and enabling technologies into Firefox and other products. In the best of times, Mozilla can do and has done both at once. &lt;a href=&quot;http://en.wikipedia.org/wiki/WebGL&quot;&gt;WebGL&lt;/a&gt; and technologies associated with HTML5 represent great examples of this.&lt;/p&gt;

&lt;p&gt;But, alas, syndication feeds in the browser have stagnated. The feed button has been a weak feature &lt;em&gt;for years&lt;/em&gt;. In the meantime, other things have taken priority in the Firefox project. The rise of Twitter and Facebook and more complex applications on the web have reduced the need for most people to interact directly with feeds, so demands for attention to the feed button haven't exactly topped the charts in comparison to things like &lt;a href=&quot;https://support.mozilla.com/en-US/kb/The%20Adobe%20Flash%20plugin%20has%20crashed&quot;&gt;making sure Flash doesn't crash the browser&lt;/a&gt; and &lt;a href=&quot;http://arewefastyet.com/&quot;&gt;getting super fast&lt;/a&gt; for everything else.&lt;/p&gt;

&lt;h3&gt;Ship it!&lt;/h3&gt;

&lt;p&gt;In the end, Mozilla has a browser to ship. The decision on the feed button &lt;em&gt;has been made&lt;/em&gt; and, believe it or not, with a great deal of thought behind it.&lt;/p&gt;

&lt;p&gt;I know that this is the first time many people have heard of this change, but many already have heard and have given the UX team a number of earsful. Coming in at this late stage and requesting—nay &lt;strong&gt;demanding&lt;/strong&gt;—a reversal of that decision will do nothing but piss off all the people who've been banging away at this and many other things up to now. They're people who've worked hard, stayed up late—and the last thing anyone wants to do is rehash every conversation ever about the topic.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089393&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=478a310fc648c632ba1a3c120437289b&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Jacques&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089393&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T07:22:31&quot;&gt;2011-01-16T07:22:31&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I understand that we always try to enhance UI of any software and that it takes a lot of time and discussions to make decisions. And some decisions may not please everyone.&lt;/p&gt;

&lt;p&gt;As for the Feed button, the one in the toolbar customization panel does not highlight when there are feeds available or change colour when there are no feeds. You need to click on it to see if Firefox 4 discovered feeds of not.&lt;/p&gt;

&lt;p&gt;In Firefox 3.6, you don't need to guess or click on a button to find if a feed is available.&lt;/p&gt;

&lt;p&gt;So instead of a feed button that is always shown, feed available or not, it's much more usable to show a button that highlight properly (takes more space), or is shown only when feeds are available (optimal space use).&lt;/p&gt;

&lt;p&gt;Using a heatmap of clicks does not do justice to the feeds button, since it's of no use to click on it in Firefox 3.6 to instantly see if or not there is a feeds available.&lt;/p&gt;

&lt;p&gt;There are other information that have been removed in Firefox 4 that are open to discussion.&lt;/p&gt;

&lt;p&gt;For example, a heatmap does not show loading icons, throbbers, urls loading in the status bar, &quot;done&quot; message in the status bar, etc. In fact, any status information won't show up in a clicks heatmap. So if that information does not show up in a clicks heatmap, it does not mean these statuses must be removed from the UI.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089415&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089415&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:25:30&quot;&gt;2011-01-16T21:25:30&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Actually, the Feed button in the toolbar &lt;em&gt;does&lt;/em&gt; change state depending on the presence or absence of feeds: It's enabled and clickable with a feed, and greys out without a feed. I mentioned that in the post. If that's not noticeable enough for you, then that's a separate bug specific to that button.&lt;/p&gt;

&lt;p&gt;As for the validity of the heatmap—what would you suggest get done as an alternative? There's no way to fit a large number of beta users with eye-tracking gear. Also, I personally don't buy that people just like to have the feed indicator around because it's nice to see it light up. It's a call to action (eg. subscribe to this site)—and if barely anyone takes that action, how valuable can it be?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089396&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.mozillaitalia.org&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0dc7c70165e18529e8ce7cffca832f6f&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.mozillaitalia.org&quot;&gt;Giuliano&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089396&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T08:40:45&quot;&gt;2011-01-16T08:40:45&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;And if you really miss the feed-autodiscovery feature, just use &lt;a href=&quot;https://addons.mozilla.org/it/firefox/addon/rss-icon-in-awesombar/&quot; rel=&quot;nofollow&quot;&gt;RSS Icon In Awesombar&lt;/a&gt;. ;)&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089444&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f836de283983db304b0191e3777c2eda&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;dude&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089444&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T03:17:05&quot;&gt;2011-01-17T03:17:05&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;RSS/Atom are standardized web features, it's a shame we have to rely on 3rd parties to enable support. At least Google has an official RSS extension so I can trust the security of the addon, but still, both Mozilla and Google are going backwards on this.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089401&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://voracity.org&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1260a07065c85d1f1237b547ab887f54&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://voracity.org&quot;&gt;voracity&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089401&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:07:30&quot;&gt;2011-01-16T11:07:30&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Well argued. I am a little disappointed with its removal because RSS is a distributed status update mechanism, and we're currently being swamped by centralised status update mechanisms (twitter and whatnot). But the experience has always been seriously crap (to put it bluntly), so better to remove it until it improves I suppose.&lt;/p&gt;

&lt;p&gt;Sadly, my guess is that once its removed, it will never reappear.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089403&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://libre-ouvert.toile-libre.org/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=d03f462235ec88103cafd8db26dd7be9&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://libre-ouvert.toile-libre.org/&quot;&gt;antistress&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089403&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:27:15&quot;&gt;2011-01-16T11:27:15&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;i agree with the new UI concerning feed subscription (along with bookmarks).&lt;/p&gt;

&lt;p&gt;But there is indeed a concern with Firefox 4 concerning feeds.
Since Firefox doesn't really handle feeds, Sync doesn't care about them either.
Therefore if you have installed an add-on to deal with feeds, they will not be synchronized and that's not a good experience for the user. Bookmarks are synchronized but feeds are not, whereas they supposed to belong to the same scheme&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089431&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089431&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T00:04:24&quot;&gt;2011-01-17T00:04:24&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Good points. I'd say there are lots of things Firefox could do better with feeds in general.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089406&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.mozilla.cz&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=94e877e3a782dd081062611b66ef76b0&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.mozilla.cz&quot;&gt;Pavel Cvrcek (Mozilla.cz)&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089406&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:29:40&quot;&gt;2011-01-16T11:29:40&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I think this is right decision even I'm one of the people who use RSS button which is inside location bar. But we have extensions right? Because this function is important for me I created extension RSS Icon In Awesombar which brings this button back to the location bar. &lt;/p&gt;

&lt;p&gt;https://addons.mozilla.org/firefox/addon/rss-icon-in-awesombar/&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089411&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089411&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T11:34:59&quot;&gt;2011-01-16T11:34:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;The only reason i'll even get to see your follow-up entries to this is because my browser includes an rss reader and a button that tells me you have an rss feed for your blog.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089423&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089423&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:38:06&quot;&gt;2011-01-16T21:38:06&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;So, you mean to tell me that you didn't already think my blog had a feed, before you looked for the feed icon?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089445&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f836de283983db304b0191e3777c2eda&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;dude&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089445&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T03:22:53&quot;&gt;2011-01-17T03:22:53&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Are you surprised he would be more likely to find an RSS button on his toolbar than somewhere on the side of the page? Or that someone wouldn't assume that all blogs have RSS, especially many older ones? Or that asking Google Reader to test if a URL had a feed is a whole lot more cumbersome than using the browser to get Google Reader to subscribe to it?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089448&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cb440f309ad5be39a03b7e7c0ba9d4d6&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Meepmeepmeep&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089448&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T09:08:24&quot;&gt;2011-01-17T09:08:24&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;I stumble upon too many blogs of various kinds that have no feeds to make the assumption that every blog has one. As i mentioned on your other post, Yahoo Pipes is a tool i often need to resort to.&lt;/p&gt;

&lt;p&gt;Maybe you need to step outside your Web 2.0 bubble sometime?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089413&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://lew21.net/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=9915b2b63c76d2d158b835396cb66143&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://lew21.net/&quot;&gt;Janusz Lewandowski&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089413&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T12:12:53&quot;&gt;2011-01-16T12:12:53&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I suggest removing the Scroll Left button, it's used only by 1% of Fx users.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089417&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089417&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:28:22&quot;&gt;2011-01-16T21:28:22&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I'm pretty sure removing the Scroll Left button was discussed—if only for a minute—and a call was made that basic spatial navigation was more important than feeds.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089414&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f836de283983db304b0191e3777c2eda&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;dude&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089414&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:25:26&quot;&gt;2011-01-16T21:25:26&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Janusz, I totally agree, let's remove the site identity, remove bookmark, more info, scroll right, print menu item, save page as, bookmarks all tab, etc., they are obviously never used.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089434&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089434&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T00:07:20&quot;&gt;2011-01-17T00:07:20&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Pretty much all of those you list are used more than twice as much as the feed icon, or don't appear on the toolbar at all.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089420&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=ae1dd99bfb7ffc73d2e97eccd1bf0d27&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Jim L.&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089420&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:32:14&quot;&gt;2011-01-16T21:32:14&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I can put &quot;View Source&quot; in the toolbar?  How?!&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089426&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089426&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T21:40:34&quot;&gt;2011-01-16T21:40:34&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Actually, for &quot;View Source&quot;, I installed &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/web-developer/&quot; rel=&quot;nofollow&quot;&gt;the Web Developer add-on&lt;/a&gt;. So, that's not built-in like I implied.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089429&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=05d902723e8e452b5640d52c9406ed51&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Tulapi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089429&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-16T22:23:44&quot;&gt;2011-01-16T22:23:44&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Why do you care about this &quot;Back&quot; button,  &quot;Location bar&quot; and so on ?
Just put one big &quot;facebook&quot; button and one big &quot;google&quot; button, it's enough...&lt;/p&gt;

&lt;p&gt;With this kind of decisions, I think you are not &quot;building a better Internet&quot; as Mozilla Foundation is supposed to do.&lt;/p&gt;

&lt;p&gt;RSS and twitter are very different ways to access information, with their &quot;+&quot; and &quot;-&quot;. Leaving RSS dying  seems to me a regression. I am sorry, but when I read &quot;The rise of Twitter and Facebook and more complex applications on the web have reduced the need for most people to interact directly with feeds&quot;, I am a bit frightened, because I understand it a bit like : &quot;Hey guy, why don't you go on Facebook like everybody to surf the web. It's cool and your friends tell you what is interesting to read&quot;.&lt;/p&gt;

&lt;p&gt;I don'k know about the usability of the feed concept, it could be certainly  improved, but I really felt it was going towards &quot;give people tools to take control of their online lives&quot; (Mozilla Mission)&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089437&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089437&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T00:14:38&quot;&gt;2011-01-17T00:14:38&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;So, I did say that Twitter and Facebook has left users with less need to interact with feeds—but I didn't say that I liked it. I'm the last person who'd want closed silos to own the web, and I want to see RSS and Atom and other open web technologies grow.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089446&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=f836de283983db304b0191e3777c2eda&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://usefuldissident.blogspot.com/&quot;&gt;dude&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089446&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T03:25:24&quot;&gt;2011-01-17T03:25:24&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I'm currently a Chrome user, wishing that 1 day Firefox will go back to why I liked it in the first place. I've been subsribing to Twitter feeds and Facebook pages more than I have with feeds with Chrome, not only because the prior are established, but also because Chrome doesn't encourage RSS with its exclusion. I don't bother with addons either, I don't think most users do either (yet Mozilla decides addons need a whole bar).&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089439&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://animeserenity.net&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1c89a0f61f168bce38a522286bf659dd&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://animeserenity.net&quot;&gt;Andrew&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089439&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T01:39:38&quot;&gt;2011-01-17T01:39:38&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I can't be the only person who, when I decide I want to subscribe to a site, looks for the RSS Icon on the page first before I ever even glance at the auto-discovery icon. In many cases, especially on larger sites, I rarely want what they would consider the &quot;main&quot; feed anyway and on the sites where I do want that, their feed is usually in a place that's easily clicked on.&lt;/p&gt;

&lt;p&gt;So, in my case, it was needless clutter that I'm rather happy to see getting removed by default. Of course, I remove a lot more than that from Firefox's chrome, but at least this is one less thing I have to do manually.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089449&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=9e4f184c9f857d5fc0844c26c8ae9d2e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;fflover&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089449&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T16:26:58&quot;&gt;2011-01-17T16:26:58&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Sir, looks like you know a lot about FF. Is it a conscious decision to not have Awesombar as the default search bar .i hate it when it gives me google search results. if i type bbc news and hit enter, it should take me to bbc news site, right? not a google search of it? If there is any way i can get my awesombar back, please let me know.&lt;/p&gt;

&lt;p&gt;Sincerely,
fflover :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089451&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089451&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T17:33:17&quot;&gt;2011-01-17T17:33:17&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Sounds like you might be interested in this add-on:&lt;/p&gt;

&lt;p&gt;https://addons.mozilla.org/en-US/firefox/addon/luckybar/&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089453&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8c228840206d0bcfa8083f103c6011f8&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;ffuser&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089453&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T19:40:00&quot;&gt;2011-01-17T19:40:00&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;beta users is not equal to representative user population.
how much percent of all Firefox users does your study cover, is it enough to make statistical conclusions?&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089458&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089458&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-17T20:46:23&quot;&gt;2011-01-17T20:46:23&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Well, it's not &lt;em&gt;my&lt;/em&gt; study, it's &lt;a href=&quot;https://testpilot.mozillalabs.com/testcases/betaui&quot; rel=&quot;nofollow&quot;&gt;the Test Pilot team's study&lt;/a&gt;. I'd say it's a decent chunk of users, with some interesting segmentation. But, that's my opinion.

If you have an idea of how to execute a study that covers more, feel free to let the Test Pilot team know.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089459&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.straw-dogs.co.uk&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=32ba8c5c148da2653028dc7f8066b810&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.straw-dogs.co.uk&quot;&gt;Doug Bromley&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089459&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-18T08:46:09&quot;&gt;2011-01-18T08:46:09&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Wow. There's a lot of strong feelings flying around. Well as one of the silent majority I'd just like to offer my support to the removal. I never used the feed button and whenever I wanted a sites feed I normally scanned the page I was on for an icon to click.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089461&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e40bdaa1db8c568d9298e7a1e776f6ba&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Olivier&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089461&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-18T18:03:16&quot;&gt;2011-01-18T18:03:16&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Thank you for your post.
I, too, would rather have the button clutter up a little than risk RSS being less discovered. But I understand your point and respect your decisions.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089465&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://voodoowarez.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8e08cd9c3593b8b3d0bf8ac5cef68287&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://voodoowarez.com&quot;&gt;rektide&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089465&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-22T02:17:52&quot;&gt;2011-01-22T02:17:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;your metric for evaluating the utility of the feed button -- click rate -- is about as incorrect and contrary as possibly can be conceived.&lt;/p&gt;

&lt;p&gt;the entire point of the feed button is that you only need to click it once for a site.  after a user clicks it, the user shouldn't have to click it again on that site, and, going further, shouldn't even have to visit the site.  those are the signals for success.&lt;/p&gt;

&lt;p&gt;if you want a useful metric, dont look at how often the button is clicked.  that's entirely the purpose of what it's trying to avoid. look at return rates for sites where a user has clicked the feed button.  if you see a precipitous drop in return rates, you know the button is functioning completely as desired.  the bigger the drop, the less users return, the better the button works.&lt;/p&gt;

&lt;p&gt;baby HCI jesus is weeping in his crib.&lt;/p&gt;&lt;/div&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089466&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089466&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-01-22T08:45:28&quot;&gt;2011-01-22T08:45:28&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;So... if it only gets used once per site, then it doesn't belong in the same toolbar with navigational controls that get used constantly. It's a special action, used rarely. Thus, it's in the bookmark menu now - you know, bookmarks, another thing you ideally do once per site if at all.&lt;/p&gt;

&lt;p&gt;But as I've said in other comments, if you feel strongly enough, come up with a study to propose to the Test Pilot team and spread your HCI jesus gospel&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Firefox Sync server on Google App Engine</title>
        <link href="http://decafbad.com/blog/2010/07/05/firefox-sync-server-on-google-app-engine"/>
        <updated>2010-07-05T23:00:56+00:00</updated>
        <id>http://decafbad.com/blog/2010/07/05/firefox-sync-server-on-google-app-engine</id>
        <content type="html">&lt;p&gt;&lt;em&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; &lt;a href=&quot;http://github.com/lmorchard/firefox-sync-appengine&quot;&gt;I built an implementation&lt;/a&gt; of the &lt;a href=&quot;https://wiki.mozilla.org/Labs/Weave/Sync/1.0/API&quot;&gt;Firefox Sync server API&lt;/a&gt; for &lt;a href=&quot;http://appengine.google.com/&quot;&gt;Google App Engine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.mozilla.com/en-US/firefox/sync/&quot; style=&quot;float: right; padding: 0 0 0em 0em; display: block; text-decoration: none; border: none&quot;&gt;&lt;img src=&quot;http://mozcom-cdn.mozilla.net/img/firefox/sync/sync-background.png&quot; style=&quot;border: none&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To celebrate &lt;a href=&quot;http://en.wikipedia.org/wiki/Independence_Day_%28United_States%29&quot;&gt;Independence Day&lt;/a&gt;, I figured I might take a shot at liberating &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/sync/&quot;&gt;Firefox Sync&lt;/a&gt; from the tyranny of &lt;a href=&quot;https://services.mozilla.com/&quot;&gt;Mozilla's servers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thus, over the past few days, I've &lt;a href=&quot;http://github.com/lmorchard/firefox-sync-appengine&quot;&gt;built a sync server&lt;/a&gt; using the &lt;a href=&quot;https://wiki.mozilla.org/Labs/Weave/Sync/1.0/API&quot;&gt;1.0 Sync API&lt;/a&gt;, hosted on &lt;a href=&quot;http://appengine.google.com/&quot;&gt;Google App Engine&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I lied about the &lt;em&gt;tyranny&lt;/em&gt; thing, though—I just wanted to say something clever about the holiday. In reality, with respect to &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/sync/&quot;&gt;Firefox Sync&lt;/a&gt;, Mozilla has done all of the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Published &lt;a href=&quot;https://wiki.mozilla.org/Labs/Weave/Sync/1.0/API&quot;&gt;the Sync API spec&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Released &lt;a href=&quot;http://hg.mozilla.org/services/sync-server/&quot;&gt;the source code for the server used in-house&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Explicitly included the option to use a custom server when setting up sync in the browser.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;This means that, although Mozilla offers servers to go along with &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/sync/&quot;&gt;Firefox Sync&lt;/a&gt;, you're totally free to take your data elsewhere. Since your sync data is encrypted and practically opaque to the server, there's no direct profit for Mozilla in offering free sync hosting—not even through any clandestine data mining for devious purposes. It's just that sync makes Firefox a better browser, and &lt;em&gt;somebody&lt;/em&gt; has to run some servers to make it work.&lt;/p&gt;

&lt;p&gt;So, there's every incentive to make it easy for you to switch sync providers and &lt;em&gt;stop freeloading&lt;/em&gt; on Mozilla's servers. Building a server on &lt;a href=&quot;http://appengine.google.com/&quot;&gt;Google App Engine&lt;/a&gt; means I can freeload on &lt;em&gt;Google's&lt;/em&gt; servers!&lt;/p&gt;

&lt;p&gt;I kid, of course. No one's really complaining about freeloaders, and App Engine has quotas in place to head off any serious mooching—which is why I'm not telling you where to find &lt;em&gt;my&lt;/em&gt; sync server deployed on Google App Engine, by the way.&lt;/p&gt;

&lt;p&gt;No, I did this because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firefox Sync and Google App Engine are interesting and important technologies;&lt;/li&gt;
&lt;li&gt;I've already done a bit of work on the PHP-based Firefox Sync server at Mozilla;&lt;/li&gt;
&lt;li&gt;I really wanted to take a break from PHP and spend some time with my old friend Python.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There are, of course, a number of bugs in this server. But, it seems to be working between a number of machines and browser profiles I have at home. Things are really in need of optimization, it suffers from my inexperience with App Engine, and I keep running into those aforementioned App Engine resource limits—especially when updating or deleting large numbers of items (ie. 1000's to 10000's of items).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://github.com/lmorchard/firefox-sync-appengine&quot;&gt;&lt;em&gt;Pull requests and issue reports on GitHub are welcome!&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A next step I'd like to take with this thing is to revisit another old friend, the &lt;a href=&quot;http://www.decafbad.com/twiki/bin/view/Main/DesktopWebAppServer&quot;&gt;desktop web app server&lt;/a&gt;. (Also known as the &lt;a href=&quot;http://www.scripting.com/davenet/2001/01/04/desktopWebsites.html#4&quot;&gt;desktop website&lt;/a&gt;.) It seems to me that it would be interesting to scale this server down to a household appliance—say, just for use by my wife and I.&lt;/p&gt;

&lt;p&gt;I'd be especially happy if the work I'm doing for a Google-hosted app could be self-hosted at home. Seeing as the development environment for App Engine runs on my laptop, I'm willing to bet I can hack the whole shebang into a simple, special-purpose app to download and double-click on a home desktop PC for use as your sync hub.&lt;/p&gt;

&lt;p&gt;Anyway, &lt;a href=&quot;http://github.com/lmorchard/firefox-sync-appengine&quot;&gt;check it out&lt;/a&gt; and let me know what you think.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088097&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://coffeeonthekeyboard.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8371744716a9335eb3dcae228fd9d996&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://coffeeonthekeyboard.com/&quot;&gt;James Socol&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088097&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T01:28:02&quot;&gt;2010-07-06T01:28:02&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Assuming you already had a network and a Mac Mini or something at home, it would be pretty interesting to run your own small Sync server just to keep your home computers together. Maybe even use localtunnel for when you're away.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088102&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://morgamic.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=65b020128dafcdb4ef1e5e53c00ed37a&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://morgamic.com/&quot;&gt;Mike&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088102&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T01:36:37&quot;&gt;2010-07-06T01:36:37&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;You are a real-life hero!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088105&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088105&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T01:52:00&quot;&gt;2010-07-06T01:52:00&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@James: Yup, exactly that. Maybe even roll in some SSL and UPnP port forwarding for easier setup behind a home router. And, if there were a Windows version, it could run on that cruddy desktop back in the spare room.&lt;/p&gt;

&lt;p&gt;@Mike: Naw... this guy is the real hero, &lt;a href=&quot;http://twitter.com/johnolilly/status/17765272082&quot; rel=&quot;nofollow&quot;&gt;even John Lilly agrees&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blogs.denverpost.com/celebritybull/2008/09/09/greatest-american-hero-coming-to-the-big-screen/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://blogs.denverpost.com/celebritybull/files/2008/09/gah.jpg&quot; alt=&quot;Greatest American Hero&quot; title=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088106&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1d18681d9fa9b5d50b209a2a926dfe7d&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Crash&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088106&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T09:20:54&quot;&gt;2010-07-06T09:20:54&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Is there already a App Id for this tool?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088107&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088107&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T10:18:57&quot;&gt;2010-07-06T10:18:57&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Crash: Sure, there's an app ID for &lt;em&gt;my&lt;/em&gt; instance of this sync server. But, as I said in the blog post, I'm not sharing it. At least, not until or unless I get the quota usage down to a point that I wouldn't exhaust the free hosting limits.&lt;/p&gt;

&lt;p&gt;It's pretty easy to deploy your own sync server on AppEngine with the source, though.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088108&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=85283c3d40ca2b1a70a0f877a570107c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Peter Petrov&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088108&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T13:18:11&quot;&gt;2010-07-06T13:18:11&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Leslie: The app ID of your instance is visible in app.yaml, so you've shared it anyway :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088113&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088113&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-06T17:18:47&quot;&gt;2010-07-06T17:18:47&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Peter hah! Right you are! But, at least you had to look at the source of the app first to figure that out :) That is mostly the point of this blog entry after all. Anyone who does that and then uses my installation anyway will probably be sad when I regularly blow away data and eventually make it invite only&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088115&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=4fd1acfa0c7bd0767a90a30fbba73bfb&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Tobias&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088115&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-07T00:24:41&quot;&gt;2010-07-07T00:24:41&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Neat! TyphoonAE http://typhoonae.googlecode.com might help you to build your household appliance.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088117&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3e7e975f0fa432f4ae6604f72c132309&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Kumar McMillan&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088117&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-07T20:59:25&quot;&gt;2010-07-07T20:59:25&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hey Les, this is super cool!  Google App Engine's Datastore API is still very shaky though.  In fact, it's been so bad lately that I've been considering porting one of my heavily used apps over to something else.  Thankfully, this post suggests that fixing the Datastore is their top priority: http://googleappengine.blogspot.com/2010/06/datastore-performance-growing-pains.html&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088119&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://home.kairo.at/blog/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=59d914ad47e5c3fcd4c89668adcd43a2&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://home.kairo.at/blog/&quot;&gt;Robert Kaiser&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088119&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-07-07T21:21:51&quot;&gt;2010-07-07T21:21:51&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Well, I actually feel more comfortable with my data being on Mozilla servers than on Google servers - even with the decreased trust I have in the Mozilla organization, I'd trust it more than Google any day! ;-)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088120&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://blog.chrisarndt.de&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=02653ae22d36044e6870c17cf3d5a005&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://blog.chrisarndt.de&quot;&gt;Chris Arndt&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088120&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-09-28T11:06:55&quot;&gt;2010-09-28T11:06:55&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Instead of porting GAE to your desktop, why don't you just port your app to plain Django? Django should run off your desktop with no problems.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Case Study: Building a Bookmark Management UI for Mozilla's BYOB</title>
        <link href="http://decafbad.com/blog/2010/06/22/case-study-building-a-bookmark-management-ui-for-mozillas-byob"/>
        <updated>2010-06-22T22:16:24+00:00</updated>
        <id>http://decafbad.com/blog/2010/06/22/case-study-building-a-bookmark-management-ui-for-mozillas-byob</id>
        <content type="html">&lt;p&gt;&lt;em&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I just wrote &lt;a href=&quot;http://decafbad.com/2010/06/byob-bookmarks-ui/&quot;&gt;a &lt;strong&gt;long&lt;/strong&gt; case-study about my process in building a bookmark management feature&lt;/a&gt; for Mozilla's &lt;a href=&quot;http://byob.mozilla.com/&quot;&gt;Build Your Own Browser&lt;/a&gt; web application.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://decafbad.com/2010/06/byob-bookmarks-ui/&quot;&gt;&lt;img src=&quot;http://decafbad.com/2010/06/byob-bookmarks-ui/img/bookmarks.png&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, remember that &lt;a href=&quot;http://decafbad.com/blog/2010/06/07/tinderbox-article-tutorial&quot;&gt;tutorial I wrote about writing an article in Tinderbox&lt;/a&gt;? I'd mentioned that it was a digression from another, different article.&lt;/p&gt;

&lt;p&gt;Well, I just finished a first draft of that article:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://decafbad.com/2010/06/byob-bookmarks-ui/&quot;&gt;It's a case study about building a bookmark management feature for Mozilla's BYOB&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Light on code but heavy on narration, it's about what I did and what I was thinking while I did it. There are links to the end product for reference, but it isn't a demonstration of some new trick. Rather, it's a look at my process as a whole.&lt;/p&gt;

&lt;p&gt;I wrote this, in part, for myself: The writing has helped me review things. But, I'm hoping someone else reads it, and then picks up something new or can offer some interesting critique in return.&lt;/p&gt;

&lt;p&gt;And, because I'm curious and like looking behind the scenes, I'd love to see this kind of write-up from more webdevs. There don't seem to be a lot of detailed case studies versus quick one-shot tutorials on isolated techniques. It's probably because the writing is time-consuming, as is the reading. It's not in the genre of bite-sized attractions optimized for promoting blog traffic, but I'd like to see more of them all the same.&lt;/p&gt;
</content>
    </entry>
    
    

    <entry>
        <title>HTML5 drag and drop in Firefox 3.5</title>
        <link href="http://decafbad.com/blog/2009/07/15/html5-drag-and-drop"/>
        <updated>2009-07-15T15:26:40+00:00</updated>
        <id>http://decafbad.com/blog/2009/07/15/html5-drag-and-drop</id>
        <content type="html">&lt;p&gt;&lt;i&gt;
Oh hey, look! It's another blog post—and this one
&lt;a href=&quot;http://hacks.mozilla.org/2009/07/html5-drag-and-drop/&quot;&gt;is cross-posted on hacks.mozilla.com&lt;/a&gt;.
I won't say this is the start of a renewed blogging habit, but let's see what happens.
&lt;/i&gt;&lt;/p&gt;






&lt;div id=&quot;introduction&quot;&gt;
    &lt;p&gt;
        Drag and drop is one of the most fundamental interactions
        afforded by graphical user interfaces.  In one gesture, it
        allows users to pair the selection of an object with the
        execution of an action, often including a second object in the
        operation.  It's a simple yet powerful UI concept used to
        support copying, list reordering, deletion (ala the Trash / Recycle Bin),
        and even the creation of link relationships.
    &lt;/p&gt;&lt;p&gt;
        Since it's so fundamental, offering drag and drop in web
        applications has been a no-brainer ever since browsers first
        offered mouse events in DHTML.  But, although
        &lt;code&gt;mousedown&lt;/code&gt;, &lt;code&gt;mousemove&lt;/code&gt;, and
        &lt;code&gt;mouseup&lt;/code&gt; made it possible, the implementation has been
        limited to the bounds of the browser window.  Additionally,
        since these events refer only to the object being dragged,
        there's a challenge to find the subject of the drop when
        the interaction is completed.
    &lt;/p&gt;&lt;p&gt;

        Of course, that doesn't prevent most modern JavaScript
        frameworks from abstracting away most of the problems and
        throwing in some flourishes while they're at it.  But, wouldn't
        it be nice if browsers offered first-class support for drag and
        drop, and maybe even extended it beyond the window sandbox?
    &lt;/p&gt;&lt;p&gt;
        As it turns out, this very wish is answered by the HTML 5 specification 
        &lt;a target=&quot;_new&quot; href=&quot;http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dnd&quot;&gt;section on new drag-and-drop events&lt;/a&gt;, and 
        &lt;a target=&quot;_new&quot; href=&quot;https://developer.mozilla.org/En/DragDrop/Drag_and_Drop&quot;&gt;Firefox 3.5 includes an implementation&lt;/a&gt; of those events.
    &lt;/p&gt;&lt;p&gt;
        If you want to jump straight to the code, I've put together 
        &lt;a target=&quot;_new&quot; target=&quot;_new&quot; target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html&quot;&gt;some simple demos&lt;/a&gt; 
        of the new events.  
    &lt;/p&gt;&lt;p&gt;

        I've even scratched an itch of my own and
        built &lt;a target=&quot;_new&quot; target=&quot;_new&quot; target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/outline.html&quot;&gt;the beginnings of an outline editor&lt;/a&gt;,
        where every draggable element is also a drop target—of which
        there could be dozens to hundreds in a complex document, something
        that gave me some minor hair-tearing moments in the past
        while trying to make do with plain old mouse events.
    &lt;/p&gt;&lt;p&gt;
        And, all the above can be downloaded or cloned from 
        &lt;a href=&quot;http://github.com/lmorchard/fx35-drag-and-drop&quot;&gt;a GitHub repository&lt;/a&gt;
        I've created especially for this article—which continues after the jump.
    &lt;/p&gt;
&lt;/div&gt;




&lt;!--more--&gt;




&lt;div id=&quot;events&quot;&gt;

    &lt;h2&gt;The New Drag and Drop Events&lt;/h2&gt;
    &lt;p&gt;
        So, with no further ado, here are the new drag and drop events,
        in roughly the order you might expect to see them fired:
    &lt;/p&gt;
    &lt;dl&gt;
        &lt;dt&gt;&lt;code&gt;dragstart&lt;/code&gt;&lt;/dt&gt;
        &lt;dd&gt;
            A drag has been initiated, with the dragged element as the
            event target.
        &lt;/dd&gt;

        &lt;dt&gt;&lt;code&gt;drag&lt;/code&gt;&lt;/dt&gt;
        &lt;dd&gt;
            The mouse has moved, with the dragged element as the event target.
        &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;dragenter&lt;/code&gt;&lt;/dt&gt;
        &lt;dd&gt;
            The dragged element has been moved into a drop listener,
            with the drop listener element as the event target.
        &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;dragover&lt;/code&gt;&lt;/dt&gt;

        &lt;dd&gt;
            The dragged element has been moved over a drop listener,
            with the drop listener element as the event target.  Since
            the default behavior is to cancel drops, returning
            &lt;code&gt;false&lt;/code&gt; or calling &lt;code&gt;preventDefault()&lt;/code&gt; in
            the event handler indicates that a drop is allowed here.
        &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;dragleave&lt;/code&gt;&lt;/dt&gt;
        &lt;dd&gt;
            The dragged element has been moved out of a drop listener,
            with the drop listener element as the event target.
        &lt;/dd&gt;

        &lt;dt&gt;&lt;code&gt;drop&lt;/code&gt;&lt;/dt&gt;
        &lt;dd&gt;
            The dragged element has been successfully dropped on a drop
            listener, with the drop listener element as the event
            target.
        &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;dragend&lt;/code&gt;&lt;/dt&gt;
        &lt;dd&gt;
            A drag has been ended, successfully or not, with the
            dragged element as the event target.
        &lt;/dd&gt;
    &lt;/dl&gt;

    &lt;p&gt;
        Like the mouse events of yore, listeners can be attached to
        elements using &lt;code&gt;addEventListener()&lt;/code&gt; 
        directly or by way of your favorite JS library.  
    &lt;/p&gt;&lt;p&gt;
        Consider the following example using jQuery, 
        &lt;a target=&quot;_new&quot; target=&quot;_new&quot; target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html#newschool&quot;&gt;also available as a live demo&lt;/a&gt;:
    &lt;/p&gt;
    &lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
&lt;div id=&quot;newschool&quot;&gt;
    &lt;div class=&quot;dragme&quot;&gt;Drag me!&lt;/div&gt;
    &lt;div class=&quot;drophere&quot;&gt;Drop here!&lt;/div&gt;
&lt;/div&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
    $(document).ready(function() {
        $('#newschool .dragme')
            .attr('draggable', 'true')
            .bind('dragstart', function(ev) {
                var dt = ev.originalEvent.dataTransfer;
                dt.setData(&quot;Text&quot;, &quot;Dropped in zone!&quot;);
                return true;
            })
            .bind('dragend', function(ev) {
                return false;
            });
        $('#newschool .drophere')
            .bind('dragenter', function(ev) {
                $(ev.target).addClass('dragover');
                return false;
            })
            .bind('dragleave', function(ev) {
                $(ev.target).removeClass('dragover');
                return false;
            })
            .bind('dragover', function(ev) {
                return false;
            })
            .bind('drop', function(ev) {
                var dt = ev.originalEvent.dataTransfer;
                alert(dt.getData('Text'));
                return false;
            });
    });
&lt;/script&gt;
    &lt;/pre&gt;
    &lt;p&gt;
        Thanks to the new events and jQuery, this example is both short
        and simple—but it packs in a lot of functionality, as the rest
        of this article will explain.  
    &lt;/p&gt;&lt;p&gt;
        Before moving on, there are at least three things about the above
        code that are worth mentioning:
    &lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;

            &lt;p&gt;
                Drop targets are enabled by virtue of having
                listeners for drop events.  But, 
                &lt;a target=&quot;_new&quot; href=&quot;http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#drag-and-drop-processing-model&quot;&gt;per the HTML 5 spec&lt;/a&gt;,
                draggable elements need an
                attribute of &lt;code&gt;draggable=&quot;true&quot;&lt;/code&gt;, set either in
                markup or in JavaScript.  
            &lt;/p&gt;
            &lt;p&gt;
                Thus, &lt;code&gt;$('#newschool&amp;nbsp;.dragme').attr('draggable', 'true')&lt;/code&gt;.
            &lt;/p&gt;

        &lt;/li&gt;
        &lt;li&gt;
            &lt;p&gt;
                The original DOM event (as opposed to jQuery's event
                wrapper) offers a property called &lt;code&gt;dataTransfer&lt;/code&gt;.
                Beyond just manipulating elements, the new drag and drop
                events accomodate the transmission of user-definable data
                during the course of the interaction.  
            &lt;/p&gt;
        &lt;/li&gt;
        &lt;li&gt;
            &lt;p&gt;

                Since these are first-class events, you can apply 
                &lt;a target=&quot;_new&quot; href=&quot;http://icant.co.uk/sandbox/eventdelegation/&quot;&gt;the technique of Event Delegation&lt;/a&gt;.
            &lt;/p&gt;&lt;p&gt;
                What's that?  Well, imagine you have a list of 1000
                list items—as part of a deeply-nested outline document,
                for instance.  Rather than needing to attach listeners
                or otherwise fiddle with all 1000 items, simply attach
                a listener to the parent node (eg. the
                &lt;code&gt;&lt;ul&gt;&lt;/code&gt; element) and all events from
                the children will propagate up to the single parent listener.
                As a bonus, all new child elements added after page
                load will enjoy the same benefits.
            &lt;/p&gt;&lt;p&gt;
                &lt;a target=&quot;_new&quot; target=&quot;_new&quot; target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html#delegated&quot;&gt;Check out this demo&lt;/a&gt;, 
                and 
                &lt;a target=&quot;_new&quot; target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/js/drag-delegated.js&quot;&gt;the associated JS code&lt;/a&gt; 
                to see more about these events and Event Delegation.
            &lt;/p&gt;

        &lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;




&lt;div id=&quot;datatransfer&quot;&gt;
    &lt;h2&gt;Using dataTransfer&lt;/h2&gt;
    &lt;p&gt;
        As mentioned in the last section, the new drag and drop events
        let you send data along with a dragged element.  But, it's even
        better than that:  Your drop targets can receive data
        transferred by content objects dragged into the window from 
        other browser windows, and even &lt;i&gt;other applications&lt;/i&gt;.
    &lt;/p&gt;&lt;p&gt;

        Since the example is a bit longer,  
        &lt;a target=&quot;_new&quot; target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html#data_transfer&quot;&gt;check out the live demo&lt;/a&gt;
        and 
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/js/drag-datatransfer.js&quot;&gt;associated code&lt;/a&gt;
        to get an idea of what's possible with &lt;code&gt;dataTransfer&lt;/code&gt;.
    &lt;/p&gt;&lt;p&gt;
        In a nutshell, the stars of this show are the
        &lt;code&gt;setData()&lt;/code&gt; and &lt;code&gt;getData()&lt;/code&gt; methods of
        the &lt;code&gt;dataTransfer&lt;/code&gt; property exposed by the Event object.
    &lt;/p&gt;

    &lt;p&gt;
        The &lt;code&gt;setData()&lt;/code&gt; method is typically called in the 
        &lt;code&gt;dragstart&lt;/code&gt; listener, loading &lt;code&gt;dataTransfer&lt;/code&gt;
        up with one or more strings of content with associated
        &lt;a href=&quot;https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types#link&quot;&gt;recommended content types&lt;/a&gt;.
    &lt;/p&gt;

    &lt;p&gt;
        For illustration, here's a quick snippet from the example code:
    &lt;/p&gt;
    &lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
var dt = ev.originalEvent.dataTransfer;    
dt.setData('text/plain', $('#logo').parent().text());
dt.setData('text/html', $('#logo').parent().html());
dt.setData('text/uri-list', $('#logo')[0].src);
    &lt;/pre&gt;
    &lt;/p&gt;&lt;p&gt;
        On the other end, &lt;code&gt;getData()&lt;/code&gt; allows you to query
        for content by type (eg. &lt;code&gt;text/html&lt;/code&gt; followed by
        &lt;code&gt;text/plain&lt;/code&gt;).  This, in turn, allows you to decide
        on acceptable content types at the time of the
        &lt;code&gt;drop&lt;/code&gt; event or even during &lt;code&gt;dragover&lt;/code&gt;

        to offer feedback for unacceptable types during the drag.
    &lt;/p&gt;&lt;p&gt;
        Here's another example from the receiving end of the example code:
    &lt;/p&gt;
    &lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
var dt = ev.originalEvent.dataTransfer;    
$('.content_url .content').text(dt.getData('text/uri-list'));
$('.content_text .content').text(dt.getData('text/plain'));
$('.content_html .content').html(dt.getData('text/html'));
    &lt;/pre&gt;
    &lt;p&gt;
        Where &lt;code&gt;dataTransfer&lt;/code&gt; really shines, though, is that
        it allows your drop targets to receive content from 
        sources outside your defined draggable elements and even from
        outside the browser altogether.  Firefox accepts such drags, 
        and attempts to populate &lt;code&gt;dataTransfer&lt;/code&gt; with
        appropriate content types extracted from the external object.
    &lt;/p&gt;&lt;p&gt;

        Thus, you could select some text in a word processor window and
        drop it into one of your elements, and at least expect to find
        it available as &lt;code&gt;text/plain&lt;/code&gt; content.  
    &lt;/p&gt;&lt;p&gt;
        You can also select content in 
        another browser window, and expect to see &lt;code&gt;text/html&lt;/code&gt;
        appear in your events.  Check out the 
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/outline.html&quot;&gt;outline editing demo&lt;/a&gt;
        and see what happens when you try dragging various elements 
        (eg. images, tables, and lists) and highlighted content from
        other windows onto the items there.
    &lt;/p&gt;

&lt;/div&gt;




&lt;div id=&quot;dragfeedback&quot;&gt;
    &lt;h2&gt;Using Drag Feedback Images&lt;/h2&gt;
    &lt;p&gt;
       An important aspect of the drag and drop interaction is a
       representation of the thing being dragged.  By default in
       Firefox, this is a &quot;ghost&quot; image of the dragged element itself.  But,
       the &lt;code&gt;dataTransfer&lt;/code&gt; property of the original Event
       object exposes the method &lt;code&gt;setDragImage()&lt;/code&gt; for use
       in customizing this representation.
    &lt;/p&gt;&lt;p&gt;

        There's
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html#feedback_image&quot;&gt;a live demo&lt;/a&gt; of this feature, as well as
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/js/drag-feedback-images.js&quot;&gt;associated JS code&lt;/a&gt; 
        available.  The gist, however, is sketched out in these code snippets:
    &lt;/p&gt;
    &lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
var dt = ev.originalEvent.dataTransfer;    

dt.setDragImage( $('#feedback_image h2')[0], 0, 0);

dt.setDragImage( $('#logo')[0], 32, 32); 

var canvas = document.createElement(&quot;canvas&quot;);
canvas.width = canvas.height = 50;

var ctx = canvas.getContext(&quot;2d&quot;);
ctx.lineWidth = 8;
ctx.moveTo(25,0);
ctx.lineTo(50, 50);
ctx.lineTo(0, 50);
ctx.lineTo(25, 0);
ctx.stroke();

dt.setDragImage(canvas, 25, 25);
    &lt;/pre&gt;
    &lt;p&gt;
        You can supply a DOM node as the first parameter to 
        &lt;code&gt;setDragImage()&lt;/code&gt;, which includes everything from
        text to images to &lt;code&gt;canvas&lt;/code&gt; elements.  The
        second two parameters indicate at what left and top offset
        the mouse should appear in the image while dragging.
    &lt;/p&gt;&lt;p&gt;

        For example, since the &lt;code&gt;#logo&lt;/code&gt; image is 64x64,
        the parameters in the second &lt;code&gt;setDragImage()&lt;/code&gt;
        method places the mouse right in the center of the image.
        On the other hand, the first call positions the feedback
        image such that the mouse rests in the upper left corner.
    &lt;/p&gt;&lt;p&gt;
    &lt;/p&gt;
&lt;/div&gt;




&lt;div id=&quot;dragfeedback&quot;&gt;

    &lt;h2&gt;Using Drop Effects&lt;/h2&gt;
    &lt;p&gt;
        As mentioned at the start of this article, the drag and drop
        interaction has been used to support actions such as copying,
        moving, and linking.  Accordingly, the HTML 5 specification 
        accomodates these operations in the form of the 
        &lt;code&gt;effectAllowed&lt;/code&gt; and &lt;code&gt;dropEffect&lt;/code&gt;
        properties exposed by the Event object.
    &lt;/p&gt;
    &lt;p&gt;

        For a quick fix, check out the
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html#drag_effects&quot;&gt;a live demo&lt;/a&gt; 
        of this feature, as well as the
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/js/drag-effects.js&quot;&gt;associated JS code&lt;/a&gt;.
    &lt;/p&gt;&lt;p&gt;
        The basic idea is that the &lt;code&gt;dragstart&lt;/code&gt; event
        listener can set a value for &lt;code&gt;effectAllowed&lt;/code&gt; like so:
    &lt;/p&gt;

    &lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
var dt = ev.originalEvent.dataTransfer;
switch (ev.target.id) {
    case 'effectdrag0': dt.effectAllowed = 'copy'; break;
    case 'effectdrag1': dt.effectAllowed = 'move'; break;
    case 'effectdrag2': dt.effectAllowed = 'link'; break;
    case 'effectdrag3': dt.effectAllowed = 'all'; break;
    case 'effectdrag4': dt.effectAllowed = 'none'; break;
}
    &lt;/pre&gt;
    &lt;p&gt;The choices available for this property include the following:&lt;/p&gt;
    &lt;dl&gt; 
        &lt;dt&gt;&lt;code&gt;none&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;no operation is permitted &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;copy&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;copy only &lt;/dd&gt;

        &lt;dt&gt;&lt;code&gt;move&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;move only &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;link&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;link only &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;copyMove&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;copy or move only &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;copyLink&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;copy or link only &lt;/dd&gt;
        &lt;dt&gt;&lt;code&gt;linkMove&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;link or move only &lt;/dd&gt;

        &lt;dt&gt;&lt;code&gt;all&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;copy, move, or link &lt;/dd&gt;
    &lt;/dl&gt;
    &lt;p&gt;
        On the other end, the &lt;code&gt;dragover&lt;/code&gt; event listener 
        can set the value of the
        &lt;code&gt;dropEffect&lt;/code&gt; property to indicate the expected effect
        invoked on a successful drop.  If the value does
        not match up with &lt;code&gt;effectAllowed&lt;/code&gt;, the drop will
        be considered cancelled on completion.
    &lt;/p&gt;&lt;p&gt;

        In the 
        &lt;a target=&quot;_new&quot; href=&quot;http://decafbad.com/2009/07/drag-and-drop/api-demos.html#drag_effects&quot;&gt;a live demo&lt;/a&gt;,
        you should be able to see that only elements with matching
        effects can be dropped into the appropriate drop zones.  This
        is accomplished with code like the following:
    &lt;/p&gt;
    &lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
var dt = ev.originalEvent.dataTransfer;
switch (ev.target.id) {
    case 'effectdrop0': dt.dropEffect = 'copy'; break;
    case 'effectdrop1': dt.dropEffect = 'move'; break;
    case 'effectdrop2': dt.dropEffect = 'link'; break;
    case 'effectdrop3': dt.dropEffect = 'all'; break;
    case 'effectdrop4': dt.dropEffect = 'none'; break;
}
    &lt;/pre&gt;
    &lt;p&gt;
        Although the OS itself can provide some feedback, you 
        can also use these properties to update your own visible 
        feedback, both on the dragged element and on the drop zone
        itself.
    &lt;/p&gt;

&lt;/div&gt;




&lt;div id=&quot;conclusion&quot;&gt;
    &lt;h2&gt;Conclusion&lt;/h2&gt;
    &lt;p&gt;
        The new first-class drag and drop events in HTML5 and Firefox
        make supporting this form of UI interaction simple, concise,
        and powerful in the browser.  But beyond the new simplicity of
        these events, the ability to transfer content between
        applications opens brand new avenues for web-based applications
        and collaboration with desktop software in general.
    &lt;/p&gt;&lt;p&gt;
    &lt;/p&gt;&lt;p&gt;
    &lt;/p&gt;
&lt;/div&gt;




&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090962&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://lmframework.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=03dc722b1852367f02b0b21f02b10675&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://lmframework.com&quot;&gt;David Semeria&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090962&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-16T17:56:52&quot;&gt;2009-07-16T17:56:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Wow - thanks for a great introduction to D+D in HTML 5, I'm really looking forward to giving it a thorough road test. &lt;/p&gt;

&lt;p&gt;The key part of the implementation are the target listeners, because, as I'm sure you're aware, onmouseover would historically never fire over the target element because the dragged item would always 'cover it up'. BTW, my proposed solution was to add an 'event transparency' property, which would have made the dragged item invisible from the point of view of selected events, eg onmouseover.&lt;/p&gt;

&lt;p&gt;This implementation is going to take a lot of pain away. You have no idea how many hoops I had to jump through to get a fully generic D+D implementation working without these new calls.&lt;/p&gt;

&lt;p&gt;If you're interested, you can see it working here: http://lmframework.com/page.php?id=vd_twig_short_2&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090964&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=cee7ac3f63d7e8c1367e170bec302c14&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Alex&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090964&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-17T00:13:23&quot;&gt;2009-07-17T00:13:23&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hey,&lt;/p&gt;

&lt;p&gt;Looks great and useful article.  For dragging from external applications (such as the Desktop) is a normal webpage able to get the data from the drop?  I was just playing with it and seem to always get what seems to be a security error with getData or mozGetDataAt.  However, the documentation seems to state that on drop that data should be made available to the page.  Likewise, in the same way an image can be dragged off the page onto the desktop, can an arbitrary element be dragged onto the desktop with whatever file content to be saved?  Thanks for the help.&lt;/p&gt;

&lt;p&gt;Alex&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090966&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://paulisageek.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=b3bb70a4bace7f9bd49f48b149ab95f9&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://paulisageek.com/&quot;&gt;Paul Tarjan&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090966&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-17T04:52:54&quot;&gt;2009-07-17T04:52:54&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Very nice, I didn't know that FF 3.5 actually had this implemented. Time to start playing :)&lt;/p&gt;

&lt;p&gt;Also, how did you do your code posts? Was it just pasting in HTML or do you have a better setup?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090967&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=066d1e75c9b938053ee6b3d48b1c0f6a&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Animal&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090967&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-17T14:35:21&quot;&gt;2009-07-17T14:35:21&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Seems pretty pointless pressing ahead with this when you just can't write a web app to use it. There's no support. All a bunch of whizzy fun I'm sure, but sod-all use.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090969&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090969&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-17T16:23:10&quot;&gt;2009-07-17T16:23:10&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Animal: Why can't you write a web app to use it?  It's in the HTML5 spec, works in Fx3.5 and Safari 4 / WebKit.  It doesn't have universal support yet, or course, but new standards never do.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090970&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.crearedesign.co.uk&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=87bf21798e390d9043dda7240c1b60f7&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.crearedesign.co.uk&quot;&gt;paul&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090970&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-21T08:08:26&quot;&gt;2009-07-21T08:08:26&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;very nice indeed! i like this, it has definitely opened up new avenues for interaction without using flash. but it will take time before people upgrade to the new browser. a lot of people who browse the web wont realise what the technology will bring and will use their current browser because it does the job!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090971&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=04de859cfd6ef0b75e4ea3cbea143190&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Joel&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090971&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-21T14:36:04&quot;&gt;2009-07-21T14:36:04&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Excellent demos of the new features.&lt;/p&gt;

&lt;p&gt;When using a feedback image on a zoomed in page, should the image not also be scaled up automatically?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090973&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=41708&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=6d3bf986abdbb431991c3b02eb6e2335&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=41708&quot;&gt;RenegadeX&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090973&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-22T04:13:46&quot;&gt;2009-07-22T04:13:46&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Dragging &amp;amp; dropping &lt;em&gt;is&lt;/em&gt; as you say, a &quot;one of the most fundamental interations&quot; that users of computer graphical interfaces have come to know, and expect.&lt;/p&gt;

&lt;p&gt;It therefore completes dumbfounds me how it is that we &lt;em&gt;still&lt;/em&gt; can not natively drag &amp;amp; scroll (&amp;amp; then drop) in Firefox. We can only drag &amp;amp; drop an item within the currently visible portion of a Firefox webpage or tab, no further up, no further down.&lt;/p&gt;

&lt;p&gt;That is should be limited makes absolutely no sense. Microsoft built the function into their Windows 3.x (file) Explorer, and then when visual browsers came along, naturally carried it through into Internet Explorer. &lt;/p&gt;

&lt;p&gt;Firefox Bug 41708, &quot;Should be able to scroll in the viewport while dragging&quot; was opened in June, 2000 (yes, 9 years ago!) and remains open, and is disregarded by Firefox developers as little more than a trivial little annoyance, and therefore is and should be treated as a low-importance 'enhancement' rather than as the 'standard feature' it should really be.&lt;/p&gt;

&lt;p&gt;If it weren't for the extension 'DragToScroll', which has been around for 3-1/2 years now (not updated in a long time but still works if you override version compatibility), I would have dumped Firefox and switched to a different browser (Maxthon 3, most likely).&lt;/p&gt;

&lt;p&gt;So, I'm wondering (and hoping) -- does the new HTML5 drag and drop specification include anything that if implemented properly would make it possible to scroll &amp;amp; drag?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090974&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090974&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-22T13:57:42&quot;&gt;2009-07-22T13:57:42&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@RenegadeX: Ugh.  I don't work on the browser itself, but I noticed that unexpected behavior on drag &amp;amp; drop.  The window really should scroll when you get toward the top or bottom while dragging - and, in fact, most pre-HTML5 JS frameworks do that in their own drag &amp;amp; drop abstractions.  &lt;/p&gt;

&lt;p&gt;Until / unless Firefox gets this fixed, the same sort of auto-scrolling could be hacked in to HTML5 drag and drop.  Not perfect, but it's doable.  That is, in the drag event, you can check if the mouse is near the upper or lower edge of the viewport - and if so, start scrolling appropriately. That's pretty much how the JS frameworks do it with old-school D&amp;D&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090975&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.copperbot.net&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=df48b2c2a3a2be51b1e15f10c5fb05da&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.copperbot.net&quot;&gt;CopperBot&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090975&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-23T21:41:07&quot;&gt;2009-07-23T21:41:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Very cool article! Thanks for sharing. HTML5 really is going to change everything about how we use and develop for the web. Pretty awesome!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090976&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.AmnesiaGames.cl&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=14ad888c23e28c85c222a73b6c633570&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.AmnesiaGames.cl&quot;&gt;Alexos&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090976&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-26T05:05:44&quot;&gt;2009-07-26T05:05:44&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hi, would DD work for uploading files? How can I display a progress bar?
Thanks! 
I've been looking for that several days, and found only applets which I can't use in my proyect :-)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090977&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.sjlwebdesign.co.uk&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=185cd965e0e8ccd15df2f90977cbeaf3&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.sjlwebdesign.co.uk&quot;&gt;Sam&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090977&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-28T13:54:26&quot;&gt;2009-07-28T13:54:26&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Looks fantastic, going to try it out now (once I have upgraded my FF)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090978&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.dankantor.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=60fc8331f617fc905fd682bc4f41ce8d&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.dankantor.com&quot;&gt;Dan Kantor&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090978&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-30T03:10:25&quot;&gt;2009-07-30T03:10:25&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Looks like effectAllowed and dropEffect are not working for FF 3.5 on the Mac. I see effects on Windows and Safari 4 on Mac. I've been playing around with adding borders to the drop target, but the + icon for copy really helps a lot. Hopefully Mozilla will fix this next update.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090979&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.thecssninja.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=8677c9f7c0f6d947bf318c1430d00bfd&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.thecssninja.com/&quot;&gt;Ryan&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090979&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-09-01T02:33:06&quot;&gt;2009-09-01T02:33:06&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Great article it's good to see developments in this area. I wrote an article on the further extensions Firefox 3.6 has done with the dataTransfer method by adding the file attribute so you can access local files and upload them without the need for file inputs. http://www.thecssninja.com/javascript/drag-and-drop-upload&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090982&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=1ed4bbef573bfc014d32356d53103ca2&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;phil swenson&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090982&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-09-03T22:58:36&quot;&gt;2009-09-03T22:58:36&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Why not a first class WYSIWYG rich text editor with copy from clipboard image support?  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;NO ONE&lt;/em&gt; has built a decent text editor in JavaScript - At least not that I've seen.  And browsers don't allow image paste for reasons I don't understand.  &lt;/p&gt;

&lt;p&gt;And by decent I mean just like you'd get in textmate or another editor.  Have the standard text editor features everyone expects:  tab, select indent/select unindent, resize image, home, end, duplicate line, delete line, styling, etc.&lt;/p&gt;

&lt;p&gt;would push the browser to the next level in killing the desktop.  non-techies hate wikis.  They want a real editor.  I do too actually.... would be great for forums, bug tracking system (imagine pasting screen shots in line with your bug desc), email, etc.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090983&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=deed51cddc830e162557b8f01383a057&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Jean-Denis&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090983&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-09-04T00:23:39&quot;&gt;2009-09-04T00:23:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Francisco Tomalski wrote up a nice piece on HTML 5 drag'n drop at http://www.alertdebugging.com/2009/08/16/on-html-5-drag-and-drop/&lt;/p&gt;

&lt;p&gt;where he uncovers that the proposed standard is partially broken. Any comment on his piece?&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090984&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://html5tutorial.net/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3876e030a3fc69a8b59a8c55829fb510&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://html5tutorial.net/&quot;&gt;Lisa&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090984&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-09-09T07:33:08&quot;&gt;2009-09-09T07:33:08&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;This is a great move forward no more relying on 3rd party apps and extensions to play video or audio, i have been reading up on HTML 5 at the &lt;a href=&quot;http://html5tutorial.net/&quot; title=&quot;HTML tutorials&quot; rel=&quot;nofollow&quot;&gt;HTML 5 Tutorials&lt;/a&gt; website, i am now playing around with one of the free templates and was wondering how to embed audio, so thanks a lot, great information, lets hope more people lean towards HTML 5 and SOON!!!&lt;/p&gt;

&lt;p&gt;The drag and drop feature i did not notice was already working in FF 3.5, i was told to get Safari to see HTML 5 in action. Thanks for a great post&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090985&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.useragentman.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=9a579fa051b35266678735c8a3751771&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.useragentman.com&quot;&gt;Zoltan Hawryluk&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090985&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2010-01-11T15:14:48&quot;&gt;2010-01-11T15:14:48&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;A million thank yous!  This article was great introduction to HTML5 D+D.  With it, I was able to extend it to other browsers.  It was a little painful at first because the browser implementations diverge in significant, but manageable ways.&lt;/p&gt;

&lt;p&gt;If you are interested, check out my article at http://www.useragentman.com/blog/2010/01/10/cross-browser-html5-drag-and-drop/ if you are interested in my results.&lt;/p&gt;

&lt;p&gt;I noticed you haven't blogged in a while - I hope you haven't stopped totally and continue to share with the webdev community.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221090986&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.lingua-franka.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e65f416e42c12571ba1c86ae2dadd99f&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.lingua-franka.com&quot;&gt;Raul&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221090986&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-04-26T23:56:02&quot;&gt;2011-04-26T23:56:02&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hi, Leslie. I've just come across a problem that's driving me nuts. I'm not fully comfortable with D&amp;amp;D, but managed to move a crosshairs image over a map to very precisely controlled positions. It worked great on FF 3.6 and FF 4. After a couple of days of successful testing, the image suddenly refused to de dropped after being dragged (it rather flew back to its previous position). Do you know if there is a bug in FF that might cause this? &lt;/p&gt;

&lt;p&gt;BTW, during the programming process I updated Firebug, which also is getting a little cranky.&lt;/p&gt;

&lt;p&gt;Thanks for your prompt answer, Raul&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-324410737&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/google-4014af7ac4ea5d00df95bef4503b78dd.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Alexander Plutov&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-324410737&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-10-01T11:51:12&quot;&gt;2011-10-01T11:51:12&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;Good post about Drag &amp; Drop http://plutov.by/post/html5_drag_and_drop&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>7 facts about me</title>
        <link href="http://decafbad.com/blog/2009/01/23/7-facts-about-me"/>
        <updated>2009-01-23T16:59:54+00:00</updated>
        <id>http://decafbad.com/blog/2009/01/23/7-facts-about-me</id>
        <content type="html">&lt;p&gt;So, it finally happened—&lt;a href=&quot;http://weblogs.mozillazine.org/stephend/archives/2009/01/7_facts_about_s.html&quot;&gt;I've been tagged by Stephen Donner&lt;/a&gt;.  I've not been one to follow memes in this blog, but this one's been going around the &lt;a href=&quot;http://planet.mozilla.org/&quot;&gt;Mozillasphere&lt;/a&gt; for awhile now and has been kind of interesting.  I'm half-tempted to bookmark and tag all the entries I've caught so far.  Anyway, the rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://weblogs.mozillazine.org/stephend/archives/2009/01/7_facts_about_s.html&quot;&gt;Link to your original tagger(s)&lt;/a&gt; and list these rules in your post.&lt;/li&gt;
&lt;li&gt;Share seven facts about yourself in the post.&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;Tag seven people at the end of your post by leaving their names and the links to their blogs.&lt;/strike&gt;&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;Let them know they’ve been tagged.&lt;/strike&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Now, for your random facts, after the jump:&lt;/p&gt;

&lt;!--more--&gt;


&lt;ol&gt;
&lt;li&gt;My wife is a nerd, who tracked me down via a user name shown in the webcam picture I used for my Yahoo! Personals ad, in order to avoid paying to reply.  &lt;a href=&quot;http://deus-x.livejournal.com/91013.html&quot; title=&quot;An old entry on LiveJournal, only a few dates in with my now-wife.&quot;&gt;Dial-up BBSes and DOOR games played a part in our courtship&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We have &lt;a href=&quot;http://en.wikipedia.org/wiki/Ocicat&quot;&gt;two ocicats&lt;/a&gt;, littermates named &lt;a href=&quot;http://en.wikipedia.org/wiki/Puck_(mythology)&quot;&gt;Puck&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Inanna&quot;&gt;Inanna&lt;/a&gt;.  They're both &lt;a href=&quot;http://www.flickr.com/photos/deusx/60975345/in/set-1316941/&quot; title=&quot;Look at these cute kitties.&quot;&gt;very cute&lt;/a&gt; and are &lt;a href=&quot;http://www.flickr.com/photos/deusx/60976282/in/set-1316941/&quot; title=&quot;Look at these awesome cats.&quot;&gt;more awesome&lt;/a&gt; than anyone else's cats.&lt;/li&gt;
&lt;li&gt;I have &lt;a href=&quot;http://www.sleepapnea.org/&quot;&gt;sleep apnea&lt;/a&gt;, and use &lt;a href=&quot;http://en.wikipedia.org/wiki/Positive_airway_pressure&quot;&gt;a CPAP machine&lt;/a&gt; every night.  &lt;a href=&quot;http://decafbad.com/blog/2004/12/03/if-you-snore-get-tested-for-sleep-apnea-now&quot; title=&quot;No, really, go get tested for sleep apnea if you snore.&quot;&gt;If you snore, go get tested&lt;/a&gt;.  Heart disease, &lt;a href=&quot;http://decafbad.com/blog/2007/09/25/dad&quot; title=&quot;RIP Dad.&quot;&gt;of which my snoring father died&lt;/a&gt;, is one of many possible consequences of untreated sleep apnea.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://decafbad.com/blog/2003/06/13/newly-digital&quot; title=&quot;I was newly digital in 1983&quot;&gt;Although I have been a computer nerd since the age of 7&lt;/a&gt;, I had the wild notion in starting college that I wanted to be &lt;a href=&quot;http://www.algonac.k12.mi.us/ahs/Newspaper/newspaper1.htm&quot; title=&quot;I was production editor of my High School newspaper!&quot;&gt;a journalist&lt;/a&gt; or a psychologist.  Luckily, the web took off during my freshman year, which let me be a little of all the above.  &lt;a href=&quot;http://decafbad.com/blog/colophon#growup&quot; title=&quot;An explanation of that image at the bottom of the page.&quot;&gt;I'm not sure why I ever thought I'd be anything other than a computer nerd&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I'm &lt;a href=&quot;http://www.theatlantic.com/doc/200303/rauch&quot;&gt;a complete introvert&lt;/a&gt; and though I work hard at being sociable, I need a day or two alone for every half-day or so spent being social.  My main coping mechanism since even before my teenage years was to make friends from behind a keyboard and screen, and the internet has made that even more scalable as I've grown up.  And now, I get to work that way too—HUGE SUCCESS!&lt;/li&gt;
&lt;li&gt;In my senior year of High School, I won 2nd place in &lt;a href=&quot;http://www.aynrand.org/site/PageServer?pagename=education_contests_tf&quot;&gt;the Ayn Rand Institute's &lt;em&gt;The Fountainhead&lt;/em&gt; essay contest&lt;/a&gt;.  This was the culmination of having read every scrap of Ayn Rand's writing I could get my hands on throughout High School.  I used the money to take a summer trip to visit a friend who'd moved to Texas and to buy my &lt;a href=&quot;http://decafbad.com/blog/2007/09/21/sadness-for-my-dead-palmtop&quot;&gt;well used, now dead palmtop PC&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I like extremely hot spicy food, insanely hop-saturated beer, Irish whiskey, and fresh locally roasted coffee.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;a href=&quot;http://blog.mozilla.com/bhearsum/archives/71&quot;&gt;Per Ben Hearsum&lt;/a&gt;, I think I'll make this a leaf node in the meme spanning the &lt;a href=&quot;http://planet.mozilla.org/&quot;&gt;Mozillasphere&lt;/a&gt;.  In a quick 5 minute search, it looks like most blogging Mozillans have already been tagged, and I'm not going to spread the contagion outside the organization.  :)&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082669&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://djst.org/blog/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=c373b563731bfba5dae207e3f66539dd&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://djst.org/blog/&quot;&gt;David Tenser&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082669&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-23T18:26:51&quot;&gt;2009-01-23T18:26:51&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Re #5, I just realized how annoying my &quot;les is more&quot; jokes must be! I need to figure out how I can deliver these high class jokes in a more subtle way while still being able to entertain myself. Maybe I could just think about the phrase instead?&lt;/p&gt;

&lt;p&gt;Re #7, I couldn't agree more!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082671&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082671&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-23T19:20:44&quot;&gt;2009-01-23T19:20:44&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@David: Heh, heh.  The &quot;les is more&quot; jokes aren't really annoying - they've just kind of graduated up to a bigger meta-joke that I've gotten used to.  :)  No worries!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082672&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://gfmorris.net/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=505e3b39dcea29b3ded74a5494c493eb&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://gfmorris.net/&quot;&gt;Geof F. Morris&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082672&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-24T00:15:47&quot;&gt;2009-01-24T00:15:47&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I had always read you talking about CPAP and just thought you were crazy ... then I had an NPSG and got mine.  HOLY CRAP YOU ARE NOT KIDDING.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082676&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://pattimst3k.livejournal.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=404400e23c8a644635e9eeeec19a2175&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://pattimst3k.livejournal.com/&quot;&gt;http://pattimst3k.livejournal.&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082676&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-24T03:59:30&quot;&gt;2009-01-24T03:59:30&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;When did you and your wife meet? I met my husband on line back in 1999 when people still thought that you only met psychopaths on the internet.  No one could understand it...until Jeff explained how picky I am and then it made sense :)
Hopheads rule!!&amp;lt;/p
TeacherPatti&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-225605269&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.cpapandsupplies.com/images/infographic/cpap.png&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0cbd1bbbd946fdec40b30dd68d414999&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.cpapandsupplies.com/images/infographic/cpap.png&quot;&gt;Easysleeper&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-225605269&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2011-06-14T10:01:28&quot;&gt;2011-06-14T10:01:28&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;I am so glad that you talk about your sleep apnea and CPAP machine as openly as you do.

People shouldn't be ashamed of it! &lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Enter the LizardFeeder</title>
        <link href="http://decafbad.com/blog/2009/01/06/enter-the-lizardfeeder"/>
        <updated>2009-01-06T00:01:54+00:00</updated>
        <id>http://decafbad.com/blog/2009/01/06/enter-the-lizardfeeder</id>
        <content type="html">&lt;p&gt;[caption id=&quot;attachment_1582&quot; align=&quot;alignright&quot; width=&quot;247&quot; caption=&quot;The Mozilla Tree&quot;]&lt;a href=&quot;http://blog.lizardwrangler.com/2008/07/29/the-mozilla-tree/&quot;&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2009/01/moz-tree.jpg&quot; alt=&quot;The Mozilla Tree&quot; title=&quot;moz-tree&quot; width=&quot;247&quot; height=&quot;191&quot; class=&quot;size-full wp-image-1582&quot; /&gt;&lt;/a&gt;[/caption]&lt;/p&gt;

&lt;p&gt;Behind Firefox is Mozilla, and behind Mozilla is a community.  And the Mozilla community acts a lot like an ecosystem, which can be visualized &lt;a href=&quot;http://blog.lizardwrangler.com/2008/07/29/the-mozilla-tree/&quot;&gt;as a kind of living tree&lt;/a&gt;—not to confused with the &lt;a href=&quot;https://developer.mozilla.org/en/mozilla-central&quot;&gt;mozilla-central tree&lt;/a&gt;.  Oh yeah, and Mozilla is the name of &lt;a href=&quot;http://www.mozilla.org/reorganization/&quot;&gt;both a Foundation and a Corporation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Confused yet?  If not, then we should talk so you can explain it to me, because it all looks pretty tangly and &lt;a href=&quot;http://en.wikipedia.org/wiki/Intertwingularity&quot;&gt;intertwingled&lt;/a&gt; to me.  Nonetheless, it seems to work, and produces a good chunk of my favorite software and technologies.&lt;/p&gt;

&lt;p&gt;There are many efforts to track what's going on—including &lt;a href=&quot;http://planet.mozilla.org/&quot;&gt;planets&lt;/a&gt; and &lt;a href=&quot;http://blog.mozilla.com/about_mozilla/&quot;&gt;newsletters&lt;/a&gt; and &lt;a href=&quot;https://bugzilla.mozilla.org/&quot;&gt;bugzillas&lt;/a&gt; and &lt;a href=&quot;https://wiki.mozilla.org/WeeklyUpdates/2009-01-05&quot;&gt;wikis&lt;/a&gt; and &lt;a href=&quot;http://hg.mozilla.org/&quot;&gt;repositories&lt;/a&gt; and &lt;a href=&quot;http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox&quot;&gt;tinderboxen&lt;/a&gt;.  Some of these resources report on, or are driven by, the activity occurring in the others.  Some are automated, and others are carefully stitched together by hand.  None offer a full picture of what's going on in the &lt;a href=&quot;http://ascher.ca/blog/2008/06/19/whats-mozillas-scope-what-should-it-be/&quot;&gt;Mozilla galaxy&lt;/a&gt; in a way that's casually comprehensible by a sane human being.&lt;/p&gt;

&lt;p&gt;Of course, that's not a slight against any of these sites or the people maintaining them—extracting an overview from such an organic phenomenon is neither easy nor straightforward.  But, it might be fun to try.&lt;/p&gt;

&lt;p&gt;As an infovore and avid practitioner of &lt;a href=&quot;http://decafbad.com/blog/2005/09/23/the-zen-of-firehose-drinking&quot;&gt;continuous partial attention&lt;/a&gt;, my first impulse is to reach for a firehose and stick my head into the stream.  Relax, defocus, and try to let my pattern recognizers do their thing—sometimes those pattern recognizers are in my head, and &lt;a href=&quot;http://decafbad.com/hgwebdir.cgi/hacking_rss_and_atom/file/f7a85b9fd48a/ch15_popular_links.py&quot;&gt;sometimes they're written in Python&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[caption id=&quot;attachment_1585&quot; align=&quot;alignright&quot; width=&quot;225&quot; caption=&quot;Firefox Victory!&quot;]&lt;a href=&quot;http://www.flickr.com/photos/intothefuzz/2571283860/in/set-72157605179678562/&quot;&gt;&lt;img src=&quot;http://decafbad.com/blog/wp-content/uploads/2009/01/robo-225x300.jpg&quot; alt=&quot;Firefox Victory Robot&quot; title=&quot;firefox-victory&quot; width=&quot;225&quot; height=&quot;300&quot; class=&quot;size-medium wp-image-1585&quot; /&gt;&lt;/a&gt;[/caption]&lt;/p&gt;

&lt;p&gt;But, for Mozilla, I couldn't find a stream of sufficient volume or completeness to satisfy me or &lt;a href=&quot;http://www.digitpress.com/dpsoundz/destroyhimrobots.wav&quot;&gt;my robots&lt;/a&gt;.  Happily, though, my feeding urge found itself aligned with a project to discover the patterns of contribution in the Mozilla community and to find a way to thank the contributors responsible.&lt;/p&gt;

&lt;p&gt;So, while we're still working on the thank-you angle, allow me to introduce you to &lt;a href=&quot;http://feeds.mozilla.com/&quot;&gt;the Lizardfeeder&lt;/a&gt;.  The &lt;a href=&quot;http://feeds.mozilla.com/&quot;&gt;LizardFeeder&lt;/a&gt; is a feed aggregator, &lt;a href=&quot;https://svn.mozilla.org/projects/lizardfeeder/trunk/&quot;&gt;whose source code&lt;/a&gt; is built atop &lt;a href=&quot;http://www.intertwingly.net/code/venus/&quot;&gt;Sam Ruby's Planet Venus&lt;/a&gt;. The &lt;a href=&quot;http://feeds.mozilla.com/&quot;&gt;LizardFeeder&lt;/a&gt; pulls together and archives activity streams from a wide variety of Mozilla community sources.  Beyond the usual human-readable pages produced by a &lt;a href=&quot;http://planet.mozilla.org/&quot;&gt;blog-gathering Planet&lt;/a&gt;, the &lt;a href=&quot;http://feeds.mozilla.com/&quot;&gt;LizardFeeder&lt;/a&gt; accumulates &lt;a href=&quot;http://feeds.mozilla.com/archives/index.json&quot;&gt;statistical and historical data&lt;/a&gt; meant for consumption and analysis by robots.&lt;/p&gt;

&lt;p&gt;At present, the only robot navigating the &lt;a href=&quot;http://feeds.mozilla.com/&quot;&gt;LizardFeeder&lt;/a&gt; archives is an AJAX-ified user interface that animates the firehose as a near real-time or time-lapsed stream of events scrolling by.&lt;/p&gt;

&lt;p&gt;This is just meant as a conversation starter, though.  I'm hoping to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=469838&quot;&gt;gather feedback and find more sources&lt;/a&gt;, as well as to entice creative community members to come up with more sophisticated visualizations of this data.&lt;/p&gt;

&lt;p&gt;So, take a look, &lt;a href=&quot;http://feeds.mozilla.com/&quot;&gt;check it out&lt;/a&gt;, and let me know what you think!&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083355&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=eb4ef8f72f933b04a27b118070ac538e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;dria&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083355&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-06T01:26:18&quot;&gt;2009-01-06T01:26:18&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Is there a list of what sources are already being read by the LizardFeeder anywhere?  I scanned through the various links here but didn't see anything obvious :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083356&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083356&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-06T01:37:15&quot;&gt;2009-01-06T01:37:15&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yeah, that part could use some improvement.  There's a monster list here:&lt;/p&gt;

&lt;p&gt;http://feeds.mozilla.com/sources.opml&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083358&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://briks.si&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=315c86c9c01a5ced617aa58ef641902d&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://briks.si&quot;&gt;Brian King&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083358&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-06T10:11:46&quot;&gt;2009-01-06T10:11:46&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Excellent stuff. I was going to ask about access to the list of sources for each category, but Dria beat me to it.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083359&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083359&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-06T15:26:50&quot;&gt;2009-01-06T15:26:50&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Actually, it occurs to me that this config file might work as a more readable version of the list of sources:&lt;/p&gt;

&lt;p&gt;https://svn.mozilla.org/projects/lizardfeeder/trunk/conf/config.ini-dist&lt;/p&gt;

&lt;p&gt;There's also this, which is where most of the previous list came from: &lt;/p&gt;

&lt;p&gt;https://svn.mozilla.org/projects/lizardfeeder/trunk/conf/hg-feeds.opml-dist&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083360&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ozten.myopenid.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=4021c2acfc5b98b6dfe2d0ec26432ce1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ozten.myopenid.com/&quot;&gt;Austin King&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083360&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-01-06T20:55:52&quot;&gt;2009-01-06T20:55:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Thanks for the background surrounding lizard feeder. Great post!&lt;/p&gt;

&lt;p&gt;+1 Dria and Brian&lt;/p&gt;

&lt;p&gt;Maybe make the title of the link to the OPML more descriptive than just &quot;Feeds&quot; and/or link to it in the body of the UI too and write something around it to encourage other's visualizations.&lt;/p&gt;

&lt;p&gt;Awesome work Les.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083361&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=a1c5374b594738e98be48f7f193443b3&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Sanjay Parekh&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083361&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-02-04T20:38:04&quot;&gt;2009-02-04T20:38:04&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Is the AJAX UI available anywhere for download?  I'd like to hack it for another use altogether.  Great visualization and great application.  Good job.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221083362&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=7881dcee98d7df7e89939afd191c92ce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Deen Seth.&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221083362&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-09-16T18:21:02&quot;&gt;2009-09-16T18:21:02&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;This is a very good idea.  Can we accomplish the same result using Yahoo Pipe?  Do you plan to add events from Bugzilla, and mailing list to the feed?&lt;/p&gt;

&lt;p&gt;I am more interested in development activities.  There aren't much in code category.&lt;/p&gt;

&lt;p&gt;I am interested in analyzing development related events.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Improving my Delicious command for Ubiquity</title>
        <link href="http://decafbad.com/blog/2008/09/07/improving-my-delicious-command-for-ubiquity"/>
        <updated>2008-09-07T05:20:20+00:00</updated>
        <id>http://decafbad.com/blog/2008/09/07/improving-my-delicious-command-for-ubiquity</id>
        <content type="html">&lt;p&gt;After writing up my &lt;a href=&quot;http://decafbad.com/blog/2008/09/01/writing-a-delicious-command-for-ubiquity&quot;&gt;first stab at a Delicious command for Ubiquity&lt;/a&gt;, I planned to continue revising it based on feedback and to work on exploring more of what Ubiquity enables.  I started looking into writing my own nouns for tag suggestions, as well as playing with page load and browser startup hooks.  And, I also started poking at a little bit of deeper extension development, which took up most of my time today.&lt;/p&gt;

&lt;p&gt;I've &lt;a href=&quot;http://decafbad.com/UbiquityCommands/&quot;&gt;updated my UbiquityCommands&lt;/a&gt; page and checked in my latest revision of &lt;a href=&quot;http://decafbad.com/hgwebdir.cgi/UbiquityCommands/file/tip/delicious.ubiq.js&quot;&gt;the Delicious command&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The main new feature is a status bar item reporting bookmarks for the current page:&lt;/p&gt;

&lt;p&gt;&lt;img style=&quot;padding: 0.25em&quot; src=&quot;http://decafbad.com/2008/ubiq-del-status.jpg&quot; /&gt;&amp;nbsp;&lt;img style=&quot;padding: 0.25em&quot; src=&quot;http://decafbad.com/2008/ubiq-del-tip.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see above, the command now comes with a status bar panel powered by the &lt;a href=&quot;http://delicious.com/help/feeds&quot;&gt;Delicious URL info JSON feed&lt;/a&gt;, providing bookmarking info on every page visited.  It shows a bookmark count, a tooltip with further information, and sends the user to the URL info page on Delicious when clicked.  It mostly works, but it could use some looking at.  This is my first time really cracking open the hood on Firefox and XUL, and so I'm feeling around in the dark.&lt;/p&gt;

&lt;p&gt;Specifically, I'm using Ubiquity's page load hook—but I'm also trying to augment that by tracking tab selection events, in order to keep the status bar info updated for the active tab.  But then, that leads me to trying to track new windows, to attach the tab selection event handler for every newly opened window.  Or I could just be barking up the wrong tree entirely.  At any rate, the code is probably brain-dead dumb, so I hope someone can clue me into a better way.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088289&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://blog.mozilla.com/gen/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=ef1b5a29836fa211b938d8ccbbd3e0a1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://blog.mozilla.com/gen/&quot;&gt;Gen Kanai&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088289&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-07T08:10:39&quot;&gt;2008-09-07T08:10:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Les, you may want to let R/RW know about your new command.&lt;/p&gt;

&lt;p&gt;http://www.readwriteweb.com/archives/the_ultimate_list_of_custom_ubiquity_verbs.php&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088292&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=af8b180d6d4092fb42fe6b5e0b21536c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com/&quot;&gt;Abimanyu Raja&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088292&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-07T08:55:52&quot;&gt;2008-09-07T08:55:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I disagree... Your command doesn't fit on that list. It's way too good for that list. :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088296&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=61fc20fbb1afbfc057df523f9dae79da&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Jeton&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088296&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-07T21:56:43&quot;&gt;2008-09-07T21:56:43&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Well, i was having problems understanding the &quot;tagged&quot; and &quot;entitled&quot;. Didn't knew it was without brackets....&lt;/p&gt;

&lt;p&gt;But i gotta say, it actually replaces the delicious firefox extension for its easy way of posting links on delicious.&lt;/p&gt;

&lt;p&gt;Well done, and seeing that it's only the begining i don't doubt that it will improve much more!&lt;/p&gt;

&lt;p&gt;Oh, and i had a WTF when i first saw that delicous icon on the status bar of Firefox. Didn't knew it was from your command ;)&lt;/p&gt;

&lt;p&gt;Thanks for making this.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088300&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=61fc20fbb1afbfc057df523f9dae79da&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Jeton&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088300&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-07T22:20:09&quot;&gt;2008-09-07T22:20:09&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;One question:
Is there a chance to remove the quotation marks (i meant the same on the above comment as well, not brackets) when saving a note about a bookmark?&lt;/p&gt;

&lt;p&gt;Everytime i bookmark a page via this command, it quotes the note.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088302&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088302&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-07T22:41:20&quot;&gt;2008-09-07T22:41:20&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Jeton: I guess the quoted thing is something I do by habit, to discriminate between what's my comment and what's summary straight from the page.  One way you can force it unquoted is with the &quot;noted&quot; modifier.  So, select some text on the page, and you can do something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sha noted this tagged foo bar baz
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That should use the selected text without quotes.  Also, you can just type arbitrary stuff:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sha noted These are notes entitled A title goes here tagged foo bar baz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088304&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088304&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-07T22:44:59&quot;&gt;2008-09-07T22:44:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Jeton: Actually, I just made a check-in that flips it around.  There's now a &quot;quoted&quot; modifier to wrap the notes in quotes, leaving it unquoted otherwise.  I might be the weirdo here in my quote usage :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088306&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jackmottram.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3a6aa11eff36e9d968119a6bb4cea05e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jackmottram.com/&quot;&gt;Jack Mottram&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088306&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-09T10:04:12&quot;&gt;2008-09-09T10:04:12&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I'm a weirdo too, and now I can't quite work out how to get quotes around stuff I'm quoting from a page. I assumed this would work:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sha this quoted&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;but it just adds the word 'quoted' to the end of the quoted text, without quotes.&lt;/p&gt;

&lt;p&gt;Similarly:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sha quoted this tagged test&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;adds the words 'tagged' and 'test' to the end of the quoted text, though this time everything _is_ in quotes. (So it seems I can get quotes, but lose the ability to tag in the process.)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sha this quoted text&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;puts the word 'text' in quotes, but drops the selected text...&lt;/p&gt;

&lt;p&gt;So, I give up - what's the secret to getting quotes around quoted text?!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088310&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jackmottram.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3a6aa11eff36e9d968119a6bb4cea05e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jackmottram.com/&quot;&gt;Jack Mottram&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088310&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-09T10:11:59&quot;&gt;2008-09-09T10:11:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;And of course I worked it out immediately after leaving that comment:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sha tagged test monkey whatever quoted this&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;works just fine (but feels the wrong way around to be tagging before quoting). And now I can't work out how to quote &lt;i&gt;and&lt;/i&gt; note, so to speak. I tried adding&lt;/p&gt;

&lt;p&gt;&lt;code&gt;noted These are my comments on what I just quoted&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;but it doesn't work, it puts 'noted These are my &amp;amp;c.' inside the quotes...&lt;/p&gt;

&lt;p&gt;(I should say, despite all this moaning, I really have been enjoying using the command - it's very slick compared to the official add-on.)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088312&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088312&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-09T14:30:06&quot;&gt;2008-09-09T14:30:06&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Huh, weird - that's exactly how I use the command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sha quoted this tagged foo bar baz
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;One major difference, though, is that I'm using a bleeding edge checkout of the Ubiquity extension.  I wonder if there's a bug in the parser for the last release.  :(  &lt;/p&gt;

&lt;p&gt;The definition of the modifiers is pretty simple, so there's not a whole lot of debugging I can do in the command itself.  Ugh.&lt;/p&gt;

&lt;p&gt;Oh, and also: RIght now it's either plain notes or quoted notes.  Presence of the quoted modifier clobbers plain notes.  But, how that I think about it I wonder if I should make those work together.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088314&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://FromTheGut.us&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3be27db3db50892929ef892ab04621a4&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://FromTheGut.us&quot;&gt;Frank&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088314&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-09T17:40:39&quot;&gt;2008-09-09T17:40:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hello, &lt;/p&gt;

&lt;p&gt;I was wondering if there was any chance you could put together a post annotating/explaining the changes/additions to your improved Delicious command. In particular, some explanations of the code dealing with the statusbar would be helpful for us beginners. Thanks.&lt;/p&gt;

&lt;p&gt;Frank&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088317&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=357a20e8c56e69d6f9734d23ef9517e8&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Tony&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088317&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-10-22T05:12:52&quot;&gt;2008-10-22T05:12:52&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Not a big fan of things adding stuff my status bar. :/ Ubiquity commands should just focus on Ubiquity, not XUL changes in Firefox.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088320&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088320&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-10-29T16:04:28&quot;&gt;2008-10-29T16:04:28&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Tony: Actually, commands are just one of the goals of Ubiquity.  Easier XUL hacking, ala Greasemonkey, is another goal, albeit under-explored so far.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088321&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://dy-verse.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=40e05965a0c35ba44927a8e4b0546f9d&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://dy-verse.blogspot.com/&quot;&gt;http://dy-verse.blogspot.com/&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088321&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-04-27T14:50:43&quot;&gt;2009-04-27T14:50:43&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Here is a share-to-delicious ubiquity command that automatically generates tags using YAHOO pipes. It also uses the text selected on the page as notes and the page title as the title of the article. &lt;/p&gt;

&lt;p&gt;http://gist.github.com/26425&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221088327&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221088327&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-04-28T05:25:58&quot;&gt;2009-04-28T05:25:58&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Auto-generating tags via Yahoo Pipes is a neat trick, but it's unfortunately very much frowned upon by delicious.  Not that anything negative will happen to you, but it defeats the purpose of tagging altogether.&lt;/p&gt;

&lt;p&gt;Try searching for &quot;Lazy Sheep Bookmarklet&quot; and possibly read:&lt;/p&gt;

&lt;p&gt;http://www.mail-archive.com/ydn-delicious@yahoogroups.com/msg00853.html&lt;/p&gt;

&lt;p&gt;In particular - &quot;People add metadata so that 1) they can find things and 2) other people can find things. You are removing the step in which people add the tag metadata, thus making the system less valuable to themselves and others.&quot;&lt;/p&gt;

&lt;p&gt;The key word repeated there is &quot;people&quot;&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Writing a Delicious command for Ubiquity</title>
        <link href="http://decafbad.com/blog/2008/09/01/writing-a-delicious-command-for-ubiquity"/>
        <updated>2008-09-01T04:37:03+00:00</updated>
        <id>http://decafbad.com/blog/2008/09/01/writing-a-delicious-command-for-ubiquity</id>
        <content type="html">&lt;p&gt;In my &lt;a href=&quot;http://decafbad.com/blog/2008/08/31/ubiquity-cracks-open-personal-mashup-tinkering&quot; title=&quot;Ubiquity cracks open personal mashup tinkering&quot;&gt;last post&lt;/a&gt;, I got all fluffy about how cool &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; is but didn't share any code to prove the point.  As it happens, I have come up with at least one useful command that I'm starting to use habitually in posting bookmarks to Delicious.  You can &lt;a href=&quot;http://decafbad.com/UbiquityCommands/&quot;&gt;subscribe to my command&lt;/a&gt; or &lt;a href=&quot;http://decafbad.com/hg/UbiquityCommands/file/tip/delicious.ubiq.js&quot;&gt;check out the full source&lt;/a&gt;—this post will serve as a dissection of the thing.  Since this will be fairly lengthy, follow along after the jump.&lt;/p&gt;

&lt;p&gt;Oh, and it's been awhile since I posted something this in-depth around here, so feel free to let me know how this first draft works.  And, bug reports and patches are of course welcome.&lt;/p&gt;

&lt;!--more--&gt;


&lt;p&gt;To begin, consider the following code starting off the command source code:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;1&quot;&gt;
/**
 * share-on-delicious - an Ubiquity command for sharing bookmarks on
 * delicious.com
 *
 * l.m.orchard@pobox.com
 * http://decafbad.com/
 * Share and Enjoy!
 */
var uext = Application.extensions.get('ubiquity@labs.mozilla.com');

var cookie_mgr = Components.classes[&quot;@mozilla.org/cookiemanager;1&quot;]
    .getService(Components.interfaces.nsICookieManager);
&lt;/pre&gt;


&lt;p&gt;The first thing to note here is that a short header comment introduces the command.  This isn't required, but it's a good idea.  It's also something you can't really do with bookmarklets.  On the other hand, Greasemonkey user scripts expect metadata about the script to be provided here, but Ubiquity doesn't use this convention.&lt;/p&gt;

&lt;p&gt;Second, notice that the code accesses some chrome-level resources.  Again, this is something unavailable to bookmarklets and Greasemonkey user scripts.  Just take a look at the &lt;a href=&quot;http://developer.mozilla.org/en/FUEL&quot;&gt;FUEL library documentation&lt;/a&gt; to get a quick sense of what's available using that simplified API, not to mention what's available using the lower-level browser APIs.&lt;/p&gt;

&lt;p&gt;Now, check out this next chunk of code, which begins the construction of an Ubiquity command:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;13&quot;&gt;
CmdUtils.CreateCommand({
    
    name:        
        'share-on-delicious',
    icon:
        'http://delicious.com/favicon.ico',
    description: 
        'Share the current page as a bookmark on delicious.com',
    help:        
        'Select text on the page to use as notes, or enter your own ' + 
        'text after the command word.  You can also assign tags to the '+ 
        'bookmark with the &quot;tagged&quot; modifier, and alter the bookmark ' + 
        'default page title with the &quot;entitled&quot; modifier.  Note that ' + 
        'you must also already be logged in at delicious.com to use ' +
        'this command.',

    homepage:   
        'http://decafbad.com',
    author: { 
        name: 'Leslie Michael Orchard', 
        email: 'l.m.orchard@pobox.com' 
    },
    license:
        'MPL/GPL/LGPL',
&lt;/pre&gt;


&lt;p&gt;Whereas Greasemonkey scripts support metadata in the header comment, the Ubiquity command script API works a little differently.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://hg.toolness.com/ubiquity-firefox/file/tip/ubiquity/chrome/content/cmdutils.js&quot;&gt;&lt;code&gt;CmdUtils&lt;/code&gt; module&lt;/a&gt; provided by Ubiquity offers a &lt;code&gt;CreateCommand&lt;/code&gt; function, which expects an object as a parameter.  The object literal whose construction is begun in the code above serves as a self-contained package for the command, bearing metadata describing the command as well as containing all the code necessary to implement it.&lt;/p&gt;

&lt;p&gt;So, in the above code block, you can see the machine-readable description of the command—including a command name, display icon, home page URL, author information, and license.  The command name (&lt;code&gt;share-on-delicious&lt;/code&gt;) will be used by the Ubiquity command parser, but the rest of the description will also be used in the list of commands available to the user, invoked by the &lt;code&gt;command-list&lt;/code&gt; command, like so:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/2008/ubiq-share-on-delicious-list.jpg&quot; style=&quot;border: 1px solid #333; margin: 0.25em; padding: 0.25em&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Moving along, this next chunk of code introduces the first functional bits of the command:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;37&quot;&gt;
    takes: { notes: noun_arb_text },
    modifiers: { 
        tagged:  noun_arb_text,
        entitled: noun_arb_text
    },
&lt;/pre&gt;


&lt;p&gt;Like smart keyword shortcut bookmarks, Ubiquity commands accept user-supplied input.  But, what's unique to Ubiquity is that it employs a parser whose goal is to support something approximating natural language.  At present, this results in commands that support a single primary argument—declared above with the &lt;code&gt;takes&lt;/code&gt; property—and any number of additional keyword modifiers—declared above by the &lt;code&gt;modifiers&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;For the command under construction here, this establishes a pattern something like the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;share-on-delicious {notes} [tagged {tags} entitled {title}]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Content for the &lt;code&gt;{notes}&lt;/code&gt; argument can either be typed directly by hand, or it can be supplied by text highlighted on the page.  To use highlighted text, you can either issue the command alone, or use the word &lt;code&gt;this&lt;/code&gt; for the &lt;code&gt;{notes}&lt;/code&gt; argument before including further modifiers.&lt;/p&gt;

&lt;p&gt;The modifiers &lt;code&gt;tagged&lt;/code&gt; and &lt;code&gt;entitled&lt;/code&gt; are optional, and can be used in any order.  Each of these keywords signifies the start of a different argument—which unfortunately can collide with the literal data supplied for notes, which will hopefully be a rare occurrence.&lt;/p&gt;

&lt;p&gt;All of this adds up command invocations including the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;share-on-delicious
share-on-delicious I really like this page tagged nifty amusing
share-on-delicious this entitled This bookmark has no tags
sh this tagged osx software apple entitled This is good OS X software
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That last example is important—since I have no other commands starting with &quot;&lt;code&gt;sh&lt;/code&gt;&quot;, I can abbreviate the full command.  Ubiquity only requires enough of a command name to disambiguate it within your collection of commands.&lt;/p&gt;

&lt;p&gt;Another thing to note is the use of the constant value &lt;code&gt;noun_arb_text&lt;/code&gt;, which declares that these arguments should expect any arbitrary text as input.&lt;/p&gt;

&lt;p&gt;This facility is not exploited for the present command, but Ubiquity defines &lt;a href=&quot;http://hg.toolness.com/ubiquity-firefox/file/tip/ubiquity/chrome/content/nlparser/en/nountypes.js&quot;&gt;noun types&lt;/a&gt;.  These include concepts such as plain text, dates, address book contacts, browser tabs, bookmark tags, and more.  You can define your own noun types, as well as implement suggestion schemes that help guide the user toward constructing useful input values in the command interface.  You can &lt;a href=&quot;https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_Author_Tutorial#Introduction_to_Noun_Types&quot;&gt;read more about this&lt;/a&gt; in the official author tutorial.&lt;/p&gt;

&lt;p&gt;Next up is a quick bit of command-specific configuration:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;42&quot;&gt;
    /**
     * Command configuration settings.
     */
    _config: {
        // Base URL for the delicious v1 API
        api_base:      'https://api.del.icio.us',

        // Domain and name of the delicious login session cookie.
        cookie_domain: '.delicious.com',
        cookie_name:   '_user'
    },
&lt;/pre&gt;


&lt;p&gt;Since this command will be posting to Delicious via the V1 API, it's handy to declare the base URL for the API in an easily changed spot.  That way, you could change this value later on to point the command at another implementation of the API.&lt;/p&gt;

&lt;p&gt;Additionally, this command will employ a little-known authentication trick supported by the Delicious API that accepts the user's login cookie set by the Delicious website—this &quot;cookie god&quot; auth is used by the official Delicious addon for Firefox.  It's handy for piggybacking on the website login and removing the need to ask the user for their username and password again and possibly storing it in an insecure manner.&lt;/p&gt;

&lt;p&gt;In fact, this next chunk of code defines a utility method to rummage through the cookie jar:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;53&quot;&gt;
    /**
     * Dig up the Delicious login session cookie.
     */
    _getUserCookie: function() {
        var iter = cookie_mgr.enumerator;
        while (iter.hasMoreElements()) {
            var cookie = iter.getNext();
            if( cookie instanceof Components.interfaces.nsICookie &amp;&amp; 
                cookie.host.indexOf(this._config.cookie_domain) != -1 &amp;&amp; 
                cookie.name == this._config.cookie_name) {
                return decodeURIComponent(cookie.value);
            }
        }
    },
&lt;/pre&gt;


&lt;p&gt;The method defined above, &lt;code&gt;._getUserCookie()&lt;/code&gt;, uses the browser's cookie manager and the values defined in the previous configuration section to find the login session cookie set for Delicious.  Take note that this is far beyond the allowed capabilities of bookmarklets and Greasemoney user scripts—this is digging straight into the browser itself, skipping past the usual content-space security restrictions.&lt;/p&gt;

&lt;p&gt;In other words: In Ubiquity, &lt;em&gt;the gun is loaded&lt;/em&gt; and you should be careful.&lt;/p&gt;

&lt;p&gt;Moving along, consider this next utility method:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;67&quot;&gt;
    /**
     * Given input data and modifiers, attempt to assemble data necessary to
     * post a bookmark.
     */
    _extractBookmarkData: function(input_obj, mods) {
        return {
            _user:
                this._getUserCookie(),
            url:
                context.focusedWindow.location,
            description:
                mods.entitled.text || context.focusedWindow.document.title,
            extended: 
                input_obj.text,
            tags:
                mods.tagged.text
        };
    },
&lt;/pre&gt;


&lt;p&gt;Named &lt;code&gt;._extractBookmarkData()&lt;/code&gt;, this utility method accepts the results of Ubiquity's parser interpreting the primary argument and modifier arguments supplied by the user.  Using these data structures, it attempts to build a structure representing the fields of a Delicious bookmark.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;_user&lt;/code&gt; field is used for authentication via the site login cookie.  The &lt;code&gt;url&lt;/code&gt; is set from the location bar of the current page.  The &lt;code&gt;description&lt;/code&gt;, or title, field of the bookmark is taken from either the &lt;code&gt;entitled&lt;/code&gt; modifier or the title of the current page.  The &lt;code&gt;tags&lt;/code&gt;, if any, come from the &lt;code&gt;tagged&lt;/code&gt; modifier.  And, finally, the &lt;code&gt;extended&lt;/code&gt; notes for the bookmark are taken from the primary input argument of the command.&lt;/p&gt;

&lt;p&gt;As you'll see shortly, this utility method will be used in both the preview and the execution of the command.&lt;/p&gt;

&lt;p&gt;Next, there's one more utility method to cover:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;85&quot;&gt;
    /**
     * Given an object, build a URL query string
     */
    _buildQueryString: function(data) {
        var qs = [];
        for (k in data) if (data[k]) 
            qs.push( encodeURIComponent(k) + '=' + 
                encodeURIComponent(data[k]) );
        return qs.join('&amp;');
    },
&lt;/pre&gt;


&lt;p&gt;In anticipation of using the Delicious V1 API, the &lt;code&gt;._buildQueryString()&lt;/code&gt; method accepts an object and constructs a URL query string from the encoded properties of the object.  This will be paired with the &lt;code&gt;._extractBookmarkData()&lt;/code&gt; method to supply data for API calls.&lt;/p&gt;

&lt;p&gt;Moving along, it's time to start digging into the meat of this Ubiquity command:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;95&quot;&gt;
    /**
     * Present a preview of the bookmark under construction during the course
     * of composing the command.
     */
    preview: function(pblock, input_obj, mods) {

        var bm          = this._extractBookmarkData(input_obj, mods);
        var user_cookie = this._getUserCookie();
        var user_name   = (user_cookie) ? user_cookie.split(' ')[0] : '';

        var ns = { user_name: user_name, bm: bm };
        var tmpl;
&lt;/pre&gt;


&lt;p&gt;With this code, the implementation of command method &lt;code&gt;.preview()&lt;/code&gt; has begun.  This method is used by Ubiquity to generate a live preview of the command.  Called with a DOM node (&lt;code&gt;pblock&lt;/code&gt;) and partially completed command input (&lt;code&gt;input_obj&lt;/code&gt; and &lt;code&gt;mods&lt;/code&gt;), this method is expected to build a representation of the command's results in the DOM node.  As the user types, this method will be called over and over again, ideally offering feedback as the user composes a command.&lt;/p&gt;

&lt;p&gt;Continuing on, consider this next chunk of code checking the validity of command input:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;107&quot;&gt;
        if (!user_name) {

            // If there's no user name, there's no login, so this command won't work. 
            tmpl = [ 
                '&lt;p style=&quot;color: #d44&quot;&gt;No active user found - log in at ', 
                '&lt;img src=&quot;http://delicious.com/favicon.ico&quot;&gt; ',
                '&lt;b&gt;&lt;a style=&quot;color: #3774D0&quot; href=&quot;http://delicious.com&quot;&gt;delicious.com&lt;/a&gt;&lt;/b&gt; ', 
                'to use this command.&lt;/p&gt;'
            ].join('');

        } else if (!bm.description) {

            // If there's no title, then this is an error too.
            tmpl = [ 
                '&lt;p style=&quot;color: #d44&quot;&gt;A title is required for bookmarks on ', 
                '&lt;img src=&quot;http://delicious.com/favicon.ico&quot;&gt; ',
                '&lt;b&gt;&lt;a style=&quot;color: #3774D0&quot; href=&quot;http://delicious.com&quot;&gt;delicious.com&lt;/a&gt;&lt;/b&gt; ', 
                '&lt;/p&gt;'
            ].join('');
&lt;/pre&gt;


&lt;p&gt;This chunk of code first checks for a user name, which can be extracted from a valid Delicious login cookie, if one was found.  If not found, the command will fail—so the preview built here will instruct the user to login at Delicious before going further.&lt;/p&gt;

&lt;p&gt;The second precondition for using the command is that the bookmark has been given a title.  By default, this is the title of the current page—but, some pages don't offer titles.  So, an error needs to be flagged if the user hasn't manually supplied a title in this case.&lt;/p&gt;

&lt;p&gt;Finally, notice in both of these error cases, a string of HTML is composed in the variable &lt;code&gt;tmpl&lt;/code&gt;.  This will be used at the end of the method to populate the DOM node passed in as &lt;code&gt;pblock&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now, assuming that all the command's prerequisites have been met, it's time to try constructing a proper preview for the results of this command:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;126&quot;&gt;
        } else {

            // Attempt to construct a vaguely delicious-esque preview of a bookmark.
            tmpl = [ 
                '&lt;style type=&quot;text/css&quot;&gt;',
                    '.preview a { color: #3774D0 }',
                    '.del-bookmark { font: 12px arial; color: #ddd; background: #eee; line-height: 1.25em }',
                    '.del-bookmark a.title { color: #1259C7 }',
                    '.del-bookmark .full-url { color: #396C9B; font-size: 12px; display: block; padding: 0.25em 0 }',
                    '.del-bookmark .notes { color: #4D4D4D }',
                    '.del-bookmark .tags { color: #787878; padding-top: 0.25em; text-align: right }',
                '&lt;/style&gt;',
                '&lt;div class=&quot;preview&quot;&gt;',
                    '&lt;p&gt;Share a bookmark at &lt;img src=&quot;http://delicious.com/favicon.ico&quot;&gt; ',
                        '&lt;b&gt;&lt;a href=&quot;http://delicious.com/${user_name}&quot;&gt;delicious.com/${user_name}&lt;/a&gt;&lt;/b&gt;:&lt;/p&gt;',
                    '&lt;div class=&quot;del-bookmark&quot;&gt;',
                        '&lt;div style=&quot;padding: 1em;&quot;&gt;',
                        '&lt;a class=&quot;title&quot; href=&quot;${bm.url}&quot;&gt;${bm.description}&lt;/a&gt;',
                        '&lt;a class=&quot;full-url&quot; href=&quot;${bm.url}&quot;&gt;${bm.url}&lt;/a&gt;',
                        bm.extended ? 
                            '&lt;div class=&quot;notes&quot;&gt;${bm.extended}&lt;/div&gt;' : '',
                        bm.tags ?
                            '&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;tags:&lt;/span&gt; ${bm.tags}&lt;/div&gt;' : '',
                    '&lt;/div&gt;',
                '&lt;/div&gt;'
            ].join(&quot;\n&quot;);

        }

        pblock.innerHTML = CmdUtils.renderTemplate(tmpl, ns);
    },
&lt;/pre&gt;


&lt;p&gt;Building on the notion that previews are built in a DOM node, the code above uses both CSS and HTML to assemble a quick-and-dirty facsimile of a Delicious bookmark—which will be rendered like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/2008/ubiq-share-on-delicious-preview.jpg&quot; style=&quot;border: 1px solid #333; margin: 0.25em; padding: 0.25em&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Also note that Ubiquity provides a template engine for use in generating content—namely the &lt;a href=&quot;http://code.google.com/p/trimpath/wiki/JavaScriptTemplates&quot;&gt;JavaScript Templates&lt;/a&gt; engine from the &lt;a href=&quot;http://code.google.com/p/trimpath/wiki/TrimPath&quot;&gt;TrimPath&lt;/a&gt; project.  This engine may eventually be replaced with another, but the notion is that Ubiquity will provide tools to more easily generate previews and more.&lt;/p&gt;

&lt;p&gt;The conclusion of the &lt;code&gt;.preview()&lt;/code&gt; method uses the template engine with a call to &lt;code&gt;CmdUtils.renderTemplate()&lt;/code&gt; to inject content into the preview element by way of the &lt;code&gt;.innerHTML&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;Now that the preview is out of the way, it's time to get down to implementing the execution of the command:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;157&quot;&gt;    
    /**
     * Attempt to use the delicious v1 API to post a bookmark using the 
     * command input
     */
    execute: function(input_obj, mods) {
        var bm          = this._extractBookmarkData(input_obj, mods);
        var user_cookie = this._getUserCookie();
        var user_name   = (user_cookie) ? user_cookie.split(' ')[0] : '';

        if (!user_name) {
            // If there's no user name, there's no login, so this command won't work. 
            displayMessage('No active user found - log in at delicious.com ' +
                'to use this command.');
            return false;
        }

        if (!bm.description) {
            // If there's no title, somehow, then this is an error too.
            displayMessage(&quot;A title is required for bookmarks at delicious.com&quot;);
            return false;
        }
&lt;/pre&gt;


&lt;p&gt;Mirroring the &lt;code&gt;.preview()&lt;/code&gt; method, the &lt;code&gt;.execute()&lt;/code&gt; method first checks for validity of the arguments given by the user.  A missing user name or title result in a notification that the command has failed.&lt;/p&gt;

&lt;p&gt;But, if the arguments are all valid, it's time to actually issue a request to the Delicious V1 API:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;178&quot;&gt;
        var path = '/v1/posts/add';
        var url  = this._config.api_base + path;

        var req = Components.classes[&quot;@mozilla.org/xmlextras/xmlhttprequest;1&quot;].
            createInstance();

        req.open('POST', url, true);

        req.onload = function(ev) { 
            displayMessage('Bookmark &quot;' + bm.description + '&quot; ' + 
                'shared at delicious.com/' + user_name);
        }

        req.onerror = function(ev) { 
            displayMessage('ERROR: Bookmark &quot;' + bm.description + '&quot; ' + 
                ' NOT shared on delicious.com/' + user_name);
        }
&lt;/pre&gt;


&lt;p&gt;Using the base URL for the Delicious API declared earlier in the configuration section, the &lt;code&gt;.execute()&lt;/code&gt; method constructs an API URL for the &lt;code&gt;/v1/posts/add&lt;/code&gt; method.  Then, it creates an instance of &lt;code&gt;XMLHttpRequest&lt;/code&gt; from the browser to be used in sending the API request.  Event handlers are registered with the object to present notifications to the user indicating whether or not the API request was successful.&lt;/p&gt;

&lt;p&gt;At long last, it's time to wrap up this method and make the API request:&lt;/p&gt;

&lt;pre lang=&quot;javascript&quot; line=&quot;195&quot;&gt;
        req.setRequestHeader('Authorization', 'Basic Y29va2llOmNvb2tpZQ=='); // btoa('cookie:cookie')

        var mediator = Components.classes[&quot;@mozilla.org/appshell/window-mediator;1&quot;].
            getService(Components.interfaces.nsIWindowMediator);
        var win = mediator.getMostRecentWindow(null);
        var user_agent = win.navigator.userAgent + &quot;;Ubiquity-share-on-delicious&quot;;

        req.setRequestHeader(&quot;User-Agent&quot;, user_agent);      

        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send(this._buildQueryString(bm));
    },

    EOF:null // I hate trailing commas
});
&lt;/pre&gt;


&lt;p&gt;The login cookie authentication supported by the Delicious V1 API is triggered by supplying a user name / password pair of &lt;code&gt;cookie&lt;/code&gt;, which is done by setting the &lt;code&gt;Authorization&lt;/code&gt; request header.  The login cookie is then expected to be passed in as the POST variable &lt;code&gt;_user&lt;/code&gt;, which is done in the &lt;code&gt;._extractBookmarkData()&lt;/code&gt; utility method.&lt;/p&gt;

&lt;p&gt;Another bit here that shows more access of browser resources is the construction of a unique User-Agent header for this API call based on the browser's own User-Agent string, something that's suggested in the guidelines for using the Delicious API.&lt;/p&gt;

&lt;p&gt;Finally, the &lt;code&gt;.execute()&lt;/code&gt; method—and the command itself—is wrapped up with by sending off the bookmark data encoded as POST form variables with the &lt;code&gt;._buildQueryString()&lt;/code&gt; utility method.&lt;/p&gt;

&lt;p&gt;And, that's it—a command-driven Delicious browser extension in a little over 200 lines of code.  There's still more to be done to really make this thing full-featured, but I think this shows off the basic features of Ubiquity.  I'm hoping to dig in deeper and explore further, taking a look at running Greasemonkey-style code at &lt;a href=&quot;https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_Author_Tutorial#Running_on_page_load_and_startup&quot;&gt;browser startup and page load&lt;/a&gt;, as well as playing with some more browser chrome features.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085986&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jclark.org/weblog/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=d0a9ab4b71ce193e98b7284ca257e327&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jclark.org/weblog/&quot;&gt;Jason Clark&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085986&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-01T14:47:35&quot;&gt;2008-09-01T14:47:35&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;First off-  fantastic post.  Great to see a lengthy post here again, although I'm one to talk.  This is an excellent introduction to Ubiquity command development, and tres useful to boot.&lt;/p&gt;

&lt;p&gt;I'm wondering why you chose to construct and post the XMLHttpRequest manually instead of using jQuery, which is included with Ubiquity.  I don't know that there's any benefit other than some simplicity, but I took a crack at converting your code to use jQuery, which works nicely.  In the 'execute' function, replace everything after &quot;var url  = this._config.api_base + path;&quot; with this (hope code blocks work in comments):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
        var win = context.focusedWindow;
        var user_agent = win.navigator.userAgent + &quot;;Ubiquity-share-on-delicious&quot;;&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    jQuery.ajax({
      type: &quot;POST&quot;,
      url: url,
      data: this._buildQueryString(bm),
      username: &quot;cookie&quot;,
      password: &quot;cookie&quot;,
      beforeSend: function( req ) {
        req.setRequestHeader(&quot;User-Agent&quot;, user_agent); 
      },
      error: function() {
        displayMessage('ERROR: Bookmark &quot;' + bm.description + '&quot; ' + 
            ' NOT shared on delicious.com/' + user_name);
      },
      success: function() {
        displayMessage('Bookmark &quot;' + bm.description + '&quot; ' + 
            'shared at delicious.com/' + user_name);
      },
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Also, with both versions of the code, I'm seeing some unexpected behavior around authentication.  Assume I'm logged in to delicious, with &quot;stay logged in&quot; checked, and I restart my browser.  Trying to post with the command fails with a 401 unauthorized, even though I can see the cookie was sent (via Live HTTP Headers extension).  Going to delicious.com shows me logged in, and once I've viewed the site, the command works.  Except that now I can't reproduce; but I know it happened because I've got the headers.  At any rate, it is working nicely, but the previous failure is bugging me... feel like I'm overlooking something.  &lt;/p&gt;

&lt;p&gt;Thanks again for an awesome post.  Hope to see more of the same.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085988&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e799a79441c7543be48562403411cd13&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Ryan Scott Scheel&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085988&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-01T15:07:01&quot;&gt;2008-09-01T15:07:01&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;You should be helping with the documentation, if you aren't already.  Very nice job with this article;&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085991&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://azarask.in&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=e4307f205d017ba76647806951e14bb0&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://azarask.in&quot;&gt;Aza Raskin&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085991&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-02T01:44:13&quot;&gt;2008-09-02T01:44:13&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hi Leslie,&lt;/p&gt;

&lt;p&gt;This is a beautiful tutorial on writing a Ubiquity command. We'd love your help in making Ubiquity's documentation better (especially dev facing). You should totally link to this from the Ubiquity Wiki -- or even add the content in someway.&lt;/p&gt;

&lt;p&gt;Anyway, just wanted to say thanks.&lt;/p&gt;

&lt;p&gt;-- Aza&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085993&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.slackorama.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=15b474c86cd73c2d12c1d77af11c1d8a&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.slackorama.com&quot;&gt;seth&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085993&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-08T17:30:16&quot;&gt;2008-09-08T17:30:16&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Am I doing something wrong?  &lt;/p&gt;

&lt;p&gt;When I enter in &quot;sh this tagged tag1 tag2 entitled This is a title&quot; everything after the tagged is added as a tag. It's not seeing the entitled part.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085994&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://spyced.blogspot.com/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=849810634810c960e5e7c27fa54a0f5b&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://spyced.blogspot.com/&quot;&gt;http://spyced.blogspot.com/&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085994&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-15T19:12:58&quot;&gt;2008-09-15T19:12:58&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Did something break?  I'm getting a 404 accessing http://decafbad.com/hg/UbiquityCommands/file/tip/delicious.ubiq.js&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085995&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085995&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-15T23:07:42&quot;&gt;2008-09-15T23:07:42&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yeah, looks like I had a small snafu with switching back from Lighttpd to Apache.  Left out a rewrite rule - doh!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085996&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=357a20e8c56e69d6f9734d23ef9517e8&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Tony&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085996&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-10-22T04:56:03&quot;&gt;2008-10-22T04:56:03&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Great article. This is replacing my delicious bookmarklet. Thanks!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085997&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=31461076fcbce091ff822fc9ac31315d&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;dgtlchlk&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085997&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-04-14T01:06:57&quot;&gt;2009-04-14T01:06:57&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Great article and command.
Wish it worked correctly with the latest 0.1.8 release though. No matter what text you put in it adds everything as the notes. The tagged and entitled modifiers don't work.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085999&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.nolanhergert.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=957e24509baf770ba57ad306e20f201c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.nolanhergert.com&quot;&gt;Nolan&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085999&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-04-16T03:10:07&quot;&gt;2009-04-16T03:10:07&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I second that comment. Delicious is actually saying the link given was &quot;chrome://browser/content/browser.xul&quot; and marking it as harmful inside delicious!&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086002&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=3d056a5b07c384647fe0806b0dfc429e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Justin&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086002&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-06T12:39:39&quot;&gt;2009-07-06T12:39:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hi Leslie,&lt;/p&gt;

&lt;p&gt;Thanks for the delicious ubiquity command. Unfortunately, as one of the commenters above mentions, the tagged modifier doesn't seem to work. I'm using Ubiquity 0.5 pre and typing the phrase:&lt;/p&gt;

&lt;p&gt;share tagged foo&lt;/p&gt;

&lt;p&gt;Adds the bookmark to Delicious with the note text &quot;tagged foo&quot;&lt;/p&gt;

&lt;p&gt;Cheers, Justin&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221086004&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ericscalf.com/stream&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=0775f9beff626496b86d7cb602e5f46f&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://ericscalf.com/stream&quot;&gt;Eric&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221086004&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2009-07-20T22:43:17&quot;&gt;2009-07-20T22:43:17&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Echoing others.. I'm using the latest ubiquity (err, next to latest.. 0.1.8?), and doing &quot;share-on-delicious this is a note tagged testing&quot; saves the link with notes &quot;this is a note tagged testing&quot; and no tags. :(  Then again, the other delicious command I've found (by someone else) is having the same issue.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Ubiquity cracks open personal mashup tinkering</title>
        <link href="http://decafbad.com/blog/2008/08/31/ubiquity-cracks-open-personal-mashup-tinkering"/>
        <updated>2008-08-31T04:07:22+00:00</updated>
        <id>http://decafbad.com/blog/2008/08/31/ubiquity-cracks-open-personal-mashup-tinkering</id>
        <content type="html">&lt;p&gt;When I was a wee hacker, I lived my digital life though a &lt;a href=&quot;http://www.virtualsky.net/iadoremyc64/&quot;&gt;Commodore 64&lt;/a&gt;.  I played games on it, did homework, talked to people far away—you know, all the stuff they showed in the pictures on the box.  I also took things apart—both the machine itself and software running on it.  I grew up learning that my digital environment was ultimately understandable, &lt;a href=&quot;http://cbm.csbruce.com/~csbruce/cbm/transactor/&quot;&gt;susceptible to tinkering&lt;/a&gt;, and open to being bent to my own purposes.&lt;/p&gt;

&lt;p&gt;From the Commodore 64, I graduated eventually to terminals and text editors, opening portals mostly onto computers elsewhere via powerful UNIX command shells.  And, of course, over the past decade, this has largely given way to life in a browser.&lt;/p&gt;

&lt;p&gt;Yet, for a little while, particularly in the first few years of browsers, freedom to tinker seemed cramped.  JavaScript had yet to arrive, and was a little messy when it did.  There was no relatively easy addon development.  And, though the portals opened by a browser were richer than those provided by terminals, the paths of navigation defined by links controlled by site owners offered less freedom of movement than UNIX commands.  I could create my own pages, but I couldn't do much to others' pages.&lt;/p&gt;

&lt;p&gt;But then, javascript: URLs came around, dots were connected, and &lt;a href=&quot;http://en.wikipedia.org/wiki/Bookmarklet&quot;&gt;bookmarklets&lt;/a&gt; were born.  Suddenly, it was possible to customize &lt;em&gt;my&lt;/em&gt; browsing environment with arbitrary JavaScript code having access to the current page—no matter &lt;em&gt;whose&lt;/em&gt; page it was.  And, through the various tricks of the AJAX trade, bookmarklets have only gotten more capable throughout the years.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.mozilla.org/docs/end-user/keywords.html&quot;&gt;Smart keyword shortcuts&lt;/a&gt; came around a little later, allowing quick access to bookmarks via simple keywords typed into the location bar.  The smart part, though, came in the form of bookmarked URLs with placeholders and keywords given arguments to fill the placeholders—allowing not only quick access to bookmarked pages but also search engine forms bookmarked with late-bound fields.&lt;/p&gt;

&lt;p&gt;Bookmarklets inherited the benefits of smart keyword shortcuts.  The same placeholder in http: URLs can be inserted into the code of a javascript: URL, thus parameterizing the JavaScript code and incidentally turning the location bar into a kind of primitive command line.  For example, one of my most heavily used &quot;&lt;a href=&quot;http://naeblis.cx/weblog/2004/08/09/DeliciousAddresslets&quot;&gt;addresslets&lt;/a&gt;&quot; is based on &lt;a href=&quot;http://ejohn.org/blog/super-fast-delicious-bookmarklet/&quot;&gt;John Resig's original &quot;Super-Fast Delicious Bookmarklet&quot;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Another leap in prying open the browser tinkering space came in the form of &lt;a href=&quot;http://www.greasespot.net/&quot;&gt;Greasemonkey&lt;/a&gt;—an addon-powered environment created explicitly for the purpose of end-user scripting applied to others' pages.  &lt;a href=&quot;http://www.greasespot.net/&quot;&gt;Greasemonkey&lt;/a&gt; user scripts can do more than bookmarklets, and with a much better development environment to boot.  And, though a user script can't do quite as much as a proper browser addon, they're much easier to hack on and distribute.&lt;/p&gt;

&lt;p&gt;Now, consider one of &lt;a href=&quot;http://labs.mozilla.com/&quot;&gt;Mozilla Labs&lt;/a&gt;' &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;newest projects&lt;/a&gt;, named &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt;.  This rough and experimental addon for Firefox combines and improves upon everything I've described so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; is a hackable command line environment, better than &lt;a href=&quot;http://en.wikipedia.org/wiki/Bookmarklet&quot;&gt;bookmarklets&lt;/a&gt; and smart &lt;a href=&quot;http://www.mozilla.org/docs/end-user/keywords.html&quot;&gt;keyword shortcuts&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; enables persistent customization of others' pages, not unlike &lt;a href=&quot;http://www.greasespot.net/&quot;&gt;Greasemonkey&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; facilitates live in-browser creation and web-based subscription to user commands and scripts;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; gives access to browser chrome resources without a need for frequent restarts;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;So far, most of the &lt;a href=&quot;https://labs.toolness.com/ubiquity-herd/&quot;&gt;commands&lt;/a&gt; I see popping up since the 0.1 release have not accomplished much more than &lt;a href=&quot;http://www.mozilla.org/docs/end-user/keywords.html&quot;&gt;smart keyword shortcuts&lt;/a&gt; in the location bar could.  But, it's early yet, and &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; is far from limited to these commands.&lt;/p&gt;

&lt;p&gt;Once the basics have been well-explored, I expect to see more people taking a crack at the broader capabilities offered by &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt;.  &lt;a href=&quot;http://en.wikipedia.org/wiki/Bookmarklet&quot;&gt;Bookmarklets&lt;/a&gt; and &lt;a href=&quot;http://www.greasespot.net/&quot;&gt;Greasemonkey&lt;/a&gt; can't access browser chrome—but &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; can.  &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot;&gt;Ubiquity&lt;/a&gt; also offers a user interface that's so much more promising than keyword shortcuts, including command previews and typed parameters with suggestions.&lt;/p&gt;

&lt;p&gt;Ubiquity promises web-wide mashups directed by a conversational command interface.  All in all, the potential of this makes me feel like my digital environment—browser and web as a whole—is getting even more intimately, personally hackable.&lt;/p&gt;

&lt;p&gt;It'll be very interesting to see where this project goes.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089574&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=22b4e824255828f5aedd0e6e2558dc52&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;Raul&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089574&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-31T10:20:58&quot;&gt;2008-08-31T10:20:58&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Hi, was using the original delicious command linked from the Ubiquity wiki, just tried yours and its definitely more polished and functional. Great job with the preview and the extra functionality. Only thing is 'share-to-delicious' is too much to type so I unsubscribed the previous command and changed the namespace in yours. This is clearly going to become a problems as the commands proliferate.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089575&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089575&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-31T14:43:39&quot;&gt;2008-08-31T14:43:39&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Raul: &quot;share-to-delicious&quot; is long, but keep in mind is that you only need to type enough of the command to disambiguate it.  That is, all I type is &quot;sh this tagged osx software apple&quot; because I have no other commands starting with &quot;sh&quot;.  Watch the list of commands in the preview as you type.  Those tell you what the parser thinks of what you're typing as you type.  It's like automatic tab-completion.&lt;/p&gt;

&lt;p&gt;Also, I think there's work planned to put some usage based sorting into the command parser, preferring the commands you use most in order of disambiguation.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089576&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=af8b180d6d4092fb42fe6b5e0b21536c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;Abi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089576&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-31T15:33:24&quot;&gt;2008-08-31T15:33:24&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Nice post. I share your sentiment with regards to Ubiquity commands. A lot of commands that I see are just plain simple searches. I hope developers will work on more interesting things. For example, even things like auto-form filling for this comment (possibly even on page load without having to type a command) could be done by Ubiquity. There's still a lot more room for experimentation.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089578&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=af8b180d6d4092fb42fe6b5e0b21536c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;Abi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089578&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-31T15:45:59&quot;&gt;2008-08-31T15:45:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;But otherwise, I &lt;em&gt;really&lt;/em&gt; like your command especially the preivew. We should include it as a builtin command, if you don't mind. :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089580&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=af8b180d6d4092fb42fe6b5e0b21536c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;Abi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089580&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-31T15:51:20&quot;&gt;2008-08-31T15:51:20&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I noticed a bug in your command. If I select some text in the awesomebar, the bookmark url is chrome. You should use something the command utils to get the url, instead.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089582&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089582&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-01T06:17:37&quot;&gt;2008-09-01T06:17:37&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@Abi: Making this a built-in command is totally fine by me!  It can use more work, though, for sure.&lt;/p&gt;

&lt;p&gt;Also, I can reproduce that bug.  Ugh.  I can't find any methods in the CmdUtils to get the current page URL, though.  I'll keep poking a bit though.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089584&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=af8b180d6d4092fb42fe6b5e0b21536c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://abcdefu.wordpress.com&quot;&gt;Abi&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089584&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-01T06:50:23&quot;&gt;2008-09-01T06:50:23&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Your blog seems to be rejecting code (that's why I had so many posts in the first place). You can get the current page url using (with dots):&lt;/p&gt;

&lt;p&gt;CmdUtils  getDocumentInsecure() location href&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221089586&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://theunfocused.net/&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=738af918f39d544f8b0d765850c986f8&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://theunfocused.net/&quot;&gt;Blair McBride&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221089586&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-09-02T02:50:12&quot;&gt;2008-09-02T02:50:12&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;I recommend against using getDocumentInsecure() - its got &quot;Insecure&quot; in its name for a reason! Instead, you should use:&lt;/p&gt;

&lt;p&gt;Application.activeWindow.activeTab.uri.spec&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    

    <entry>
        <title>Moz08: Rockslides and Blackouts and Bears - Oh My!</title>
        <link href="http://decafbad.com/blog/2008/08/04/moz08-rockslides-and-blackouts-and-bears-oh-my"/>
        <updated>2008-08-04T20:15:23+00:00</updated>
        <id>http://decafbad.com/blog/2008/08/04/moz08-rockslides-and-blackouts-and-bears-oh-my</id>
        <content type="html">&lt;p&gt;Since the beginning, I've been a Mozilla fanboy.  But, up until very recently, I've only shown that as a user and a verbal supporter, with a shallow understanding or participation in what's really done in the Mozilla community.  Sure, I've checked out source code from time to time going back to the first code release, built and poked at it, but I've never really contributed back.&lt;/p&gt;

&lt;p&gt;But now, I'm an employee of the Mozilla Corporation, and I feel like I found a little-known cheat code for getting into the place where all the cool stuff happens.  See, I just got back from this thing called the &lt;a href=&quot;http://wiki.mozilla.org/Summit2008&quot;&gt;Mozilla 2008 Firefox Plus Summit&lt;/a&gt;—and if I was overwhelmed by the initial Mozilla Firehose after coming on-board, I'm entirely gobsmacked now.&lt;/p&gt;

&lt;p&gt;The event—having taken place in the &lt;a href=&quot;http://www.rumblingedge.com/2008/07/29/bear-with-me-while-you-sleep-at-whistler/&quot;&gt;bear-infested&lt;/a&gt;, &lt;a href=&quot;http://www.cbc.ca/canada/british-columbia/story/2008/07/30/bc-highway-rockslide-whistler.html&quot;&gt;rockslide-prone&lt;/a&gt;, &lt;a href=&quot;http://www.flickr.com/photos/albill/2720171490/&quot;&gt;electricity-deficient&lt;/a&gt; wilds of Whistler, BC in Canada—was attended by not only employees of the corporation itself, but a selection of invitees from around the Mozilla community.  Throughout the course of the event, I felt humbled by the efforts of everyone and have come away with a feeling that I really need to step up my game.  Somehow, it seems I managed to sneak into the place without having first run the decade-old traditional gauntlet of meritocracy and contribution.&lt;/p&gt;

&lt;p&gt;Being a newbie of just a few months, I barely know anyone at Mozilla, so I was quite overwhelmed socially.  That the early-morning power loss also knocked out &lt;a href=&quot;http://decafbad.com/blog/2004/12/03/if-you-snore-get-tested-for-sleep-apnea-now&quot;&gt;my CPAP&lt;/a&gt; and left me sick and surly on the last day didn't help my already introverted tendencies.  Nonetheless, I talked to a lot of people, attended a lot of sessions, partied a bit, played some Rock Band, and have a lot that's percolating in my brain-meats.&lt;/p&gt;

&lt;p&gt;There's plenty coming up to work on in my own assigned sphere of &lt;a href=&quot;http://blog.mozilla.com/webdev/&quot;&gt;webdev&lt;/a&gt;—but I'm also pretty jazzed about the Mozilla Labs projects &lt;a href=&quot;http://wiki.mozilla.org/Prism&quot; title=&quot;Site-specific browsing with Gecko&quot;&gt;Prism&lt;/a&gt;, &lt;a href=&quot;http://wiki.mozilla.org/Labs/Ubiquity&quot; title=&quot;A language-based interface, verbing the web&quot;&gt;Ubiquity&lt;/a&gt;, and &lt;a href=&quot;http://wiki.mozilla.org/Labs/Weave&quot; title=&quot;Cross-browser data sync and secure third-party sharing&quot;&gt;Weave&lt;/a&gt;.  Not sure what I can do yet, but would like to do &lt;em&gt;something&lt;/em&gt; to help out those efforts.  And maybe by the time of the next summit, I'll still be in the Mozilla sphere and will have met and helped a few more Mozillans with whom I can connect face-to-face.&lt;/p&gt;

&lt;p&gt;There was also a lot of talk about the future and continuing mission of Mozilla, all very inspirational and telling me that this is the center of things where I've always wanted to be.  Now, I just have to work hard to make sure they're not sorry they hired me!  I'm running much slower than I'd like, since I feel I have a lot to catch up on while in the midst a lot of disruption and change—between the intensity of the last few months (or even the last year) and readjusting to being back in the Mitten with homeownership all anew and many plans having taken unexpected turns.&lt;/p&gt;

&lt;p&gt;But, things are shaping up in a sort of too-good-to-be-true configuration, and I suspect I'll be just fine if I sharpen up a bit and roll with the changes.&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085077&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://blog.mozilla.com/gen&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=ef1b5a29836fa211b938d8ccbbd3e0a1&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://blog.mozilla.com/gen&quot;&gt;Gen Kanai&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085077&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-04T22:32:43&quot;&gt;2008-08-04T22:32:43&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;It was a pleasure finally meeting you and chatting, even if it was finally on the bus ride home.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085079&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/danmactough.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;danmactough&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085079&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-05T00:28:35&quot;&gt;2008-08-05T00:28:35&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Les, don't be too hard on yourself. Every company knows that new hires need some time to get up to speed (or at least the good companies know that). For example, my firm has calculated that it costs them about $250,000 (excluding salary, bonus, moving expenses, etc.) to hire a new associate. That consists partly of benefits expenses and administrative costs, but mostly just &quot;getting up to speed&quot; time. Relax. You'll think smarter if you do.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085080&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://weblogs.mozillazine.org/stephend&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=dcd8fb7ab4882537c2ce0ca6a1df159a&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://weblogs.mozillazine.org/stephend&quot;&gt;Stephen Donner&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085080&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-05T03:26:49&quot;&gt;2008-08-05T03:26:49&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Les -&lt;/p&gt;

&lt;p&gt;You implemented the &lt;em&gt;sexy theme browser&lt;/em&gt; -- need I say more?&lt;/p&gt;

&lt;p&gt;:-)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stephen&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221085081&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.corporatehippy.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=98448f231ca596089f5ff6299d22865c&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.corporatehippy.com&quot;&gt;Marty&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221085081&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2008-08-05T15:05:59&quot;&gt;2008-08-05T15:05:59&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Now that you're back in the mitten - don't be a stranger :D&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    
</feed>

