Article qui serait utile à nos futurs auteurs pour réaliser dès le départ l'ampleur de la tâche. (il ne s'agit pas de les freiner mais de les aider à se poser de bonnes questions et nous avec).
Article original dispo sur xaprb.com.
As you probably know, I recently finished writing a book with a few co-authors. I kept notes along the way and wanted to describe the process for those who are thinking about writing a book, too.
Comme vous le savez probablement, j'ai récemment fini d'écrire un livre avec quelques co-auteurs. J'ai pris des des notes tout au long de ce travail et je voulais vous décrire le processus pour ceux qui pensent également à écrire un livre.
I think it’s important to be objective; my purpose here is to help prospective authors get a feeling of what it’s like, and it’s not all good. Hopefully I won’t come off as sounding peeved at anyone or like I’m trying to put people down. I’ll have a lot to say about what went right and wrong, and how it helped and hindered the process.
Je pense qu'il est important d'être objectif; mon propos ici est d'aider de futurs auteurs à découvrir ce à quoi cela peut ressembler, et tout n'est pas fabuleux. J'espère que je n'aurai l'air d'être rancunier envers personne, ou d'essayer de rabaisser des gens. J'ai beaucoup à dire sur ce qui s'est bien passé et mal passé, et comment cela à aider ou entraver le processus.
Please excuse the rambling nature of this post. I’d love to write it well, but there is a lot to say and it’s a lot of work to write a long post in an organized fashion.
Excusez l'aspect décousu de cet article. J'aurai aimé mieux l'écrire, mais il y a beaucoup à dire et il faut beaucoup de travail pour écrire un aussi long article de façon structurée.
Peter Zaitsev contacted me about a year ago and asked if I’d like to help write the book. In the earliest stages, the idea was that I’d write a couple of appendices and help transform Peter and Vadim’s writing into book-quality material; I was to be sort of like a glorified technical editor. At the time I didn’t know who, but I knew there would be a fourth author.
Peter Zaitsev m'a contacté il y a environ un an et m'a demandé si j'aimerai l'aider à écrire un livre. Dans les premiers temps, l'idée était que j'écrirai quelques appendices et aider à transformer les écrits de Peter et Vadim en de la matière de qualité digne d'un livre; je devais être une sorte d'éditeur technique idéalisé. A cette époque, je ne savais pas qui ce devait être, mais je savais qu'il devait y avoir un quatrième auteur.
When Peter contacted me, I asked about the schedule, the outline, and what was complete so far. At that point, there was an outline in pretty basic form — just chapters and headings, with a sentence or two to explain the outline in a couple of places. The outline followed the first edition’s outline to some extent, and the chapters on benchmarking, profiling, indexing, and query optimization were partially written.
Quand Peter m'a contacté, j'ai posé des questions sur la planning, la structure du livre, et ce qui était déjà réalisé. A ce moment-là, le canevas était très vague : seule les chapitres et les titres, avec une phrase ou deux pour expliquer le plan à quelques endroits. Le plan était en partie calqué sur le plan de la première édition, et les chapitres sur les benchmarks, les optimisations, l'indexation et les optimisations des requêtes étaient partiellement écrits.
The schedule was actually being slipped already, because the book was supposed to go to tech review in June of 2007. The proposal was to revise the schedule so that everything would go to tech review by October of 2007. I don’t know when Peter started on the book, actually; Andy Oram had spent years trying to get authors for the second edition, and I think Peter had started quite some time before I came on board. He had then added Vadim and Arjen later, but it was clear that it wasn’t going to meet the original schedule no matter what.
Le planning avait à vrai dire déjà dérapé, car le livre était supposé être revu techniquement en juin 2007. La proposition était de revoir le planning pour que tout aille en revue technique en octobre 2007. Je ne sais pas quand Peter a réellement commencé à écrire son livre; Andy Oram a passé des années à chercher des auteurs pour la seconde édition, et je pense que Peter avait commencé quelque temps avant que j'embarque dans le navire. Il a ensuite ajouté Vadim et Arjen, mais il était clair qu'il était impossible de réussir à tenir le planning originel.
I asked the editor to send me the contract, and took a look at it. It was pretty vague. Responsibilities and steps to completion were not specified. I asked a friend of mine who’d written a book for Apress to review it for me. I asked him what the process was like. He described a process that had been exactly specified; his contract had specified what he was responsible for and exactly what steps were involved in publishing the book, who would perform each step, and when they had to happen. If he didn’t get his chapters done, he was not responsible for his co-author’s. O’Reilly’s contract, on the other hand, was really vague. I mulled over it, decided the proposed schedule was amusing, and decided to go ahead with the book anyway, bad contract or no.
J'ai demandé à l'éditeur de m'envoyer le contrat, et j'y ai jeté un coup d'oeil. Il était plutôt vague. Les responsabilités, et les étapes pour la réalisation n'étaient pas définis. J'ai demandé à un de mes amis qui avait écrit un livre pour Apress de l'étudier pour moi. Je lui ai demandé à quoi ressemblait le processus. Il m'a décrit un processus qui était très précisément défini; son contrat détaillait quelles étaient ses responsabilités et quelles devaint être les étapes pour publier le livre, qui devait réaliser chaque étape, et quand elles devaient intervenir. S'il ne réalisait pas ses chapitres, il n'était pas responsable pour ceux de son co-auteur. Le contrat de O'Reilly, à l'opposé, était totalement vague. J'ai tourné la question dans ma tête, décidé que le planning proposé était fantaisiste, et décidé de me lancer dans ce projet de livre, mauvais contrat ou pas.
I did negotiate to be a full author, rather than just being mentioned in the credits as originally proposed by the O’Reilly team, who thought I wouldn’t really be doing much work. And I decided that to make this work, it was going to take a lot of time. I spoke to my boss at the Rimm-Kaufman Group, and he was completely supportive of me taking time off work. I went back to O’Reilly and asked for more advances on royalties to cover me working half-time, and that was approved. I signed the contract and started working. Actually, I may have started working first.
J'ai négocié pour être un auteur complet, plutôt que d'être uniquement mentionné dans les crédits comme proposé au départ par l'équipe de O'Reilly, qui pensait que je ne ferai pas beaucoup de travail. Et j'ai jugé que réaliser ce travail allait me prendre beaucoup de temps. J'ai parlé à mon chef à Rimm-Kaufman Group, et il m'a totalement soutenu pour que je puisse réduire mon temps de travail. Je suis retourné à O'Reilly et je leur ai demandé d'avoir plus d'avance sur les ventes pour me permettre de couvrir ma perte de revenu due à mon travail à mi-temps, et cela a été accepté. J'ai signé le contrat et commencé à travailler. En fait, j'ai probablement d'abord commencé à travailler.
The tech publishing industry may work many ways, and I’m no expert on it, but the most surprising thing to me was that in the tech world, you generally don’t write a book and then go look for a publisher who’ll print it. It works the other way around. Generally, they do market research, decide they need a book on a topic, and go looking for people who are competent to write it. Especially for a second edition when the first edition’s authors aren’t interested in being involved, I imagine this must be a challenge.
L'industrie des publications techniques travaille probablement de différentes façons, et je ne suis pas expert, mais ce qui m'a le plus surpris était que dans le monde technique, en général, vous n'écrivez pas un livre, puis seulement, vous cherchez un éditeur qui l'imprimera. Cela fonctionne dans l'autre sens. En général, ils font une étude de marché, décident que vous avez besoin d'un livre sur un sujet, et commencent à chercher des gens qui seraient compétents pour l'écrire. Spécialement pour une seconde édition lorsque les auteurs de la première édition ne sont plus intéressés à s'y impliquer, j'imagine que cela doit être un défi.
The process of getting a book to print isn’t as simple as just writing it and sending it away. We drafted material, sent it to the editor, passed it around amongst ourselves, re-drafted, re-edited, ad nauseum. And then it went to tech review, and we got back revisions and comments; then more revising and editing; more writing, and on and on it went. Ultimately everything passes final editorial approval and “goes to production.” If you thought that was the end of the work, ha ha, it was nowhere close to being over. There was a production copyeditor, then a production editor, a professional artist, proofreading, quality control, more proofreading, indexing, final quality control, revisions, and finally it went to press. Each of these steps was a lot of work for me.
Le processus pour réussir à faire imprimer un livre n'est pas aussi facile que juste l'écrire et l'expédier. Nous avons rédigé une première version, puis l'avons envoyé à l'éditeur, faite passée entre nous, rédigé un nouveau brouillon, ré-édité, ad nauseum. Puis il a dû passer par la revue technique, et nous avons reçu des commentaires et des révisions à faire; il fallut donc encore une fois revoir et éditer; encore de l'écriture, et cela continua encore et encore. Au bout du compte, le livre a réussi à obtenir l'approbation éditoriale finale, et est enfin "parti en production". Si vous pensiez que c'était la fin du travail, ha ha, c'était encore loin d'être terminé. Il y eut encore un réviseur de production, un éditeur de production, un artiste professionnel, de la relecture, du contrôle de qualité, encore de la relecture, la création d'un index, le contrôle de qualité final, et enfin il peut partir à l'imprimerie. Chacune de ces étapes a représenté beaucoup de travail pour moi.
We were geographically distributed pretty widely, from California to London, Ukraine, Virginia, and Australia. Collaboration was probably what you’d expect: we never met face to face, though we did send a lot of email and we had weekly VOIP conference calls (at 6:30 AM my time, late late night Arjen’s time). We used a Subversion repository O’Reilly set up for us to store the chapters, figures, etc. And we used OpenOffice.org to write the chapters. This was fine with me; I was afraid when I started that it would be in Word. I don’t like word processors of any type, but I was happier with OO.org than Microsoft Word.
Nous étions géographiquement assez dispersés, de la Californie à Londres, l'Ukraine, la Virginie et l'Australie. La collaboration a été probablement ce que vous pensez: nous ne sommes jamais rencontré face à face, même si nous nous sommes envoyés beaucoup de mèl, et que nous avions des conférences téléphoniques VOIP hebdomadairement (à 6:30 du mation pour mon fuseau horaire, très tard dans la nuit pour celui de Arjen). Nous avons utilisé dépôt Subversion qu'O'Reilly a mis en place pour nous pour stocker les chapitres, les illustrations, etc... Et nous avons utilisé OpenOffice.org pour écrire les chapitres. Cela était très bien pour moi; j'avais peur lorsque j'ai commencé que nous utilisions Word. Je n'aime aucun type de traitement de texte, mais j'ai été plus heureux avec OO.org qu'avec Microsoft Word.
Using Subversion with binary files wasn’t ideal. By default Subversion doesn’t lock files for editing, so it was possible for us to edit the same file at the same time, and OO.org’s files are binary, so they’re not merge-able. We set the svn:needs-lock property on the files so only one person could edit at a time. While that seems like a problem, there was enough work to do that I don’t think we ended up waiting for other people to release locks more than once or twice. Each chapter was in a separate file. We had a few files of meta-data indicating completion, TODO items, and so on. Here’s a sample from our Status file:
4 Schema Optimization and indexing (ch04-Schema_Optimization.odt)
* Baron has written nearly everything.
* Baron is waiting for feedback on one section.
* Baron moved redundant material to other chapters.
* Peter has reviewed and commented.
* Baron reviewed Peter's comments and revised.
* Baron reviewed for EXPLAIN appendix.
* Sent to TR Jan 2nd.
* Baron rewrote completely.
* Baron reviewed for grammar and readability.
* Peter reviewed again.
* Baron reviewed Peter's comments and revised.
* Baron revised as per Sheeri.
* Baron revised as per Igor.
* Andy edited again.
* Baron revised.
Utiliser Subversion avec des fichiers binaries n'est pas idéal. Par défaut, Subversion ne verrouille pas les fichiers pour l'édition, il était donc possible d'éditer le même fichier au même moment, et comme les fichiers OO.org sont binaire, il n'était pas possible de les fusionner. Nous avons donc défini la propriété svn:needs-lock sur les fichiers, de façon à ce qu'une seule personne puisse les éditer à une instant donné. Même si cela pourrait paraître problématique, il y avait suffisamment de travail, et je ne pense pas qu'il y ait eu plus d'une fois ou deux où quelqu'un a dû attendre qu'une autre personne libère le verrou sur un fichier. Chaque chapitre était dans un fichier différent. Nous avions également quelque fichiers de méta-données indiquant l'avancement, les éléments à faire, etc... Voici un exemple tiré de notre fichier Statut:
4 Optimisation du schéma et index (ch04-Schema_Optimization.odt)
* Baron a à peu près tout écrit.
* Baron attend un retour pour une section.
* Baron a déplacé des éléments en doublons dans d'autres chapitres.
* Peter a relu et commenté.
* Baron a relu les commentaires de Peter et les a pris en compte.
* Baron a relu pour l'appendice EXPLAIN .
* Envoyé à la revue technique le 2 janvier.
* Baron a tout réécrit.
* Baron a relu pour la grammaire et la lisibilité.
* Peter a relu de nouveau.
* Baron a relu les commentaires de Peter et les a pris en compte.
* Baron a corrigé suivant les remarques de Sheeri.
* Baron a corrigé suivant les remarques de Igor.
* Andy a de nouveau édité.
* Baron a fait des corrections.
That’s the final state of the file; as we went, we had sub-sections in this text file indicating next steps, who needed to do what, and so on. Predictably, at various points each section would be changed to say something like “final draft complete” when in hindsight it was probably about 25% complete.
Il s'agit de l'état final du fichier; en avançant, nous avions des sous-sections dans ce fichier texte indiquant les étapes suivantes, qui devait faire quoi, etc... Comme vous pouvez le prévoir, à différents moments, chaque section passait à quelque chose comme "ébauche finale terminée", alors qu'avec le recul, elle n'était probablement terminée qu'à 25%.
Back to the tools: in fact you can actually compare and merge files from within OO.org, but it’s a crude way to do it. OO.org was annoying in several ways; it has a lot of bugs that got in the way. Some were simple, like the way the find-and-replace dialog doesn’t remember that you want to use regular expressions from search to search. Others were more serious, and crashed the program upon applying style definitions, for example. O’Reilly has a template, which has macros that help you format things with the styles they want so they’ll be able to convert the files to their own formats later. These were kind of clunky, and OO.org didn’t work so well with them in many cases. I did learn some ways to use them better; eventually I found various toolbars and dialog windows in Writer, and got them to mostly behave the way I wanted so I could write as I wished. But there were still a lot of annoying things, like the inability to have an outline view. I’m not sure that OO.org can’t do outlines one way or another, but O’Reilly’s custom styles weren’t recognized as outline-able heading levels.
Retour aux outils: en fait, vous pouvez comparer et fusionner des fichiers depuis OO.org, mais c'est assez rudimentaire. OO.org était agaçant de plusieurs manières; il a beaucoup de bugs qui se mettent en travers du chemin. Certains sont simples, comme la façon qu'a la boîte de dialogue rechercher-remplacer de ne pas se souvenir d'une recherche à l'autre que vous voulez utiliser les expressions règulières. D'autres sont plus sérieux, et font planter le programme, par exemple lorsque vous appliquez une définition de style. O'Reilly possède une maquette qui contient des macros vous aidant à formater des choses avec les styles qu'ils veulent; ainsi, ils sont ensuite capables de convertir les fichiers dans les propres formats. Ils sont plutôt malhabiles, et OO.org ne fonctionne pas si bien que ça avec eux dans beaucoup de cas. J'ai appris certaines trucs pour mieux les utiliser; finalement, j'ai trouvé différentes barres d'outils et boîtes de dialogues dans Writer, et j'ai réussi à les fonctionner à peu prés comme je voulais, ce qui m'a permis d'écrire selon mes désirs. Mais il restait encore beaucoup de choses agaçantes, comme l'impossibilité d'avoir une vue globale. Je ne suis pas sûr que OO.org puisse faire ??? d'une façon ou d'une autre, mais les styles personnalisés d'O'Reilly n'étaient pas reconnu comme étant des niveaux de titre ???outlineable???
When Andy edited files, he initially put comments in them using the Comment feature. This didn’t work well. OO.org’s commenting and reviewing features, at least in that version, were hideous. Finding comments in the text was really hard — there seemed to be no relationship between the comment order and the order they appear in the text. And once I found them, I couldn’t actually read them, because the interface doesn’t even line-wrap them, so you can see only a couple of words at a time. So I quickly convinced Andy to put his comments in the text instead. He turned on Track Changes, which works pretty well, and I just had to review and accept them.
Au départ quand Andy éditait des fichiers, il y mettait des commentairs en utilisant la fonctionnalité de Commentaire. Cela ne fonctionnait pas correctement. Les fonctionnalités de commentaire et de relecture de OO.org, tout du moins dans cette version, étaient horribles. Trouver des commentaires dans un texte était extrêmement difficile, il semblait n'y avoir aucun lien entre l'ordre des commentaires et l'ordre dans lequel ils apparaissent dans le texte. Et une fois que jeles avais trouvés, je ne pouvais en fait pas les lire, parce que l'interface ne faisait pas de retour à la ligne, je ne pouvais donc que voir quelques mots à la fois. J'ai donc rapidement convaincu Andy de plutôt mettre ses commentaires dans le texte. Il activait le "Suivi des modifications", qui fonctionnait plutôt bien, et il ne me restait qu'à les relire et les accepter.
At the beginning, I had in mind that I would be revising and editing, not writing new material. So I also began by enabling Track Changes. But this made the program really sloooooow, and I found that I was a) writing much more than editing, and b) when editing, I was basically rewriting. So I just turned it off. There were a few times I worried that I was losing the original meaning, but asking other authors to review my changes was too slow. The other authors had so much work to do that ultimately we were only able to get Peter to write the initial outline, review what I wrote from it, and in some cases review again. I had to face up to the reality of this and come up with another plan: snip out the relevant bits that really, really needed to be reviewed and put them into emails, which are much less work for other authors to browse through and respond, but caused more work for me.
Au début, je pensais que je ferai de la relecture et de l'édition, pas que j'écrirai de nouvelles choses. J'ai donc commencé en activant le suivi des modifications. Mais cela rendait le programme vraiment très lent, et je trouvais que a) j'écrivais plus que je n'éditais, et b) lorsque j'éditais, je faisais fondamentalement de la ré-écriture. Je l'ai donc désactivé. Il y a eu quelque fois où je me suis inquiété de perdre le sens originel, mais demander aux autres auteurs de relire mes changements était trop lent. Les autres auteurs avaient tant de travail à faire que au final, nous avons juste réussi à obtenir que Peter écrive le canevas initial, relise ce que j'écrivais à partir de ça, et dans certains cas, le relise une deuxième fois. J'ai dû faire face à cette réalité, et propose un autre plan: extraire les morceaux pertinents qui nécessitait vraiment, vraiment d'être relu et les mettre dans des mails, ce qui représente beaucoup moins de travail pour les autres auteurs pour les parcourir et y répondre, mais il en résultait plus de travail pour moi.
There are some other things that really cut into my productivity: you can’t split panes and see/edit two parts of the document at once; and so on and so on. I’d insert figures and they’d disappear after someone else opened and saved the file. Ultimately I just coped. Getting the job done was most important.
D'autres choses ont également fortement réduit ma productivité: vous ne pouvez séparer en deux panneaux et voir/éditer deux parties du document en même temps; etc, etc, etc... J'insérais des illustrations, et elles disparaissaient lorsque quelqu'un d'autre ouvrait et sauvegardait le fichier. Finalement, je m'en suis sorti. Le plus important était que le travail se fasse.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 1
Relire, ré-écrire et recommencer de zéro
The book was a second edition. As such, technically we were revising and updating the first edition.
Le livre était une seconde édition. Donc, techniquement, nous relisions et mettions à jour la première édition.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 2
In reality we didn’t keep much of the first edition — just a bit of text and most of the outline and overall structure. I want to be careful how I say this, because I don’t want to criticize the first edition, but obviously our job was to make it better. I’ve heard people say they loved the first edition, and people say they thought it was not in-depth enough. (For those people hopefully the second edition will satisfy.)
En fait, nous n'avons pas gardé grand chose de la première édition, juste un peu de texte et la plupart des titres et de la structure général. Je veux être prudent sur la façon dont je dis ça, car je ne veux pas critiquer la première édition, mais il était évident que notre travail était de le rendre meilleur. J'ai entendu des gens dire qu'ils aimaient la première édition, et d'autres personnes dire qu'ils pensaient qu'il n'allait pas assez en profondeur. (Espérons que la seconde édition les satisfaira.))
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 3
I actually found that except for the outline, I preferred not to refer to the first edition’s material if possible. It is much more work to rewrite than to write from scratch, unless the changes are going to be really minimal. In a few places, we thought the changes should be really cosmetic; those almost always ended up being a lot of work. Oops!
J'ai en fait réalisé que, à part la table des matières, j'ai préféré, si possible, ne pas me rapporter au matériel de la première édition. C'est beaucoup plus de travail de ré-écrire que d'écrire de zéro, à moins que les changements soient vraiment minimals. A quelques endroits, nous pensions que les changements seraient uniquement cosmétiques; cela se terminait presque toujours par beaucoup de travail. Oups!
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 4
The original idea was that Peter and Vadim would try to write the material, and then I’d rewrite/edit (and in some cases it would be Arjen instead of me), and Peter would review, and Andy would edit, and we’d go around and around until it was done. I quickly realized that this would not work. Rewriting is far more work than just writing from a detailed outline. I timed it a few times, and found that it takes about 4 times as long to rewrite and tweak text than it takes to get the paragraphs onto the page.
L'idée originale était que Peter et Vadim essaieraient d'écrire la documentation, et moi, je réécrirais/éditerais (et dans certains cas, ce serait Arjen à ma place), puis Peter le relirait, et Andy l'éditerai,et nous continuerions ainsi jusqu'à ce que ce soit terminé. J'ai rapidement réalisé que ça n'allait pas fonctionner. Ré-écrire représente beaucoup plus de travail que juste écrire à partir d'un canevas détaillé. Je l'ai calculé plusieurs fois, et j'ai découvert qu'il fallait environ 4 fois plus de temps pour ré-écrire et peaufiner le texte que de temps pour simplement écrire les paragraphes.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 5
Prospective authors, take note of this point! The “final tweaking” is vastly more work than the initial, satisfying process of getting the words down. You can cut your work down by about 75% if you keep working on more and more detailed outlines, long past the point you think you ought to start “writing.” That’s my experience anyway.
Auteurs potentiels, notez bien ce point: Le "réglage final" représente largement plus de travail que le processus initial et satisfaisant de coucher les mots sur le papier. Vous pouvez réduire votre travail d'environ 75% si vous travaillez sur un canevas de plus en plus détaillé, longtemps après le moment où vous pensiez que vous deviez commencer à "écrire". C'est en tout cas mon expérience.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 6
After some thought, I decided that it’s because rewriting is sort of like reverse engineering and then re-compiling. Let’s take this for an example:
Good performance depends on both an optimal schema and optimal indexing. Optimizing server settings can improve performance from a few percent to several times, but optimizing a poorly designed or badly indexed schema can improve performance several orders of magnitude.
Après un peu de réflexion, j'en ai conclu que cela était dû au fait que la ré-écriture ressemble un peu à faire de la rétro-ingénierie, puis de recompiler. Prenons cela par exemple:
De bonnes performances dépendent à la fois d'un schéma et d'un index optimal. Optimiser les paramètres du serveur peut améliorer les performances de quelques pourcents à plusieurs facteurs, mais optimiser un schéma conçu médiocrement et mal indexé peut améliorer les performances de plusieurs ordres de magnitude.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 7
This paragraph is not very clear, but it’s not very unclear, either. What’s to be done to fix it? Well, let’s see… you have to find what’s good and bad about it. What’s confusing? I think “from a few percent to several times” is pretty unclear. What are we trying to say here? Zoom out: what is the point of the whole paragraph? I’d say the main points in this paragraph are a) you need both optimal schema and indexing; b) settings can give a little improvement, but schema can give a lot. Now we’ll try to figure out how to say that succinctly, and what to leave in and what to leave out. What eventually went to print was this:
Optimizing a poorly designed or badly indexed schema can improve performance by orders of magnitude. If you require high performance, you must design your schema and indexes for the specific queries you will run.
Ce paragraphe n'est pas très clair, mais il n'est pas non plus totalement incompréhensible. Qu'est-ce qu'il faut faire pour l'arranger ? Eh bien, voyons un peu ça... vous devez trouver ce qui est bon et ce qui est mauvais là-dedans. Qu'est-ce qui est flou ? Je pense que "de quelques pourcents à plusieurs facteurs" est plutôt pas très clair. Qu'est-ce que nous essayons de dire là ? Zoom arrière: quel est l'objet de tout le paragraphe ? Je dirai que les éléments principaix de ce paragraphe sont a) vous avez besoin d'avoir à la fois un schéma et une indexation optimaux; b) les réglages peuvent donner un peu d'amélioration, mais le schéma vous en donne beaucoup. Maintenant, nous allons essayer de trouver comment dire cela de façon succincte, et de déterminer ce qu'il faut garder et ce qu'il faut enlever. Ce qui est finalement arrivé à l'impression est ceci :
Optimiser un schéma conçu médiocrement et mal indexé peut améliorer les performances de plusieurs ordres de magnitude. Si vous avez besoin de hautes performances, vous devez concevoir votre schéma et vos index pour les requêtes spécifiques que vous effectuerez.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 8
Pretty different, huh? There were probably 4 to 6 revisions in between. Here’s another before/after:
Generosity can be Unwise
A common mistake is assuming that since space consumption for short strings is the same for VARCHAR(10) and VARCHAR(200), you can simply set the maximum length to some higher value. In fact this has a severe performance penalty, because strings are often internally allocated as a fixed size object. Thus VARCHAR(200) will use much more space in memory, especially for sorting or operations which use in-memory temporary tables. The same thing happens with filesorts that use on-disk temporary tables. The best strategy is to allocate the space you really need.
Plutôt différent, hein ? Il y a eu problablement 4 à 6 révisions entre ces deux versions. Voici un autre avant/après:
La Générosité peut manquer de Sagesse.
Une erreur courante est de supposer que puisque l'espace consommée pour de petites chaînes de caractères est le même pour VARCHAR(10) et VARCHAR(200), vous pouvez simplement définir la longueur maximale à une valeur plus grande. En fait, cela pénaliser fortement les performances, car les chaînes de caractères sont souvant allouées en interne comme un objet de taille fixe. Ainsi VARCHAR(200) occupera plus de place en mémoire, en particulier pour les tris ou les opérations qui utilisent des talbes temporaires en mémoire. La même chose arrive avec le tri des fichiers qui utilise des tables temporaires sur le disque. La meilleure stratégie est d'alloué l'espace dont vous avez besoin.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 9
… and after:
Generosity Can Be Unwise
Storing the value ‘hello’ requires the same amount of space in a VARCHAR(5) and a VARCHAR(200) column. Is there any advantage to using the shorter column?
As it turns out, there is a big advantage. The larger column can use much more memory, because MySQL often allocates fixed-size chunks of memory to hold values internally. This is especially bad for sorting or operations that use in-memory temporary tables. The same thing happens with filesorts that use on-disk temporary tables. The best strategy is to allocate only as much space as you really need.
… et après :
La Générosité peut manquer de Sagesse
Stocker la valeur 'bonjour' nécessite la même quantité d'espace dans une colonne VARCHAR(7) que dans une colonne VARCHAR(200). Existe-il un avantage à utiliser une colonne plus petite ?
En fait, il y a un gros avantage. La colonne la plus grande peut utiliser plus de mémoire, car MySQL alloue souvent des blocs de mémoire de taille fixe pour gérer les valeurs en interne. C'est en particulier mauvais pour trier ou pour des opérations qui utilisent des tables temporaires en mémoire. La même chose se produit avec le tri des fichiers qui utilise des tables temporaires sur le disque. La meilleure stratégie est d'allouer uniquement l'espace dont vous avez réellement besoin.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 10
This process takes an amazing amount of time, and though you may think it’s an editor’s job, in my experience writing this book, this was mostly my job, not the editor’s. If I hadn’t done it, either a) the editor would have and I’d have had to do a ton of work reviewing the edits (this is no small task) or b) the book would have been lower quality.
Le processus prend une quantité de temps incroyable, et même si vous pensez que c'est le travail de l'éditeur, dans mon expérience d'écriture de livre, cela était principalement mon travail, pas celui de l'éditeur. Si je ne l'avais pas fait, soit a) l'éditeur ne l'aurait pas fait et j'aurais eu une tonne de travail à faire pour relire les éditions (ce n'est pas une petite tâche) soit b) le livre aurait été d'une moins bonne qualité.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 11
As a result, we quickly scrapped the idea that Peter and Vadim would write a first draft and I’d take it from there. The several chapters that had already been written in this fashion were a mind-boggling amount of work to do, and I had to come back to them again and again. Instead, I asked Peter to write detailed bullet-point outlines and fragments of thoughts. This was much easier to write from. Essentially, I was asking him to iteratively fill in an outline for me, which I now believe is a much better way to write this type of complex hierarchical material. (I do not believe it’s a good way to write a complex narrative, though; this is not a one-size-fits-all approach).
En conséquence, nous avons rapidement abandonné l'idée que Peter et Vadim écrirait le premier brouillon et que je partirai de là. Les quelques chapitres déjà écrits de cette façon représentaient une quantité stupéfiante de travail à faire, et j'ai dû y revenir encore et encore. A la place, j'ai demandé à Peter d'écrire un canevas détaillé de points importants et des fragments d'idées. Il était beaucoup plus facile de partir de cela pour écrire. Je lui demandai essentiellement de remplir de façon itérative le canevas pour moi, ce qui est, je le pense désormais, une meilleure façon d'écrire ce type de matériau dont l'organisation est complexe. (Je ne pense toutefois pas que c'est une bonne solution pour écrire une narration complexe; ce n'est pas une approche qui s'applique à tout.)
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 12
I can’t find a sample of the rough outline anymore, but I think you get the idea.
Another thing that caused extra work was when the outline wasn’t sufficiently detailed to start with. For example, we initially lumped the chapters on replication, scaling, high availability and so on together. It looked reasonable, but that’s because we hadn’t outlined in enough detail. After beginning to flesh it out, it was clear this would be a monster chapter, and we split it apart — more work. We also removed the “Back to Basics” chapter from the first edition, and ended up removing or moving a lot of material that was in the wrong place or was duplicated. All of this was more and more work.
Je ne retrouve plus un exemple de ce canevas brut, mais je pense que vous avez compris l'idée.
Une autre chose qui a conduit à du travail supplémentaire était lorsque le canevas n'était pas suffisamment détaillé pour qu'on puisse commencer à travailler avec. Par exemple, nous avions initialement mis ensembles les chapitres sur la réplication, le redimensionnement, la haute disponibilité, etc... Cela paraissait raisonnable, mais c'était parce que nous n'avions pas assez détaillé la structure. Après avoir commencé à lui donner de la consistance, il nous est apparu clairement que ce serait un chapitre monstrueux, et nous l'avons séparé en plusieurs morceaux, donc plus de travail. Nous avons également enlevé le chapitre "Retour aux fondamentaux" de la première édition, et nous avons fini par supprimer ou déplacer beaucoup de matériel qui n'était pas à la bonne place ou qui était dupliqué. Tout cela nous a demandé toujours plus de travail.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 13
I would say that avoiding the temptation to write, and outlining in fanatical detail, is a very high-value activity for writing a book that’s hierarchically organized like this. Do not write prose. The moment you start writing sentences, you begin structuring your thoughts in ways that create complex relationships between words, sentences, and paragraphs. Teasing this apart and putting it back together is brutally hard sometimes. There were times when I stared at something and just knew it was terrible but could not for the life of me figure out how to say it differently. I had tunnel vision because I was locked into what was already there.
Je dirai qu'éviter de céder à la tentation d'écrire, et décrire un canevas détaillé à l'extrême, est une activité à haute valeur ajoutée pour écrire un livre dont la hiérarchie est organisé comme celui-ci. N'écrivez pas de la prose. A l'instant où vous commencez à écrire des phrases, vous commencez à structurer vos pensées d'une manière qui crée des relations complexes entre les mots, les phrases, et les paragraphes. Les démêler et les remettre ensuite ensemble est parfois violent. Il y eut des fois où je regardai quelque chose en sachant que c'était horrible mais il m'était impossible de trouver une manière différente de le dire. J'avais des oeilléres car j'étais coincé dans ce qui était déjà là.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 14
Quite often we wrote about things in some way that seemed to make sense, but then discovered that a few paragraphs or pages needed to be swapped. The order in which we wrote things initially made the text flow a certain way that didn’t make sense after physically moving it. Cleaning this up was really hard. I’d advise prospective authors to plan for a lot of re-jiggering in the outline, so outline in much more detail than you think you have to. It’s a lot less work to rearrange part of a chapter when it’s in outline form.
Il nous arrivait souvent d'écrire des choses d'une façon qui nous semblait approriée, mais nous découvrions alors qu'il était nécessaire d'intervertir quelques paragraphes ou pages. L'ordre dans lequel nous les avions écrits au départ faisait couler le texte d'une certaine façon, qui n'était plus approriée après que nous les ayons bougé. Nettoyer cela était très difficile. Je conseille à des auteurs potentiels de prévoir beaucoup de tripatouillage sur le plan, donc Faites un plan beaucoup plus détaillé que ce que vous pensiez devoir faire. Cela donne beaucoup moins de travail de réarranger des morceaux de chapitre quand ils sont encore sous forme de canevas.
[modifier] Revising, rewriting, and starting from scratch - Paragraphe 15
At some point, when you get a large amount of text written, it’s hard to keep track of what’s where. I found myself thinking “I’ve written about this somewhere” and searching for it, but was unable to find it. Later, I’d be editing another chapter and I’d see what I was looking for, but then I couldn’t remember where the other place was anymore. Sometimes I’d used different words in the two places, so finding one by searching on the keywords in the other was impossible. We had a lot of duplicate material in some places, and this was just really hard to deal with. Part of this is because the book is hierarchically organized, and the old single-hierarchy problem started to bite us. Things belong in multiple places, but they can only go in one place. A good example is the server settings and status variables. Should we discuss them in the server tuning chapter, or in the place where we show you how to interpret the status variables? They belong in both places, and eventually we ended up with some overlap. Dealing with this is a lot of work. I don’t know how to mitigate this, other than with a good outline view — something lacking in OO.org.
A partir d'un certain point, lorsque vous avez écrit une vaste quantité de texte, il devient difficile de garder une trace de où est quoi. Je me suis retrouvé à me dire "J'ai écris quelque chose à propos de ça quelque part" et à le chercher, mais être incapable de le retrouver. Plus tard, en éditant un autre chapitre, je tombais sur ce que je cherchais, mais je n'arrivais alors plus à me souvenir où était l'autre endroit. Parfois, j'utilisais diffrents mots à deux endroits, il était donc impossible d'en trouver un en cherchant dans les mots-clés de l'autre. Nous avons eu beaucoup de matériel en doublon à certains endroits, et il était vraiment difficile de régler ça. Une partie du problème venait du fait que le livre était organisé de façon hiérarchiue, et que le vieux problème de la hiérarchie unique commençait à nous attaquer. Les choses appartiennent à plusieurs endroits, mais elles ne peuvent aller qu'à un seul. Un bon exemple concerne les réglages du serveur et les variables de statut. Devons-nous en parler dans le chapitre sur les réglages du serveur, ou à l'endroit où nous montrons comment interpréter les variables de statut ? Ils appartiennent aux deux endroits, et nous avons finalement terminé avec quelques recouvrements. Régler cela a représenté beaucoup de travail. Je ne sais pas comment atténuer ce problème, à part avec une bonne vue du plan, ce qui manque dans OO.org.
A lot of what we wrote about required deep research. Some of the time it was enough to go look at the MySQL manual (which is not always correct, so everything has to be verified), but just as often we had to go read source code or contact a program’s author. And occasionally, we had to run lengthy tests or benchmarks.
Beaucoup de ce que nous avons écrit nécessitait des recherches apprfondies. Parfois, il suffisait de jeter un coup d'œil au manuel MySQL (qui n'est pas toujours juste, donc tout devait être vérfié), mais nous devions aussi souvent aller lire du code source ou contacter l'auteur d'un programme. Occasionnellement, nous devions également lancer de longs tests ou des benchmarks.
What I learned from this is that research can take forever. You’re either trying to understand something, or you’re waiting on some poor programmer who has thousands of emails in his inbox.
Ce que j'ai appris de cela, c'est que les recherches peuvent durer éternellement. Vous êtes soit en train d'essayer de comprendre quelque chose, soit vous êtes dans l'attente d'un pauvre programmeur qui a des milliers de mails dans sa boîte de réception.
Here’s an example: what does avgrq-sz really mean in iostat? The man page is confusing. It says “The average size (in sectors) of the requests that were issued to the device.” To find out what this really meant, I had to read the iostat source, kernel source, and kernel documentation. That took a long time. Then I confirmed my findings with iostat’s author.
Voici un exemple: qu'est-ce que avgrq-sz signifie réellemetn dans iostat ? La page du manuel est plutôt déroutante. Elle dit "La taille moyenne (en secteurs) des requêtes qui ont été envoyées au périphérique." Pour découvrir ce que cela veut réellement dire, j'ai dû lire les sources de iostat, les sources du noyau, et la documentation du noyau. Cela m'a pris beaucoup de temps. J'ai ensuite confirmé mes découvertes avec l'auteur de iostat.
We did a lot of research into MySQL’s advanced features, such as stored procedures, the query cache, etc. And a lot — a lot! — into InnoDB. We especially wanted to learn how these features interact with each other. For example, how does InnoDB interact with the query cache? That’s not documented at all. Each thing took a long time.
Nous avons effectué beaucoup de recherches sur les fonctionnalités avancées de MySQL, comme les procédures stockées, le cache de requête, etc... Et beaucoup, beaucoup! , dans InnoDB. Nous voulions particulièrement apprendre comment ces fonctionnalités interagissait entre elles. Par exemple, comment InnoDB interagit avec le cache de requête ? Ce n'est pas du tout documenté. Chaque chose prend beaucoup de temps.
We also did a lot of benchmarking. Benchmarking is time-consuming, too.
Plan for research to take much more time than you think it should. Jay Pipes told me to plan for about a half-page a day, and I think that might be about right when you have to research much of the material on any given page.
Nous avons également réalisé beaucoup de tests de performances. Les tests de performances sont très consommateurs de temps, également.
Prévoyez de prendre plus de temps pour la recherche que vous pensiez que vous devriez. Jay Pipes m'a dit prévoir environ une demi-page par jour, et je pense que cela doit être correct lorsque vous devez effectuer des recherches pour la plupart du matériel de chaque page.
Working with the editor was an educational experience. I knew I had weak spots in my writing (and I still do) but I didn’t know what they were. I was determined that this book should be clear and easy to understand. This is hard when you have a really deep, complex book — but it’s even more important then.
Travailler avec l'éditeur a été une expérience enrichissante. Je savais que je possédais des points faibles dans mon écriture (et j'en ai encore), mais je ne savais pas ce qu'ils étaient. J'étais fermement décidé à ce que le livre soit clair et facile à comprendre. C'est difficile quand vous avez un livre vraiment pointu et complexe, mais c'est encore plus important.
As a result, I created a set of heuristics to help me find places where something needed attention. It wasn’t a perfect process, but it helped a lot. Then I made a text file with regular expression patterns, and searched for matches. When I found them, I thought about what to do with them.
Par conséquent, j'ai créé un ensemble d'heuristique pour m'aider à trouver les endroits où quelque chose nécessite de l'attention. Ce n'était pas un processus parfait, mais cela m'a beaucoup aidé. Je créait alors un fichier texte avec des expressions régulières, et chercher des correspondances. Lorsque je les trouvai, je réfléchissai à ce que je devais faire avec.
Here’s an example: the word “only”. I have a habit of using it badly, and I didn’t know that. But I learned, because I watched what Andy corrected, and noticed the pattern. I added the word “only” to my text file of regexps. Here’s an example of how I use it badly:
Things belong in multiple places, but they can only go in one place.
(Hmmm, that’s a sentence I wrote in this blog post!) Here’s what it should say:
Things belong in multiple places, but they can go in only one place.
Voici un exemple: le mot "seulement". J'ai l'habitude de mal l'utiliser, et je ne le savais pas. Mais j'ai aprris, parce que j'ai observé ce que Andy corrigeait, et j'ai noté le comportement. J'ai ajouté le mot "seulement" à mon fichier texte d'expressions régulières. Voici un exemple de ma mauvaise utilisation de ce mot :
Les choses appartiennent à plusieurs endroits, mais ils peuvent aller seulement à un endroit.
(Hmmm, c'est une phrase que j'ai écrit dans ce post!) Voici ce que j'aurai dû écrire :
Les choses appartiennent à plusieurs endroits, mais ils ne peuvent aller qu'à un seul endroit.
Ultimately, my file of regular expressions looked like this:
Passive voice:
(were|was|is|are|has been|be)( [a-zA-Z]+)? [a-zA-Z]+ed\>
Repeated words:
\<([a-zA-Z]+) +\1\>
Confusing possessives:
the ([a-zA-Z]+) of the
Things to look out for:
while|since|\<using|in order|of course|whether|allow|ensure|only|as (we|you)|without saying|obviously|clearly|needless|again,
Finding pseudo-cross-references:
((Figure|Table) [0-9])|TODO|XREF|MARK_
An awkward phrase that showed up a lot:
\<by [a-zA-Z]+ing\>
A la fin, mon fichier d'expressions régulières ressemblit à cela:
Mode passif:
(were|was|is|are|has been|be)( [a-zA-Z]+)? [a-zA-Z]+ed\>
Mots répétés:
\<([a-zA-Z]+) +\1\>
Confusion de possessif:
the ([a-zA-Z]+) of the
Choses à chercher:
while|since|\<using|in order|of course|whether|allow|ensure|only|as (we|you)|without saying|obviously|clearly|needless|again,
Chercher des pseudo-références-croisées :
((Figure|Table) [0-9])|TODO|XREF|MARK_
Une expression bizarre qui apparaît souvent :
\<by [a-zA-Z]+ing\>
These expressions helped me catch constructions such as “the tail of the dog,” which can be shortened to “the dog’s tail.” Or something I noticed a lot from existing content: “By using mysqldump, you can dump data” becomes “You can dump data with mysqldump.” (The last line in the file catches that one.) I tried to make my sentences say, as plainly as possible, “who does what to what.” If you can’t answer that question about a sentence, it’s not clear in my opinion. I tried to use shorter words when possible: “allow” can often be “let,” and as a bonus it usually turns a phrase into a single word: “This setting allows you to …” becomes “This setting lets you….”
Ces expressions m'ont aidé à attraper des constructions comme "the tail of the dog", qui peut se raccourcir "the dog's tail". Ou quelque chose que j'ai noté souvent dans le contenu existant: "En utilisant mysqldump, vous pouvez décharger les données", devient "Vous pouvez décharger les données avec mysqldump" (La dernière ligne du fichier permet de détecter celle-là). J'ai essayé de faire dire à mes phrases, autant que possible, "qui fait quoi pour faire quoi". Si vous ne pouvez pas répondre à cette question à propos d'une phrase, à mon avis, c'est que ce n'est pas clair. J'ai essayé d'utiliser des mots plus courts lorsque c'était possible:"permettre" peut souvent être remplacé par "laisser", et comme bonus, cela transforme souvent une expression en un seul mot: "Ces réglages vous permettent de..." devient "Ces règlages vous laissent..."
--Penguin 2 octobre 2008 à 22:04 (CEST):
Je n'ai pas trouvé un bon remplacement en français pour le couple allow/let
Phrases like “of course” usually alert me that I’m being sloppy. “Of course” really means “this is obvious, but I’m stating it anyway.” So why write it, then? However, far more often “of course” is a proxy for “I believe this, but I don’t know why and it feels hard to explain, so I’m going to just imply that it’s obvious and you shouldn’t have to ask me to explain it.” A lot of other phrases in my list are just mental bad habits I get into — such as “in order to,” which can usually be shortened to “to.”
Des expressions comme "bien sûr" m'indiquent en général que j'ai été paresseux. "Bien sûr" veut en fait dire "c'est évident, mais je le dis quand même". Alors pourquoi l'écrire ? Cependant, le plus souvent "bien sûr" est un raccourci pour dire "Je crois cela, mais je ne sais pas pourquoi, et c'est difficile à expliquer, alors je laisse juste entendre que c'est évident et que vous ne devriez pas me demander de l'expliquer". Beaucoup d'autres expressions dans ma liste sont simplement de mauvaises habitudes mentales dans lesquelles je suis tombées, comme "afin de", qui peut en général être raccourci par "pour".
My father taught me that I use “that” too much. “She said that the pie was good” becomes “She said the pie was good.” Sometimes I take this too far. For example, “My father taught me I use ‘that’ too much” is overkill; it needs an extra “that” to flow well. The editor put quite a few “that”s back into the text.
Mon père m'a appris que j'utilisais trop "que". "Elle dit que la tarte était bonne" devient "???". Parfois, j'allais trop loin avec cela. Par exemple, "Mon père m'a appris j'utilisais trop "que" est exagéré; il faut un "que" supplémentaire pour que cela glisse mieux. L'éditeur a remise quelque "que" dans le texte.
Passive voice is an absolute killer — it confuses the reader, even if s/he doesn’t notice, and makes it much harder to comprehend and retain what you’re reading. Here’s an example I found with my regular expression: “For some organizations this problem is solved using a combination of” becomes “Some organizations solve this problem with a combination of.” Sentence clarity is made worse by few things more than when passive voice is used by the author. (You’re supposed to laugh.)
Le mode passif est un tueur absolu, il trouble le lecteur, même s'il ne le remarque pas forcément, et rend plus difficile à comprendre et à retenir ce qu'il lit. Voici un exemple que j'ai trouvé grâce à mon expression régulière: "Pour certaine sorganisations, ce problème est résolu par une combinaison de" devient "Certaines organisations résolvent ce problème par une combinaison de". La clarté des phrases est réduite par peu de choses autant que lorsque le mode passif est utilisé par l'auteur. (Vous êtes censé rire).
No matter how good you think your writing is, prepare to put your ego aside. An editor will always find ways to make it better.
Peu importe à quel point vous croyez bien écrire, préparez-vous à mettre votre ego de côté. Un éditeur trouvera toujours des moyens de rendre vos écrits encore meilleurs.
After applying my heuristics to help me find the weakest spots, I thought I could do better. I’m a Perl programmer, right? Right. So I grabbed a few modules from CPAN, wrote a little process to extract the text from the files and clean it up, and ran sentence analysis on the files. I used several standard metrics of readability to analyze individual sentences and whole paragraphs: Fog, Flesch, and Flesch-Kincaid. But these were not good enough, and the hyphenation algorithms were not good enough to measure the number of syllables accurately. So I turned to the ultimate system for hyphenating the English language: TeX. It has rules to hyphenate extremely accurately, with all sorts of special cases. (”The-rapists who pre-ached on wee-knights” is a classic example of bad hyphenation.) I broke sentences into syllables with a custom process to hook Perl into TeX’s hyphenation routines through another CPAN module, and ranked sentences and paragraphs by the number of syllables. Then I combined all of these metrics and created a report on which parts were the worst. I looked at the top 30 phrases that scored badly, and found a lot of problems.
Après avoir appliqué mes heuristiques pour m'aider à trouver mes points fabiles, j'ai pensé que je pouvais faire encore mieux. Je suis un programmeur Perl, pas vrai ? Exact. J'ai donc récupéré quelques modules sur CPAN, écrit un petit processus qui extrait le texte des fichiers et le nettoie un peu, puis effecture une analyse des phrases dans les fichiers. J'ai utilisé plusieurs métriques standards de lisibilité pour analyser les phrases individuellement et les paragraphes entiers; Flog, Flesch, et Flesh-Kincaid. Mais ils n'étaient pas suffisamment bons, et l'algorithme de césure n'était pas suffisamment bon pour mesurer le nombre de syllabes correctement. Je me suis donc tourné vers le système ultime pour faire des césures dans la langue anglaise : TeX. Il possède des règles pour faire des césures de façon extrêmement juste, avec toutes sortes de cas spéciaux. ("Les thé-rapeutes qui prêc-hent la nu-it" est un exemple classique de mauvaise césure.) J'ai découpé les phrases en syllabes avec un processus personnalisé pour brancher Perl sur les routines de césures de TeX à travers un autre module CPAN, puis j'ai classé les phrases et les paragraphes par nombre de syllabes. J'ai ensuite combiné tous ces métriques et créé un rapport indiquant quelles étaient les pires parties. J'ai alors jeté un coup d'oeil aux 30 phrases qui avaient le plus mauvais score, et j'ai trouvé de cette façon beaucoup de problèmes.
This was a valuable exercise; it helped me get a fresh look at the text I’d been staring at for months, and really did help me find the bad spots in the text. But it wasn’t enough, ultimately. More on this in the next section.
Cela a été un exercice enrichissant; il m'a aidé à avoir une vision nouvelle sur le texte que je regardais depuis des mois, m'a réellement aidé à trouver les mauvais endroits dans le texte. Mais ce n'était pas encore suffisant. Plus d'informations à ce propos dans la section suivante.
[modifier] From concept to completion - Paragraphe 1
Du concept à la réalisation
The high-level process to get a chapter to tech review looked like this:
Outline
Re-outline
Fill in the outline
Initial editing
Send to other authors for review
Revise
Send to the editor
Revise
Repeat, repeat, repeat…
Le processus haut-niveau pour qu'un chapitre puisse être envoyé à la revue technique ressemble à ça :
Faire le canevas
Refaire le canevas
Remplir le canevas
Edition initiale
Envoi aux autres auteurs pour relecture
Corriger
Envoyer à l'éditeur
Corriger
Répéter, répéter, répéter ...
[modifier] From concept to completion - Paragraphe 2
That’s roughly what it takes to get something ready for tech review. Each chapter went to the editor or assistant editor about three times, and back to Peter at least once or twice. Peter’s revisions were exhaustive (and exhausting) and sometimes a lot of work to figure out what to do with. He also added a lot of depth in many cases, which required rewriting and re-outlining. (Remember my advice about outlining to an insane level of detail before beginning to write…?). All of these steps also took a lot of time, because it was a lot of work for Peter, too. He was also doing a lot of onsite consulting, moving his whole family to the USA, and keeping Percona going at the same time. I honestly have no idea how he did it.
C'est en gros ce qu'il faut faire pour réussir à obtenir quelque chose prêt à être envoyer à la revue technique. Chaque chapitre est allé à l'éditeur ou à son assistant au moins trois fois, et de nouveau vers Peter au moins une ou deux fois. Les relectures de Peter sont exhaustives (et exténuantes) et il y avait parfois beaucoup de travail pour comprendre ce qu'on peut en faire. Il ajoutait également dans de nombreux cas beaucoup de profondeur, ce qui nécessitait une réécriture et de définir un nouveau plan. (Vous vous souvenez de mon conseil sur la définition du canevas jusqu'à un niveau de détail hallucinant avant de commencer à écrire ?). Chacune de ces étapes prenait également beaucoup de temps, car c'était aussi beaucoup de travail pour Peter. Il faisait également beaucoup de conseils sur site, déplaçant toute sa famille aux Etats-Unis, et continuant à faire tourner Percona en même temps. Honnêtement, je ne sais pas comment il a réussi.
[modifier] From concept to completion - Paragraphe 3
At the “end” of this process, the chapters were reasonably feature-complete, but with large sections marked TODO because they were waiting on one of the authors, an “external network call” to Heikki or someone, or a benchmark. Still, things have to go to the tech reviewers at some point. From then on, the process was
Send to tech review
Keep working
Get back comments
Revise, wait, wait, wait
Get back comments from another reviewer, revise again, repeat till done
A la "fin" de ce processus, les chapitres étaient raisonnablement complets au niveau des fonctionnalités, mais avec de larges sections marquées A FAIRE, car elles attendaient que l'un des auteurs, un "appel externe réseau" pour Heikki ou quelqu'un d'autre, ou un test de performance. Pourtant, il fallait bien que les choses aillent à la revue technique à un moment ou à un autre. A ce moment-là, le processus était le suivant :
Envoyer à la revue technique
Continuer à travailler
Recevoir des commentaires
Corriger, attendre, attendre, attendre
Recevoir des commentaires d'un autre relecteur, corriger de nouveau, et répéter jusquà ce que ce soit terminé
[modifier] From concept to completion - Paragraphe 4
Everyone has busy lives, and we didn’t get the first chapters to tech review until the holidays — the worst time to ask people to do it. And there was so much to do that I could not possibly wait for all the reviews to come back before beginning to revise. As a result, I’d get back comments from Sheeri, and I’d have to try to reconcile them against the edits I’d made in response to Roland, and then Pascal’s comments would come in and I’d be up at 2AM thinking “why is he telling me this! I’ve fixed that already!” This response was a function of how tired I was and how long I was working on this book, not how I really felt about Pascal.
Chacun a un vie bien remplie, et nous n'avons pas pu envoyer les premiers chapitres à la revue technique avant les vacances, le pire moment pour demander à des gens de le faire. Et il y avait tant à faire que je ne pouvais pas attendre que toutes les retours de la revue technique reviennent pour commencer à corriger. En conséquence, je reevais des commentaires de Sheeri, et je devais les mettre en accord avec les modifications que j'avais effectué en réaction à Roland, et alors les commentaires de Pascal arrivait et je me retrouvais à 2h du matin à me demander :" mais pourquoi est-ce qu'il me dit ça! Je l'ai déjà corrigé!" Cette réaction dépendait de mon état de fatigue et depuis combien de temps je travaillais sur ce livre, mais pas de mon sentiment réel envers Pascal.
[modifier] From concept to completion - Paragraphe 5
We also didn’t make it clear to the reviewers that they were supposed to be reviewing, not editing. I’d try not to make this mistake again. Some of the reviewers spent a lot of time editing grammar and style. Unfortunately, this was wasted effort — the material was nowhere near good enough quality to be editing for style and grammar (and the style is up to the author and editor, not tech reviewers). It’s also impossible to actually accept people’s changes to the files — there’s no way to merge 5 tech reviewer’s changes together, so I only opened the reviewed files separately and looked back and forth between them and my working copy. The edits added a lot more things I had to look through; this is just the wrong stage to do anything but very high-level editing (at the level of overall organization, for example). The tech review stage is simply to check for factual errors or things that are technically ambiguous or questionable. As you’ll see, the editing stage was to come much later.
Nous n'avons également pas clairement indiqué aux relecteurs qu'ils étaient censé relire, pas faire de l'édition. J'essaierai de ne pas refaire cette erreur. Certains des relecteurs ont passé beaucoup de temps à corriger la grammaire et le style. Malheureusement, c'était de l'énergie perdu, le matériel était d'une qualité trop médiocre pour que l'on se préoccupe de corriger le style et la grammaire (et le style est la responsabilité de l'auteur et de l'éditeur, pas celui des relecteurs techniques). Il est en fait également impossible d'accepter les changements qu'ils ont fait aux fichiers, il n'y a pas moyen de fusionner ensemble les changements de 5 relecteurs techniques, j'ai donc ouvert les fichiers de relecture séparément, et fait des allers-retours entre eux et ma copie de travail. Les éditions ont encore ajoutése de nouvelles choses qu'il fallait également que je regarde; c'est vraiment la mauvaise étape pour faire autre chose que l'édition de haut-niveau (au niveau de l'organisation globale, par exemple). L'étape de relecture technique consiste simplement à chercher des erreurs factuels, ou des choses qui sont techniquement ambigues ou discutable. Comme vous le verrez, l'étape d'édition allait arriver plus tard.
[modifier] From concept to completion - Paragraphe 6
After the tech review and many more iterations of editing and revisions, the chapters were deemed ready for production. There is no way to prepare for how much work it takes to get to this stage. Well, maybe it’s a function of starting with relatively low-fidelity material (the raw content from Peter and Vadim, I mean — not from the first edition — some of the material was sort of like a hex dump combined with snippets from blog posts, post-filtered through an obfuscator). Anyway, the most bizarre thing kept happening: I’d mark a chapter as ready for production in the Status meta-file, and then I’d go back and look at it and find all sorts of TODO notes that were not fixed. I swear, I thought I fixed them all. And many of them were a very large amount of work. And I’d have to admit to myself that the chapter was nowhere close to being done, and go back to work on it.
Après la relecture technique et beaucoup d'autres répétitions d'édition et de correction, les chapitres furent considérées comme prêts pour la production. Il n'existe pas de moyen pour se préparer à la quantité de travail nécessaire pour arriver à cette étape. En fait, cela vient peut-être de démarrer avec du matériel de relativement piètre qualité (je parle du contenu brut de Peter et Vadim, pas du matériel issu de la première édition, une partie du matériel était un espèce de dump hexadécimal combiné avec des astuces provenant de posts de blogs, passé à travers un obfuscateur). Quoiqu'il en soit, la chose la plus bizarre qui pouvait arriver s'est produite : après avoir marqué un chapitre comme étant prêt pour la production dans le méta-fichier de Statut, j'ai jeté un coup d'oeil sur le chapitre, et j'ai découvert toutes sortes de notes A FAIRE qui n'étaient pas résolues. Je le jure, je pensais les avoir toute réglées. Et beaucoup d'entre elles nécessitait une quantité énorme de travail. Et j'ai dû admettre que le chapitre était loin d'être fini, et j'ai dû recommencer le travail dessus.
[modifier] From concept to completion - Paragraphe 7
Finally, though, they all got done. And we bundled them up and sent them off to production. And for the 99th time, I told everyone the book was done. And I was not even close to being right.
Finalement, ils finirent par être terminés. Nous les avons alors tous empaquetés et envoyés à la production. Et pour la 99ème fois, j'ai dit à tout le monde que le livre était terminé. J'étais pourtant loin d'avoir raison.
[modifier] From concept to completion - Paragraphe 8
At this point, for the first time, I thought I kind of had an idea of what to expect. I knew there was a production editor, and then it would go to a team who’d transform it into some typesetting program, and ultimately to a printing press. But still, no one really told me, even though I asked. Anyway, hindsight is 20/20, so here’s what happened:
Production editor
Revision
Back to production editor
Revision
To the rest of the production team
A ce moment, pour la première fois, je pensai savoir à quoi m'attendre. Je savais qu'il y avait un directeur de production, et qu'à ce moment-là il partirai à une équipe qui le transformerai dans un programme quelconque de typographie, et finalement à l'impression. Mais là encore, personne ne m'en avait parlé, même si j'ai demandé. Quoiqu'il en soit, c'est toujours plus facile de voir les choses avec du recul, voici donc ce qui s'est passé:
Directeur de production
Correction
Retour au directeur de production
Correction
Au reste de l'équipe de production
[modifier] From concept to completion - Paragraphe 9
The production editor was going to just check for spelling and grammar, right? I think someone told me that. Instead, she went through the book in such incredible detail I couldn’t believe it. And she proposed major changes to just about every paragraph in the whole book. She made so many changes that it took me at least a day, sometimes two or three, to review each chapter. That’s weeks of work I never saw coming — every weekend, every night, all the time — just like when I was writing. And these were necessary changes. She found every little ambiguous phrase, every contradiction between parts of the book, missing curly braces in code samples, paragraphs that belonged in other chapters, sentences that needed to be moved, commas in the wrong place, and much more. She was an absolute editing machine. Here’s an example:
Le directeur de production devait juste vérifier l'orthographe et la grammaire, n'est-ce pas ? Je pense que quelqu'un m'a dit ça. Au lieu de ça, elle a scruté le livre à un niveau de détail tellement incroyable que je ne pouvais pas le croire. Et elle a proposé des changements majeurs à presque tous les paragraphes du livre entier. Elle a fait tellement de changements qu'il m'a fallu au moins un jour, parfois deux ou trois, pour corriger chaque chapitre. Cela représentait des semaines de travail que je n'avais pas vu venir, chaque week-end, chaque nuit, tout le temps, exactement comme lorsque j'écrivais. Et ces changements étaient nécessaires. Elle a trouvé chaque petite phrase ambigue, chaque contradiction entre différentes parties du livre, des accolades fermantes manquantes dans les exemples de code, des paragraphes qui appartiennent à d'autres chapitres, des phrases qui avaient besoin d'être bougé, des virgules au mauvaise endroit, et beaucoup d'autres. Elle était une machine d'édition absolue. Voici un exemple :
[modifier] From concept to completion - Paragraphe 10
Remember, this is after the editor and the assistant editor have had about five passes through the material. I really didn’t expect this much revision at this point; I thought it was going to be just fixing commas and quotes in the wrong place.
Rappelez-vous, c'était après que l'éditeur et l'assistant de l'éditeur soit passés environ cinq fois à travers tout le matériel. Je ne m'attendais pas à autant de correction à ce moment-là; je pensais qu'il suffirait de corriger quelques virgules et apostrophes qui étaient à la mauvaise place.
[modifier] From concept to completion - Paragraphe 11
She went through the entire book in that kind of detail — that is not a particularly heavily edited section, it’s representative. It was good that she did, but this was way more work than I thought I would still need to do at this stage.
Elle est passée à travers le livre tout entier avec ce niveau de détail, ce n'est pas une section particulièrement éditée, mais elle est représentative. Cela a été bien qu'elle le fasse, mais ça a représenté vraiment beaucoup plus de travail que ce que je pensai devoir faire à cette étape.
[modifier] From concept to completion - Paragraphe 12
This was made worse by the fact that the production editing process was done in Microsoft Word. I don’t have or use Word. That would have been OK, but as I already mentioned, OO.org’s markup and review capabilities are pretty limited. The editor used markup comments extensively to clarify a lot of questions she had. These are precisely OO.org’s weakest point. So I ended up using my wife’s laptop, which has Word on it, to review the files. This refreshed my memory on how buggy Word is — I would say even buggier than OO.org. Word crashed I can’t tell you how many times, and the display and formatting issues were just ridiculous. Sometimes entire pages were lost or scrambled. I’d see the middle of a paragraph at the end of one page, scroll to the beginning of the next page, and see some content that belonged much later in the book. I’d click something to insert a note or edit a change, and it would freak out and put my cursor at the very top of the file; or just plain crash. This process was much slower than it should have been. I stand by my assertion that a word processing program is a terrible tool for writing a book.
Cela a été rendu pire par le fait que le processus d'édition en production était fait sous Microsoft Word. Je n'ai pas et je n'utilise pas Word. Cela aurait pu être OK, mais comme je l'ai déjà mentionné, la gestion de marques et des corrections est plutôt limité dans OO.org. L'éditeur utilisait énormément les balises de commentaire pour clarifier beaucoup des questions qu'elle avait. Ce sont précisément les points faibles d'OO.org. J'ai donc fini par utiliser le portable de ma femme, qui a Word, pour corriger les fichiers. Cela m'a rappelé combien Word pouvait être buggé, je dirai même plus buggé que OO.org. Word a planté je ne sais pas combien de fois, et les problèmes d'affichage et de formatage étaient tout simplement ridicules. Parfois des pages entières étaient perdues ou mélangées. J'ai vu le milieu d'un paragraphe à la fin d'une page, passer au début de la page suivante, et vu du contenu qui aurait dû se trouver plus loin dans le livre. Je cliquais quelque part pour insérer une note ou éditer un changement, et il se mettait à paniquer et à se retrouver au début du fichier; ou simplement il plantait. Le processus était beaucoup plus lent que ce qu'il aurait dû être. J'en reste donc à mon avis qu'un traitement de texte est un outil terrible pour écrire un livre.
[modifier] From concept to completion - Paragraphe 13
But eventually, I got through it. And then, after that, I was really done. Right? Eh… no. At this point I got an actual schedule of the remaining steps.
Copyedit
Copyedit review
Enter Copyedits
Conversion
Source check
Launch
QC1/Proofread
Indexing
Input QC1 edits/Pagebreaking
Back cover copy due to Production/Design
QC2
Input QC2 edits
Index review
Page estimate complete
Final index complete
Cover to printer
OTD QC
Book to printer
Bound-book date
In-stock date
Mais finalement, je m'en suis sorti. Et alors, après tout cela, j'en avais vraiment fini. Vraiment ? Eud, non. A ce moment, j'ai le planning réel des étapes restantes.
Révision
Relecture de la révision
Entrer la révision
Conversion
Vérification des sources
Lancement
Contrôle de Qualité 1 (CQ1) / Correction des épreuves
Création de l'index
Entrer les éditions QC1 / Découpage en page
Copie de la couverture pour la Production/Conception
QC2
Entrer les éditions QC2
Revision de l'index
Estimation des pages terminée
Index final terminé
Envoi de la couverture à l'impression
???? OTD ???? du Contrôle de Qualité
Envoi du livre à l'impression
Sortie du livre
Sortie en magasin
[modifier] From concept to completion - Paragraphe 14
Not all of this was my job, but I had to be involved in a lot of it, and that happened within a few weeks. Would you like to guess how many of these steps required me to do a lot of work?
Tout cela n'était pas mon boulot, mais j'ai été impliqué dans une grande partie, cela s'est produit en peu de semaines. Voulez-vous deviner combien de ces étapes m'ont demandé beaucoup de travail ?
[modifier] From concept to completion - Paragraphe 15
Hint: I was sitting at my brother’s college graduation reviewing the index to try not to slip the schedule again. And I spent my weekends and evenings proofreading and making sure everything converted to the final page layout correctly.
Indice : J'étais assis à la cérémonie de remise des diplômes de mon frère à relire l'index pour essayer de ne pas faire davantage glisser davantage le planning. Et j'ai passé mes week-ends et mes soirées à corriger les épreuves et à être sûr que tout était converti correctement pour la mise en page finale.
[modifier] From concept to completion - Paragraphe 16
Something else came in here. The illustration artist didn’t start to draw the figures until after the production copyedit and QC mentioned in the list above. What that essentially meant is that unlike the text, the figures didn’t get 10 or 15 rounds of revisions, comments, and reworking. It was very much last-minute. Fortunately, the artist was able to pull some really impressive work out of thin air. Unfortunately, it meant one or two of the figures are not really that great — at least by my standards — even though they were really professionally drawn. I mean, the content of the figures, not how they’re drawn. I’d like some of the figures to present the concepts more clearly. I tried to use figures to show what text could not describe well; one or two of the figures could be better. Alas.
Quelque chose d'autre est alors arrivé. L'illustrateur n'avait pas commencé à dessiner les illustrations avant les étapes de copie de production et de contrôle de qualité listées au-dessus. Ce que cela veut dire, c'est que contrairement au texte, les illustrations n'ont pas eu 10 à 15 fois le parcours corrections, commentaires, et re-travail. Cela a vraiment été fait à la dernière minute. Heureusement, l'illustrateur a été capable de faire un travail impressionant à partir de pas grand chose. Malheureusement, cela voulut dire qu'une ou deux illustrations n'étaient pas fabuleuses, au moins pour mes standards, même s'il s'agissait vraiment de dessins professionnels. Je parle du contenu des illustrations, pas de la façon dont ils étaient dessinés. J'aurai aimé que certaines illustrations présentent les concepts plus clairement. J'ai essayé d'utiliser les illustrations pour montrer ce que le texte ne décrivait pas correctement; une ou deux de ces illustrations aurait pu être meilleur. Hélas.
[modifier] Scheduling and project management - Paragraphe 1
The schedule was never defined from the start, except for the unreachable goal of going to tech review in October. Here’s where I get a little unflattering. I don’t have any hard feelings, but I want to write about what went wrong.