<Glazblog/>

Friday 20 January 2012

iBooks Author, a nice tool but..

Long, very long ago, in another galaxy further north on the US west coast, the Death Star Microsoft was not playing the standardization game and was submitting proposals to W3C the day it was shipping to the masses a browser implementing that proposal. Or ship without any proposal.

These days are over, and Microsoft finally embraced Web Standards and all rejoiced.

Yesterday, further south on the US west coast, the "All Your Documents Are Belong To Us" Mothership Apple started showing incompatible authoring environments and rendering engines based on proprietary extensions to html and CSS that will hit the wild. Yesterday, Apple released iBooks Author and I am not afraid to say that despite of being a great authoring tool, the solution it offers is a step backwards and it's not good news for users/customers.

I have downloaded iBooks Author (IBA) and played with it. I have in particular looked at the two formats it outputs, the iba format and the ibooks format.

But before that, since I do it with all software I load and launch on my Mac, I took a look at the About window... And from that About window, you can read the License. Dan Wineman has an excellent article about it, and article you must read before thinking IBA is the Holy Grail of publishing. I won't repeat here what he said but he missed something funny and potentially important: the french EULA, that is the only one valid in France if the customer is an individual since english is not an official language here and nobody can force a french citizen in France to have to read english, reads:

"tout livre ou tout autre travail réalisé à l’aide de ce logiciel (« travail »), ne peut être vendu ou distribué uniquement via Apple (par exemple sur l’iBookstore) et une telle distribution est sujette à un accord séparé conclu avec Apple"

The first part of that sentence is a bogus translation from english that means "any book or other work made with this software cannot be sold only via Apple"... The french prose misses one "que" to match the english one. Too bad, Apple... Too bad and too late. I am carefully keeping a copy of that document, of course. I suggest you do too, if you're based in France :-)

Let's go back to the formats now. The first IBA format, the iba format, is, as always with Apple, a zip archive pretending to be a single file. The iba file I created from my little demo was contained in a single XML file. Totally unreadable, based on proprietary Apple xml namespaces (sl, sf and sfa, all in http://developer.apple.com/namespaces/ space).

IBA format

It's not readable in a regular browser because browsers have no knowledge of those namespaces. It's completely closed, useless outside of the Apple world. Nothing more to say here.

The ibooks format is more interesting, but even more disappointing...

ibooks format

It looks like an EPUB3 format. It smells like an EPUB3 format. But it's not at all an EPUB3 format and here's why...

First the mimetype file. It's correctly placed in first position in the package, but the EPUB3 format states that its content must be application/epub+zip. And it's not. It's application/x-ibooks+zip and that is enough to make conformant EPUB3 readers choke on a *.ibooks package. Let's take a look now at the other files here, starting with content1.xhtml:

  • it uses a proprietary extension of CSS Media Queries, adding the keywords paginated and nonpaginated. Unprefixed. Not even -ibooks-paginated... Since this is not part of the official CSS Media Queries specification, this is not conformant EPUB3. As far as I know, this extension to the list of CSS media was only recently mentioned once during a chat but never seriously discussed or even proposed as a written proposal.
  • it uses the proprietary xml namespace xmlns:ibooks="http://www.apple.com/2011/iBooks" and nobody knows what that is or represents
  • it applies stylesheets to the html5 (xml serialization) documents through xml-stylesheet processing instructions. That's perfectly fine since it's an xml serialization but that's not the common way of linking stylesheets in the html world. A minor issue but still.
  • it contains a weird <link rel="stylesheet" type="text/xml+svg" href="assets/svg/content1.svg" /> where the target is really a SVG document. The behaviour of this link element is undefined from a standards' point of view. Conceptually, this is plain wrong. A SVG document instance is not a stylesheet. It could be used by a stylesheet to define exclusion paths for instance but it cannot be called a stylesheet.

Let's look now at the stylesheets, for instance content1.css:

  • again, a definition for a proprietary namespace @namespace ibooks "http://www.apple.com/2011/iBooks". The format clearly extends HTML5 and we have just no idea how.
  • proprietary prefixed properties. Examples:
    • -ibooks-layout-hint: anchor page shape;
    • -ibooks-list-text-indent: 0.0000pt;
    • -ibooks-strikethru-type: none;
    • -ibooks-strikethru-width: 1.0000px;
    • -ibooks-underline-type: none;
    • -ibooks-underline-width: 1.0000px;
    • -ibooks-slot: textShape-2;
    • -ibooks-stroke: none;
    • -ibooks-gutter-margin-left: 50.0pt;
    • -ibooks-positioned-slots: media-24, textShape-123, ... ;
    • -ibooks-box-wrap-exterior-path: directional contour both 12.0pt 0.500000 false;
    • @page ::nth-instance
      {
              height: 748.0pt;
              width: 1024.0pt;
              ::slot(media-24)
              {
                      height: 748.000pt;
                      left: 0.000pt;
                      top: 0.000pt;
                      width: 1024.000pt;
                      z-index: 1;
              }
      }
    • -ibooks-column-width:  20% 30% 20%;
    • -ibooks-column-gap:  25px 30px;

