↓ Aller au contenu

Programmation

42 articles dans cette catégorie

MPY-jama

MPY-jama

·205 mots·1 min
MPY-Jama est un IDE simplifié qui ressemble beaucoup à l’environnement Arduino. Ce qui est pratique, ce sont les divers outils qui sont directement disponibles : Configurateur de réseau wifi en mode AP Configurateur de réseau wifi local Affichage des IO en couleur, rouge=0, vert=1 RAM utilisée Température interne du processeur Terminal REPL Editeur de code avec coloration syntaxique, mais sans auto complétion ! Un gestionnaire de fichier très pratique
Niveau de complexité

Niveau de complexité

Introduction LED (image: Adafruit) Quelles peuvent être les niveaux de complexité d’un système (ou d’une combinaison de systèmes) permettant de faire clignoter, ou commuter une LED ? Voici un petit aperçu de ce que l’on pourrait voir comme une progression se pliant aux besoins (voir les devançant…) de l’utilisateur. Niveau 0 Montage NE555 – exemple Une LED clignote avec une électronique : un chip 555, associé à 2 résistances et un condo pour la base de temps du clignotement.
GIt et GitHub – expériences et résultats

GIt et GitHub – expériences et résultats

Suite à la conférence de Nicolas, voici quelques expériences avec Git et plus particulièrement GitHub. On va respectivement: Mettre un répertoire existant dans Git; Utiliser l’application Desktop; Travailler avec 2 PCs sur un répertoire partagé; Synchroniser deux PCs avec git-gui, et modifier et re-synchroniser les répertoires Répertoire existant -> GIT # Le but est de déposer un code existant de son PC sur GitHub, de manière à pouvoir le maintenir. Et surtout de déjouer quelques pièges, car devant la complexité de GitHub, on titube (désolé, je n’ai pas pu me retenir).
Recompiler un ancien projet

Recompiler un ancien projet

Un projet est-il facilement recompilable, après quelques années ? Bonne question, je dois justement reprendre un projet PIC. Le compilateur est gratuit, téléchargeables depuis le site de Microchip. Pour modifier un projet de 2012, je dois ré-installer le soft permettant d’apporter une modification mineure. Certes, j’ai les sources, mais pas/plus l’environnement de développement : en effet, j’ai changé de PC entretemps. Allons-y… Essai # C’est le projet « barrette intelligente » (http://microclub.ch/2011/03/25/projet-barrette-livrable/) dont j’aimerai retoucher le soft. En effet, le système comporte une prise électrique « master », qui pilote une ou plusieurs autres prises. Et mon nouveau PC (un ACER Aspire VN7) qui est justement branché sur la prise « master » a un nouveau mode de consommation : il prend du courant, puis travaille quelques secondes sur la batterie, et reprend du courant… Ma lampe de bureau, branchée sur une prise « slave » clignote ! Pas très utilisable. Je me dis qu’une tempo au déclenchement un peu plus longue va régler le problème.
Deux livres Elektor sur le langage C et l’embarqué

Deux livres Elektor sur le langage C et l’embarqué

Dans les publications d’Elektor, je me suis laissé tenter par la proposition de deux ouvrages: C programming with Arduino, de Warwick A. Smith, 343 pages Embedded Linux Control Center, de Hans Henrik Skovgaard, 450 pages Les deux sont dans la catégorie « learn » (il y a « design » et « share » ). Et vous l’aurez compris, ils sont en anglais. Petite revue et opinion. 1 – C programming with Arduino # Avec Arduino, vraiment? # ‘est la question qu’on peut se poser avec le premier livre; mais le préambule du titre est « AVR Microcontrollers and ATMEL Studio for… »; et c’est bien le cas. Juste pour voir si je vais apprendre des ficelles, des trucs et des astuces pour programmer en C des Arduino, je l’ouvre au milieu, et je tombe sur (p. 174) les spécification du format pour la fonction printf(), et la largeur des champs comme printf(« %5d\n », 123); // padded with 0
Sources de temps et cycle pour Arduino (ou autre)

