Il existe 10 types de personnes. Les personnes qui comprennent le binaire et les personnes qui ne le comprennent pas. Si cette phrase te faire rire, t’es un geek…
(ou en tout cas dans l’installation que j’ai de typo3)
le login n’est pas durablement persistant. Il faut toujours se reloguer. Il y a trop souvent une boite pop up qui revient pour demander de se reloguer. En général elle est filtrée par l’anti pop-up ! Si ce n’est pas le pop up qui revient, il y a une jauge extjs qui vient pour demander de cliquer dessus. Une sorte d’équivalent de la pédale de l’homme mort. Problème, ça ne fonctionne pas ! Peu importe la réponse, il faut toujours que je me relogue quand je vois cette boite. De plus, je n’ai pas encore compris comment elle survient. Il peut se passer des jours sans que je ne la voie et parfois elle surgit direct après le login… c’est toujours encourageant comme accueil !
En parlant de login, il est étrange d’avoir utilisé la balise pour rediriger sur le backend. Un header(.. aurait été plus propre. J’ai découvert ceci lorsque mon firefox ne voulait plus interpréter les refresh html à cause d’un bug de l’extension alexa.
Pourquoi est ce qu’il y des utilisateurs front end et des utilisateurs backend qui sont séparés ? pourquoi avoir fait deux tables séparées. Un type d’utilisateur dans un simple champ n’aurait pas suffit ? Fréquemment, on est obligé de bidouiller avec des synchronisation de ces tables et mettre du contenu à double. C’est assez ennuyant !
ergonomie du backend: je déteste ce système de frame. Jamais moyen d’ouvrir un onglet facilement. Jamais moyen de rafraichir la page pour voir le résultat d’une modification. Il faut toujours faire plus de clique qu’il n’en faudrait avec un système dans une seule page.
Ce système de frame à poussé à créer des fonctions inutiles. Pourquoi avoir un système de « shortcuts » interne. Tous les navigateur on un système de bookmark. Mais c’est vrai, il ne fonctionne pas avec une backend à frame.
Une autre conséquence de ces frames, c’est de ne jamais voir les url. Or c’est la base du web. On se coupe de la géniale barre d’adresse intélligente qui sert également de bookmark.
Typo3 est le champion de la récursivité. Il y a souvent des concepts qui se répliquent à l’infini. Déjà les frames. C’est un site dans le site. Il arrive que les frames se multiplies à l’infini à cause de bug. Mais c’est surtout l’idée que dans typo3 on réinvente souvent la roue. Au lieu d’utiliser un language connu, on en refait un. On code en typoscript du css et du javascript de façon moins propre et moins claire. Il y a des plugins, dans les extentions, dans des plugins. One sait plus trop parfois. Les termes sont peut clairs. Parfois, on a même un framework dans le framework. Comme souvent, l’interface de base TCA, n’est pas très sexy, on recode tout un cms dans le cms, pour avoir une application personnalisée. (bon, c’est un choix. Mais parfois je me demande à quoi sert typo3 si on l’utilise si peu !)
tesseract. C’est l’outil (presque maison) qui est un pack d’extensions qui travaillent ensemble pour faire un affichage de donnée selon le design pattern: MVC. On y crée graphiquement une requête qui va aller chercher des données, pour les filtrer avec un filtre (il faut de bonnes notion de sql pour utilise ces outils), puis l’on va matcher les données reçu sur un template html, tout ça de manière graphique, pour sortir un contenu. Ce contenu est principalement des listes. Tout ceci est très bien pour des choses simples, très simple. Mais dès qu’il faut ajouter des boutons (filtres de tri, etc) autour de la liste que l’on veut produire. Il est, à mon avis, plus simple et plus souple de tout coder en php. Un outil graphique sera toujours plus limité qu’un language de programmation. Il ne sert à rien de se torturer l’esprit pour trouver comment contourner les limitations de l’outil alors que l’on maitrise un autre outil plus efficace. Si j’utilise un outil, c’est pour qu’il m’aide, ce n’est pas pour me battre contre lui !
Pourquoi utiliser typo3 ? On m’a souvent dit qu’il y a une grande communauté opensource qui fourni beaucoup d’extensions. Désolé, mais mon expérience de typo3 ne me montre pas tellement ça. J’ai voulu utilise un jour un forum. Il y en en avait que 2 à disposition. Or, un forum est quand même quelque chose de courant !!! Sur les deux, aucun n’avait de captcha intégré. Donc c’est le spam assuré dans les quelques jours. A croire que ça n’a jamais été utilisé. Finalement j’ai compris que la communauté typo3 n’est pas si grande, et que surtout elle est vieillissante. Selon google trends, la communauté typo3 est actuellement au plus bas depuis le début des statistiques google en 2004 ! typo3 n’a pas bien passé le cap du web2.0. De nombreuses applications plus séduisantes et modernes sont arrivé dans un domaine où il régait en maitre avant. De même que plone. Drupal et surtout wordpress sont les nouveaux outils populaire depuis 2005. C’est là que se trouve la communauté et les plugins.
Un manque dans typo3 c’est de ne pas avoir de base un système de tag. Mais heureusement pour ça il y a tagpack. Même si l’extension est parfois un peu douteuse sur certain côté.
Je fini tellement par tout faire moi même dans une sorte d’immense patchwork de plusieurs framework et extensions que j’en viens à me poser la question à quoi sert vraiment typo3 dans les sites que l’on fait ? J’ai l’impression de passer plus de temps à me battre contre un outil imparfait que de construire les fonctions dont j’ai besoin.
C’est une détail, mais qu’on aille pas me dire que le backend est ergonomique quand parfois en ajoutant une page, je suis obligé de cliquer sur le bouton rafraichissement de l’arborescence des pages du site pour voir apparaitre la page. Idéalement l’ajout d’une page devrait rafraichir automatiquement ceci non ? c’est si dur que ça ? C’est du au système de frames je suppose.
Dans l’api, il y a des fonctions pour interfacer la base de donnée. Cette api est bien mais pas top. Par exemple, la fonction exec_SELECTgetRows(…) est pratique pour obtenir un tableau à partir des données de la base. Cependant, il est dommage que cette fonction ne mange pas comme paramètre directement le string de la requête sql, mais un version de cette requête coupée en plein de paramètres. Ainsi, pour le debug, je passe mon temps à reconstruire la requête avec les select, from, where, limit … afin de pouvoir l’afficher…. Je ne vois pas quel est l’avantage de découper ainsi la requête ?
Ce que je trouve pas trop mal dans typo3.
Pour ne pas être négatif, je vais aussi parler de ce que je trouve intéressant dans typo3.
le système de tca qui permet de rapidement fournir une interface graphique d’admin à une structure de base de donnée. (dommage que parfois ce ne soit pas assez joli et qu’on finisse par tout réinventer juste pour faire joli)
le mode page qui permet de choisir et d’arranger dans une page les blocs de contenu.
le système de gestion des permissions permet d’être précis. Il est possible de donner accès uniquement à certaines parties d’arborescence pour des utilisateurs différents.
Nicholas Georgescu-Roegen était un économiste mathématicien. Il a remarqué que les économistes se basent sur un modèle économique fondé sur le paradigme de la mécanique newtonienne et ne prennent pas en compte le principe de la dégradation de l’énergie et de la matière. Il a créé un modèle économique qui tient compte de la thermodynamique en introduisant le second principe de la thermodynamique: l’entropie.
L’entropie est ce qui fait qu’un glaçon qui fond dans un verre ne pourra jamais redevenir un glaçon. L’entropie dégrade l’énergie et la matière.
Nicholas Georgescu-Roegen a montré que le moteur de l’économie est en fait très concrètement un moteur thermique. (si l’on prend en considération que l’industrie fonctionne grâce à la combustion du charbon, puis du gaz, du pétrole, de la fission nucléaire, etc..)
Donc l’économie est une énorme machine thermique qui évidemment dépend des lois de la physique thermique. Il dresse un constat alarmant: il faut intégrer l’environnement dans le calcul du fonctionnement de l’économie. Sinon on court à la catastrophe ! Il ne faut pas gaspiller nos ressources, l’entropie va s’en charger assez rapidement.
Le concept de décroissance est donc, à la base, un concept économique.
C’est un concept qui veut éviter le gaspillage des ressources naturelles. Un concept qui critique l’idée d’une croissance économique infinie.
Un slogan que l’on retrouve souvent du côté des partisans de la décroissance:
La croissance n’est pas la solution, c’est le problème !
Une explication du mot décroissance nous dit que dans le mot débourser le préfixe dé signifie « sortir de » sa bourse. Ainsi, selon cette approche, le mot décroissance, signifie: sortir de la croissance.
D’accord, la décroissance veut en finir dur système économique qui érige la croissance en dogme. Mais pour bien comprendre ce que l’on entend par décroissance, il faut déjà comprendre ce que l’on entend par croissance.
Qu’est ce que la croissance ?
La croissance en biologie
La croissance, c’est tout d’abord un terme issue du la croissance en taille des être vivant. Si l’on fouille un peu l’étymologie du mot croissance, on trouve que ce mot vient du latincrescere (« naître, venir à la vie ») qui lui-même est dérivé de Ceres (Cérès, déesse de l’agriculture). (Le nom de Cérès est aussi à l’origine du mot céréales)
Tous les êtres vivants croissent, grandissent en taille, augmentent leur consommation de ressource. Cette croissance peut avoir de nombreuses phases.
Pour un humain, on dit communément que nous grandissons les 20 premières années, puis nous vieillissons pour les pessimistes ou nous murissons pour les optimistes.
Avec ces exemples, on observe que le terme de croissance peut représenter plusieurs phases, plusieurs sorte de croissance.
Observons du coté mathématique quelles sont ces différentes sortes de croissance.
La croissance en mathématiques
En mathématiques, et surtout en analyse, on étudie des fonctions. On entre une valeur x dans une fonction et on en ressort une valeur y. Une fonction peut être représentée de manière graphique. Ce qui est en général plus parlant.
Nous allons nous intéresser ici aux fonctions avec une croissance positive. C’est à dire des fonctions dont la pente (que l’on peut observer sur un graphe) a une évolution toujours positive.
Il existe plusieurs sortes de fonctions croissantes dont la pente varie plus ou moins vite, qui croissent plus ou moins vite. Si l’on fait un tour des principaux types de fonctions croissantes. On trouve:
Comme une image est beaucoup plus parlante, voici la représentation des ces types de fonctions en images.
Sur la première image on va se placer proche de l’origine, et observer ses fonctions.
La fonction en vert est une fonction linéaire. y=x. C’est la base de la fonction proportionnelle.
C’est la fonction à laquelle notre cerveau humain est le plus habitué.
De cette fonction on peut faire de nombreuse variantes proportionnelle.s Ici nous avons tout ce qui sort est égale à ce qui entre. On peut créer tout ce qui sort vaut 2 fois ce qui entre. Ou même tout ce qui sort vaut 1000 fois ce qui entre. C’est toujours le même type de fonction. Seule la pente va varier.
En bleu, nous avons la fonction y=x2, une fonction polynomiale. Une fonction qui est composée de puissance. Ici nous avons la puissance 2, la fonction « au carré ». Tout ce qui sort est ce qui entre multiplié par lui même.
Ce type de fonction est déjà moins intuitif pour notre cerveau humain. C’est ce genre de fonction qui régit les mouvements accéléré et les énergies potentielles mécanique. En d’autre termes quand une voiture a un accident, quand elle frappe un mur ça fait mal. Contrairement à une intuition courante de notre cerveau, ça ne fait pas mal proportionnellement à la vitesse, mais proportionnellement à la vitesse multipliée par elle même !!
Donc ça fait encore plus mal !
En rouge nous avons la fonction exponentielle. En mathématique on dit qu’une fonction exponentielle est une fonction qui est capable de transformer une somme en un produit. Pas très intuitif! C’est une fonction qui est difficile à comprendre pour le cerveau humain. C’est une fonction qu’il est plus facile de comprendre par des exemples de phénomènes à croissance exponentielle.
Quand on parle de croissance exponentielle, on prend souvent l’exemple de la croissance d’une population.
De plus, exprime souvent la croissance exponentielle sous forme d’un pourcentage : une croissance de 10 % par an signifie que la population est multipliée par 1,1 chaque année. (1/100 = 0.1) Cette valeur en pourcent est un taux de croissance.
De manière générale, on occulte souvent la fonction exponentielle en ne parlant que de taux de croissance. C’est beaucoup plus facile. Car, en ne parlant que du taux de croissance on retombe sur une fonction linéaire. Ce que notre cerveau aime bien !
Mais attention, une fonction exponentielle qui a un taux de croissance constant est toujours en pleine croissance !
En observant les deux graphes ci-dessus, on remarque, que proche de l’origine, les trois types de fonctions n’ont pas beaucoup de différences. Puis sur le second graphe, on voit mieux que la croissance d’une fonction exponentielle est très différente de celle d’une fonction linéaire.
L’exponentielle a une pente tellement raide qu’il est difficile de la représenter sur un graphe. Mais on peut tenter de concrétiser un peu plus la taille qu’aurait le graphe pour représenter une exponentielle.
On va se dire que l’unité utilisée sur ces graphes est le centimètre. Ainsi, pour un déplacement de 10cm sur l’axe des x, avec ma fonction linéaire y=x j’obtiens un déplacement vertical de 10cm.
Avec la fonction exponentielle, un déplacement de 10cm sur l’axe des x correspond à un déplacement de 22026 cm, soit 220m !!
Si je pousse ne serait ce que de 1cm sur l’axe des x pour arriver à 11cm, j’arriverai à une hauteur de 598,74 m ! et si je vais à 12cm, j’arriverai à 1,627 km
Vu que j’ai encore de la place sur mon axe des x, je pousse un plus loin pour aller me poser précisément à 24,36cm. Quelle est la distance que j’obtiens sur mon axe des y ? …. et bien j’ai choisi cet endroit précis, car on arrive sur la distance qu’il y a entre la terre et la lune ! Soit environ 380 000 km !
Donc il faut se méfier des phénomènes à croissance exponentielle, ils sortent souvent du cadre de l’entendement de notre cerveau humain. Surtout si en plus on masque la croissance exponentielle en parlant de taux de croissance en pour-cent.
Si l’on reprend l’exemple cité ci-dessus, de la population qui augmente de 10% par an. Pour une population de 1000 personnes:
au bout d’un an, la population vaut 1100 personnes. (1.1 x 1000)
au bout de 2 ans, la population vaut 1210 personnes. (1.1 x 1100 ou 1000 x 1.1 x 1.1 ou 1000 x 1.12)
au bout de 7 ans, la population vaut 1948,717 personnes, soit presque le double. (1000 x 1.17 )
au bout de 20 ans, la population vaut 6727 soit (1000 x 1.120 )
au bout d’un siècle, la population de ce petit village de 1000 habitants verra sa population arriver à 13,78 millions d’habitants !
Un des exemples courant de fonction exponentielle que l’on utilise, ce sont les crédits bancaires. Il faut se rendre compte qu’une somme investie peut doubler rapidement !
Avec un intérêt à 3%, il faut 24 ans à une somme pour se dédoubler ! Ce sont des valeurs courante pour des hypothèques !
Donc il faut se rendre compte que la plupart des gens payent plusieurs fois leur maison !
Pour le commun des mortels la croissance économique c’est surtout la petit infos du jour dans les médias.
Voici un exemple de ce que l’on a pu entendre sur la rsr le 2 septembre 2010.
La croissance de l’économie suisse se poursuit, au deuxième trimestre, le produit intérieur brut a progressé de 0.9% par rapport aux trois premiers mois de l’année… (…) …et puis les services financiers ont le sourire avec une hausse de 1,6%… voilà pour les gagnants, mais tous les secteurs ne connaissent pas une croissance, les services publics n’ont pratiquement pas créés de valeurs….
On nous dit dans ce journal radio que la croissance du PIB, le Produit Intérieur Brut a augmenté de 0.9% en suisse pendant la durée du dernier trimestre.
Le produit intérieur brut est un indicateur qui renseigne sur la valeur de l’accroissement des richesses. Quand on nous parle de la croissance du PIB, on nous parle de la croissance d’une croissance.
Il faut se souvenir de la fonction mathématique exponentielle que nous avons vue. Il est possible d’exprimer la pente de la fonction, sa croissance, par une taux en pour-cent. Même si le taux est constant d’une mesure à l’autre, la fonction est toujours une fonction croissante !
Ici on nous indique que le taux de croissance lui même a augmenté de manière croissante. Ainsi on a encore accentué la pente de notre fonction exponentielle. Nous avons un gain qui est énorme, inimaginable pour un cerveau humain.
Cependant la manière dont la croissance du PIB est présentée fausse tout. Si on reproche à une entreprise que sa progression de croissance s’est ralentie, on à l’impression de comprendre que son chiffre d’affaire a baissé. Mais ce n’est pas vrai, il a grandit. Il a même grandit de plus en plus vite. Mais pas aussi vite que ce que certains analystes avaient prévus !
Une valeur en pour-cent n’est qu’une proportion. Le 3% d’une année est forcément plus grand que le 3% de l’année d’avant si l’on refait le calcul en ayant ajouté à la valeur totale la valeur absolue de ce petit bout de 3%.
Ainsi si l’on reprend l’exemple de la population de notre petit village de 1000 habitants.
Si l’on se dit qu’il y a une croissance de 10% de la population les 20 premières années, puis le taux de croissance diminue, on a plus que 8% de croissance les 20 années suivantes, on arrive à une population de:
au bout de 20 ans, à 10% la population vaut 6727 soit (1000 x 1.120 )
au bout de 20 ans de plus, à 8% la population vaut 31354 soit (6727 x 1.0820 )
Malgré la diminution de 2% de taux de croissance, la population à plus que quadruplé les 20 années suivantes !
Une diminution de taux peut donc quand même être de la croissance !
Mais effectivement dans l’absolu la croissance a été un peu moindre que si le taux était resté à 10%
au bout de 40 ans de plus, à 10% la population vaut 45259 soit (1000 x 1.140 )
C’est ainsi que l’on peut voir que même avec une croissance négative du PIB, il est possible de voir une valeur absolue plus grande !
Quelques exemples de PIB selon la page de wikipedia.. mais la fiabilité n’est pas à toute épreuve !
On peut observer d’une manière globale que le PIB en absolu augmente toujours.
Souvent dans les médias on nous parle uniquement du taux de croissance. Le taux de croissance peut augmenter ou diminuer et ainsi on explique que l’économie va bien ou mal. Que l’on est en boom économique ou en récession.
Mais en fait, globalement, la valeur absolue du PIB est toujours en augmentation, en pleine croissance, et même en croissance de type exponentielle.
Voici un graphe qui illustre la valeur absolue du PIB suisse en milliard de $ entre 1960 et 2010:
On observe que la valeur absolue de ce PIB a déjà doublée dans les 10 dernières années. En 2001, le PIB suisse était de 250 Milliards de $ et en 2010 le PIB suisse est de 500 Milliards de $.
Il subsiste tout de même un biais dans cette présentation, c’est le fait que l’économie suisse utilise beaucoup sa propre monnaie qu’est le franc suisse, alors que ce graphe est présenté en $ dollars US. Le taux de change entre ces monnaies à pas mal changé en 50 ans. Actuellement, en 2011, 1$ = 0.83 CHF alors qu’en 2001, 1$ = 1.7$.
Par rapport à l’inflation, il semble que le dollars de 2011 vaut 7.5 fois moins qu’en 1960.
Comparé à l’or, le dollar perd 98 % de sa valeur entre 1971 et 2010. L’once d’or est passé en 40 ans de 35 à 1 250 dollars. Ainsi, c’est peut être une partie de cette dévaluation du dollars par rapport au franc et permet de soutenir la croissance !
Mais le problème ne change pas. Le PIB ne fait que d’augmenter, même si le taux de croissance est variable.
Ainsi, à l’avenir, il nous faudra échanger encore plus d’objet et de services pour faire croitre le PIB, donc il faudra encore plus transformer des ressources naturelles en déchêts !
De combien va encore augmenter le PIB ?
Il est impossible de prévoir le futur, mais on peut faire comme les économistes qui aime prévoir le futur par des projections du présent.
Si l’on table sur une croissance du PIB de 2% par an on peut utiliser la formule suivante:
y = 500 (1.02)^x
500, c’est les 500 milliards du PIB suisse en 2010, 1.02, c’est pour dire que l’année suivant, on veut le même résultat augmenté de 0,02 fois, c’est à dire 2% et l’année est la variable x en exposant.
C’est donc bien une équation d’une fonction exponentielle.
On peut voir sur le graphe ci-contre de cette fonction que le PIB continue d’augmenter très vite. Tellement vite que mon échelle ne me permet d’afficher que les 2 prochaines années où l’ on arrive déjà à 520 milliards. Donc, d’ici 2 ans, en plus de ce que l’on consomme maintenant, on consommera aussi l’équivalent de ce qui permettait à l’économie du début des années 1970 de tourner !
Mais ceci n’est qu’une projection du passé sur le futur. Seuls les économistes sont assez fous pour penser que l’on peut ainsi prédire l’avenir. Comme je l’ai déjà expliqué dans un article, l’avenir est imprévisible. Les grands événements qui ont marqué l’histoire étaient totalement imprévus.
Avec une telle croissance de 2%, en 2050, (date pour laquelle on fait beaucoup de projections), on devrait, en suisse consommer 2 fois plus de ressources que maintenant.
Une image vaut mille mots dit-on. Alors, j’ai tenté de montrer graphiquement ma projection de la croissance du PIB suisse pour 2050.
J’ai repris le graphe déjà montré ci-dessus, qui montre la valeur absolue du PIB suisse en milliards de $ depuis 1960 jusqu’en 2010.
La surface sous cette courbe représente tous les services et biens qui ont été consommés pour atteindre cette évolution du PIB. En vert, nous avons tout ce qui a déjà été consommé ces 50 dernières années.
Puis j’ai projeté la courbe jusqu’en 2050. Là, si l’on suppose un PIB de 500 milliards de $ en 2010, avec un croissance annuelle de 2%, en 2050, nous arrivons à un PIB de 1100 milliards.
Pour tenter de me représenter le volume de services et biens qu’il faudra consommer pour atteindre ce PIB de 1100 milliards en 2050, j’ai cloné la surface verte en surface jaune. J’ai rempli tout l’espace à disposition avec des surfaces jaune. (En terme mathématique, calculer la surface sous une courbe revient à calculer l’intégrale de cette fonction.)
J’arrive presque à placer 3 fois cette surface dans l’espace à disposition.
Cela signifie que pour atteindre le PIB qui correspond à une croissance annuelle de 2% jusqu’en 2050, nous aurons besoin de consommer 3 fois plus de services et de biens que ce qui a été produit entre 1960 et 2010.
Avec tous les problèmes de ressources et de dérèglement climatique que l’on observe à l’heure actuelle, ça me semble juste totalement impossible !!!
Celui qui croit qu’une croissance exponentielle peut continuer indéfiniment dans un monde fini est soit un fou, soit un économiste.
Réfléchissez à ce qu’il faut pour mettre en place une telle économie. Comment va ont pouvoir consommer encore plus ?
Une solution est de rendre tout jettable. Diminuer la durée de vie des appareils et augmenter leur nombre. Vous devrez changer votre téléphone tous les 3 mois, votre ordinateur chaque année, vos habits chaque semaine. Vous mangerez uniquement de la nourriture qui vient de l’autre côté de la planète pour qu’un maximum d’intermédiaires aient pu la toucher, vous n’aurez plus de vaisselle autre que de la vaisselle jettable.
Il faudra privatiser totalement l’espace public. Chaque rue sera payante, le GPS que vous avez toujours sur vous enregistrera votre parcours et permettra à la fin du mois de vous facturer uniquement les trajets que vous avez effectué.
– Restez chez vous et vous ne payerez rien dira la pub des livreurs à domicile.
L’école publique est une charge, on va la privatiser, ainsi elle peut rentrer dans le calcul du PIB, passer de charge à profit !
Dans la même logique, les crèches seront obligatoires. Un parent qui reste à la maison s’occuper de son enfant est un parent qui ne crée pas de valeur ! Un parent qui reste à la maison s’occuper de son enfant est une place de travail de moins dans une crèche !
En bref, on doit étendre la sphère marchande et faire tourner plus vite le circuit économique.
Comment est calculé le PIB ?
Le PIB est un indice qui est construit avec de nombreuses règles. Il y a des choses que l’on comptabilise dans les richesses et d’autres que l’on ne comptabilise pas.
Quand on entend dans le journal de la RSR que les services financiers sourient mais que les services publics n’ont pratiquement pas créés de valeurs, il faut réfléchir un peu.
Le PIB tient compte des gains en bourse, mais il ne tiens pas compte de ce que l’Etat dépense pour financer les écoles.
Autrement dit, pour augmenter le PIB, on devrait ne plus fiancer les écoles et immobiliser tout l’argent ainsi économisé en le plaçant en bourse ! Logique !
De même, les catastrophes sont toujours bonne pour augmenter le PIB. Un accident de voiture fera travailler de nombreuses personnes, des ambulanciers aux vendeurs de ferraille pour l’épave et de voiture pour le remplacement.
La pollution d’une rivière par une usine sera bénéfique pour le PIB, l’entreprise produira à moindre coût si elle n’as pas besoin de filtre anti-pollution pou rejeter son poison. Il faudra de nombreux spécialiste pour étudier la catastrophe et finalement d’énormes travaux pour assainir la pollution !
Si le moteur d’une voiture à l’arrêt dans un embouteillage tourne, ça fait augmenter le PIB. Il faudra m’expliquer où se trouve la création de richesse dans tout ces exemples !
Donc souvent une perte de patrimoine, de vie humaine, de ressources naturelles est comptabilisé comme une richesse !
Par contre l’école, à moins qu’elle soit privée et donc non financée par l’Etat, ne crée jamais aucune richesse. Pire, elle dilapide de l’argent !
Finalement, je me demande vraiment pourquoi les médias nous bassinent autant avec la croissance du PIB ?
Parmi cette foultitude d’indicateurs économique. On peut s’arrêter sur l’indice de santé sociale, qui comme son nom l’indique prend en compte des questions de sociales et de santé.
Cette indice, contrairement au PIB, comptabilise les accidents de la route comme un drame et nom comme un bienfait. Ce qui semble assez logique.
Voici une comparaison entre l’indice de santé sociale et le PIB américain entre 1959 et 1996:
On remarque un découplage de ces indices aux environs de 1975.
Depuis le milieu des années 1970, la croissance du PIB n’est pas un signe de croissance du bien être comme c’était le cas auparavant.
Cet indicateur est semblable au PIB, mais il prend en compte également la création de richesse qui ne passe pas par une monétisation comme le bénévolat ou le travail domestique.
De plus, il a une composante écologique qui déduit de la création de richesse, les pertes écologiques et les dégâts sociaux.
Voici une comparaison entre le PIB et de l’indicateur de progrès véritable des années 1950 à la fin des années 1990:On observe que les courbes se découplent vers le début des années 1970. Le progrès véritables stagne, voir diminue quand le PIB croit.
Ainsi on observe que les outils mis en place à la fin de la deuxième guerre mondiale pour évaluer notre économie ne sont pas forcément tout à fait adaptés.
Cela fait 50 ans que nous avons des outils alternatifs pour voir une réalité tout autre que la croissance du PIB comme source de bien être. Pourquoi est ce que l’on garde le PIB comme référence majeure ?
Pourquoi est-ce que les médias nous parlent toujours du PIB dans le flash info et très rarement de la cinquantaines d’autres indicateurs économiques ?
Les choses bougent quand même. Il existe des initiatives du genre de la commission Stiglitz, qui ont pour but de définir de nouveaux indicateurs de richesse plus juste.
Mais finalement, on les a pas déjà ces indicateurs ?
Il suffit juste de décider de ce qui a le plus d’importance dans nos valeurs…. pour le moment, d’après les médias et politiques du moment, on dirait que seul le PIB compte…..
Dans la vallées des Ponts, dans le canton de Neuchâtel, il y a des fermes qui ne sont pas accessibles via des connexions ADSL ou cable. Pourtant, de plus en plus, les paysans ont besoin de connexion internet pour toute une part de travail administratif qui leur est demandé par les autorités. (ou pour avoir tous les services que l’on trouve sur un internet)
Au Ponts-de-Martel, il existe une solution à ce problème. Un fournisseur d’accès internet par réseau wifi existe !
Il s’agit de Marc-André Mojon. Toutes les infos de contact sont sur son site: http://mojolan.ch
En général il fait des connexions jusque chez lui aux Ponts-de-Martel, là où il a deux connexions adsl qu’il partage. Ce sont des connexions chez vtx. Un fournisseur d’accès internet qui autorise le partage de ta connexion avec d’autres gens. Chez sunrise par exemple, les conditions du contrat ne le permettent pas.
Donc il faut trouver une maison à vue chez qui il est possible d’avoir une connexion internet chez un opérateur « gentil ».
Pour les liens wifi, le matériel utilisé est du genre:
Il est souvent utile de pouvoir générer un pdf à partir d’un contenu web.
Il existe de nombreuses solutions plus ou moins bonne.
Tout d’abord, il faut savoir que l’html+css et le format pdf sont quand même passablement différents. Il va donc être facile de convertir du contenu dans un format ou dans l’autre. Mais il ne va pas être simple d’avoir la même mise en page dans les deux cas.
Traditionnellement, le pdf est souvent utilisé pour faire des documents que l’on exporte d’un site web. L’exemple typique c’est la facture qui est générée après un achat sur un site de e-commerce.
Pour concevoir ce genre de document, on conçoit un canevas tout fait où il suffit de remplir les données de la marchandises achetée et les données du client.
Pour ce genre d’application on utilise traditionnellement des applications comme pdflib.
Pour faire plus léger, en php, et totalement gratuit, d’autres alternatives on été crées. Il s’agit par exemple de TCPDF.
Cette bibliothèques est utilisée dans de nombreux cms pour exporter directement un pdf à partir d’une page. Bien que le résultat ne soit pas si mal, il est toujours frustrant. Le résultat n’est pas pareil que l’original web.
Ce script est capable de comprendre une partie d’html, mais comprendre les styles css par dessus est trop compliqué.
Une nouvelle idée est apparue: créer un moteur qui interprète le html+css comme n’importe quel navigateur web et sortir l’affichage au format pdf.
Prince est capable de comprendre de nombreuse grammaire xml et de les transformer en pdf. Le résultat est totalement différent de ce qu’un tcpdf est capable de faire ! C’est nettement mieux.
Google utilise cette solution pour générer des pdf à partir de document google docs… Si google n’a pas mieux maison… c’est que le produit est vraiment bien !
Il reste un petit bémole à cette solution qui est probablment la meilleures, c’est que pour une utilisation serveur, il faut une license qui est passablement chère… 3000 dollars australiens.. gloups. Même si le soft vaut certainement son prix… c’est quand même hors de prix pour beaucoup…..
Voilà qu’une nouvelle réflexion s’est faite….. Quand j’imprime une page web depuis safari sur mon mac, directement je peux exporter l’impression en pdf…. on ne peut pas utiliser le soft qui fait ça ??
Et effectivement, en creuseant de ce côté il y a moyen de faire quelque chose. Les basses couche de safari, webkit, sont opensource. Il reste juste les hautes couches applicative à bidouiller, mais le plus dur est fait, comprendre le html+css qui est vraiment de plus en plus complexe.
C’est ainsi qu’est née l’application wkhtmltopdf, c’est une application opensource qui est maintenant à maturité. Elle permet très simplement de faire juste ce qu’on lui demande, manger de l’html+css pour en resortir un pdf.
Personnellement, je suis assez bluffé. Pas mal du tout. Les petits à côté sont sympa aussi. Ce que j’aime beaucoup, c’est la génération automatique de la table des matières et le fait de pouvoir ajouter directement une page de titre.
Voici la commande qui permet de générer un fichier pdf à partir d’une page web tout en ajoutant au début du document une page de table des matières qui a pour titre « Table des matières ».
wkhtmltopdf -t –toc-header-text « Table des matières » monfichier.html monfichier.pdf
Voilà, j’ai maintenant tout ce qu’il me faut pour avoir un traitement de texte complet dans un simple navigateur web.
C’est ce que j’utilise ici pour écrire ces lignes.
Un couplage de tinyMCE pour la partie écriture wysiwyg, puis j’enregistre et gère mes documents l’application web que j’ai codée, puis j’exporte les documents que j’écris à l’aide de wkhtmltopdf.
Merveilleux !
Pourquoi s’ennuyer avec M$ office… ou même openoffice… qui sont des suite bureautique de plus en plus lourdes pour ne pas faire grand chose de plus qu’il y a 15 ans dans le traitement de texte !
Il m’arrive souvent de prendre des images de webcam régulièrement et de faire des films en vitesse accélérée.
J’utilise un script shell pour aller chercher les images d’une webcam et les stocker dans un dossier avec un nom qui correspond à la date et l’heure de prise de vue.
Voici le script que j’utilise:
#!/bin/bash
#Capture une image de la vue dedevant chez moi toute les 3 s
while true; do
curl http://axis-00408c77db21.local/axis-cgi/jpg/image.cgi?resolution=640x480 -o `/bin/date +"%y%m%d%H%M%S"`.jpg
sleep 3
done
ça me permet d’appeller ma webcam qui se signale en local par le protocole bonjour.
Puis, après avoir fait tourner mon script pendant quelques semaines, il m’arrive souvent d’avoir des milliers ou plutôt des centaines de milliers de fichiers qu’il faut traiter.
Pour faire le film sur mac à partir des images, j’ai tester plusieurs logiciel:
Quicktime player pro version 7 a une fonction d’importation de séquence d’image.
mencoder est un outils en ligne de commande, mais c’est le plus robuste que j’ai trouvé pour gérer les centaines de milliers de fichiers et en plus il est gratuit.
Si mencoder est placé dans le dossier /Applications du mac, pour faire le film, il faut aller dans le dossier qui contient les images et lancer la commande suivante:
Un film sera créé au format h.264 dans le dossier avec le nom: output264.avi
Il existe plusieurs codec utilisable par défaut.
La commande:
mencoder -ovc help
permet de voir les codec disponibles:
Available codecs: copy – frame copy, without re-encoding. Doesn’t work with filters. frameno – special audio-only file for 3-pass encoding, see DOCS. raw – uncompressed video. Use fourcc option to set format explicitly. nuv – nuppel video lavc – libavcodec codecs – best quality! libdv – DV encoding with libdv v0.9.5 xvid – XviD encoding x264 – H.264 encoding
Mise à jour en 2017 en utilisant ffmpeg
De 2010 à 2017.. les choses ont changées… mais pas les besoins.
Je me fait insulter car la manière de passer en paramètre le codec est deprecated et que j’ai pas préciser la taille des pixel… il prend pas défaut yuv.. comme dans l’exemple…
→ mais ça marche sans soucis et c’est beau !
alternative pour gérer le resize..
convert input.jpg -resize '1920x1080^' -gravity center -crop '1920x1080+0+0' output.jpg
Une manière intéressante d’organiser ses photos est d’utiliser les mots-clés IPTC présents dans les métadonnées des photos.
Personnellement, j’attribue toujours à mes photos des mots-clés IPTC. Ainsi quand je fais une recherche sur mon mac spotlight est capable de me retrouver les photos.
Quelques mots-clés que j’utilise fréquement:
Portrait => pour les photos que l’on utiliserait pour présenter quelqu’un
couple => pour les photos que l’on utiliserait pour présenter quelqu’un, mais quand il y a 2 personnes.
Group => pour les bonnes photos de groupes. A partir de 3 personne
Landscape => les photos de paysage que je mettrai en fond d’écran
panorama => les photos panoramique
HDR => les photos HDR
sourire => les beaux sourire
rire => les gens qui rient aux éclat
grimace => les gens qui fond des grimaces
profile => les gens de profile
lunette => les lunettes ou gens à lunettes
chapeau => les chapeau ou gens à chapeau. (ou bonnet et casque que j’ajoute en plus)
château
lever de soleil
coucher de soleil
montagne
lac
lune
orage
arc-en-ciel
rivière
herbe
fleur
silhouette
reflet
arbre
neige
lumière => quand il y a une lumière particulière
affiche => pour ma collection d’affiche politique
fontaine
gargouille
statue
tour
feu
…. et beaucoup d’autres qui viennent sur le moment..
Mots-clés IPTC et php
Quand je fais une galerie de photo sur le web. Je vais piocher les mots-clés IPTC dans les métadonnées pour afficher des infos sur la photos ou même directement pour créer des albums.
Voici quelques fonctions php que j’utilise pour aller chercher les mots-clés IPTC dans les métadonnées d’une photo.
/* Retourne un tableau contenant les mots-clé IPTC contenu dans le fichier de la photos * * @return: array() un tableau de string contenant les mots-clé IPTC de la photos * @param: $imagePath => le chemin d’accès sur le serveur de la photo. (ou une url) */ function getIptcKeywordsFromFile($imagePath){
/* Retourne l’auteur de la photo selon le champ IPTC credit * * @return: la valeur du champ iptc credit * @param: $imagePath => le chemin d’accès sur le serveur de la photo. (ou une url) */ function getIptcCreditFromFile($imagePath){
Cette page à pour but de noter un peu tout ce que je sais sur la gestion de photos verticales.
En effet, je n’ai pas encore tout compris, le comportement est parfois étrange.
En gros, depuis toujours on fait des photos qui ne sont pas carrées ! Donc suivant le sens dans lequel on tourne l’appareil photo, une photo est horizontale ou verticale.
Le plus souvent on fait des photos horizontale vu que notre vision humaine est panoramique. Donc la référence largeur hauteur est basée sur cette vision horizontale.
Donc on peut dire que:
une photo horizontale est une photo qui a une largeur plus grande que la hauteur. (l>h)
une photo verticale est une photo qui a une largeur plus petite que la hauteur. (l
Jusque là tout le monde est d’accord.
En argentique, on a une film qui dispose d’une surface sensible à la lumière. Cette surface est toujours orientée de la même manière. Il n’est possible de faire que des photos horizontales.
Au moment de développer et tirer les photos, on utilise le même papier et le même traitement de fait sur toutes les photos.
Au moment de regarder sa pile de photo sur papier, on retourne instinctivement chaque photo pour voir les verticales dans le bon sens. Pas de problème.
En numérique. Une photo c’est un assemblage de pixel qui correspondent à la lumière enregistrée par un capteur. Comme le film, le capteur est fixe. Il prend toujours les photos en horizontal.
Puis les photos sont transférée de la mémoire de l’appareil photo à la mémoire d’un ordinateur. Au moment de regarder les photo sur un ordinateur, les photos sont toute dans le même sens: horizontale. Donc pour regarder les photos, comme avec la pile de photo papier on retourne la photo.
Pour simplifier un visionnage ultérieur des photos, il est possible d’enregistrer le sens dans lequel est la photos. Pour ce faire, il y a 2 méthodes:
définitivement ré-ordonner les donnée de la photo pour qu’elle s’affiche avec des dimension différente et donc une orientation différente.
placer une information dans le fichier qui dit au logiciel de retourner la photo au moment de l’afficher.
Historiquement c’est la première méthode qui est la plus courante. Elle demande des ressources une fois et pas à chaque affichage pour retourner la photo. C’est la méthode traditionnelle. Elle a pour inconvénients de devoir réécrire un fichier existant, et cette manipulation est souvent source de problème de perte d’information.
En effet, actuellement, il y a de plus en plus de méta-données dans une photo et le risque de les perdre est grand suivant les logiciels utilisé pour réécrire les images. De plus, la qualité est souvent difficile à régler.
La seconde méthode tend à se répendre de plus en plus. En effet, nous avons des machines rapides qui arrivent facilement à retourner les photos à la volée au moment de l’affichage.
Mais surtout, ce sont les appareils photos numériques qui se sont perfectionnés. De plus en plus, ceux-ci sont équipés d’un capteur de position qui permet d’indiquer l’orientation d’une photo directement dans le fichier au moment de sa création. L’appareil photo est, par rapport à l’ordinateur qui va afficher l’image, un ordinateur lent. Il est donc plus facile pour l’appareil photo d’écrire une indication sur l’orientation de l’image que de ré-ordonner complètement les données de la photos pour la retourner.
Ainsi, il existe dans les photos, des méta-données, des données sur des données… Pour les caractéristiques techniques c’est la norme EXIF qui est utilisée. C’est un format dans lequel chaque appareil photo va enregistrer les réglages et les conditions dans lesquelles la photos est prise.
L’orientation de la photo est donc enregistrée dans un des champs de données exif le champ: orientation.
D’après les spécifications EXIF, le champ orientation contient une valeur numérique de 1 à 8. La signification explique suivant cette valeur, où se trouve visuellement dans l’image le début des donnée à la ligne 0 et colonne 0, donc le haut à gauche. Le cas horizontal normal correspond à la valeur 1.
la ligne 0 est visuellement en haut de l’image, et la colonne 0 est visuellement à gauche de l’image.
la ligne 0 est visuellement en haut de l’image, et la colonne 0 est visuellement à droite de l’image.
la ligne 0 est visuellement en bas de l’image, et la colonne 0 est visuellement à droite de l’image.
la ligne 0 est visuellement en bas de l’image, et la colonne 0 est visuellement à gauche de l’image.
la ligne 0 est visuellement à gauche de l’image, et la colonne 0 est visuellement le haut de l’image.
la ligne 0 est visuellement à droite de l’image, et la colonne 0 est visuellement le haut de l’image.
la ligne 0 est visuellement à droite de l’image, et la colonne 0 est visuellement le bas de l’image.
la ligne 0 est visuellement à gauche de l’image, et la colonne 0 est visuellement le bas de l’image.
Là ça devient difficile de comprendre le nombre de possibilité. Mais en fait, ça doit tout simplement être, j’ai mon appareil et je le tourne dans un sens avec 4 positions et dans l’autre sens avec 4 positions. Mais il me semble qu’il y a des positions qui sont équivalentes ? Là il me faudrait étudier plus en détail ce que représente les colonnes et lignes.
En simplifiant, ce qu’il faut retenir:
1 = le coin référence ligne 0 colonne 0 est en haut à gauche de la photo. (c’est la position standard horizontale)
8 = le coin référence ligne 0 colonne 0 est en bas à gauche de la photo. (il faut incliner la tête à droite pour voir la photo)
6 = le coin référence ligne 0 colonne 0 est à droite en haut de la photo. (il faut incliner la tête à gauche pour voir la photo)
Les autres position n’arrive pas souvent… je tiens rarement mon appareil photo à l’envers.. et il y a même des positions que je ne comprends pas vraiment !
Donc on va s’en tenir à ce qui est le plus courant. Si je résume, mon logiciel quand il va lire les infos, il doit se dire: je lis la balise exif orientation, si je vois un 1, je ne fait rien de spécial, si je vois un 8 je fais une rotation dans le sens trigonométrique et si je vois un 6 je fais une rotation dans le sens des aiguilles d’une montre.
Maintenant que la théorie est posée, comment se passe la réalité ?
Sur Mac OSX, les applications suivantes comprennent ces balises de rotation:
Aperçu
GraphicConverter
photoshop
Mais, le plus ennuyeux, quelles sont les applications qui ne comprennent pas:
Safari
Mail
Firefox
… en bref… les navigateurs web.
indesign
iPhoto, comme expliqué plus bas est un logiciel qui comprend cette balise, mais qui ne veut pas l’utiliser !!! En effet, chaque photo avec une indication exif de l’orientation qui est différente de 1 est réécrite dans une version nativement dans le bon sens.
Sur le web, certainement pour des raisons historiques, les photos sont interprétées de manière brut. On ne tient pas compte des balises.
Automator
Automator permet d’effectuer nombre d’opération en piochant par ci par là dans les applications installées.
GraphicConverter propose plusieurs fonctions. Donc la fameuse rotation jpg sans perte de qualité. En sélectionnant cette fonction, il y a un message qui apparaît: Dans la mesure ou la rotation sans perte réécrit les données EXIF de l’image, vous ne pourrez plus afficher des images ainsi modifiées sur un appareil photo numérique.
Ce message sous entend que ce sont principalement les donnée Exif qui sont modifiées… donc est-ce juste la modification de la balise orientation ??? Réponse après le test:
Réponse… le fichier est bel et bien retourné.. mais c’est une rotation effective des données qui est réalisée! Malgré le message, d’avertissement je n’ai vu aucune modification dans l’exif ! Ce sont les données qui ont été réécrites. Les Méta-données IPTC et exif sont inchangées. Les mots-clés sont gardés et avec les accents. Les ressources ont été vidée, l’aperçu n’est plus là !
Le comportement est quasi identique avec le module d’aperçu: pivoter des images . Le fichier est réécrit et la balise exif orientation n’est pas changée.
Aperçu
Comment se comporte aperçu lorsqu’on lui demande d’ouvrir un photo de lui faire faire une rotation et de sauver le fichier. Réponse:
Aperçu effectue des rotations qui sont une modification de la balise exif orientation. Cependant, au moment de sauver, il réécrit la photo avec des paramètres par défaut. L’IPTC et l’exif sont conservés, mais le fichier a été dans mon cas réécrit et les données sont passées de 1012ko à 720k, au moment de sauver, Aperçu n’est pas capable de sauver uniquement l’exif, il sauve et donc recompresse avec les réglages courants. Pourquoi réécrire toute la photo si seul un champ exif est modifié bouh !
GraphicConverter
Essai de rotation en mode standard, manuel. L’image de base se retourne en mode natif, la balise orientation n’est pas touché. La photos est sauvegardée aux paramètres courants. Le hic, c’est que les mots-clé iptc avec accents se sont fait écrasés, l’encodage n’est vraissemblablement pas le même ! C’est étrange, car le module de rotation sans perte de qualité de GC qui est dans automator ne massacre pas les mots-clés accentuées !!
Si l’on prend une photo qui comporte une orientation, et que je fais sauver sous, elle reste identique. rien ne change. Si je prend la même photos, que je bidouille avec des outils (juste la sélection pour ne rien toucher) et que je sauve la photo. GC la réécrit, et cette fois elle est réécrite verticalement. Les informations EXIF sont réécrite, le champ orientation passe de 8 à 1. Et le champ datetime est mis au temps courant. Il ne reste donc plus que original date time pour savoir le moment de prise de vue.
GC en mode gestionnaire: ce mode comporte des réglage qui peuvent être différents, et c’est le mode que j’utilise le plus, alors voyons comment il se comporte.
Pour une photo qui comporte une balise exif orientation égale à 6, si l’on veut la diffuser sur le web, il faut la redresser en faisant une rotation de 90° dans le sens des aiguilles d’une montre. En effectuant cette manipulation à l’aide du gestionnaire d’image de GC, l’image est véritable retournée en donnée et le champ exif orientation reste inchangé. Cette opération ajoute une incohérence. Les logiciels comprenant la rotation exif à la volée tourne inutilement la photo. Par contre sur le web, c’est tout bon. Les méta-données EXIF et IPTC ne sont pas touchée. Ceci par ce que le gestionnaire est configuré pour utiliser une rotation sans perte et ne pas toucher les champs exif. (fait étrange remarqué, dans le gestionnaire, la vignette est aussi retournée mais dans l’autre sens !?!)
Lors d’un second essai, mais avec un photo dans l’autre sens (et des mots-clés iptc accentués) l’image a aussi été tournée, mais pas la vignette !! Les mots-clés sont restés identique.
Maintenant, essai, avec la même photo source, mais dans les préférences l’option ne pas modifier l’exif n’est pas cochée. Le comportement est bien mais pas top ! L’image est véritablement retournée, l’exif est modifié (ou plutôt pollué.. je vois pas à quoi sert de le modifier, l’exif est surtout utile pour avoir les conditions du moment de prise de vue.) L’exif est modifié, mais pas le champ orientation !!! ce qui est un peu débile, car sinon, pourquoi avoir besoin de modifier l’exif !
En ce qui concerne l’option rotation sans perte de qualité je ne dois pas encore avoir tout compris. Moi je vois dans tout les cas que le fichier est réécrit ! Si le même fichier est retourné dans un sens puis dans l’autre, on retombe sur nos patte (?) mais sinon, la compression effectuée par l’appareil photo et celle refait diffèrent quelque peu !
L’ajout de mots-clés dans un fichier via le gestionnaire semble être bien fait, il ne modifie que les champs exif. Avec l’option ne pas modifier l’exif desactivé. (donc GC a le droit de modifier l’exif) Si j’ajoute 20 caractères comme mots-clés, je vois le fichier grossir de 28 octet. Ce qui restent dans le bon ordre de grandeur. Bien.
iPhoto
Comment ça fonctionne tous ça !!! Version 6.0.6 (ouais chez apple cette applications change beaucoup à chaque fois.) Dans mon cas, je prend mon dossier de photos d’essai que je glisse sur l’icon de iPhoto. A ce moment, iPhoto turbine et j’ai une nouvelle sélection dans la photothèque qui comprend mes photos. Par soucis de propreté, je crée un nouvel album, avec la sélection courante de mes dernières photo. Puis en allant explorer le dossier iPhoto Library, je remarque que les photos sont triées dans 3 dossiers, Data , Modified, et Originals. Data contient les vignettes des photos. Modified contient toutes les photos qui ont été modifiées, c’est à dire qu’une photo verticale qui contient juste le champs exif orientation est réécrite en mode vertical natif. La photo est donc modifiée et se retrouve dans ce dossier. Le plus grave dans l’histoire, c’est les dégâts collatéraux. L’exif est très réduit. Il ne reste que quelques rares champs, comme la date de prise de vue originale (heureusement) et l’IPTC est carrément shooté !. Originals contient des alias sur les photos originales. C’est également le seul liens qu’iphoto a avec les photos horizontales qui n’ont pas été modifiées. Donc, dans ce mode la photothèque est en partie en interne au dossier d’iphoto et en partie en externe !!
Le boulot de massacre des photos est assez bien fait, en effectuant une rotation effective des photos, iphoto ajoute une balise exif orientation. Mais s’il en existe déjà une, il ne la modifie pas, non… il ajoute. Ce qui fait que l’exif est endommagé, certains programmes n’arrivent plus le lire! (la fonction php read_exif_data par exemple) Donc, il y a 2 balises orientation. Génial pour tout compliquer.
De plus, le fichier réécrit est plus lourd que l’original. (1.6Mo passe à 2Mo)
Quand iphoto passe en mode édition, un nouveau fichier est créé dans le dossier modified, même quand ce n’est que de la visualisation en plein écran !!!
Lorsque les mots-clés IPTC des photos non modifiées existes, iPhoto est capable de les reprendre pour les utiliser dans sa propre base de données. Sinon, les mots-clés ne sont pas exporté hors de iphoto. Heureusement qu’un module spotlight permet de rechercher aussi dans iphoto, mais cette méthode rend captif l’utilisateur dans ce logiciel qui comme on vient de l’étudier n’est de loin pas parfait, et même plutôt destructeur d’image !
Malheureusement, aucune modification du côté de la version 7.1 de iPhoto ! … l’interface, s’améliore, mais le moteur n’a pas changé du tout !
PictureSync
PictureSync est un logiciel qui est conçu pour automatiser l’envoi de photo depuis iphoto, aperture, ou un dossier, vers le divers services de photo comme flickr, zoomr, ou en dossier etc….
Ce logiciel est capable de lire un grand nombre d’information exif. L’application est capable de faire des rotations. et surtout de voir le champs orientation et d’agir en conséquence. Lorsque PictureSync fait une rotation, il lit le champ orientation, effectue la rotation et modifie le champs orientation !!! C’est le seul logiciel que je connaisse qui prenne la peine de le faire ! Bien! (le seul bémol est une désaturation des couleurs lors de l’opération !)
PictureSync est conçu pour uploader des photo (sur un site ou dans un dossier) et est capable de faire la rotation et le redimensionnement des photo à la volée au moment de l’upload. Il semble que pour ma photo que j’avais déjà triturée (rotation), tout se passe bien. Pour les photos brut, c’est moins bien, le logiciel me signal une erreur de réécriture de l’exif ! (problème d’accès du dossier de destination ?) Suite à ce problème, j’ai perdu les métadonnées. Demande encore quelques essais !
Sinon, le logiciel permet d’éditer bon nombre de champs de méta-données, ce qui est très intéressant. Il y a également la possibilité de faire du géotagging avec google earth. Intéressant !
Créer une galerie web
Mon intérêt pour ce problème de rotation des photos viens surtout d’une application en particulier qui me pose problème. La création de galerie de photo pour le web.
En effet, j’ai développé une galerie de photo en php qui récupère les mots-clés IPTC dans le but de les afficher comme légende ou titre. De plus cette galerie permet de trier les photos en fonction de leur date de prise de vue qui se trouve dans les données EXIF.
Les photos que je dépose sur le web sont donc soumise à quelques contraintes:
l’exif doit être conservé
l’IPTC doit être conservé
les mots-clés IPTC doivent être encodé en UTF-8
les photos verticales doivent être nativement tournée. Le champ exif orientation n’est pas compris par les navigateurs web.
Pour afficher des photos sur le web, je ne les mets jamais en plein résolution, ce serait trop gros. J’ai donc besoin de réduire la taille des photos tout en ne perdant pas les méta-données. De plus, j’ai besoin de retourner en mode natif donnée les photos verticales qui ne comporte que l’indication du champ exif orientation.
Ceci parait simple, mais c’est finalement un casse tête! Et cela se complique encore plus, quand comme je le fais, la sélection de photo a traiter est une liste d’alias. (c’est ainsi que je me fais des albums, des sélections de différents fichier du lot de base.)
Questions…
Dans le cas d’un appareil photo qui n’a pas de capteur de position, est ce que la fonction rotation de l’image de l’application transfert d’image fait une rotation véritable ou est ce qu’elle renseigne la balise exif orientation?
Fonction php pour retourner une photo jpg en fonction du flag exif orientation
/* Retourne les données d’une photo jpg en fonction du flag exif orientation. * * Utilise jpgetran pour la rotation sans perte de la photo * Utilise exiftool pour modifier le flag exif orientation après avoir effectué la rotation. http://www.sno.phy.queensu.ca/~phil/exiftool/ * * Cette fonction effectue une rotation sans perte. Les données sont réarrangée, mais pas recompressée. * Cette fonction conserve les métadonnées. (exif, iptc, commentaires, jffif, xmp, etc..) * Cette fonction ne retourne PAS la vignette exif. Elle reste dans la position originale. Cela influence la vue des vignettes dans graphicConverter, l’aperçu en mode colonne du finder. * Cette fonction recrée un fichier, donc elle modifie la date de création et modification du fichier. (c’est à cause de jpegtran. Exiftool est souple à ce niveau) * * Les commandes utilisées sont sur le principe: * jpegtran -copy all -rotate 270 -verbose -outfile girafe2.jpg girafe.jpg * exiftool -orientation=1 -n -overwrite_original_in_place girafe.jpg * * @return: rien de particulier.. 😛 * @param: $imagePath => le chemin d’accès de la photo sur le serveur. (pas une url) */ function rotateJpgFromExifOrientation($imagePath){
// lire le champ exif orientation $exif = exif_read_data($imagePath); // todo: bug quand exif n’est pas là… Warning: exif_read_data(dsc_1783.jpg) [exif_read_data]: Process tag(x0000=UndefinedTa): Illegal pointer offset(x4E20434F + x4E494B4F = x9C698E9E > x02C3) in /Users/mdespont/Sites/yopyop/include/manager/photoManager.php on line 468
if ($exif!=false) {
$orientation = »; // pour tout les cas non prévu, ou la cas orientatio=1 qui ne demande pas de modification. $orientation = $exif[‘Orientation’];
// si orientation = 8 => retourne de 270 if ($orientation==’8′) { $angle = « 270 »; // si le champ = 6 => retourne de 90 }elseif ($orientation==’6′) { $angle = ’90’; }else { $angle = »; }
if (!empty($angle)) {
$nomDossier = dirname($imagePath); // obtient le nom du dossier. Ex: images/photos/2006/toto/toto.jpg devient images/photos/2006/toto $nomFichier = basename($imagePath); $outpoutPath = $nomDossier. »/temp_ ».$nomFichier;
// retourne la photo $commandeRotation = « /usr/local/bin/jpegtran -copy all -rotate « .$angle. » -outfile « .$outpoutPath. » « .$imagePath; // on suppose que jpegtran est dans le path
// place le flag orientation à 1. Ce qui signifie que le flux de donnée est correct. Pas besoin de modifier l’orientation à la volée // cette option ne sert à rien pour le site web en lui même, mais elle est utile si des gens téléchargent les photos depuis le site web pour les utiliser en local.
$commandeFlagExif = « /usr/bin/exiftool -orientation=1 -n -overwrite_original_in_place « .$outpoutPath; // -overwrite_original_in_place permet de garder l’icon et les ressources Mac. Si on est sur linux, utiliser: overwrite_original qui est moins gourmand
Sur les cartes suisses on utilise le système de coordonnées CH 1903. De plus en plus en cartographie, on utilise des outils avec le système WGS84. Le système global utilisé par le GPS. Comment changer de système de coordonnées.
—— edit en 2019 —
Je vois que le monde a bien changé. En 2009, j’avais eu de la peine à trouver un code de conversion en php. J’ai fini par l’écrire moi même et le publier. En 2019 on en trouve plusieurs et je vois que les liens sont souvent cassé. Ainsi je les mets à jours.
Je profite également d’ajouter un calculateur de longueur du degré de méridien, c’est pas très courant. Le seul que je connais est sur un vieux site en voie de disparition. Ainsi j’ai refait une petite app. (J’utilise ça pour montrer que le périmètre de la grande pyramide de Gizeh est bien lié à plein d’unité de mesures de la Terre…. )
————–
Programmes online
Swisstopo fourni sur son site plein de services intéressants:
Conversion de coordonnées WGS84 de notation décimale à sexagésimale
Les coordonnées WGS84 peuvent être données dans plusieurs notation différente. Parfois en notation sexagésimale avec des latitude et longitude en degré, minutes et secondes. Parfois la notation est en degré décimale: tout est en degré et virgules de degré. La notation en degré décimale est celle utilisée par google maps. Ex: lat: 46.94952985143932 long: 6.834204196929932
Parfois, il est utile de faire la conversion dans un bout de programme. Ainsi voici les fonctions php qui convertissent des coordonnées wgs84 en CH1903 et inversement.
Ces fonctions on été écrites selon les formules fournies par swisstopo. (dans la théorie ci-dessus)
/**
* converti les coordonnées lat long en wgs84 pour avoir des coordonnées ch1903
* Ex: lat: 46.94952985143932 long: 6.834204196929932 => 553 986/200 005
*
* @return array() y et x les coordonnées au format CH1903
* @param latitude en degré décimal
* @param longitude en degré décimal
*/
function getCoordonneeCH1903($lat,$long){
// Les latitudes φ et les longitudes λ sont à convertir en secondes sexagesimales ["]
// Les grandeurs auxiliaires suivantes sont à calculer (les écarts en latitude et en longitude par rapport à
// Berne sont exprimés dans l'unité [10000"]) :
// φ' = (φ – 169028.66 ")/10000
// λ' = (λ – 26782.5 ")/10000
//
// 3. y [m] = 600072.37
// + 211455.93 * λ'
// - 10938.51 * λ' * φ'
// - 0.36 * λ' * φ'2
// - 44.54 * λ'3
//
// x [m] = 200147.07
// + 308807.95 * φ'
// + 3745.25 * λ' 2
// + 76.63 * φ' 2
// - 194.56 * λ' 2 * φ'
// + 119.79 * φ' 3
// conversion degré décimal en seconde sexagétimale
// deg = 60 * minutes
// minutes = 60 * seconde
// =>deg = 3600 * seconde
$lat = $lat * 3600;
$long = $long * 3600;
// latitude: φ =>lat ( φ' =>lat2)
$lat2 = ($lat - 169028.66)/10000;
// longitude: λ =>long ( λ' =>long2)
$long2 = ($long - 26782.5)/10000;
$y = 600072.37 + (211455.93 * $long2) - (10938.51 * $long2 * $lat2) - (0.36 * $long2 * ($lat2*$lat2)) - (44.54 * ($long2*$long2*$long2));
$y = round($y);
$x = 200147.07 + (308807.95 * $lat2) + (3745.25 * $long2*$long2) + (76.63 * $lat2*$lat2) - (194.56 * $long2*$long2 * $lat2) + (119.79 * $lat2*$lat2*$lat2);
$x = round($x);
return array('y'=>$y,'x'=>$x); // 600000,200000
}
/**
* converti les coordonnées ch1903 en latitude et longitude du système wgs84.
* Calcul selon: http://geomatics.ladetto.ch/swiss_projection_fr.pdf
* Pour des altitudes positives, les 2 systèmes sont équivalents au mètre près. Donc on n'en tient pas compte dans cette fonction.
* Ex: 553 986/200 005 => lat: 46.949532367683 long: 6.8342057996687
*
* @return array() lat et long les coordonnées au format wgs84 en notation degré décimale: 46.951081111111,7.4386372222222
* @param x (nord) à indiquer en m au format: 200000
* @param y (est) à indiquer en m au format: 600000
*/
function getCoordonneeWGS84($x,$y){
// 1. Les coordonnées en projection y (coordonnée est) et x (coordonnée nord) sont à convertir dans le
// système civil (Berne = 0 / 0) et à exprimer dans l'unité [1000 km] :
// y' = (y – 600000 m)/1000000
// x' = (x – 200000 m)/1000000
// 2. La longitude et la latitude sont à calculer dans l'unité [10000"] :
// λ' = 2.6779094
// + 4.728982 * y'
// + 0.791484 * y' * x'
// + 0.1306 * y' * x'2
// - 0.0436 * y'3
// φ' = 16.9023892
// + 3.238272 * x'
// - 0.270978 * y' 2
// - 0.002528 * x' 2
// - 0.0447 * y' 2 * x'
// - 0.0140 * x' 3
// h [m] = h' + 49.55
// - 12.60 * y'
// - 22.64 * x'
//
// 3. La longitude et la latitude sont à convertir dans l'unité [°] :
// λ = λ' * 100 / 36
// φ = φ' *100 / 36
$y2 = ($y-600000)/1000000;
$x2 = ($x-200000)/1000000;
// longitude: λ =>long ( λ' =>long2)
$long2 = 2.6779094 + (4.728982 * $y2) + (0.791484 * $y2 * $x2) + (0.1306 * $y2 * $x2*$x2) - (0.0436 * $y2*$y2*$y2);
// latitude: φ =>lat ( φ' =>lat2)
$lat2 = 16.9023892 + (3.238272 * $x2) - (0.270978 * $y2*$y2) - (0.002528 * $x2*$x2) - (0.0447 * $y2*$y2 * $x2) - (0.0140 * $x2*$x2*$x2);
// conversion en °
$long = $long2 *100/36;
$lat = $lat2 *100/36;
return array('lat'=>$lat,'long'=>$long); //pour y=600000, x=200000 => 46.951081111111,7.4386372222222
}
Il est possible d’acheter directement ce livre sur le site web de l’auteur au format pdf, et de le recevoir par e-mail.
Voilà quelques idées développées dans ce livre:
Media de masse et nouveau médias sociaux ne sont pas en opposition mais complémentaire
paradoxe de notre société => liberté et individualité issue du siècle des lumière qui est en opposition à la théorie des masse, le désir d’équité de l’idéal démocratique.
Média de masse c’est simple et accessible à tous
Média social, internet, il faut savoir se servir de l’outils et bien le comprendre. Donc pas accessible à tous.
Media de masse est normatif. Il soude une communauté selon un région géographique.
Media internet est individuel il renforce sa propre communauté.
Media de masse est un média d’offre: on consomme ce qu’on nous donne.
Media internet est un média de demande: on va chercher l’information.
Ne pas confondre information et connaissance
La connaissance est une information qui a été intégrée et liée par des processus de cognition à notre connaissance déjà existante.
Le Prof. Clifford Nass et ses collègues (Yyal Ophir et Anthony Wagner) du département de psychologie de l’Université de Stanford ont fait des études pour déterminer le fonctionnement cognitifs des gens multitâches. Ils arrivent à la conclusion que ces gens ont un déficit d’attention chronique et que dans tous les tests faits ils ont été moins bons que les gens qui ont pour habitude de faire une chose après l’autre. Les multitâches switchent facilement d’une source d’information à l’autre, mais ils n’intègrent pas cette information en connaissance.
Les médias sociaux accélèrent la transmission d’information mais pas leur compréhension.
Une infos comme la mort de Mickaël Jackson peut être comprise par tout le monde. Mickael Jakson fait partie de la culture mondiale. Une culture des médias de masse.
Vers la fin des années 1960 il n’y avait que 3 chaines de TV aux USA. C’était l’âge d’or des médias de masse. Tout le monde regardait la même émission en même temps. C’est le synchronisme social. Depuis les années 1970, avec le câble, il y a une prolifération des chaines de TV. Puis en même temps, une prolifération des journaux et surtout des magazines avec la baisse du coût des rotatives d’imprimerie. Depuis, régulièrement les médias de masses perdent de l’influence. Ils sont morcelé. L’arrivée du web est une continuité de ce phénomène de segmentation de la société en de multiples cultures.
Le Flux désigne l’échange de conversation qui circule sur internet sans forcément être rattaché à une plateforme.
Le web de base est une énorme base de donnée faite de liens. Mais cette BD est statique.
Le Flux est dynamique. Il est là en continu.
Les flux atom, les mises à jour et les commentaires des blogs, toutes les données disponibles hors plateformes se mettent à voyager hors de leur environnement imposé de base. C’est ainsi que le Flux se crée.
Il y a une telle quantité de données qui constituent le Flux qu’humainement il ne devient plus possible de suivre tout ce qui passe. Il faut donc pratiquer la compression algorithmique.
Notre cerveau interprète de manière logarithmique toutes les infos que l’on reçoit. De plus il compresse les données. Il ne manipule que des symbole et pas les données détaillées véritables.
Le language est la solution que les humains utilisent pour comuniquer de manière symbolique sans avoir à gérer les détail. (en programmation on fait pareil. On utilise des symboles dans les languages de haut niveau pour coder de l’assembleur sur microprocesseur)
La compression de données se fait en contextualisant les données du Flux. Sur twitter, les hashtags permettent de contextualiser un twitt pour qu’il émerge du lot.