The iba format clearly extends CSS (and therefore EPUB3) to offer the following features:

  1. Template-based layout including special areas (gutter)
  2. Extended underlining
  3. Ability to control the size of each column and column gap in a multi-column layout
  4. something equivalent to Adobe's Regions and Exclusions.

Template-based layouts based on slots were originally proposed by Jakob Refstrup 10-mar-2011 on behalf of Apple. Before that, Jakob worked for HP (how surprising he knows EPUB, pagination, printing and rendering engines; probably Gecko and/or WebKit well too) and regularly contributed to the CSS WG mailing-list on their behalf. His last contribution on behalf of HP was in february 2010 and his first contribution on behalf of Apple was the one mentioned above. He almost did not contribute again on this topic afterwards. His proposal is clearly based on Bert Bos's and Cesar Acebal's CSS Template Layout Module but is only based on it. According to Jacob's profile on LinkedIn, he joined Apple in june 2010. Then I suppose he started working in stealth mode on the iBooks rendering engine. Please note there are discussions in the Community about dropping the Template Layout module...

Extended underlining is based on an old draft of CSS 3 Text and some of these proposed properties were dropped by the CSS WG after discussion in www-style.

The ability to control the size of each column and column gap was recently discussed in the CSS WG. The Group decided that allowing setting of individual column width and column gap width is not a feature considered for the first REC of this document. So Apple is here extending the CSS Multi-Column Layout Module and never told us about it.

iBooks offers a mechanism for regions and exclusions. It's even one of their screenshots on the Mac App Store:

Mac App Store page for iBooks Author

It is a system vaguely similar to - but still different from - what Adobe proposed with CSS 3 Exclusions and Adobe's proposal is the document the whole CSS WG is working on.

Because of these extensions, editing or browsing the html documents with a regular wysiwyg editor (BlueGriffon or DreamWeaver for instance) or a browser (Firefox, Chrome or even Safari) shows a total mess on screen. It's not readable, it's not usable, it's not editable. Just forget it, Apple (re-)invented the Web totally incompatible with the Web.

All in all, Apple has worked entirely behind the curtains here. If someone tells you that iBooks format is EPUB3, don't believe it. It's not EPUB3, it's only based on EPUB3, and it raises a lot of issues that both publishers and customers should carefully look at:

  1. first, the english EULA of iBooks Author is just unacceptable. When I buy a computer, what I do with it is mine. When I buy a workbench, wood and a drill, what I do with them is mine. And when I buy or get a software license, what I do with it is mine and if I want to sell it through rabbits carrying CDs, that's my freedom. So if you're a publisher or a book author willing to use IBA, make sure your Legal Department carefully studies the IBA EULA.
  2. second, IBA is not EPUB3. A wysiwyg EPUB3 editor will not be able to edit correctly an IBA document because of the different mimetype and the proprietary CSS extensions. iBooks Author is not able to reopen a iBook it exported in their pseudo-EPUB3 format because there is no Import mechanism! That means that on one hand EPUB3 readers cannot reuse a document created by iBooks Author because of its HTML/CSS/Namespaces extensions, and on the other iBooks Author cannot create an iBook from an existing EPUB3 document because it cannot import it. But wait, can we open an EPUB3 or a regular HTML document into another app and copy/paste the content inside IBA? I tried from an HTML instance in Safari and from an EPUB reader based on Safari. It does not work, all markup is lost, it pastes text. Ugly result. Oh, and changing file extensions from ibooks to epub or vice-versa does not help either.

For the time being, iBooks on my iPad is anemic. Two days ago, I wanted to find a book by Asimov. Unavailable in french on the iBooks Store. Not a single Asimov... Wow. So I started browsing the Store to find things I could read on the iPad during my next trip. I discovered the iBooks Store is so tiny it just does not stand a single second the comparison with Amazon or even EPUB3-based bookstores. Reading a book on my iPad is cool. I just can't find in Apple's bookstore the books I want - and I am not looking for rare or hyper-intellectual stuff - so paper-based books are still my best choice.

