My Firefox profile being corrupted, I had to dive a little bit into its salted directory. What I found there is just scary... Here are the contents of that profile:
Hum, to say the least... Ok, some files there (*~ and *,bak) are mine, edited using emacs or another editor because I needed it. But I think user profiles should contain a addon-data/ folder with a subfolder per add-on, its name being the add-on ID of the add-on and that AMO editorial rules should force add-on authors to store *ALL* data there. It would then be easier to migrate, backup, delete, cleanup. Thoughts ? In particular is it ok to put sqlite databases in such a deeper folder for sqlite-based templates (I haven't checked yet)?
By glazou on Thursday 12 November 2009, 14:44 - Mozilla
I have just uploaded a new version of Webchunks to addons.mozilla.org. It's entirely rewritten for 3.5 and even 3.7a1pre, with new features and a lot of bug fixes. It's for instance now possible to show/hide the webchunks toolbar using one main-toolbar button reflecting the state of all webchunks ("normal" or "you have something to check there") and it's conformant to the Webslice 0.9 "specification" if you except the window.external.* methods. The new version is not compatible with the pre-1.0 versions so you could have to recreate your webchunks bar but I think you'll be very pleased with this new version.
For the time being, it's in the sandbox on addons.mozilla.org even if the add-on used to be trusted. It lost its "trusted" status for some reason unknown to me... Stay tuned...
By glazou on Thursday 12 November 2009, 09:30 - Standards
Webchunks (the Firefox add-on) lets you select an arbitrary element in a web page to turn it into a webchunk. Nothing magical here. A Webslice is, per Microsoft's "spec", an element carrying an ID and the class slice. In other terms, an element selected by the selector #thatID.slice. Webchunks just extends that notion to be able to use here any CSS selector, not only that one.
But selecting an arbitrary element can lead to unexpected results. Let's take a concrete example :
the web page liberation.fr has a block of recent news on the right hand side ("Dernières Dépêches")
that block can be selected using the selector #e1b3-1
but the contents of that block are not available at load time but rather ajax-based...
so comparing a cached version of that element and a recently downloaded version is meaningless if you don't let all JavaScript code in the page run and compare them only afterwards...
I am then unable to say liberation.fr updated its Last News section just loading the source of that HTML page... Painful.
Conclusion : I miss here something standard (an attribute, a class, whatever and I don't care) in the DOM to let me know the contents of that element are retrieved over the wire after page load. I also miss a standard event allowing me to know the contents are now loaded and that the "final" content of the element can now be observed.
By glazou on Tuesday 27 October 2009, 11:17 - Mozilla
Here is a first preview of Webchunks 1.0 for Firefox 3.5 and 3.7pre. Save it locally, install it, use it, love it :-) Warning, it's a work in progress. It's not perfect, it's not ironed, it's not optimized at all, it's only one day of work but it's already very different from the previous version of webchunks:
customize your main toolbar and add the new Webchunks button that shows/hide the webchunks toolbar. The button becomes red when a webchunk is updated, remains blue otherwise.
you can resize webchunks' popups. Warning, this works well with FF3.7 on windows and linux, has some issues on mac. It's partly functional only on FF3.5.
you can context-click entries in the webchunks toolbar and that context popup offers new features
webchunks' popups were redesigned to match better IE's
conformance to Webslices 0.9 "spec"
user-defined webchunks now based on CSS selectors and not XPath any more. I will eventually unify webslices-based wecbhunks and user-defined webchunks since the former is only a special case of the latter, the selector being a single ID selector...
warning, this version is not compatible with previous versions of webchunks so you'll have to repopulate your toolbar...
Known issues (working on it):
noscript elements can appear in popups
first click on a link in a popup can have no effect, please click a second time
slices in eBay are not detected because eBay inserts webslices' markup only if window.external.AddToFavoritesBar is implemented (and that's a really silly decision) :-( Please prefer user-defined webchunks for eBay...
By glazou on Wednesday 21 October 2009, 19:08 - General
Two famous demo sites for Webslices/Webchunks are Digg and the webslices-enabled page at Stumbleupon. Unfortunately, both of them use Webslices/Webchunks almost badly since their slices contain a number of diggs or a number of reviews attached to the link they present. It means that even if the "useful" content does not change, the slice can be shown as "updated" in the browser only because the numbers changed... I understand they want to show these numbers but from a user's perspective, that's counter-productive.
By glazou on Tuesday 20 October 2009, 21:03 - Mozilla
A new version of Webchunks is in the pipe. A much better one...
almost rewritten from scratch
sync across browser windows
conformance with the last "specification" of Microsoft Webslices (I have spent the last 19 years of my life in various standardization committees and I am glad and proud I never released a "specification" THAT bad...) if you except the window.external calls that require work in Gecko itself.
cleaner and nicer UI
resizable panels (with forthcoming Firefox 3.7... I still have to find a workaround for 3.5, unfortunately)
hideable toolbar with one main-toolbar button changing color when a webchunk is updated or expires (integration with Places was really not an option in a reasonable timeframe, Places being not enough open/extensible)
context-click to edit webchunks' properties
"Create your own webchunk in the page" now based on CSS Selectors and not XPath any more
more demo sites
If you have a suggestion of feature for Webchunks, that's the right time and the right place to do it. Please add a comment !
By glazou on Thursday 15 October 2009, 14:08 - Mozilla
One thing we really missed in XUL was the ability to capture the mouse movements on the whole screen. Neil Deakin worked on that and introduced setCapture() and releaseCapture() on elements. He also worked on enabling the resizer element to work correctly in popups and panels but it's buggy at this time so I used setCapture/releaseCapture for the new version of Webchunks to enable resizable popups:
By glazou on Wednesday 6 May 2009, 09:05 - Mozilla
Microsoft updated the Webslices specification, and my Webchunks extension now fails on the more recent Webslices-enabled web sites. I am going to update my code to match their spec and improve the feature set:
toolbar button in the main toolbar allowing to show/hide the Webchunks toolbar and showing if a webchunk was updated or expired,
webslices' data will be cached, in conformance with the spec,
my current code uses XPath and I am fed up with that big complex piece of crap since the power of the very simple and readable CSS Selectors is available through the Selectors API in Firefox 3.5. I think my new code will run on FF3.5 only.
A few things still puzzle me in the light and often underspecified Webslices "specification". Handling of styles is for instance rather badly specified, and what happens in IE8 seems to be sometimes different from the spec. The extensions to RSS and Atom formats using the mon namespace are also badly specified. I sent Microsoft a mail proposing that we write a real specification together, something well written, self-standing, with a cool-URI-that-does-not-change. No answer so far.
By glazou on Thursday 30 April 2009, 17:03 - Mozilla
I'm only discovering today that the Webslices spec was updated on MSDN, and new types of Webslices were added to the spec. In particular a webslice can now be a standalone remote URL. That explains why some Webslices, for example the ones living inside www.nyt.com, don't work well with the Webchunks extension. I'm working on it. I think I'll revamp entirely my extension to make it more modular, allow a toolbar button showing/hiding the webchunks toolbar. Stay tuned.
By glazou on Tuesday 28 April 2009, 14:20 - Mozilla
When eBay started implementing Webslices, they did in a special search page ie8.ebay.com. They removed that page a few months ago because they moved the feature to the normal eBay pages. But this has a bad, and I hope involuntary, side effect : Webslices work now only with MSIE and not with Firefox+Webchunks any more. There is something, on the server- or client-side that does client-sniffing probably based on the MSIE extensions to window.external, and eBay result pages are different between MSIE and other browsers.
In MSIE8, all result entries in eBay have a hslice class and a related ID to be detected as a webslice by MSIE8.
Again, I have no idea if this is made on purpose or not. If it is, it's a true scandal. If it's not, and given the fact the Webchunks extension to Firefox is freely available, it's a shame. Please note that the embedded JavaScript shows no error or related warning... Please also note that if you use a UAString-switcher in Firefox, the result remains the same; that's why I think the client-sniffing is client-side and based on window.external.* MSIE extensions. I hope that eBay is going to fix this as soon as possible, because banning Firefox users seems to me a stupid and counter-productive idea...
By glazou on Monday 27 April 2009, 17:04 - Mozilla
my Webchunks extension was not working at all on my Mac with Shiretoko and I really wondered why. I did not have enough time to investigate until now. I just found why : the pinstripe (Mac) theme for Shiretoko adds a new binding to toolbars that extends the normal toolbar binding. Hmmmm nowindowdrag attribute :-) Anyway, since my toolbar binding for Webchunks was extending toolbar.xml#toolbar, it did not work at all with Shiretoko on mac. Unfortunately my only option at this time is to make my toolbar nowindowdrag="true"... I just fixed that and will improve a bit my code before making a new public release on addons.mozilla.org.
Laurent Jouanneau finally made it and it's excellent news for all of us who want to rely on a good HTML, XHTML and XML serializer : bug 422403 is now fixed !!! BlueGriffon is of course going to rely on it. Much better pretty printing, no more crazy blank lines. Thanks a lot Laurent !
By glazou on Tuesday 10 February 2009, 19:08 - Mozilla
Webslices/Webchunks. My secret dream was a smooth integration of Webchunks into Places so the user's personal toolbar could contain Webchunks just as it can contain bookmarks, folders, feeds, microsummaries. But adding a new consumer to Places is anything but a trivial operation because Places' consumers are almost hard-coded in Places itself... I think Places should evolve into a consumer-agnostic architecture where bookmarks and all others are only consumers of Places and do not require a single line of code added to Places itself. A well documented and easy to understand API could trigger a new class of extensions to Firefox that other browsers could not immediately or easily afford. Places2 ?
By glazou on Monday 6 October 2008, 21:58 - Mozilla
Now working on BlueGriffon after Nvu, there are a lot of things I can implement in BlueGriffon I could not achieve with Nvu. The reason is the maturity of the Mozilla platform. Let me list the plusses I just could not live without any more:
xulrunner ; I said it many times in the past but let me repeat it one more time : xulrunner is a true cornerstorne in the Mozilla ecosystem.
CSS 3 selectors ; that's surprising but the :nth-child() selectors and friends I introduced in the first Selectors draft so long ago are so powerful they allow a wide range of new features.
DOM 3 getUserData/setUserData ; the possibility to add data to the DOM without hurting the serialization is a major thing for me.
Storage and sqlite-based templates ; it's wonderful and probably deserves a FUEL-like library to simplify sqlite databases' manipulation. And Laurent told me today I could even write my own template system based on whatever component I want. Just lovely !
XBL ; Laurent and I recently discovered that we don't need any more to call this.parentNode.parentNode.... to call a method on the bound element from an anonymous descendant. XBL bindings are much simpler and maintainance/changes are simpler since we can move anonymous nodes in the <content> element without having to care about the context. That's a great plus.
the style and override manifest instructions ; they are so powerful for such a simplicity they allow beautiful things.
JavaScript's speed ; to give a very concrete example, Nvu had c++ code to gather the list of classes and IDs used in the selectors of all stylesheets attached to a given document. At the time I implemented it in c++, I dropped a JS implementation because it was just too slow to be usable. BlueGriffon has the same feature, now implemented only in JS, and the speed difference with the c++ implem in Nvu (gecko 1.7) is negligible. Wow, to say the least...
canvas ; do I need to explain ?
HTML5 drag and drop, deliciously simple to manage.
The things I still miss:
dependant windows ; I'd love to be able to open a window from another one and have both of them moved or inconified/raised together.
a library of transitions à-la-jQuery in XUL to make smoothly appear dialog areas or smoothly resize dialogs, slide deck contents.
a HTML parser ; that's amazing the number of ugly things Myk and I had to write for microformats or webchunks just because we don't have a HTML parser... The current need to use a hidden (or visible if you're lucky) iframe is painful.
since JavaScript now reaches the speed magnitude of native code, I'd love to see CSS Selectors' extensiblity. I want to be able to define my own boolean pseudo-classes without having to hack SelectorMatches(). It's not purely theoretical, I would use that immediately.
a more powerful CSS Object Model storing not only CSS rules recognized by Gecko but also unknown rules and comments. This is a very tough issue, hard to solve. But a web editor will always suffer if the user loses the comments or the non-standard rules he/she inserts in stylesheets..
CSS Media Queries... Having in the same web editor the ability to edit a document for normal, medium and small screens is a real plus and CSS MQ are the technology I need here.
Things I have not used yet but I will definitely use them in the near future:
JavaScript code modules (JSMs)
And the things I still dislike and want to see dumped:
XSLT ; yeah yeah XSLT is powerful but it's also an awfully complex solution when you want to deal with simple transformations.
By glazou on Monday 8 September 2008, 10:04 - Mozilla
People, I'm excited. Seriously. I spent only two hours and half on it yesterday night and here's the result.
screenshot 1 visit a web site, here the San Jose Mercury News' home page
screenshot 2 decide you want to subscribe to the main headline but hey the site is not Webchunks-/Webslices- enabled. No problem, just select with your mouse the block you want to subscribe to...
screenshot 3 as usual you can modify the webchunk's title and hop! the entry appears in your toolbar
screenshot 4 OOOH IT'S MAGIC, the webchunks's popup worked fine, the SJMN's web site still has no Webslice builtin and XPath is still a proof of existence of the devil !
The best part of it is the following one : Webchunks does not need Greasemonkey any more for that and it's so easy to subscribe to any part of any web page that even the sales director of your company could do it !!!
Oh wait, I think I forgot one small detail : IE8 is unable to do that for the time being :-) Can someone bring Ballmer a few more chairs please ?
By glazou on Sunday 7 September 2008, 19:54 - Mozilla
Thanks to an important code contribution by Zbigniew Braniecki (aka Gandalf), I am now in the process of adding Webchunks visual addition to any web site. When I say "visual", I mean that you will not have to write a Greasemonkey script to add a webchunk to your web site of choice, you won't need to know the Webslices spec or understand XPath-proof-of-existence-of-the-devil. Your mouse and a click will be enough. And if I have enough time for that, you won't even need Greasemonkey. Stay tuned...
By glazou on Thursday 4 September 2008, 15:39 - Mozilla
I have just uploaded a new version of my Webchunks extension (implemention of IE8 Webslices for Firefox). It's available from my own site for the time being, and will be available from addons in the coming days. Changelog:
now correctly deals with multiple entry-title elements,
v0.14 was incorrectly disabling JavaScript
clicking on a webslice entry while the webslices were refreshed on window's load was horking the webslice popup
By glazou on Tuesday 2 September 2008, 19:06 - Mozilla
Julio Ernesto Lopez, webmaster of www.criticadigital.com, sent me yesterday a very interesting bug report about webchunks. It's very interesting because it's two bugs in one really, one for my Webchunks extension and one for IE8's implementation of Webslices. On my side, I was incorrectly disabling JavaScript in weslices in some cases and that led to problems with sites populating data from Ajax queries. It took me a few hours yesterday to correctly narrow the bug and find a fix. On IE8's side, I noticed a very visible difference between Webslices' "specification" and IE8's behaviour. I have pinged Microsoft about that. I'll tell you more when I have their reply.
So expect a new version of Webchunks to hit addons.mozilla.org in the coming days (addon review needed, it's not a trusted extension yet).
By glazou on Friday 22 August 2008, 10:57 - Mozilla
I'm delighted to report that my Webchunks extension to Firefox was selected as a finalist for the New Add-On Grand Prize. Pencil, Tagmarks and HandyTag got the three Grand Prizes. I must say that I was 100% sure Pencil would get a Grand Prize. Pencil is an incredible app, superb, well done, and it clearly deserved a prize. There's one minor detail about it though : it's packaged as an extension to Firefox 3, but it's not an extension to Firefox3... it's really a standalone app using FF3 as an entry point ; Pencil probably deserves a xulrunner-based package. Anyway, the quality and usefulness of Pencil made it a natural winner for one of the three prizes, mucho congrats to Dương Thành An!!!
Let me play the chauvinist a bit to note that among the 3 winners of the New Add-On Grand Prize and the 6 runners-up, there are three french... That shows the vigour of the local Mozilla community here in France !