Sources de temps et cycle pour Arduino (ou autre)

Dans cet article, on va examiner les moyens d’obtenir une base de temps sur la plateforme Arduino (Diduino, Seeeduino Stalker et Arduino Yun). Bien sûr, c’est transposable sur d’autres systèmes, qui tous ont besoin de références de temps. Que ce soit la date/heure exacte pour horodater un événement, ou attendre une certaine durée, qu’elle soit courte ou longue. Parfois, un timer local doit être synchronisé sur une horloge de précision : il y a plusieurs techniques pour ce faire.
Yun – Monitoring de l’eau solaire

Yun – Monitoring de l’eau solaire

A quoi ressemble un système d’ECS écologique ? # L’eau chaude sanitaire (ECS) de mon logis est une combinaison écologique : le gaz, qui sert aussi au chauffage de l’immeuble produit l’énergie pour chauffer l’eau. Un système avec capteurs solaires sur le toit permet de limiter l’usage du gaz. Le stockage de l’eau chaude est en 2 volumes de 200 litres : un premier pour le circuit solaire, le second pour l’ECS.
Python et les objets statiques

Python et les objets statiques

Les variables statiques # En C/C++, il est l’usage d’avoir des variables statiques, c’est-à-dire non-dynamiques, pour le comptage d’objets ou pour des flags en code embarqué, ou l’on évite comme la peste les new et delete. C’est intégré au langage, avec le mot clef ‘static’, au cas où la définition globale – hors des accolades – n’y suffit pas. Une variable statique est aussi privée au module, afin de réduire sa visibilité.
Récupération d’un ancien programme BASIC

Récupération d’un ancien programme BASIC

Quelle est la durée de vie d’un programme ? # Dans notre univers de plus en plus informatisé, la question de la mise à jour et de la pérennité d’un programme est légitime. Faire tenir des anciens programmes DOS est le lot de techniciens qui travaillent sur des machines d’un prix très élevé (pas le PC, mais bien la machine cible…) et dont il faut assurer la maintenance une vingtaine d’années, voire plus. Parfois, on peut avoir de bonnes surprises !
Présentation Linux

Présentation Linux

Pour la présentation du 1 novembre nous aurons le plaisir d’accueillir le Dr Jacques Menu. Jacques est un ancien collègue du CHUV division informatique. Il travaille actuellement à l’EPFL . Il a aussi donné des cours LINUX à l’université de Genève et nous propose de regarder le premier lien ci-dessous qui lui servira de base pour sa présentation. Voici ce qu’il nous propose : http://cui.unige.ch/DI/cours/SystInformatiques/PDF_UNIX_shells/Livre%20UNIX_shells.pdf Pour certains aspects techniques, je renverrai à :
« Conditions Yoda », « Gestion d’exception Pokémon » et autres classiques de programmation

« Conditions Yoda », « Gestion d’exception Pokémon » et autres classiques de programmation

·1830 mots·9 mins
(traduction de « Yoda Conditions », « Pokémon Exception Handling » and other programming classics sur dodgycoder.net/ ) Voici les meilleures réponses à une question posée sur StackOverflow.com par John K : Quelles sont les expressions de jargon de programmation que vous avez notées dans vos équipes ou remarquées sur Internet ? Les Conditions Yoda Utiliser if(constante == variable) au lieu de if(variable == constanet), comme dans if (4 == foo). « Yoda » parce que c’est comme dire « si bleu est le ciel » ou « si grand est l’homme »
Exemples et documentation Arduino

Exemples et documentation Arduino