With iBooks Author, Apple is trying even more to lock their formats and the market. But this is a bad strategy because publishers are fed up with formats. For one book, they have too many formats to export to. For each format, they have to use tools to convert (usually from MS Word) that are incomplete and all require manual reformatting or validation. Adding an extra format that is almost EPUB3 but is definitely not EPUB3 output by a software that is an isolated island and does not offer any extra help to reduce the publishing burden is representing a huge extra investment and is then, in my opinion, a mistake.

Apple has played here the game Microsoft was playing back in 1996/1997. Implementing behind the curtains up to that point, extending standards but not disclosing the extensions, using unstabilized Working Drafts into shipped products, making the shipped solution incompatible with the rest of the market and even incompatible with the other rendering engines of Apple, is a strategic error. It can only lead to a mess reaching the magnitude of the Outlook mess when it switched rendering engines and created a gigantic chaos for corporations sending newsletters that the recipients could not read any more.

iBooks Author is, as always with Apple, a very nice piece of software. Friendly user interface, simple to understand and manipulate even without Users' Manual. But from a Market point of view, my gut feeling is that it's one incompatibility too far. Apple is missing a huge opportunity here because it wants to lock the market, trying to offer the best editing environment to kill the other online bookstores. I don't think it will work that well:

  • MS Word remains the main format requested by Publishers all around the world, and it's not going to change any time soon,
  • not all authors have a Mac and iBooks Author is too close to a Page editor and less to a Document editor to be really usable to write a book from scratch,
  • Publishers will be reluctant to use yet another solution for publishing,
  • format incompatiblity is extremely expensive here, meaning it's impossible to use IBA as the pivot editor for creation. It's also impossible to use another tool to create an EPUB3 and only import it into IBA to enrich it since IBA has no Import feature. It's even impossible to browse a HTML document with Safari and copy/paste content into the HTML document handled by IBA!!! Pure crazyness.

When a piece of software is so well designed from a UI point of view and could become such an attractor in terms of usage, I feel this is a totally wrong strategy. Opening up everything and using only carefully chosen standards and matching the version of WebKit used by Safari would have given an immense and almost unbeatable competitive advantage to Apple, would have attracted even more people to the Mac platform and would have turned the iBooks Store into the primary online choice of publication for all new books. Starting with full conformance with EPUB3 and pushing for a fast update of EPUB3 or release of EPUB4 including all new CSS cool kids was a much better, and much more secure way of doing things.

That's like having a new hyper-cool appliance with a US power socket and traveling to Europe without adapter, and no possibility to buy such an adapter there. It's still a hyper-cool appliance but it will remain in the bag.

Thursday 19 January 2012

MegaUpload

Honestly, I don't know who is the <censored> who decided to redirect all MegaUpload (and the whole Mega* galaxy with it) requests to a page on the DoJ web site, but he or she can now be credited for the most massive DDOS in the history of the Internet. There will be ~150 million people reaching that page in the next hours. Most of justice.gov seems to be unreachable or extremely slow at this time, how surprising.

One word only : bravo!

Wednesday 18 January 2012

PayPal : INUTILISABLE

Le 10 juillet 2011, alors que j'essayais désespérément de télécharger mon rapport d'activité du trimestre et que cela plantait sur une erreur serveur à chaque fois, PayPal m'a dit au téléphone (je cite) :

"téléchargez les rapports d'activité mois par mois, un trimestre c'est trop gros"

Le 18 janvier 2012, aujourd'hui donc, alors que j'essayais désespérément de télécharger mon rapport d'activité du mois de novembre 2011 et que cela plantait sur une erreur serveur à chaque fois, PayPal m'a dit au téléphone (je cite) :

"téléchargez les rapports d'activité quinzaine par quinzaine, un mois c'est trop gros"

Je ne crois pas que les entrepreneurs utilisant PayPal vont sagement attendre que PayPal leur dise un jour :

"téléchargez les rapports d'activité jour par jour une semaine c'est trop gros"

PayPal tond la bête sans aucun investissement d'infrastructure - j'insiste, aucun, c'est impossible, le service ne fait que se dégrader depuis des années sans aucun période de rémission jamais - et cela ne peut pas durer éternellement. Concurrents à PayPal, il y a une place à prendre. Maintenant.

Saturday 14 January 2012

Verbatim

<publicité radio> et chez Maaf, les deux premiers mois d'assurance sont offerts...
<Michel, 13 ans> et après c'est la peau du cul !

Bon, c'est bien mon fils :-)

Thursday 12 January 2012

