zestedesavoir / zds-site

Cœur du projet technique de Zeste de Savoir
https://zestedesavoir.com
Other
268 stars 161 forks source link

Les format externes (pdf, epub, etc) ne sont plus générés depuis le passage sur le serveur gandi #3631

Closed firm1 closed 8 years ago

firm1 commented 8 years ago

Depuis le passage sur le serveur gandi le 21/22 mai, toutes les publications (à commencé par cet article) n'ont ni de pdf, ni de epub, ni de html généré.

Etant donné que ça fonctionnait avant le switch de serveur, je vais attribuer ça à l'infra.

artragis commented 8 years ago

Timer pas mis en place.

firm1 commented 8 years ago

La mise en place de ce timer est documentée quelque part ? Parce que là tout ce qui est publié sort sans extra contents

gustavi commented 8 years ago

Si on me donne les informations pour mettre ça en place ça sera fait de suite !

pierre-24 commented 8 years ago

En toute bonne foi : là ? (scrollez un peu, c'est #3080 mais le lien cafouille)

(ok, c'est pas dans la doc d'instal, c'est mal, @artragis :p )

gustavi commented 8 years ago

Pour le coup tout était OK sur le serveur, j'ai relancé le service. Quelqu'un peut republier le contenu ? @firm1 ?

firm1 commented 8 years ago

Republier, peut-être pas ça pourrait mettre une version non désirée, mais tu peux au moins utiliser la génération de pdf. en faisant ceci (j'ai mis les id des contenus qui posent souci):

python manage.py generate_pdf id=1305,1167,963,1103,1114

Sauf si c'est possible de redéclencher la génération autrement.

gustavi commented 8 years ago

J'ai trouvé, on a pas pandoc d'installé ! ping @SpaceFox

SpaceFox commented 8 years ago

Heu, normalement si, en suivant la doc de la procédure d'install, ça m'a pris plus d'une heure…

2016-05-31 10:42 GMT+02:00 Laville Augustin notifications@github.com:

J'ai trouvé, on a pas pandoc d'installé ! ping @SpaceFox https://github.com/SpaceFox

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3631#issuecomment-222627315, or mute the thread https://github.com/notifications/unsubscribe/AFhKnLn0K310XHpBXhNlMBvAarqVIIjCks5qG_R1gaJpZM4IpB9O .

gustavi commented 8 years ago

Les paquets Debian sont bien installés mais impossible de trouver des traces de pandoc (et d'une utilisation de cabal). Je vais essayer de réinstaller ça.

gustavi commented 8 years ago

En fait pandoc est bien installé, je sais juste pas où :/ (je cherche)

SpaceFox commented 8 years ago

Je n'ai pas utilisé le paquet Pandoc de Debian ! Je ne sais pas où l'a installé la procédure indiquée dans la doc. Et surtout IL NE FAUT PAS suivre cette procédure sur le serveur de prod pendant qu'il y a du monde dessus, c'est la mort assurée !

2016-05-31 11:04 GMT+02:00 Laville Augustin notifications@github.com:

En fait pandoc est bien installé, je sais juste pas où :/

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3631#issuecomment-222632154, or mute the thread https://github.com/notifications/unsubscribe/AFhKnHwS1iyarsWbEFB8xMo9eZPzFK-Dks5qG_mTgaJpZM4IpB9O .

gustavi commented 8 years ago

T'inquiète pas @SpaceFox, je cherche juste où est le fichier binaire mais impossible de trouver où il est.

pierre-24 commented 8 years ago

Si c'est la procédure suivie sur cette doc, c'est /usr/bin/pandoc (vraiment). Ceci dit, je me doute que c'est pas aussi simple. J'ai aussi ~/.cabal/bin/pandoc à proposer.

gustavi commented 8 years ago

Malheureusement aucun des deux n'existe.

firm1 commented 8 years ago

Une fois que tu auras trouvé le binaire de pandoc, si celui-ci n'est pas accessible dans le PATH, tu peux surcharger dans le settings_prod.py ce paramètre pour renseigner le chemin complet de pandoc.

gustavi commented 8 years ago

Je sais firm1, j'ai passé 30 minutes à le "nettoyer" ce matin ;)

artragis commented 8 years ago

et which pandoc ça marche pas?

2016-05-31 11:30 GMT+02:00 Laville Augustin notifications@github.com:

Je sais firm1, j'ai passé 30 minutes à le "nettoyer" ce matin ;)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3631#issuecomment-222638113, or mute the thread https://github.com/notifications/unsubscribe/ABc_xVzibjWbKdihaxFgCaiK32ms-WPpks5qG_-zgaJpZM4IpB9O .

cgabard commented 8 years ago

Vu la gueule des pdf actuellement, c'est vraiment nécessaire ?

GerardPaligot commented 8 years ago

Tant qu'on a pas une autre solution, oui.

gustavi commented 8 years ago

Bon alors, heure creuse j'en profite pour ré-installer pandoc globalement avec cabal update && sudo cabal install --global pandoc. Tout s'est bien passé et rapidement (quelques minutes seulement). Le chemin a changé par rapport à l'ancien serveur donc je l'ai mis à jour dans le settings_prod.py.

Je tente donc de regénérer ce qui ne l'avait pas été mais je me suis mangé encore des erreurs :

$ python manage.py generate_pdf id=1305,1167,963,1103,1114
Génération de PDF pour 5 contenus
pandoc: Could not find data file /usr/local/share/x86_64-linux-ghc-7.6.3/pandoc-1.17.0.3/data/templates/../../../assets/tex/template.tex
- controler-la-propagation-des-erreurs-de-calculs-numeriques [ERREUR]
pandoc: Could not find data file /usr/local/share/x86_64-linux-ghc-7.6.3/pandoc-1.17.0.3/data/templates/../../../assets/tex/template.tex
- la-definition-en-mathematiques [ERREUR]
pandoc: Could not find data file /usr/local/share/x86_64-linux-ghc-7.6.3/pandoc-1.17.0.3/data/templates/../../../assets/tex/template.tex
- comprendre-les-encodages [ERREUR]
pandoc: Could not find data file /usr/local/share/x86_64-linux-ghc-7.6.3/pandoc-1.17.0.3/data/templates/../../../assets/tex/template.tex
- zeste-de-savoir-passe-bientot-en-version-18 [ERREUR]
pandoc: Could not find data file /usr/local/share/x86_64-linux-ghc-7.6.3/pandoc-1.17.0.3/data/templates/../../../assets/tex/template.tex
- batterie-pile-et-autonomie-1 [ERREUR]

Bon, ce truc est en dur dans la commande https://github.com/zestedesavoir/zds-site/blob/97691b626292fcf45b45f0e08def0fa725ea0df2/zds/settings.py#L347 donc j'ai mis à jour la commande avec le bon fichier et ouvert une PR pour qu'on ajoute un paramètre propre sur le chemin : https://github.com/zestedesavoir/zds-site/issues/3646

On relance la génération des PDF. Quand ça veut pas, ça veut pas :

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
! 
! The font "Merriweather" cannot be found.
! 
! See the fontspec documentation for further information.
! 
! For immediate help type H <return>.
!...............................................  

Grrrr ! Bon aller on cherche un peu et on installe ce qui va bien (cf https://github.com/zestedesavoir/zds-site/issues/3647).

J'ai toujours les mêmes erreurs et la police n'est pas dans fc-list. Bref je sèche. Si quelqu'un a une idée je prends !

pierre-24 commented 8 years ago

J'ai une "solution", mais c'est cochon: dixit n'importe quel log travis,

$ export RESOURCES_URL="http://www.googledrive.com/host/0BzabS14KitJgfmV2ekdWSktmVEpieU93TG11RFNkWlZqS0JwZk93ZGhMR1lCWVg5NzFVc00"
$ mkdir -p ~/.fonts/truetype
$ wget -P ~/.fonts/truetype $RESOURCES_URL/Andale-Mono.ttf
$ wget -P ~/.fonts/truetype $RESOURCES_URL/Merriweather.zip
$ unzip ~/.fonts/truetype/Merriweather.zip -d ~/.fonts/truetype/Merriweather/
$ chmod a+r ~/.fonts/truetype/Merriweather/*.ttf
$ chmod a+r ~/.fonts/truetype/Andale-Mono.ttf
$ fc-cache -f -v

Sinon, Andale Mono, je suis quasi certain qu'elle est dans ttf-mscorefonts-installer (ou un truc du genre, bref, le paquet de fonts de 'crosoft). Quand à Merriweather, elle sont dispo en truetype (parce que l'installer pour LaTeX n'a pas l'air de régler le problème, je soupçonne donc que pandoc s'attend à l'avoir comme une police "normale", ce con), et j'imagine qu'il faut la fourrer dans ~/.fonts/truetype/ (c'est ça ou aller la taper dans /usr/share/fonts/ ou /usr/local/share/fonts/, et je préfère éviter d'aller tripoter là bas). Et on termine par fc-cache -f -v ?

gustavi commented 8 years ago

J'y ai pensé mais j'ai trouvé ça assez sale et je comptais l'utiliser en dernière option.

pierre-24 commented 8 years ago

D'ou le paragraphe du dessous ou je tente de contourner :p

vhf commented 8 years ago

J'avais pas vu cette issue.

c/c du MP envoyé à @gustavi il y a 5 minutes:


zds-watchdog était mort sur la prod, probablement depuis l'installation de la prod.

Il refusait de se lancer :

Jul 19 15:15:53 gandi systemd[1]: Starting Zeste de Savoir - Watchdog...
Jul 19 15:15:53 gandi systemd[1]: Started Zeste de Savoir - Watchdog.
Jul 19 15:15:53 gandi systemd[9640]: Failed at step CHDIR spawning /opt/zds/zdsenv/bin/python: No such file or directory
Jul 19 15:15:53 gandi systemd[1]: zds-watchdog.service: main process exited, code=exited, status=200/CHDIR
Jul 19 15:15:53 gandi systemd[9643]: Failed at step CHDIR spawning /bin/kill: No such file or directory
Jul 19 15:15:53 gandi systemd[1]: zds-watchdog.service: control process exited, code=exited status=200
Jul 19 15:15:53 gandi systemd[1]: Unit zds-watchdog.service entered failed state.

J'ai dû le modifier comme suit:

[Unit]
Description=Zeste de Savoir - Watchdog
After=network.target

[Service]
User=zds
Group=zds
-WorkingDirectory=/opt/zds/zdsenv/zds-site
+WorkingDirectory=/opt/zds/zds-site
ExecStart=/opt/zds/zdsenv/bin/python /opt/zds/zds-site/manage.py publication_watchdog
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
vhf commented 8 years ago

J'ai installé les fonts. Un script est là pour ça, /home/zds/install_fonts/. A documenter.

J'ai aussi dû modifier le template latex en live sur la prod, ce qui est moche mais je peux pas tester autrement. Il y manquait une macro latex, problème connu de pandoc, et le chemin vers la coverpage n'était plus valide. J'ai suis en train de régénérer tous les PDFs, puis je vais annuler mes modifications de la prod pour qu'on n'ait pas de problème lors de la prochaine MEP.

diff --git a/assets/tex/template.tex b/assets/tex/template.tex
index 927cded..2a91773 100644
--- a/assets/tex/template.tex
+++ b/assets/tex/template.tex
@@ -39,6 +39,10 @@ $if(mathfont)$
     \setmathfont(Digits,Latin,Greek){$mathfont$}
 $endif$
 \fi
+% tightlist macro: http://tex.stackexchange.com/a/258486
+\providecommand{\tightlist}{%
+  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
+
 % use microtype if available
 \IfFileExists{microtype.sty}{\usepackage{microtype}}{}
 $if(geometry)$
@@ -155,7 +159,8 @@ $endfor$

 \begin{document}
 $if(title)$
-\ULCornerWallPaper{1}{../../../assets/tex/coverpage.pdf}
+\ULCornerWallPaper{1}{/opt/zds/zds-site/assets/tex/coverpage.pdf}
 \maketitle
 \ClearWallPaper
 $endif$
`$ python manage.py generate_pdf` ``` Génération de PDF pour 304 contenus - bienvenue-sur-la-beta-de-zeste-de-savoir [OK] - lisibilite-dun-code-source [OK] ! Missing $ inserted. $ l.271 \$log ( A \times pandoc: Error producing PDF - les-nombres-flottants-logarithmiques [ERREUR] - introduction-a-la-detection-dintrusion [OK] - les-zestes-olympiques [OK] - bilan-de-la-premiere-semaine [OK] - interview-rencontre-avec-spacefox [OK] - cest-toute-une-histoire-le-stockage [OK] - interview-rencontre-avec-holosmos [OK] - interview-rencontre-avec-zeql [OK] - interview-rencontre-avec-viki53 [OK] - ouverture-officielle-de-zeste-de-savoir [OK] - rendons-a-zesar-ce-qui-appartient-a-zesar [OK] - medailles-fields-2014 [OK] - le-c-14-est-arrive [OK] - a-la-decouverte-de-lunivers-du-big-data [OK] - un-zeste-sans-fin-prologue [OK] - quelques-lois-sur-laugmentation-des-performances-des-ordinateurs [OK] - un-zeste-sans-fin-chapitre-2 [OK] - trivial-computation-et-simplification-materielle-des-calculs [OK] - et-de-1-000 [OK] - lenigme-deinstein [OK] - un-peu-de-science-improbable-la-ceremonie-des-ignobels-2014 [OK] - la-vulnerabilite-shellshock [OK] - un-zeste-sans-fin-chapitre-3 [OK] - zds-passe-en-version-1-1-quelques-jours-avant-son-anniversaire [OK] - interview-rencontre-avec-nohar [OK] - cest-toute-une-histoire-la-cryptographie-partie-1-3 [OK] - les-signaux-et-slots-dans-qt-5-4 [OK] ! File ended while scanning use of \@@BOOKMARK. \par l.95 \begin{document} pandoc: Error producing PDF - le-langage-ceylon-passe-en-v1-1 [ERREUR] - la-gpl-la-licence-des-cornus [OK] - microsoft-et-lopen-source-comme-chien-et-chat [OK] - elasticsearch-maintenant-en-version-1-4 [OK] - a-la-decouverte-des-cousines-de-rosetta [OK] - zds-passe-bientot-en-version-1-3 [OK] - cest-toute-une-histoire-la-cryptographie-partie-2-3 [OK] pandoc: Duplicate note reference `bit' "source" (line 227, column 1) pandoc: Duplicate note reference `Lucifer' "source" (line 225, column 1) pandoc: Duplicate note reference `NBS' "source" (line 223, column 1) pandoc: Duplicate note reference `surete_enigma' "source" (line 221, column 1) pandoc: Duplicate note reference `nbrotors' "source" (line 219, column 1) pandoc: Duplicate note reference `brute' "source" (line 217, column 1) pandoc: Duplicate note reference `cryptanalyse' "source" (line 215, column 1) pandoc: Duplicate note reference `apparition' "source" (line 213, column 1) pandoc: Duplicate note reference `autoclave' "source" (line 211, column 1) - cest-toute-une-histoire-la-cryptographie-partie-3-3 [OK] - preuve-de-la-securite-du-masque-jetable-de-vernam [OK] - interview-rencontre-avec-jereak [OK] - on-vous-tient-au-jus [OK] - zds-passe-en-version-1-4 [OK] - philae-a-la-recherche-de-lorigine-de-la-chiralite-du-monde [OK] - lenergie-nucleaire-dans-lespace [OK] - premiere-zep-developpee-sur-zeste-de-savoir [OK] - a-la-decouverte-de-julia [OK] - un-zeste-sans-fin-chapitre-4 [OK] - zeste-de-savoir-vous-souhaite-une-bonne-annee-2015 [OK] - zeste-de-savoir-passe-en-version-1-5 [OK] - et-si-des-etudiants-creaient-des-nanosatellites [OK] - les-zestes-olympiques-du-nouvel-an [OK] - la-methode-continuous-delivery [OK] - interview-rencontre-avec-natalya [OK] ! Extra }, or forgotten \endgroup. \UL@stop ...z@ \else \UL@putbox \fi \else \egroup \egroup \UL@putbox \fi \if... l.337 fait troller !}} pandoc: Error producing PDF - un-zeste-sans-fin-chapitre-5 [ERREUR] - les-chroniques-du-libre-gael-langevin-et-son-robot-inmoov [OK] - dropbox-a-des-fuites [OK] - introduction-a-la-retroingenierie-de-binaires [OK] - zeste-de-savoir-passe-en-version-1-7 [OK] ! Undefined control sequence. l.755 ...tt{granted\_access} qui valait déjà `\0 pandoc: Error producing PDF - introduction-aux-buffer-overflows [ERREUR] - des-nouvelles-de-rosetta-et-philae [OK] - interview-rencontre-avec-piwit [OK] - interview-rencontre-avec-solid [OK] - les-chroniques-du-libre-le-mozilla-science-lab [OK] - un-apercu-de-la-diversite-du-metal [OK] - cette-semaine-voyage-didactique-avec-les-cometes [OK] - des-fruits-zestueux-sont-demandes-a-la-validation [OK] - la-geographie-une-approche-pour-comprendre-le-monde-qui-nous-entoure [OK] - programmez-en-langage-dassemblage-sous-linux [OK] ! Missing $ inserted. $ l.201 n'est composée que de \$ 2 \times pandoc: Error producing PDF - rapport-denquete-sur-le-lien-entre-zeste-de-savoir-et-les-illuminatis [ERREUR] - deux-mille-membres-pour-concentrer-du-savoir [OK] - interview-rencontre-avec-taguan [OK] - exploitez-votre-premier-stack-based-overflow [OK] - assemblee-generale-de-lassociation-zeste-de-savoir [OK] - embryogenese-et-effets-mecaniques [OK] - fast-fps-et-arena-shooters [OK] - la-puissance-cachee-des-coroutines [OK] - comment-doom-et-wolfenstein-affichaient-leurs-graphismes [OK] - alice-kober-et-le-dechiffrement-du-lineaire-b [OK] - ecrivez-votre-premier-shellcode-en-asm-x86 [OK] ! Missing $ inserted. $ l.288 bits, il n'y a que \$ 2\^{}\{32\} = 4 \times pandoc: Error producing PDF - le-monde-de-la-signature-numerique [ERREUR] - apprendre-une-langue-pour-ceux-qui-naiment-pas-ca [OK] - quand-la-musique-fait-vendre [OK] - artillerie-et-physique-dans-un-jeu-video [OK] pandoc: Duplicate note reference `mapa' "source" (line 93, column 1) - comment-proteger-efficacement-ses-petites-penottes [OK] ! Missing $ inserted. $ l.265 \rho pandoc: Error producing PDF - rebond-du-bouclier-scandinave-et-randonnee-en-norvege [ERREUR] - vous-dites-que-largent-na-pas-dodeur [OK] - interview-rencontre-avec-dominus-carnufex [OK] - nouveautes-de-la-version-15-6-cedrat [OK] - sortie-de-python-3-5 [OK] - un-zeste-sans-fin-chapitre-6 [OK] - retour-sur-une-semaine-compliquee-pour-zeste-de-savoir [OK] - interview-rencontre-avec-kje-1 [OK] ! Unable to load picture or PDF file 'images/2ewpf2x.jpg'. } l.174 \includegraphics{images/2ewpf2x.jpg} pandoc: Error producing PDF - interview-rencontre-avec-pierre-24 [ERREUR] - la-validation-recherche-des-fruits-bien-juteux [OK] - cppcon-2015-retour-sur-la-conference-de-b-stroustrup [OK] - creation-dun-objet-de-jeu-video [OK] - la-ligne-editoriale-officielle-de-zeste-de-savoir [OK] - syndication-de-contenu-rss-avec-atom [OK] - comment-rediger-des-maths-sur-zeste-de-savoir [OK] - la-recherche-dinformations-sur-internet [OK] - google-maps-javascript-api-v3 [OK] - tri-par-insertion-le-retour-ocaml [OK] - la-recursivite [OK] ! Undefined control sequence. l.599 ... saut de ligne print ``Bonjour, \$nom !\n pandoc: Error producing PDF - rediger-sur-zds [ERREUR] pandoc: Duplicate note reference `schema' "source" (line 442, column 1) - la-representation-intervallaire [OK] - la-3d-pour-le-jeu-video-avec-blender [OK] - tp-la-galalithe [OK] - tout-savoir-sur-les-ssd-solid-states-drives [OK] ! Missing $ inserted. $ l.409 Pour donner un exemple, \$ \frac {9} {2} pandoc: Error producing PDF - les-operations-bit-a-bit-et-le-branch-free-code [ERREUR] - le-droit-dauteur-creative-commons-et-les-licences-sur-zeste-de-savoir [OK] - le-tri-par-insertion [OK] - les-reseaux-de-neurones-materiels [OK] - creer-son-premier-rim-linux [OK] - introduction-aux-tests-android-avec-espresso [OK] - les-tests-unitaires-en-java [OK] - energie-solaire-du-panneau-photovoltaique-au-reseau-electrique [OK] - introduction-aux-codes-correcteurs [OK] - creez-un-navigateur-web-en-net [OK] - les-filtres-en-php [OK] - petit-guide-de-sql-plus [OK] - la-theorie-rest-restful-et-hateoas [OK] - pourquoi-vous-devriez-avoir-une-peluche-sur-votre-bureau [OK] - introduction-a-linjection-de-dependances-en-java [OK] - les-blocs-en-ruby [OK] - utilisez-macports [OK] - calculer-une-plage-dadresses-avec-la-methode-magique [OK] - introduction-au-scan-de-ports [OK] - lidle-port-scan [OK] - le-tri-par-selection [OK] - dessiner-la-fractale-de-mandelbrot [OK] - memoire-cache-et-optimisation-de-code [OK] - panda3d-et-heightmap [OK] - se-faire-payer-daccord-mais-combien [OK] ! Missing $ inserted. $ l.249 ... multipliée par le temps \$ d = v \times pandoc: Error producing PDF - realiser-un-telemetre-a-ultrasons [ERREUR] - personnalisez-votre-cle-usb [OK] - paginer-avec-php-et-mysql [OK] - apprentissage-de-la-lecture [OK] - homebrew-pour-gerer-ses-logiciels-os-x [OK] - module-pattern-en-javascript [OK] - alimenter-une-arduino-sans-usb [OK] - ajouter-des-sorties-numeriques-a-larduino-le-74hc595 [OK] - les-compteurs-numeriques [OK] ! Undefined control sequence. l.402 avec le caractère `\0 pandoc: Error producing PDF - gestion-de-la-memoire-sur-arduino [ERREUR] - la-declinaison-de-ladjectif-en-allemand [OK] - la-formation-du-systeme-solaire [OK] - refaire-lhistoire-avec-git [OK] - la-science-au-moyen-age-et-sous-lancien-regime-lexemple-des-cometes [OK] - comment-reussir-votre-entretien-dembauche [OK] - le-granite-des-chaines-de-montagnes-aux-plages-de-sable [OK] - les-continents-les-secrets-du-plancher-des-vaches [OK] - lisostasie-lorigine-des-mouvements-verticaux-de-la-lithosphere [OK] - la-geologie-de-la-lune [OK] - la-creativite-linnovation-vue-par-la-science [OK] - les-tests-automatises-avec-phpspec [OK] - git-creer-un-nouveau-depot-a-partir-dun-dossier-dun-autre-depot [OK] - le-developpement-cognitif-de-lenfant-une-introduction [OK] ! Unable to load picture or PDF file 'images/Décalage_logique.png'. } l.140 ...udegraphics{images/Décalage_logique.png} pandoc: Error producing PDF - generation-materielle-de-nombres-aleatoires [ERREUR] - le-vote-dune-loi-et-larticle-49-3 [OK] - les-promesses-en-javascript [OK] - les-balises-audio-et-video-en-html5 [OK] - la-lateralisation-cerebrale [OK] - la-conjugaison-de-lallemand [OK] - simplifier-la-gestion-de-la-memoire-en-c-avec-raii [OK] - le-backtracking-par-lexemple-resoudre-un-sudoku [OK] - apprendre-un-jeu-de-strategie [OK] - leffet-du-mot-sur-le-bout-de-la-langue-et-la-meta-memoire [OK] - une-nouvelle-fonctionnalite-de-c-11-la-semantique-de-mouvement [OK] - leconomie-comportementale [OK] - ecrire-des-lettres-en-latex [OK] ! Missing $ inserted. $ l.376 d'exercice !} pandoc: Error producing PDF - simulez-des-systemes-physiques-avec-la-methode-deuler [ERREUR] - les-conversions-de-types-en-c [OK] - nombre-doxydation [OK] ! Undefined control sequence. l.16422 Code:C:\eclipse pandoc: Error producing PDF - creez-votre-application-web-avec-java-ee [ERREUR] ! Missing $ inserted. $ l.1097 \$g\circ pandoc: Error producing PDF - introduction-aux-fonctions [ERREUR] ! Undefined control sequence. l.3182 changez le fichier hosts (C:\Windows pandoc: Error producing PDF - creez-votre-site-web-avec-asp-net [ERREUR] ! Undefined control sequence. l.6783 url(r'\^{}categorie/(\w pandoc: Error producing PDF - developpez-votre-site-web-avec-le-framework-django [ERREUR] - creer-un-jeu-html5-avec-quintus [OK] ! Misplaced \noalign. \newpage ->\noalign {\break } l.5635 \chapter pandoc: Error producing PDF - analysez-des-donnees-avec-excel [ERREUR] - presentez-des-diaporamas-avec-powerpoint [OK] pandoc: Duplicate note reference `2' "source" (line 548, column 1) pandoc: Duplicate note reference `1' "source" (line 547, column 1) - la-pedagogie-pratiques-efficaces-et-theories-pedagogiques [OK] - aller-plus-loin-dans-le-developpement-android-1 [OK] pandoc: Duplicate note reference `wampdir-2' "source" (line 1598, column 1) pandoc: Duplicate note reference `wampdir-1' "source" (line 1597, column 1) pandoc: Duplicate note reference `wampdir-12' "source" (line 1415, column 1) pandoc: Duplicate note reference `wampdir-11' "source" (line 1414, column 1) pandoc: Duplicate note reference `wampdir-10' "source" (line 1413, column 1) pandoc: Duplicate note reference `wampdir-9' "source" (line 1411, column 1) pandoc: Duplicate note reference `wampdir-8' "source" (line 1409, column 1) pandoc: Duplicate note reference `wampdir-7' "source" (line 1407, column 1) pandoc: Duplicate note reference `wampdir-6' "source" (line 1405, column 1) pandoc: Duplicate note reference `wampdir-5' "source" (line 1403, column 1) pandoc: Duplicate note reference `wampdir-4' "source" (line 1401, column 1) pandoc: Duplicate note reference `wampdir-3' "source" (line 1400, column 1) pandoc: Duplicate note reference `wampdir-2' "source" (line 1399, column 1) pandoc: Duplicate note reference `wampdir-1' "source" (line 1398, column 1) pandoc: Duplicate note reference `wampdir-3' "source" (line 1237, column 1) pandoc: Duplicate note reference `wampdir-2' "source" (line 1236, column 1) pandoc: Duplicate note reference `wampdir-1' "source" (line 1235, column 1) pandoc: Duplicate note reference `phpversion' "source" (line 998, column 1) pandoc: Duplicate note reference `wampdir' "source" (line 997, column 1) ! Undefined control sequence. l.704 ...avec\ WAMP\ 2.5,\ installé\ dans}C:\wamp pandoc: Error producing PDF - wamp-developper-avec-php-ajax-html-sous-windows [ERREUR] - apprenez-a-monter-votre-ordinateur [OK] ! Missing $ inserted. $ l.716 obtiendrait \$dv = \frac{F}{m} pandoc: Error producing PDF - la-physique-au-temps-de-newton [ERREUR] ! Undefined control sequence. l.1294 Sdz\BlogBundle pandoc: Error producing PDF - developpez-votre-site-web-avec-le-framework-symfony2 [ERREUR] - algorithmique-pour-lapprenti-programmeur [OK] pandoc: Could not find image `/media/galleries/511/e89f78da-8854-41df-950a-fc2b5c90c1f1.png', skipping... ! Unable to load picture or PDF file '/media/galleries/511/e89f78da-8854-41df-9 50a-fc2b5c90c1f1.png'. } l.1696 ...89f78da-8854-41df-950a-fc2b5c90c1f1.png} pandoc: Error producing PDF - rendre-son-site-responsive-avec-css3 [ERREUR] - creez-des-applications-pour-android [OK] ! Undefined control sequence. l.3005 dans « C:\Program pandoc: Error producing PDF - apprenez-la-sculpture-digitale-avec-pixologic-zbrush [ERREUR] ! Missing $ inserted. $ l.8617 \textbar{}\textbar{}\sum pandoc: Error producing PDF - traitez-des-textes-avec-word [ERREUR] - une-introduction-a-ruby [OK] ! Missing $ inserted. $ l.2953 \frac{( A * a ) + ( B * b * (1 - a)}{a_0} pandoc: Error producing PDF - les-cartes-graphiques [ERREUR] ! LaTeX Error: Bad math environment delimiter. See the LaTeX manual or LaTeX Companion for explanation. Type H for immediate help. ... l.24031 \(\[ pandoc: Error producing PDF - apprenez-a-programmer-en-actionscript-3 [ERREUR] ! Unable to load picture or PDF file 'images/Menger_sponge_(Level_0-3).png'. } l.13355 ...s{images/Menger_sponge_(Level_0-3).png} pandoc: Error producing PDF - apprenez-a-programmer-avec-ada [ERREUR] ! Double superscript. l.1217 puissance de 2 : \(1024 = 2^1^ pandoc: Error producing PDF - apprenez-a-programmer-en-java [ERREUR] - debutez-dans-la-3d-avec-blender [OK] ! Undefined control sequence. l.476 -\textgreater{}\1 pandoc: Error producing PDF - debuter-sur-adobe-photoshop [ERREUR] - debutez-en-informatique-avec-windows-8 [OK] ! Undefined control sequence. l.2978 (C:\Users pandoc: Error producing PDF - apprenez-a-modeliser-en-3d-avec-autodesk-maya [ERREUR] - apprenez-la-programmation-fonctionnelle-avec-haskell [OK] ! Missing \endgroup inserted. \endgroup l.314 ...s résultats obtenus : \[\begin{eqnarray} pandoc: Error producing PDF - theoreme-et-histoire-de-pythagore [ERREUR] ! Undefined control sequence. l.15059 ...�resser le plus ici : " Voir C:\windows pandoc: Error producing PDF - debutez-en-informatique-avec-windows-7 [ERREUR] - la-programmation-cobol [OK] - arduino-premiers-pas-en-informatique-embarquee [OK] - les-espaces-de-couleurs-rvb-et-tsv [OK] ! Package amsmath Error: Erroneous nesting of equation structures; (amsmath) trying to recover with `aligned'. See the amsmath package documentation for explanation. Type H for immediate help. ... l.664 \end{align} pandoc: Error producing PDF - la-cryptographie-asymetrique-avec-rsa [ERREUR] - administrez-vos-bases-de-donnees-avec-mysql [OK] - les-equations [OK] - tout-savoir-sur-le-toki-pona [OK] - comment-fonctionnent-les-switchs-et-routeurs [OK] ! Undefined control sequence. l.674 *C:Windows\Fonts pandoc: Error producing PDF - debuter-en-infographie-avec-gimp [ERREUR] pandoc: Could not parse YAML header: did not find expected whitespace or line break "source" (line 9242, column 4) !(http ://www.dailymotion.com/video/x2kgzr9_initiation-a- Underfull \hbox (badness 10000) in paragraph at lines 6107--6108 [] []|\EU1/lmss/bx/n/12 4.6.1.0.0.2 Vidéo 2/3[] \EU1/Merriweather(0)/m/sc/12 -> !(http ://www.dailymotion.com/video/x2kgzrw_initiation-a- Underfull \hbox (badness 10000) in paragraph at lines 6111--6112 [] []|\EU1/lmss/bx/n/12 4.6.1.0.0.3 Vidéo 3/3[] \EU1/Merriweather(0)/m/sc/12 -> !(http ://www.dailymotion.com/video/x2kgzse_initiation-a- [126] [127] [128] [129] [130] [131] [132] Chapitre 5. Underfull \hbox (badness 1314) in paragraph at lines 6446--6453 []\EU1/Merriweather(0)/m/sc/12 Notre ‘charge’ (bobine$[][][]$, relais, moteur…) est montée entre la source d’alimentation et le [133] [134] Package hyperref Warning: Difference (2) between bookmark levels is greater (hyperref) than one, level fixed on input line 6514. [135] [136] Chapitre 6. [137] [138] [139] Underfull \vbox (badness 5008) has occurred while \output is active [140] [141] Underfull \vbox (badness 10000) has occurred while \output is active [142] Underfull \vbox (badness 10000) has occurred while \output is active [143] [144] Underfull \hbox (badness 10000) in paragraph at lines 7000--7001 []\EU1/Merriweather(0)/m/sc/12 ->!(http ://www.dailymotion.com/video/x2kgzzn_pa sser-d-un-modele-3d-a-du-langage- [145] [146] Chapitre 7. [147] [148] [149] [150] [151] [152] [153] [154] Underfull \vbox (badness 10000) has occurred while \output is active [155] [156] [157] [158] Underfull \hbox (badness 10000) in paragraph at lines 7683--7685 Overfull \hbox (143.0709pt too wide) in paragraph at lines 7697--7698 [] []|\EU1/lmss/bx/n/12 7.8.1.0.0.2 La fraiseuse numérique en 3 parties par Dim itri[] \EU1/Merriweather(0)/m/sc/12 ->!(https ://www.youtube.com/watch?v=81QJWw qnRjY)<- Underfull \hbox (badness 10000) in paragraph at lines 7697--7698 [159] [160] Chapitre 8. [161] [162] [163] [164] [165] Underfull \hbox (badness 5817) in paragraph at lines 7983--7986 []\EU1/Merriweather(0)/m/sc/12 [[secret]] | \EU1/AndaleMono(0)/bx/n/12 cpp | /* | Démonstration des dialogues I²C avec une DS1307 RTC Overfull \hbox (35.045pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | | N'oubliez pas les deux résistances "pull-up" si la platine | 'breakout' Overfull \hbox (16.74448pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 n'est pas équipé. | | Glenn Smith mai 2014 | M OOC Fabrication Numérique Overfull \hbox (9.42453pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | */ | #include // pour le fonction "for mat" | #include Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 // Pour le I²C | | /* L'adresse de chaque périperiq ue est documenté dans Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 sa fiche technique */ | #define addr_ds1307 0x68 / / Adresse du DS1307 Overfull \hbox (41.14517pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 sur bus I²C | | /* Tableaux de conversion des jours */ | const char jours[7][10] Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 = { | "Dimanche", | "Lundi", | "Mardi", | "Mercredi", | Overfull \hbox (30.63936pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 "Jeudi", | "Vendredi", | "Samedi" | }; | | /* Tableaux de conversion Overfull \hbox (1.49457pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 des mois */ | const char mois[12][10] = { | "jan vier", | "fevrier", Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | "mars", | "avril", | "mai", | "jui n", | "juillet", | Overfull \hbox (22.84464pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 "aout", | "septembre", | "octobre", | "n ovembre", | "decembre" Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | }; | | /* | Vous pouvez corrigé les valeurs ici pour regler date et Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 heure | */ | // Secs, Mins, Hrs, Jour, Date, Mois, (Année - Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 2000) | byte time[7] = {0, 0, 13, 1, 25, 5, 14}; | | char Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 tempString[32]; // pour le message formaté | | void format(char *fmt, Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 ... ){ | va_list args; | va_start (args, fmt ); // allocation Overfull \hbox (22.8447pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 d'espace en mémoire | vsnprintf(tempString, 32, fmt, args); // formattage Overfull \hbox (18.57529pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 du message dans tempString | va_end (args); // liberation des ressources. Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | } | | /* Conversion d'une valeur BCD en décimale */ | static uint8_t Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 bcd2bin (uint8_t val) { | return val - 6 * (val >> 4); | } | | /* Overfull \hbox (10.6444pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 Conversion d'une valeur décimale en BCD */ | static uint8_t bin2bcd (uint8_t Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 val) { | return val + 6 * (val / 10); | } | | v oid start_timer() { | Overfull \hbox (2.10454pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 // Configurer la sortie pour 1Hz | Wire.beginTra nsmission(addr_ds1307); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | Wire.write(0x07); // addresse du registre | Wire.write(0x10); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 // Byte to write | Wire.endTransmission(); | // Effacer le contenu Overfull \hbox (179.61914pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 du registre 0. Ceci pour but de | // démarrer l 'horloge. | Wire.beginTransmission(addr_ds1307); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | Wire.write(0); // addresse du registre | Wire.write(0); // Overfull \hbox (22.84465pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 octet à écrire | Wire.endTransmission(); | } | | void regler_horloge(byte Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 newtime[7]){ | byte i; | | Wire.beginTransm ission(addr_ds1307); | Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 Wire.write(0); // addresse du registre de départ | for (i=0; i<7; Overfull \hbox (45.41556pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 i++) { // envoyer les 7 octets un-a-un | Wi re.write(bin2bcd(newtime[i])); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | } | Wire.endTransmission(); | } | | void lire_horloge() { | Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 byte i; | | Wire.beginTransmission(addr_ds1307) ; | Wire.write(0); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 // adresse du registre de départ | Wire.endTrans mission(); | // Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 Demande mode lecture, 7 octets | Wire.requestFro m(addr_ds1307, 7); | Overfull \hbox (16.13455pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 // lire les octets dans l'ordre | for (i=0; i<7; i++) { | time[i] Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 = bcd2bin(Wire.read()); | } | Wire.endTransm ission(); | } | | // Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 Afficher date et heure sur la liaison série | void a fficher_lheure () { Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | Serial.print(jours[time[3]-1]); // le jour | Serial.print(" "); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | Serial.print(time[4]); // la date du mois | Serial.print(" "); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | Serial.print(mois[time[5]-1]); // le mois | Serial.print(" "); | Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 Serial.print(time[6]+2000); // l'année | format (" %02u:%02u:%02u", Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 time[2], time[1], time[0]); | Serial.println(t empString); // et Overfull \hbox (16.43953pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 l'heure hh:mm:ss | } | | void setup() | { | Wir e.begin(); // Initialiser Overfull \hbox (14.91475pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 l'environnement I²C | Serial.begin(9600); | Serial.println("Depart"); Underfull \hbox (badness 10000) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 | start_timer(); // Démarrer le horloge | Se rial.println("Horloge Overfull \hbox (59.44562pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 OK"); | // demande_heure | regler_horloge(t ime); | Serial.println("Date Overfull \hbox (69.81616pt too wide) in paragraph at lines 7983--7986 \EU1/AndaleMono(0)/bx/n/12 et heure OK"); | } | | void loop() | { | lire_h orloge(); | afficher_lheure(); [166] [167] [168] [169] [170] [171] Overfull \hbox (24.23096pt too wide) in paragraph at lines 8214--8215 []\EU1/Merriweather(0)/m/sc/12 ->!(http ://www.dailymotion.com/video/x2kgzzk_mo delisation-3d-pour-l-impression-3d_school)<- Underfull \hbox (badness 10000) in paragraph at lines 8214--8215 Underfull \hbox (badness 2790) in paragraph at lines 8229--8234 []\EU1/Merriweather(0)/m/sc/12 [[secret]] | ### Code Arduino | | | \EU1/AndaleM ono(0)/bx/n/12 c | /* | Feu Bicolore et Processing | | Overfull \hbox (1.18967pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 TP de la semaine 10 du MOOC "La Fabrication Numériqu e" | | Le montage : Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | * Un bouton poussoir branché sur la broche 2 | | créé le 20 Mai 2014 Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | par Baptiste Gaultier | | Ce code est en CC0 1 .0 Universal | | Overfull \hbox (138.7478pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 https://www.france-universite-numerique-mooc.fr/cour ses/MinesTelecom/04002/Trimestre_1_2014/about Overfull \hbox (437.65567pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | | */ | | const int boutonPin = 2; // C'est l' entrée INT0 | | // Pour qu'on puisse changer la valeur d'une variable depuis une fonction de Overfull \hbox (16.74455pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | // gestion d'interruption, il faut que la variable soit déclarée "volatile" Overfull \hbox (293.08258pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | volatile boolean changed = false; | | // Notre fo nction de traitement d'interruption. Le strict minimum, souvenez-vous. Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | void doContact() { | changed = true; | // Diff icile de faire + court Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | } | | void setup() { | Serial.begin (9600); | | // Broche en Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 entrée avec résistance de pull-up | pinMode(bouton Pin, INPUT_PULLUP); | Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | // Attacher notre fonction ISR, détection de fla nc descendant (5v vers Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 0v) | attachInterrupt(0, doContact, FALLING); | } | | void loop(){ | Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 if ( changed ) { | changed = false; | Serial .println("bouton"); | Overfull \hbox (20.95541pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 } | delay(2000); | } | \EU1/Merriweather(0)/m/sc/1 2 | | ### Code Processing | | \EU1/AndaleMono(0)/bx/n/12 java | import processi ng.serial.*; Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | | // déclaration des variables | PFont f; | PImag e red; | PImage green; Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | | // Port série | Serial myPort; | | // Stocke l e nombre de voiture Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | int cars = 0; | | final int DISPLAY_DURATION = 20 00; // 2000 ms = 2 Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 secondes | int startTime; // stocke le temps de la r éception d'un texte Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 sur le port série | | boolean buttonPressed = false ; | | void setup() Overfull \hbox (2.1045pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 { | // Taille fenêtre | size(1024, 768); | | // Choisir une police Overfull \hbox (13.69492pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 de caractère LCD | f = createFont("LCDDot TR Regul ar", 24); | textFont(f, Overfull \hbox (173.51894pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 50); | | // Charger les images | red = loadIm age("red.png"); | green = loadImage("green.png"); Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | | imageMode(CENTER); | | // initialisati on du port série pour Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 communiquer avec Arduino | myPort = new Serial(thi s, Serial.list()[0], Overfull \hbox (10.33936pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 9600); | myPort.bufferUntil('\n'); | } | | void d raw() { | // récupérer Overfull \hbox (39.31543pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 la valeur envoyée par Arduino | String inString = myPort.readStringUntil('\n'); Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | | // si on reçoit qq chose, alors on lance la fonction : | if Overfull \hbox (4.40898pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 (inString!= null) | ArduinoButtonPressed(); | | if (buttonPressed) Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | { | image(green, width/2, height/2); | | if (millis() Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 - startTime > DISPLAY_DURATION) | buttonPress ed = false; | } | Overfull \hbox (13.69492pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 else | image(red, width/2, height/2); | | text("Voiture numero :", Overfull \hbox (21.6248pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 510, 310); | text(cars, 510, 340); | | } | | v oid ArduinoButtonPressed() Underfull \hbox (badness 10000) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 | { | // le bouton a été appuyé | buttonPressed = true; | | // Overfull \hbox (7.59477pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 incrémenter le compteur de voiture | cars++; | p rintln("Voiture numero : Overfull \hbox (106.41716pt too wide) in paragraph at lines 8229--8234 \EU1/AndaleMono(0)/bx/n/12 " + cars); | | // vous souvenir de quand le bou ton est appuyé | startTime = millis(); [172] [173] [174] [175] [176] [177] [178] Chapitre 9. [179] [180] [181] [182] [183] [184] Overfull \hbox (44.71236pt too wide) in paragraph at lines 8870--8871 []\EU1/Merriweather(0)/m/sc/12 !(http ://www.dailymotion.com/video/x2h7bvr_grav ure-a-l-anglaise-d-une-platine-electronique_tech) [185] [186] Chapitre 10. [187] [188] [189] Underfull \hbox (badness 2119) in paragraph at lines 9104--9111 []\EU1/Merriweather(0)/m/sc/12 Téléchargez ce fichier [][]Arduino_breadboard.zi p[][], et le décompressez dans un dossier [190] Underfull \hbox (badness 1565) in paragraph at lines 9160--9163 []\EU1/Merriweather(0)/m/sc/12 Maintenant, et c’est très important, il faut cha nger le type de carte : sélectionnez [191] [192] [193] [194] [195] [196] [197] [198] [199] Underfull \hbox (badness 10000) in paragraph at lines 9510--9511 []\EU1/Merriweather(0)/m/sc/12 ->!(http ://www.dailymotion.com/video/x2kgzyn_l- internet-des-objets-avec-le-fablab-de- Underfull \vbox (badness 1360) has occurred while \output is active [200] Overfull \hbox (74.55122pt too wide) in paragraph at lines 9549--9554 []\EU1/Merriweather(0)/m/sc/12 Depuis un browser sur votre PC vous enverrez une requête http de la forme \EU1/AndaleMono(0)/bx/n/12 http://192.168.1.x?led=on [201] Overfull \hbox (8.09653pt too wide) in paragraph at lines 9632--9635 [] []|\EU1/lmss/bx/n/12 10.12.1.0.0.1 Code Arduino[] \EU1/Merriweather(0)/m/sc/ 12 [[secret]] | \EU1/AndaleMono(0)/bx/n/12 cpp | /* | Pilotage de LED par Int ernet Overfull \hbox (44.19574pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | TP de la semaine 12 du MOOC "La Fabrication N umérique" | | Le montage : Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | * Un shield Ethernet branché sur les broches 10, 11, 12, 13 | * Une Overfull \hbox (46.94035pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 LED branché sur la broche 2 | | créé le 20 Juin 2 014 | par Théophile Paimparay Overfull \hbox (425.45538pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | Ce code est en CC0 1.0 Universal | | https ://www.france-universite-numerique-mooc.fr/courses/MinesTelecom/04002/Trimestre _1_2014/about Overfull \hbox (15.52466pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | */ | | #include | #include | #include Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | // Enter a MAC address and IP address for your controller below. | Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 // The IP address will be dependent on your local ne twork: | byte mac[] = Overfull \hbox (1.96928pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 { | 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; | IPAdd ress ip(192,168,1,177); Overfull \hbox (150.9481pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | // Initialize the Ethernet server library | // with the IP address and port you want to use | Overfull \hbox (113.73723pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 // (port 80 is default for HTTP): | EthernetServer s erver(80); | | // Initialize the LED pin Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | const int led = 2; | | // Initialize the message sent by the client | Overfull \hbox (10.64435pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 String cmdString = ""; | | void setup() { | // Op en serial communications Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 and wait for port to open: | Serial.begin(9600); | | // Start the Overfull \hbox (57.6159pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 Ethernet connection and the server: | Ethernet.beg in(mac, ip); | server.begin(); Overfull \hbox (14.91476pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | Serial.print("Server is at "); | Serial.pri ntln(Ethernet.localIP()); Overfull \hbox (13.69492pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | | // Setup as output the pin where the LED is c onnected | pinMode(led, Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 OUTPUT); | } | | | void loop() { | // listen for incoming clients | Overfull \hbox (77.44118pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 EthernetClient client = server.available(); | if ( client) { | Serial.println("new Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 client"); | | // an http request ends with a bl ank line | boolean Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 currentLineIsBlank = true; | while (client.conne cted()) { | if Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 (client.available()) { | char c = client.rea d(); | //store Overfull \hbox (9.42445pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 characters to string | cmdString.concat(c); | | | | // Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 if you've gotten to the end of the line (received a newline | // Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 character) and the line is blank, the http request h as ended, | // Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 so you can send a reply | if (c == '\n' && c urrentLineIsBlank) { | Overfull \hbox (9.72945pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 // send a standard http response header | client.println("HTTP/1.1 Overfull \hbox (178.39925pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 200 OK"); | client.println("Content-Type: text/html"); | client.println("Connection: Overfull \hbox (4.54424pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 close"); // the connection will be closed after com pletion of the response Overfull \hbox (10.33939pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | client.println("Refresh: 5"); // refres h the page automatically Overfull \hbox (30.63936pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 every 5 sec | client.println(); | client.println(""); | client.println(""); | | //Parse the Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 cmdString to obtain the command | if(cmdSt ring.substring(6,13)== Overfull \hbox (120.44724pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 "led=on "){ | // display LED ON in the w eb browser | client.print("LED Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 ON"); | // OPEN the LED | di gitalWrite(led, HIGH); Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | } | if(cmdString.substring(6,1 4)=="led=off "){ | Overfull \hbox (8.20468pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 // display LED OFF in the web browser | client.print("LED OFF"); Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | // SHUTDOWN the LED | digi talWrite(led, LOW); | Overfull \hbox (99.09709pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 } | | client.println("
"); | | client.println(""); Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | break; | } | if (c == '\ n') { | // Overfull \hbox (35.04492pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 you're starting a new line | currentLineIs Blank = true; | } | Overfull \hbox (12.33891pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 else if (c!= '\r') { | // you've gotten a character on the current Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 line | currentLineIsBlank = false; | } | } | } Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 | // give the web browser time to receive the da ta | delay(1); | Overfull \hbox (28.33492pt too wide) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 // close the connection: | client.stop(); | // Serial.println("client Underfull \hbox (badness 10000) in paragraph at lines 9632--9635 \EU1/AndaleMono(0)/bx/n/12 disonnected"); | //clear the command Line | cmdString=""; | } | [202] [203] [204] Underfull \hbox (badness 1478) in paragraph at lines 9734--9736 []\EU1/Merriweather(0)/m/sc/12 L’URL du flux XML que nous allons utiliser est l a suivante [][]$[][][][][] [] [] [] [][][][][][][] [] [][][][][][][][][] [] [][ ][] [][] [205] [206] [207] [208] [209] [210] [211] Overfull \hbox (31.61366pt too wide) in paragraph at lines 10186--10188 []\EU1/Merriweather(0)/m/sc/12 !(http ://www.dailymotion.com/video/x2kgzxm_les- objets-connectes-du-fablab-de-lannion_school) [212] Chapitre 11. [213] [214] Underfull \hbox (badness 1888) in paragraph at lines 10299--10301 [] []|\EU1/lmss/bx/n/12 11.2.0.0.0.1 A vos marques…[] \EU1/Merriweather(0)/m/sc /12 La bibliothèque se trouve ici : [][]$[][][][][][] [] [] [] [][][][][][] [] [][][] [] [][][] [][] [215] Underfull \hbox (badness 1924) in paragraph at lines 10379--10386 [] []|\EU1/lmss/bx/n/12 11.2.0.0.0.4 Fonction ‘format’[] \EU1/Merriweather(0)/m /sc/12 Voilà une astuce qui va aussi être documentée sur le Underfull \hbox (badness 4024) in paragraph at lines 10379--10386 \EU1/Merriweather(0)/m/sc/12 d’une façon plus évoluée que les simples instructi ons disponibles avec les commandes Underfull \hbox (badness 1163) in paragraph at lines 10379--10386 \EU1/AndaleMono(0)/bx/n/12 Serial.print\EU1/Merriweather(0)/m/sc/12 . Une bibl iothèque très puissante existe pour cela, mais nous n’avons pas [216] [217] Overfull \hbox (7.40053pt too wide) in paragraph at lines 10515--10522 []\EU1/Merriweather(0)/m/sc/12 Si nous avons reçu un message du client, on rega rde si ce message contient la commande\EU1/AndaleMono(0)/bx/n/12 ?temp=\EU1/Mer riweather(0)/m/sc/12 . Si Underfull \hbox (badness 1803) in paragraph at lines 10567--10577 []\EU1/Merriweather(0)/m/sc/12 Télécharger le Sketch entier ici : [][]Arduinome treWeb.ino[][] (ou la version W5100 [][]Arduinome- [218] Underfull \hbox (badness 1248) in paragraph at lines 10617--10625 []\EU1/Merriweather(0)/m/sc/12 L’astuce se trouve dans une extension gratuite, le GCODETOOLS Extension. Très simple à Underfull \hbox (badness 2573) in paragraph at lines 10617--10625 \EU1/Merriweather(0)/m/sc/12 installer, il suffit de télécharger le fichier [][ ]ici[][] et de dé-zipper le contenu sous \EU1/AndaleMono(0)/bx/n/12 Program [219] [220] [221] [222] [223] Overfull \hbox (69.81627pt too wide) in paragraph at lines 10819--10819 []\EU1/AndaleMono(0)/bx/n/12 (Using default header. To add your own header crea te file "header" in the output dir.)[] [224] [225] [226] Chapitre 12. Underfull \hbox (badness 10000) in paragraph at lines 10927--10929 Underfull \hbox (badness 10000) in paragraph at lines 10929--10931 [227] ! Missing $ inserted. $ l.10952 ...istance combinée est de \$ 10 k \Omega pandoc: Error producing PDF - la-fabrication-numerique [ERREUR] pandoc: Could not parse YAML header: did not find expected alphabetic or numeric character "source" (line 752, column 2) pandoc: Could not parse YAML header: did not find expected alphabetic or numeric character "source" (line 52, column 2) ! Missing $ inserted. $ l.472 On a \$x\mapsto pandoc: Error producing PDF - introduction-aux-developpements-limites [ERREUR] - tutoriels-et-articles-les-nouveautes-de-la-version-12 [OK] - redorez-votre-blason-sur-google-bases-de-reputation-en-ligne [OK] - introduction-au-protocole-wamp-1 [OK] - decouvrez-les-nobels-le-prix-nobel-deconomie-2012 [OK] - developper-et-publier-une-app-android-material-design [OK] - les-slices-en-python [OK] - rythmes-cerebraux-et-potentiels-evoques [OK] - ceremonie-de-la-science-improbable-presentation-des-ignobels-2015 [OK] - les-arbres-sous-toutes-leurs-formes [OK] - deden-a-yggdrasil-larbre-dans-les-mythes [OK] - larbre-de-stern-brocot-enumeration-des-rationnels [OK] - les-arbres-binaires-de-recherche-1 [OK] - les-arbres-phylogenetiques [OK] - les-aventures-dun-gigot-la-mangrove [OK] - decouvrons-lindustrie-du-bois [OK] - apprendre-a-programmer-avec-python-3 [OK] - zeste-de-savoir-passe-en-version-14-et-complete-lapi-avec-les-mp [OK] ! Missing $ inserted. $ l.969 \leq pandoc: Error producing PDF - nos-algorithmes-sont-ils-vraiment-comparables [ERREUR] - lasynchrone-et-le-multithread-en-net [OK] - les-optimisations-des-compilateurs [OK] - les-failles-xss [OK] - creez-votre-propre-dvd-video-avec-dvdstyler [OK] ! Missing $ inserted. $ l.375 ... définie par \$ v\_\{n+1\} = v\_n \times pandoc: Error producing PDF - introduction-aux-suites-et-series [ERREUR] - notions-de-python-avancees [OK] - zeste-de-savoir-vous-souhaite-une-bonne-annee-2016 [OK] ! Undefined control sequence. l.726 \%windir\%\system pandoc: Error producing PDF - le-langage-c-1 [ERREUR] - debuter-avec-mongodb-pour-node-js [OK] - tp-arduino-faire-une-animation-space-invaders-sur-lcd [OK] - pourquoi-devons-nous-changer-de-televiseur-en-2016 [OK] - les-sols [OK] - realisez-un-jeu-de-plates-formes-avec-gdevelop [OK] - les-injections-sql-le-tutoriel [OK] - interview-rencontre-avec-gabbro [OK] - comment-marchent-les-disjoncteurs [OK] - les-bases-de-la-programmation [OK] - la-limite-de-landauer [OK] - des-tableaux-de-variations-et-de-signes-avec-latex [OK] - utiliser-une-bibliotheque-sous-windows-avec-mingw-ou-code-blocks-en-langage-c [OK] - quand-soudain-vous-etes-4-000 [OK] - votre-site-web-avec-bailador [OK] - petit-guide-de-lapprentissage-en-autodidacte [OK] - zeste-de-savoir-passe-en-version-16 [OK] - creez-des-extensions-pour-tous-les-navigateurs [OK] pandoc: Could not parse YAML header: did not find expected alphabetic or numeric character "source" (line 499, column 2) ! Missing control sequence inserted. \inaccessible l.161 ...gir de munir \(\newcommand{C}{\mathbf{C}} pandoc: Error producing PDF - la-sphere-en-tant-que-surface-de-riemann [ERREUR] - interview-rencontre-avec-kryptos [OK] ! Missing { inserted. \unhbox l.538 \(x_\mbox{initial est ici} pandoc: Error producing PDF - outils-pour-lecriture-des-mathematiques-en-latex [ERREUR] ! Undefined control sequence. l.271 de Python3. Habituellement c'est C:\Python pandoc: Error producing PDF - des-interfaces-graphiques-en-python-et-gtk [ERREUR] - nouveau-roi-des-nombres-megapremiers [OK] pandoc: Could not find image `http://www.thesocialmediabible.com/wp-content/uploads/2011/03/Gary-T-Web.jpg', skipping... ! Unable to load picture or PDF file 'http://www.thesocialmediabible.com/wp-con tent/uploads/2011/03/Gary-T-Web.jpg'. } l.238 ...p-content/uploads/2011/03/Gary-T-Web.jpg} pandoc: Error producing PDF - hommage-a-ray-tomlinson-linventeur-du-courriel [ERREUR] - lequipe-de-developpement-de-zeste-de-savoir-recrute [OK] - les-architectures-tolerantes-aux-pannes-et-aux-erreurs [OK] - les-systemes-dexploitation [OK] - magasins-mise-a-disposition-dequipement-scientifique [OK] ! Missing $ inserted. $ l.316 \$ x\_1 \times pandoc: Error producing PDF - la-saga-des-nombres-au-dela-du-reel [ERREUR] ! Missing $ inserted. $ l.420 \times pandoc: Error producing PDF - le-pourquoi-du-comment-des-lignes-a-haute-tension [ERREUR] - le-pattern-dispatcher-en-python [OK] - a-la-decouverte-des-algorithmes-de-graphe [OK] - le-viellissement-des-cellules [OK] - a-la-decouverte-de-turtle [OK] ! Illegal parameter number in definition of \reserved@a. \crcr l.322 ...x\) en bleu et selon \(\vec y\) en rouge} pandoc: Error producing PDF - dessinons-une-spirale-de-fibonacci [ERREUR] pandoc: Duplicate note reference `1' "source" (line 2737, column 1) - les-neurosciences-de-zero [OK] ! Undefined control sequence. l.320 HKEY\_USERS\Current pandoc: Error producing PDF - la-base-de-registre-de-windows [ERREUR] - comment-alerter-les-secours [OK] - croissance-economique-la-quete-du-pib [OK] - assemblee-generale-ordinaire-2016-de-zeste-de-savoir [OK] - lastronomie-depuis-mon-canape [OK] - le-rer-francilien-introduction-et-ligne-a [OK] - les-troubles-du-spectre-schizophrenique [OK] - introduction-aux-graphiques-en-python-avec-matplotlib-pyplot [OK] pandoc: Duplicate link reference `[CP850]' "source" (line 1605, column 1) pandoc: Duplicate link reference `[ASCII]' "source" (line 1604, column 1) pandoc: Duplicate link reference `[man3-iconv]' "source" (line 1505, column 1) ! Undefined control sequence. l.1431 ..., remarquons la mention « Dos\Windows pandoc: Error producing PDF - comprendre-les-encodages [ERREUR] - interview-rencontre-avec-des-etudiants-contributeurs [OK] - la-methode-des-grosses-pierres [OK] - cancer-entre-recherches-et-espoirs [OK] - mise-en-cache-intelligente-avec-django [OK] - la-definition-en-mathematiques [OK] - controler-la-propagation-des-erreurs-de-calculs-numeriques [OK] - zeste-de-savoir-passe-bientot-en-version-18 [OK] - batterie-pile-et-autonomie-1 [OK] - combien-denergie-peut-on-extraire-du-vent [OK] - des-nouvelles-de-rosetta-et-philae-ii [OK] - des-nouvelles-de-rosetta-et-philae-iii [OK] - recap-communautaire-1 [OK] - le-deploiement-dune-application-sinatra [OK] - les-arbres-de-decisions [OK] - des-cartes-sur-votre-site [OK] - la-theorie-cinetique-des-gaz [OK] - comprendre-les-monades [OK] - retour-dans-le-passe-pour-zds [OK] - creez-une-api-rest-avec-symfony-3 [OK] - communication-entre-android-et-php-mysql [OK] - le-rer-francilien-la-ligne-b [OK] ```

Notez que je connais rien à pandoc et quasi rien à latex. Encore moins à notre architecture de génération de PDFs et autres epubs, à notre watchdog, à qu'est-ce qui se passe quand et qui trigger quoi. Si quelqu'un veut bien s'en occuper, ça m'arrange.

cc @artragis @gustavi @GerardPaligot @pierre-24

pierre-24 commented 8 years ago

C'est @artragis le spécialiste: là, les PDFs sont effectivement générés ... Mais pas le reste ;) (epub et HTML)

EDIT: si on galère, c'est qu'on a oublié de le noter quelque part ou qu'on sais pas chercher.

artragis commented 8 years ago

alors comment que ça fonctionne :

Il y a trois modes possibles pour la génération des contenus :

Le watchdog se contente d'encapsuler le même processus que "au moment de la publication" mais dans une tâche de fond. La seule différence c'est que le site va simplement déposer un jeton dans un dossier spécial que le watchdog va détecter et il va créer le contenu à ce moment là.

Pour le reste c'est globalement : poru chaque format supporté factory.get_generator_for_format(current).generate()

2016-07-19 16:35 GMT+02:00 Pierre Beaujean notifications@github.com:

C'est @artragis https://github.com/artragis le spécialiste: là, les PDFs sont effectivement générés ... Mais pas le reste ;) (epub et HTML)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3631#issuecomment-233652504, or mute the thread https://github.com/notifications/unsubscribe-auth/ABc_xYlE_fUhZa8rBLMeawtmcC_LqDkIks5qXOCkgaJpZM4IpB9O .

vhf commented 8 years ago

Ok @artragis. Du coup, il faut que le site dépose ce jeton, puis watchdog génère un type de contenu externe indiqué dans le jeton ? Genre par exemple : pour un contenu X, après validation on aura un token correspondant au contenu X, watchdog verra l'apparition du token, verra que le token demande la génération d'un PDF et d'un EPUB mais pas d'un HTML ? C'est ça ?

Si oui, y'a moyen de générer un token par contenu par type de format, histoire de tout régénérer ?

artragis commented 8 years ago

non, les formats générés sont mis "en dur" dans le code et ne sont surchargeable que dnas le settings.py

Le 19 juillet 2016 à 17:31, victor felder notifications@github.com a écrit :

Ok @artragis https://github.com/artragis. Du coup, il faut que le site dépose ce jeton, puis watchdog génère un type de contenu externe indiqué dans le jeton ? Genre par exemple : pour un contenu X, après validation on aura un token correspondant au contenu X, watchdog verra l'apparition du token, verra que le token demande la génération d'un PDF et d'un EPUB mais pas d'un HTML ? C'est ça ?

Si oui, y'a moyen de générer un token par contenu par type de format, histoire de tout régénérer ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3631#issuecomment-233670968, or mute the thread https://github.com/notifications/unsubscribe-auth/ABc_xdIS319svp3sug4lmAZfcmK8JhAfks5qXO3rgaJpZM4IpB9O .

pierre-24 commented 8 years ago

Mince, j'étais convaincu qu'il y avait un moyen de forcer watchdog à repasser faire tout ce qui n'avait pas été fait pendant qu'il était pas là :/

gustavi commented 8 years ago

Sur les derniers contenus c'est bien généré.

GerardPaligot commented 8 years ago

Je re-ouvre, parfois il y a le PDF, parfois non. Idem pour l'ePub.

gustavi commented 8 years ago

Est-ce qu'on est vraiment sur la même issue ? Quand je lis le premier poste de @firm1 c'est réglé, je pense que le reste c'est principalement des erreur de compilation dans le format voulu.

GerardPaligot commented 8 years ago

Si tu fermes celle-ci, faut en ouvrir une autre. :)

vhf commented 8 years ago

Cette issue semble effectivement réglée. Elle concerne la génération des formats externes pour les nouveaux contenus.

Le fait que la génération échoue sur certains vieux contenus est un autre problème. @GerardPaligot peux-tu stp ouvrir une autre issue avec quelques exemples de contenus dont les formats externes sont manquants ? On pourra ainsi relancer la génération de ces contenus uniquement et y mettre la trace de l'échec de génération.