Suite à la conférence donnée au microclub le 22.02.2013, vous pouvez trouver toute la documentation ainsi que les exemples de programmes sur le site FraniDuino. Vous y trouverez une documentation simplifiée du langage C pour Arduino, une théorie sur les diagrammes états/événements. Il y a aussi le code source de tous les projets de feux de trafic ! ainsi que des diagrammes états/événements. Bonne programmation sur Arduino et compatibles !
Contrôle de charge pour vélo électrique

Contrôle de charge pour vélo électrique

Chargeur de vélo électrique # Un vélo électrique se meut par le pédalage de l’utilisateur et lui offre une assistance importante, jusqu’à 250%. Autant dire que les montées deviennent dérisoire, avec ce réglage… Puis, de retour @home, on branche la batterie sur un chargeur. Les expériences décrites ici sont basées sur un ensemble Bosch, livré avec un vélo de marque Cresta. La batterie lithium-ion est donnée à 36 V et 10Ah; le moteur a une puissance de 250 W. Théoriquement, on peut rouler à pleine puissance 360/250 = 1H et 26 minutes. Ce qui n’arrive jamais. A 25 km/H, on parcourrait 36 km; Bosch indique qu’au plat et conduite économe(?), ce devrait être 145 km. La vérité est entre-deux…
Arduino: aussi des difficultés

Arduino: aussi des difficultés

Introductions aux difficultés(!) # Dans un article précédent (http://microclub.ch/2012/02/19/arduino-un-succes-embarque/), j’avais mis en lumière les facilités offertes par le concept Arduino: hard+soft défini, bon marché, secondes sources et dérivés de plusieurs fabricants de « shield » (soit les extension de la plaque de base Arduino). Afin d’explorer rapidement les possibilités de mettre au point un prototype, j’ai décidé de mettre l’accent sur du matériel très complet et facile à mettre en œuvre, sans me focaliser sur le prix.
Arduino: un succès embarqué

Arduino: un succès embarqué

Qu’est ce qu’est Arduino? # Une plateforme de développement hard et soft, souple, bon marché, aux sources multiples, facile à mettre en oeuvre, bien documentée, bref l’environnement idéal pour débuter dans le domaine de l’embarqué (embedded in english). Vous désirez utiliser de l’électronique et de la microprogrammation? Piloter un moteur, activer un buzzer? afficher des informations, lire une température, une pression? C’est de prime abord passablement difficile.
Python avec l’environnement PyCharm

Python avec l’environnement PyCharm

Installation et 1ère prise en main # L’environnement PyCharm, de Jetbrains (http://www.jetbrains.com/pycharm/) est prévu pour la programation, test, debug et déployement en Python. Le fichier téléchargé pour l’installation pèse env.80 MB. Elle se fait sans problème, pas besoin de redémarrer Windows. Avant de le lancer, il faut avoir un (ou plusieurs) interprèteur(s) Python installé(s). Dans mon cas, j’ai la version 2.7.2.
Python

Python

·1171 mots·6 mins
Il ne vaut pas la peine de connaitre un langage qui ne modifie pas votre façon de penser la programmation. (Alan Perlis) Après Basic, Pascal, Modula-2, ADA, LISP, Prolog, C++ et sa STL , je viens de découvrir un nouveau langage qui modifie ma façon de penser la programmation : Python. Ce langage a été créé par Guido van Rossum en une semaine de 1989, sur un Mac, et baptisé en l’honneur des « Monty Pythons »… 20 ans plus tard, son langage est utilisé dans de très nombreux domaines et applications, entre autres au CERN, à la NASA, et chez Google où travaille désormais Guido.
Projet « Barrette » livrable!

Projet « Barrette » livrable!

Bonjour tous, Une bonne nouvelle pour les bricoleurs qui veulent économiser l’énergie! Plutôt que de pédaler sur votre génératrice, la fameuse barrette écologique du MICROCLUB est une solution intéressante. Après des mois de développement et de mise au point tant électronique, soft que mécanique, la voici. J’en profite pour remercier très fort mes collègues Maurice Wuillens qui a contribué à la réalisation électronique, et Laurent Francey à la mécanique. Jugez plutôt des caractéristiques du produit:
yves.masur.microclub devient yvesmasur.ch