Conversation avec Sosh/Orange... Verbatim.

Vous êtes en relation avec Lydia.
<glazou>  Bonjour
<Sosh>  Bonjour, bienvenue sur le chat de Sosh conseil .
<glazou>  je viens de me rendre compte que mon forfait 5h n'existe plus...
<glazou>  je n'ai pas été prévenu
<glazou>  j'avoue apprécier TRES peu la manière
<Sosh>  D'accord.
<Sosh>  Puis-je avoir votre numéro de téléphone ?
<glazou>  06 XX XX XX XX
<glazou>  je veux donc savoir ce qui se serait passé si je n'avais pas
découvert cela par hasard et basculé moi-même
<Sosh>  Je vous remercie de patienter un instant, je recherche l'information.
<Sosh>  Je vous remercie de patienter un instant, je recherche l'information.
<Sosh>  Merci d'avoir patienté.
<Sosh>  Je vous informe que votre demande a été validé et vous aurez le forfait
24/7 le 17 janvier
<glazou>  bien maintenant je voudrai comprendre pourquoi un forfait pris il y a
un mois disparait alors que la version illimitée devient moins cher que
celui que j'avais ; en clair, est-ce que Sosh se fout de moi sur les
prix et qu'allez-vous faire pour que je ne bascule pas immédiatement
chez Free
<glazou>  (rien de personnel avec vous mais je trouve qu'Orange se paye ma tête)
<Sosh>  Est ce que le fait d'avoir le forfait 24/7 à 24.90€ c'est pas suffisant ?
<glazou>  comparé à la même chose avec un Fair Use de 3Go chez Free pour 15.99€ ?
<glazou>  pour être clair, il a suffit que Free se déclare pour que subitement vos
 forfaits baissent d'un tiers
<glazou>  et vous restez 1/3 plus chers et moins bien
<glazou>  Orange/Sosh donne vraiment l'impression de se payer la tête du client
<glazou>  je venais chez Sosh d'un forfait Orange Pro sans data à 46€
<glazou>  basculé ensuite à 5h Sosh à 29.99
<glazou>  s'il existait encore, il serait à 16
<glazou>  or vous me forcez à rester à 24.90 et

Votre chat est terminé. A bientôt sur sosh.fr
Votre session est terminée. Nous vous invitons à remplir une courte enquête de
satisfaction afin d'améliorer notre service Chat. Veuillez cliquer sur le
bouton questionnaire pour lancer l'enquête.

Bon. Sosh m'a donc raccroché au nez, je n'ai même pas pu finir ma question. Et tout ça après environ 20 minutes d'attente. Décidément, la notion de commerce chez Orange et Sosh, c'est très très très en-dessous de mes attentes et j'en ai assez d'être tondu comme un oeuf... Je vais passer chez Free.

Saturday 7 January 2012

Marianne se serait-elle faite enfumer ?

Y'a du gaz dans le clafoutis... Il y a 48 heures, Marianne tenait son nouveau scoop avec le pognon supposé bien mal-acquis de ONUSIDA par Carla Bruni-Sarkozy. Hier soir, ONUSIDA démentait et mettait Marianne dans un fort embarras dont la Carla sort plutôt blanchie... D'où une question simple et somme toute assez censée : Marianne a-t-elle été volontairement enfumée pour cacher le seul vrai gros poisson de Naïve (la boîte à Carla), c'est-à-dire qu'elle a obtenu en 2010 un financement de cinq (5) millions d'euros de la Caisse des Dépôts et Consignations (CDC) imposé par l'Élysée et contre l'avis des administrateurs de la CDC [1] ?

[1] Source: "L'oligarchie des Incapables"; S. Coignard & R. Gubert chez Albin Michel; page 64.

Friday 6 January 2012

Nadine Morano commence à vraiment nous prendre le chou

Je crois que la ci-devante Nadine Morano, qui ferait bien de lire le dernier livre de Sophie Coignard, se la pête un peu beaucoup trop en ce moment et ça commence à franchement prendre le chou à tout le monde :

"Je ne viens pas dans une émission politique pour me faire insulter par une soi-disant humoriste que je ne connais même pas et dont je n'ai pas été prévenue de la présence en studio" -- Le Monde

Mais ma chère Nadine... Vous permettez que je vous appelle Nadine hein, moi aussi j'ai des origines populaires dont je suis fier... J'ai aussi un cerveau mais que voulez-vous, on ne peut pas tous être logés à la même enseigne, c'est une vraie théorie de droite, ça. Ma chère Nadine disais-je donc, mais on se tamponne comme de la première goulée de lait de louve de Romulus et Remus du fait que vous considériez que Sophia Aram est une soi-disant humoriste !!! La seule chose qui compte et doit compter pour France Inter est que les auditeurs de France Inter la considèrent comme une humoriste. Ce qui semble bien le cas.

De même, ma chère Nadine, si vous ne deviez être moquée que par les ceusses et les ceux que vous connaissez, on n'entendrait pas souvent d'humour vous concernant. Cela serait dommage, vous tendez la perche en disant tellement de conneries que vous êtes une source permanente d'amusement. Vous faites toujours le concours avec Frédéric Lefebvre ? Au fait, personne n'a oublié la caissière de supermarché nancéenne, hein.

Pour finir, sacré nom de nom de Nadine, au nom de quoi devriez-vous être avertie qu'une humoriste est présente dans le studio ? Mais vous vous prenez pour qui ?!? Vous vous croyez sortie de la cuisse de Jupiter ? Il ne vous faut pas une invitation à une interview, il vous faut un autel avec des adorateurs ?

Sophia Aram n'est pas "digne d'une certaine gauche caviar qui déteste les ouvriers de droite", comme vous le dites. Par contre vous, vous êtes très digne d'une droite pêteuse qui ne tolère pas qu'on la descende de son piedestal. Droite... dans ses bottes.

Et je l'espère, dans quelques mois, droite dans l'opposition.

Sunday 1 January 2012

Looking back at 2011

2011 just came to an end and it's time to look back and report. For Disruptive Innovations, things are simple:

  • BlueGriffon released; BlueGriffon is our Wysiwyg content editor for the Web, powered by Gecko. It's the only editor of its kind offering support for html5, css3 and svg, all builtin. Version 1.4 to be released in january 2012.
  • many addons to BlueGriffon released. Our best-seller is clearly the CSS Pro Editor. A CSS 3 Animations Editor is on its way.
  • an EPUB version of BlueGriffon is also on its way. It takes more time than previously expected because of interpretation issues in the spec. But stay tuned, it's alive.

On the CSS WG front:

  • many new RECs, including CSS 2.1. The CSS WG is going very well, and we have a lot of new cool stuff on the radar. The Working Group is larger than ever, with an impressive number of active contributors.
  • the CSS Test Suite harness developed by Peter Linss is a major achievement, that helped us managing thousands of CSS 2.1 tests and delivering implementation reports.
  • CSS prefixes are a larger and larger problem every day. Even if we have different opinions on "why" and on "what instead", we almost all agree on part of the diagnosis: prefixes harm the Authoring community.
  • The current CSS OM is a pile of crap we unfortunately all have to rely on; and I do mean it: ALL. Web authors, game implementors, app developers, we all suffer from the weaknesses of the CSS OM. This should become a high priority, it's highly time to make the CSS OM evolve to support the new web apps ecosystem.

On the Mozilla front:

  • Mozilla appears to be in great shape, recruiting more than ever and diving into new market areas. Only stupid journalists and trolls jumped on the Mozilla-Google-deal-is-no-more bandwagon and the figures recently reported are excellent news.
  • this major direction shift did not happen at no cost, and the way Enterprises' needs were dealt with is still one of the largest and hardest hickups in Mozilla's history. From my perspective and reading the Moz Enterprise mailing-list, it's still largely unresolved. While things that many people (including yours truly) were waiting for reach finally the launchpad, some others are still the poor parent in the organization. The ecosystem (third-party Gecko-based apps) for instance is still undervalued and undersupported and a builtin system that would allow a real add-on marketplace is still not in sight. The debugging environment (call it Venkman or Firebug or whatever) focuses more than ever on content and chrome is forgotten, very strongly impacting add-on and apps developers; I just can't believe some of us had to rely on alert() or dump() in 2011... Surprisingly, Mozilla's CEO almost does not communicate at all (outside of MoCo), a drastic change in MoCo's 8 years of existence. Thunderbird came back to the nest after a few years of semi-independent life and it does not appear to be able to fly alone.
  • a few years ago, development tools were officially called "bloat" and the trend was to get rid (hear turn them into add-ons) of all of them to make the browser lighter. We were a few to fight that and it's good to discover now we were right: web development tools distributed with the browser itself and immediately available are a major attractor.
  • XUL's fate is still a matter of concern to many add-on and 3rd-party implementors, and we heard just nothing here. That's unusual in the Mozilla world, and very embarassing because people (our customers) don't bet on a technology if they feel if it could be on the extinction slope.
  • I think Mozilla has to reorganize the way it - as an organization and a community - communicates. Planet.mozilla.org became a good example for "unmanageable logorrhea", sorry to say. If by pure lack of chance you're away from a computer during one day, you may have missed extremely important technical information hidden between flows and flows of blog articles, information that you will NOT find again because you don't even know on which blog they're posted. Leave for a summer break and you're doomed. "Hey, that was posted on a blog entry two weeks ago, you missed it?" Hell, YES, I missed it, I also have a private life, and I missed it because it was on a blog and not on a persistent easy-to-find web site owned by MoCo. That is now a rather severe issue. Most of that information should only be LINKED on blogs and their primary host should be MDN or the wiki, both sites automatically sending to planet a weekly links-only digest of all new documents.

On the Web front:

  • the numberless html is a failure at least from one point of view. There is not a single journalist or commenter not using the "5" digit mentioning the "new" html language. I still remember TimBL looong ago, probably during the Web Conference in Paris, saying something like "unfortunately, human beings need meaningful identifiers". He was speaking of addresses, and the topic was of course URLs vs. URNs. For html version numbers, it's about the same. A "Living Standard" will never be meaningful to people who are not implementors and will always harm third-party vendors or even corporate users who need to match an implementation against a given snapshot of a spec. Don't misunderstand me, I see good bits in the "Living Standards" process. I see also unrecoverable bad bits.
  • that "Living Standard" frenzy is a bit like the soviet revolution - if you can pardon that weird analogy - it tries to expand and reach all standardization areas related to the Web, even the ones that work pretty well with another system. Like the soviet revolution's proselitism, it uses sometimes unexpected ways. And it also suffers epic failures like the Websocket hickup at IETF that triggered extremely harsh words, almost never seen before in that organization. But unlike the soviet revolution that was highly centralized, it's more an organized chaos.
  • html still poses major issues in terms of unified look&feel, localization, internationalization for web-based apps, not even mentioning "standalone" (hear chromeless) web-based apps. It really seems we're reinventing the wheel, as if XUL XAML and other solutions never existed. We're not there yet. Again. In terms of accessibility, I won't even tell you here my gut feeling, I want to remain polite at least the first day of this new year...

On the personal front:

  • 44 and counting :-)