yves.masur.microclub devient yvesmasur.ch

Bouger son site perso est une entreprise… pas facile. Surtout si l’on pas d’échéance: on bricole une heure par-ci, par-là en laissant un chantier terrible. Mais par le fait que le site du Microclub, que j’utilisais comme sous domaine depuis (au moins) 2004 a changé d’hébergeur, je me suis retrouvé dans l’obligation d’accélérer le mouvement!! Pourquoi pas une simple page de redirection? Surtout que l’ancienne structure est toujours visible. Il suffit de connaitre le nom du site principal (www.scdi.org) et le nom « UNIX » de l’utilisateur. Par exemple, l’ancienne structure du microclub visible ici: http://www.scdi.org/~microclub/ et vous pouvez toujours consulter nos anciennes news (pas trop fraîches!) etc! Alors donc, j’aurai pu me contenter de mettre une page de redirection sur ma structure. Las! Sur l’hébergeur Infomaniak, il n’est pas possible d’indiquer une redirection avec un sous-sous domaine, avec deux points dans l’URL.
IsiSpot – création de sites WEB

IsiSpot – création de sites WEB

·889 mots·5 mins
IziSpot – le must? # Suite à l’excellente présentation des frères Francey sur ce sujet, je télécharge le produit: IziSpot 4.3.1, l’installe sans problème. Juste une chose étrange, W7 me demande à chaque lancement si ce logiciel peut modifier les données de l’ordi – je suppose que c’est un soft encore au style XP; bien que les données se trouvent dans les paramètres utilisateur. Puis je me lance dans l’édition d’un site comportant 3 pages:
Comparaison de 2 fichiers sources

Comparaison de 2 fichiers sources

·76 mots·1 min
Qui ne s’est jamais retrouvé en présence de 2 versions de codes sources sans se souvenir quelle est la dernière version, ou quelles sont les différences entre elles ? WinMerge est un outil Open Source de différenciation et de fusion pour Windows. WinMerge peut comparer des dossiers ainsi que des fichiers, en représentant les différences dans un fichier texte visuel qui est facile à comprendre ou manipuler. filecmp_small
W7 – moniteur de fiabilité

W7 – moniteur de fiabilité

En bidouillant W7 j’ai découvert le moniteur de fiabilité. Pour le lancer, allez dans Panneau de configuration -> centre de maintenance -> Moniteur de fiabilité. Il est possible de donner une fenêtre temporelle, et les problèmes sont affichés de manière graphique: moniteur de fiabilité On remarquera ici que W7 s’est planté régulièrement… A sa décharge, le problème survient toujours lors de la mise en veille (ou d’en ressortir!) Commentaires #
Techniques de découpage de tâches

Techniques de découpage de tâches

Techniques de découpage de tâches. Ou : comment faire fonctionner un système plutôt spartiate comme si il était doté d’un véritable OS? Basé sur l’expérience de la barrette et du processeur PIC. Comme j’ai inséré des images directement dans le texte, et qu’il y a aussi des tableaux, voir le PDF sur mon site http://yvesmasur.ch/articles/Mxboard/task_splitting.pdf Commentaires bienvenus! Commentaires #
Horloge et table de commutation

Horloge et table de commutation

Dans l’implémentation du code nécessaire au projet « barrette écologique », j’ai quelque peu séché sur le problème du suivi de la table de commutation. Celle-ci contient des données non-triée de temps, de jour(s) de la semaine et de la commutation à appliquer. Comment trouver à coup sûr la dernière commutation et la prochaine à venir? Une fonction de différence de temps est nécessaire et rend un delta: delta = ((int) prtc_line->hour - (int) DB_SystemClock.Time.hh) * 60 + (int) prtc_line->minute - (int) DB_SystemClock.Time.mm;
Indice de popularité des langages de programmation