Wishing you a very happy 2012 !

Thursday 22 December 2011

Displaying standalone images on dark background

That's in Firefox recent builds. Nice. In particular for dark images with a lot of alpha transparency :-( Now click on the image below to see it standalone. I find the result incredibly disturbing in terms of contrasts. That will probably be a severe accessibility issue for contrast-impaired people. Why was such a change done instead of adding a new checkbox preference to the Content panel of the preferences window "View images over dark background", unchecked by default?

BlueGriffon logo over dark background

Wednesday 21 December 2011

Folding tags in CodeMirror

CodeMirror offers a very convenient and light piece of code to fold code between curly braces. Very cool for the JavaScript editor into my codemirror2-based branch of BlueGriffon but not enough for the Source view of BlueGriffon itself. I needed to fold tags and not code so I wrote my own codemirror "plugin" for that. It's available here, licensing terms are included in the file. Enjoy !

Source view with one folded element

Sunday 18 December 2011

La vie au grand air

Je soupçonne fortement que le dernier délire des députés UMP visant à quasi-interdire la résidence permanente dans l'enceinte d'un camping est, comme aucun journaliste n'a osé le dire, à visée purement électorale : si ce projet passait, des dizaines de milliers de personnes seraient probablement radiées des listes électorales par manque de résidence principale... Des personnes difficilement soupçonnables de vote à droite. Voilà, il fallait le dire, non ?

Friday 16 December 2011

Bespin, Skywriter, Ace and BlueGriffon

Exactly two years ago almost to the day, BlueGriffon started using Bespin for its source editor.

Two years and two name changes later, not only the project has drastically changed from its original codebase but the documentation for the project is still almost non-existent; lack of doc is already painful for a project like mine, a wysiwyg standalone editor, but it's awful for an embeddable project like Ace.

The complexity of the code and its architecture, it's monstruous size, the crazyness of themes in CSS themselves contained in JS and more make my every day's life with Ace more and more difficult every day.

I am pondering switching to another source code editor because of:

  1. readability of the code; using Require.js all over the place helps the developer, rarely the user. The other embeddable editor I'm currently looking at is incredibly more readable than Ace. When I want to hack Ace, I'm totally lost and I never know if the code I'm writing will be correctly exposed to the external world. Even worse, I never know if a given function I was planning to use is exposed to me or how.
  2. size of the code; the other embeddable editor I'm currently looking at is 4 times smaller than Ace... Sorry, but yeah, size matters.
  3. theming is too complex for what it's worth in Ace. I want CSS and CSS only, like in any good web page.
  4. speed - and I agree Ace is fast - is not an excuse. The other embeddable editor I'm currently looking at has no problem whatsoever dealing with a 35,000 lines javascript file.
  5. embedding a grammar inside another one, and html documents can contain scripts and css while html file can also contain php, is vital to me. Doing that in Ace is, to say the least, totally cryptic to me.
  6. autocompletion should not be complex to add. With Ace, it is complex. A good autocompletion for html or CSS should not be more than roughly 30 lines of very light JavaScript.