Indice de popularité des langages de programmation

·1085 mots·6 mins
Un indice intéressant de la représentativité des langages de programmation se trouve dans les projets de sourceforge (voirhttp://sourceforge.net/ ). Vu le nombre de projets ouverts, le langage principal dans lequel un projet est écrit est un bon indice. Une sérieuse proportion des projets est multi-plateforme; une large palette des domaines de la programmation y sont représentés. La liste des « topics » est impressionnante, je l’ai collée à la fin du message et les liens devraient fonctionner. On y trouve les occurrences de langages suivantes, en decrescendo:
Barrette écologique – suivi

Barrette écologique – suivi

Comme ce projet avance par étapes, je me propose d’en relater les avancées ici. Eh oui, c’est finalement assez complexe, et ça mérite quelques éclaircissements. Il ya : Le hard le logiciel bas niveau les processus LAN du temps réel l’interface WEB de la compression des stockages et transmission de données Actuellement (novembre 2009), le hard est posé dans les grandes lignes; mais pas complètement arrêté. La clock RTC sera matérialisé par un DS1307, une pile, un quartz. La commande de triacs sera fortement inspirée d’une interface de Franic (merci Laurent!).
Wireshark opérationnel sous W7

Wireshark opérationnel sous W7

Wireshark 1.2.4 (stable) has been released – ça fait plaisir! Enfin on peut utiliser cet analyseur de réseau sous Windows 7. Et il s’installe sans coup férir (32 bits – je n’ai plus la 64 bits…) En effet, pour le projet « Barrette écologique », j’avais besoin de sniffer ce qui se passe entre le module MXBOARD. Jusqu’ici, je devais passer par le débugger et voir ainsi les trames reçues/envoyées, via ligne série!
Superordinateurs de table

Superordinateurs de table

Depuis de nombreuses années, les ordinateurs les plus puissants sont formés de très nombreux processeurs calculant en parallèle. Le record actuel est tenu par le “Roadrunner” d’IBM qui comprend 6′948 Opteron bicœurs et 12′960 processeurs PowerXCell 8i d’IBM, contenant chacun 8 unités de calcul en flux (”Stream Processing Unit”, SPU). “Roadrunner” peut effectuer 1 petaflops, soit un million de milliards d’opérations arithmétiques par seconde et vaut des millions d’euros. Vous pouvez aujourd’hui assez facilement disposer dans votre PC du millième de cette puissance pour quelques centaines d’euros seulement.
Aseba, c'est cool !

Aseba, c'est cool !

·476 mots·3 mins
Suite à la présentation d’Aseba par Stéphane Magnenat, je me suis attaqué à la programmation d’un robot mobile pour le « Challenge ». Voici le résultat d’un duel de deux exemplaires partageant le même code: [youtube=http://www.youtube.com/watch?v=Ed082QUKMXE\] Si vous voulez vous y mettre et tenter de battre mon robot : téléchargez Aseba et la doc en français lancez asebachallenge et créez 2 robots : un « Goulu » et un pour vous lancez asebastudio.exe, connectez vous au port 33333 (par défaut), coupez/collez mon code ci-dessous et cliquez [Charger] puis [Executer] : mon robot démarre. fermez asebastudio relancez asebastudio.exe, connectez vous au port 33334 et programmez votre robot. Si vous battez le mien, mettez votre code dans un commentaire, ça m’intéresse 😉 var gains_R[3]=1,0,-1 var gains_B[3]=-1,0,1 var speed=0 var turn=0 var turn_R=0 var turn_B=0 var mode=1 onevent timer if mode==1 then #forward speed=(camB[1]-camR[1])/5 call math.dot(turn_R,camR,gains_R,3) call math.dot(turn_B,camB,gains_B,3) turn=turn_R+turn_B leftSpeed=speed+turn rightSpeed=speed-turn if leftSpeed<2 and rightSpeed<2 then mode=2 colorB=255 #follow me colorR=0 colorG=0 end elseif mode==2 then #rotate leftSpeed=-max_speed/3 rightSpeed=-max_speed speed=(camB[1]-camR[1])/8 if speed>5 then mode=1 colorB=0 colorR=255 #avoid me colorG=0 end endPour rappel et pour publicité j’ai traduit en français la description d’Aseba figurant sur la page de l’EPFL :
Popularité des langages de programmation

Popularité des langages de programmation

·182 mots·1 min
Sur le site de TIOBE, à http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html nous trouvons un classement de la popularité des langages de programmation. Ce n’est pas une bête étude de nombre de lignes éditées pour chaque langage, mais un ratio assez élaboré d’une recherche lancée sur les principaux moteurs de recherche. Des groupements sont fait pour tenir compte des résultats semblables. Par exemple, C et C++ ne sont pas groupés; par contre C#, C-Sharp, C Sharp, CSharp, CSharp.NET, C#.NET, C# 1.0, C# 2.0, C# 3.0 le sont puisque tous relèvent de C#.
Barrette secteur – la plateforme de développement

Barrette secteur – la plateforme de développement

Barette secteur écologique – le hardware à choisir Il s’agit maintenant de savoir sur quel hardware le logiciel va être développé. Après une scrutation du catalogue Conrad, qui propose C-Control (trop gros, trop ciblé) un kit Java (pas assez de I/O) et différents kits PIC ou Atmel (pas assez WEB), j’étudie ce que Lextronic propose (http://www.lextronic.fr/R350-module-netmedia.html ) et parmi la kyrielle des propositions, nous trouvons les produits intéressants qui conviendraient.
La barrette secteur écologique MICROCLUB

La barrette secteur écologique MICROCLUB

L’idée # M’est venue en pensant à tous ces périphériques connectés plus ou moins intelligemment sur le secteur, que l’on pouvait faire mieux. Mieux que laisser ce bazar enclenché ou au mieux, enclenché/déclenché par le PC de bureau. Un simple (!) horloge fait déjà mieux. Mais est-ce suffisant? horloge-electronique L’utilité # Par exemple, vous avez un PC, lampe de de bureau, chargeurs divers, imprimante, modem VDSL et routeur wi-fi. Si le PC est allumé, tout est enclenché. Par contre, s’il est éteint, la lampe de bureau doit être éteinte. Les chargeurs devraient être enclenchés comme le PC, mais avec au moins un minimum de 6H par jour (horloge + tempo). Par contre, l’imprimante (réseau?) ainsi que le VDSL et le wi-fi restent allumés jusqu’à 23h. Sauf s’il y a du trafic internet: un portable est peut-être toujours actif, par exemple. L’horloge pour ce bazar pourrait être 17h-23h les jours de semaine, 8h-24h00 samedi, 9h-23h dimanche. Le tout programmable, bien sûr. Par contre si quelqu’un utilise le PC la journée, le reste s’enclenche aussi et serait maintenu tant qu’il y a du trafic sur le net. Ou par un bouton qui lance une tempo de, mettons 1h, puis surveille le trafic réseau LAN pour les prolongations.
Comment effacer du code

Comment effacer du code

·1852 mots·9 mins
trouvé par hasard cet article en anglais sur un sujet plus sérieux qu’il n’y parait. Traduction: Il y a plein d’information partout sur comment écrire du code. Voici quelques idées sur comment effacer du code. La meilleure manière d’effacer du code # Ca a l’air évident, mais je suppose que ça ne l’est pas vu les nombreuses autres manières que les programmeurs ont d’effacer du code. Voici comment faire:
Python : un petit Sudoku pour commencer

Python : un petit Sudoku pour commencer

·158 mots·1 min
Ces temps-ci, je découvre Python, un langage de programmation très apprécié en particulier dans la communauté scientifique. Ce « langage interprété multi paradigme » intègre des concepts développés dans plusieurs langages récents, ce qui en fait peut-être le langage le plus complet disponible actuellement. Pour une première approche de ce langage, je vous propose l’analyse du Plus Court Solveur de Sudoku # Voici un programme en Python de 173 caractères seulement qui serait le plus court solveur de sudoku connu actuellement :
Exercice de style en C, C++, C#

Exercice de style en C, C++, C#

·128 mots·1 min
Au départ, un petit exercice pour mes apprentits informaticiens, j’ai porté ce code sous 3 langages de programmation proches: C, C++, C#. C’est la conversion binaire -> Hexa. L’environnement est Windows Visual C++ Express (gratuit) et C# (aussi gratuit). D’abord prévu en ligne de commande, il est finalement construit dans une version en fenêtre en C#. Finalement, les résultats sont passés en revue. Article complet: http://yves.masur.microclub.ch/articles/CPP/quatre_codages-C-CPP-CS.doc Code source (zippés): http://yves.masur.microclub.ch/files/out/VStudio2008/ Commentaires # Yves Masur — 2 octobre 2009 à 20:20 # Dans un projet PIC, je me demandais comment était réalisée la fonction C Nop(), vue dans un bout de code pour écrire l’EEPROM. Une boucle vide? une assertion futile? Pas compliqué: dans le fichier compiler.h, on y voit
La plus grande invention de l'informatique ?

La plus grande invention de l'informatique ?

·219 mots·2 mins
Le blog « Coding Horror » de Jeff Atwood est probablement un des plus intéressants à suivre par tout Microclubiste. Dans « The greatest invention in Computer Science« , il prend un peu de recul par rapport aux langages de programmation à la mode et considère que la « routine » (fonction ou procédure) est la plus grande invention de l’informatique (software). Dans une avalanche de commentaires, puis aussi sur Digg, de nombreux programmeurs ont nommé leurs chouchou : pointeurs, compilateurs, langages divers etc.
Perlisismes : les dictons informatiques d'Alan Perlis

Perlisismes : les dictons informatiques d'Alan Perlis

·373 mots·2 mins
Tombé sur quelques citations d’Alan J. Perlis, un précurseur de la programmation et professeur célèbre. Les dictons informatiques dont il émaillait ses cours ont sont passés à la postérité sous le nom de Perlisismes. Ne les ayant pas trouvé en français, je me suis fendu (de rire) d’une traduction. En voici quelques uns, et beaucoup d’autres sur mon blog Il y a deux manières d’écrire des programmes sans erreurs. Seule la troisième marche. Le 11ème commandement était « Tu programmeras » ou « Tu ne programmeras pas », je ne me souviens plus au juste. Tout programme a (au moins) deux buts : celui pour lequel il a été écrit, et celui pour lequel il ne l’a pas été. La constante d’une personne est la variable d’une autre. Les inconscients ignorent la complexité. Les pragmatistes en souffrent. Certains parviennent à l’éviter. Les génies la suppriment. Dans la symbiose homme-machine, c’est l’homme qui doit s’adapter parce que la machine ne peut pas. En informatique, les invariants sont éphémères. Le contact prolongé avec les ordinateurs transforme les mathématiciens en comptables et vice versa. Une année de travail sur l’intelligence artificielle est suffisante pour vous faire croire en Dieu. Il est plus facile de changer la spécification pour qu’elle corresponde au programme que le contraire. Adapter de vieux programmes à de nouvelles machines signifie habituellement adapter les nouvelles machines pour qu’elles se comportent comme les anciennes. Chaque programme est un bout d’un autre programme qui convenait mal. Une fois que vous comprenez comment écrire un programme, trouvez quelqu’un d’autre pour l’écrire. Il est plus facile d’écrire un programme incorrect que d’en comprendre un correct. Si votre interlocuteur hoche la tête pendant que vous lui expliquez votre programme, réveillez-le! Il ne vaut pas la peine de connaitre un langage qui ne modifie pas votre façon de penser la programmation. Un langage de programmation est « bas niveau » quand il nécessite de faire attention à ce qui n’a aucune importance. Enseigner la programmation va à l’encontre de l’éducation moderne : Quel est le plaisir à planifier, se discipliner à organiser ses pensées, faire attention aux détails et apprendre à être autocritique ? Il y en a encore beaucoup d’autres sur le blog du Dr. Goulu
redirection conditionnelle en JavaScript

redirection conditionnelle en JavaScript

·358 mots·2 mins
Je remonte un peu le temps pour vous expliquer le problème: En même temps que mon domaine goulu.net, j’avais acheté un hébergement web pas cher auprès d’une boite lointaine, ce qui m’avait permis de créer de nombreuses versions de mon site internet. Lorsque j’ai créé mon blog drgoulu.wordpress.com, hébergé gratuitement sur le génial wordpress.com , j’ai créé sur mon ancien hébergement une redirection HTTP toute simple en créant un fichier index.php contenant simplement ces lignes: <code><? Header( “HTTP/1.1 301 Moved Permanently” ); Header( “Location: http://drgoulu.wordpress.com/” ); ?></code> ce qui redirigeait les accès à l’ancien site vers le nouveau blog. J’ai cependant conservé mon contrat d’hébergement car j’avais besoin d’un serveur e-mail @goulu.net Pour différentes raisons, j’ai acheté d’autres noms de domaine comme pro-g.ch et projets.ch, et un hébergement chez infomaniak.ch, qui permet de définir des domaines « synonymes » : plusieurs domaines peuvent ainsi partager le même site web. A ce moment, je me suis dit que j’allais pouvoir économiser mon vieil hébergement si j’arrivais :
Simulateur de Dauphin

Simulateur de Dauphin

(texte et image de Daniel Roux, repris de la page « Simulateur de Dauphin » sur Epsitec.ch dans le but de faire de la pub pour cet excellent travail didactique) En 1977, le professeur Jean-Daniel Nicoud crée le Dauphin, un génial petit ordinateur livré en kit, qu’il fallait construire soi-même. Cette sympathique machine a rencontré un grand succès en Suisse romande, permettant à de nombreux passionnés de s’initier à cette nouvelle discipline.
Lua, le nouveau Basic

Lua, le nouveau Basic

·141 mots·1 min
Me suis mis à programmer un peu en Lua, un « langage de script » très utilisé dans les jeux video, mais aussi par Hyperion. LUA présente plusieurs caractéristiques étonnantes: il est très rapide, presque autant que JAVA mais environ 6x plus que Python ou 15x plus que PHP (voir ici par exemple) l’interpréteur LUA est très petit : moins de 100k, contre 800k pour Python et beaucoup plus pour les autres langages. LUA est à la fois un langage très simple, genre « Basic des années 80′ », et offre des notions beaucoup plus avancées décrites plus bas LUA est le premier langage de programmation brazilio-catholique : il a été créé à la Pontifícia Universidade Católica do Rio de Janeiro et est donc mieux documenté en portugais qu’en français. (lire la suite sur le blog du Dr. Goulu)
La montée en puissance des GPUs

La montée en puissance des GPUs

Dans les ordinateurs vendus depuis 2003 environ, le microprocesseur (CPU) fourni par Intel ou AMD n’est plus le composant le plus puissant, et souvent plus le plus couteux non plus. Désormais c’est le GPU, le Graphics Processing Unit, qui détermine largement la puissance d’un PC. Strictement limités au graphisme il y a peu, ces processeurs sont désormais capables d’effectuer certains calculs nettement plus vite que les processeurs classiques. Actuellement, la puissance de calcul du G80 de nVidia est 5 à 6 fois supérieure à celle du Core 2 Duo d’Intel, voire plus (1, 2).