I understand this is not a positive message, but I wanted to share my concerns with you if that can help the project. Even if I may stop using it in the very near future, I wish Ace all the best.

Monday 5 December 2011

Customize Firefox keyboard shortcuts

I adapted my code from BlueGriffon to Firefox this morning. Apparently Tim Taubert independently had the same idea - and also the same UI - a while ago. I promise I did not know about his code when I started mine. Anyway, you can find my XPI for Firefox 5+ here. Warning, in the case of Firefox, it's still highly experimental, can lead to severe issues because of bug 707633. Restart Firefox after installation and you'll find a new panel in the Preferences window.

(if you experience long delay between the click on the XPI link above and the "Install add-on" dialog, that's bug 657581)

Thursday 1 December 2011

Le tic à Sarkozy !

Bon, j'attends que quelqu'un se jette sur les videos de Youtube et fasse un montage/compilation : Sarkozy a un tic. Si, un vrai, en dehors de son mouvement d'épaule et son déhanchement quand il marche, sa manière de parler, il a encore un autre tic. Il se gratte l'oreille d'une façon très caractéristique quand son image est en jeu et et q'il ne sait pas quoi faire de ses mains : il prend le lobe de son oreille droite entre son pouce droit et le flanc de son index droit et il frotte l'index sur l'oreille. Vérifiez ! Comme l'a dit @bituur_esztreym sur twitter, il ne manque que le doudou !!! A vos logiciels de montage video !

Prévenez les imitateurs ! :-)

Wednesday 30 November 2011

Petit rapport de gendarmerie nocturne

  • quitter le bureau dans un état épouvantable assez tôt dans l'après-midi, suite à la dernière nuit quasi-entière passée à répondre à des messages W3C importants
  • mais quitter le bureau avec en tête un problème technique non résolu malgré une grosse heure de recherches
  • s'effondrer sur son sofa pour deux heures de récupération indispensables
  • faire à manger aux enfants et s'occuper d'eux normalement, sans montrer sa fatigue intense
  • papoter avec mon co-chair Peter, comme chaque semaine, pour l'organisation de la conférence téléphonique hebdomadaire du CSS WG
  • tenter d'expliquer à Tab Atkins via twitter que même si XPath et Selectors sont précisément sur le même créneau technique (et nom de Zeus je me suis battu contre ça aux débuts de CSS et XSL...), ils sont sur des "marchés" différents et sans intersection ; une situation idéale serait de n'avoir qu'un seul langage de sélection mais ce monde n'est pas idéal. Donc si les usagers de XPath ont besoin d'une nouvelle API pour XPath, il ne faut pas leur refuser. Maintenant on peut faire les choses très intelligemment et peut-être avoir une seule API pour à la fois XPath et Selectors...
  • se coucher parce que tout de même, ça faisait trois nuits de suite que je dormais peu ou presque pas du tout...
  • se réveiller à 5h08 du matin parce qu'un crétin bourré a beuglé sa décrépitude alcoolique à la cantonade pile sous mes fenêtres
  • encore allongé et dans le demi-sommeil du type réveillé en sursaut, voir la solution technique au problème cité en haut de cette liste comme si elle était inscrite en lettre de feu dans l'air de son appartement !
  • se précipiter sur sa bécane pour noter et vérifier avant de l'oublier
  • bloguer un coup en attendant que l'ibuprofène fasse de l'effet sur le mal de tête maousse-costaud déclenché par les trois nuits sans dormir et le réveil en sursaut
  • se recoucher parce que ce con de réveil peut encore me laisser une heure de sommeil

Quel métier de dingues :-)

Monday 28 November 2011

One pseudo-class, one document, two layouts

It's possible at super-minimal cost to have for the same document liquid AND fixed-width layout, thanks to ZE POWA of CSS...

In a fixed-width document named index.html, you usually have a rule setting the width or max-width of the main element. Something like

#main750 {
  max-width: 750px;
}

Right? Now think :target pseudo-class and tweak your style rule as followed:

#main750:target {
  max-width: 750px;
}

Do you understand the trick?

Yeah, your document now has liquid layout if called by URL index.html and fixed-width layout if called by index.html#main750 :-) TADA !

Saturday 26 November 2011

Verbatim: Orange, Samsung Wave, antennagate

  • (ici) Oui, le téléphone perd en permanence le réseau, c'est un Samsung Wave 575. La carte SIM a déjà été changée, ce n'est pas ça.
  • (hotline Orange) Inutile de m'en dire plus, c'est le téléphone qui est en cause... On a de nombreux soucis avec les Samsung Wave. On vous propose d'office l'échange standard.

Wednesday 23 November 2011

Some thoughts about editing CSS 3 Animations

I started working on an editing tool for CSS 3 Animations inside BlueGriffon. And I discovered that editing Animations is hard. Just like the rest of CSS, eh :-) Animations are powerful but hard to edit in the general case.

Case 1

We have a html document with one @keyframes myAnim1 { ... } rule. When the user clicks on a given element, another element acquires through JavaScript an animation-name, an animation-duration and an animation-delay. In other terms, an editing environment opening that html document cannot determine from the document instance the animation myAnim1 can be attached to the element, when it should start and how long it will last.

Case 2

The document contains the @keyframes myAnim1 { ... } rule but myAnim1 is used through animation-name by two selectors targeting two different elements in the stylesheet. The corresponding animation-duration and animation-delay differ. Then the keyframes' set myAnim1 must be represented twice on a timeline, and the key here is clearly the selector.

Case 3

The Web developer is a JavaScript zealot and all animations are launched and chained through JavaScript instead of using a single class on a single element,  descendant combinators and animation-delay. Then it's impossible to present a  timeline of all animations showing when they will start and end, proposing a global vision of the animations' set of the document.

Conclusion

Because of the above, a single timeline for all animations living inside a document is impossible in the most general case. I mean, if you take an arbitrary Web document retrieved from an arbitrary Web site using Animations, it's very unlikely that you'll be able to edit these animations using an editor showing a single-timeline view.

Sencha Animator shows a single timeline and that's why it is unable to deal with an arbitrary Web page. Adobe Edge is a worse case since it deals with Animations only through a huge JavaScript library... Launch Edge, make an animation, export the document, look at the CSS : it's empty.

So my editor will have two views, one for the keyframes' sets, one for the selectors and the animation properties. It's a little more complicated (although I'm not really sure about that) but it will allow you to edit all your CSS 3 Animations. Unless you used Edge and its ugly JS-based design, of course ;-)

Animations Editor sketch
Click to enlarge

Tuesday 22 November 2011

Des noms, des noms #2

Et voilà, ma mémoire était bonne : hier, France Info parlait de Colette Tortoré, restauratrice à la Bastide d'Armagnac ! Mouahaha :-)

Une Égypte "démocratique"

Pour moi, le doute a commencé hier lundi, quand j'ai lu quelque part que certaines personnes ayant inhalé les gaz "lacrymogènes" au Caire souffraient de problèmes de foie, de reins et autres. Et puis ce soir durant le journal d'Arte, un médecin égyptien disait "ce gaz est bizarre, il déclenche des tétanies et des convulsions"...

Cela me semblait donc clair : le gaz utilisé n'est pas seulement lacrymogène, il est également neurotoxique. Volontairement.

Depuis ce soir, les documents et messages tombent les uns après les autres:

  • "Tear gas with nerve agent & live ammunition being used against civilians in Tahrir.  A massacre is taking place" -- Mohamed El Baradei
  • "After spending time at field hospital, it's safe to say that 6 out of every 10 victims of the tear gas used suffer from convulsions" -- Ramy Yaacoub
  • "causes extra-pyramidal symptoms (involuntary jerks in extremities and trunk mimicking a convulsive seizure, occulo-gyric crisis, etc.) and little respiratory distress" -- The Arabist
  • "Tear gas used in Egypt banned for military use, causes liver, heart damage, miscarriages ... but is not banned for use as a riot control agent" -- bikyamasr "The United States, Sri Lanka, Israel and others including Egypt, have continued to use the gas on its people"

Le foutoir total dans les pays arabes, dirigés par des grands malades, talonnés par d'autres grands malades que sont les frères musulmans, est lojn d'être terminé. Cela a commencé moyennement bien, cela va finir très mais alors très mal.

- page 1 of 269