Archive

Archive for the ‘programmation’ Category

IsiSpot – création de sites WEB

25 octobre 2010 Commentaires fermés

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:

  • accueil, logo des sponsors
  • info, tableau avec des liens
  • contact, avec formulaire

Édition des pages

La première chose est de faire son layout, très bien indiqué comme « charte graphique »: image, logo, menus, couleurs de fond. Ceci est facilité en observant des modèles, forts nombreux; voir en en prenant un pour le modifier – ce que je fait.

Une fois la page d’accueil construite, pour me simplifier la vie je la copie, en vue d’avancer la page « info ». Mal m’en prend… la page d’accueil est spéciale, reconnue comme tel. Après une heure d’essais de toute sorte, qui me font passer en revue tous les menus, je fini par voir que la page d’accueil et/ou sa copie ne peuvent pas être supprimée. L’ édition de la copie trouble IziSpot! En effet, le contenu est différent et présenté par l’environnement correctement, mais le test avec le browser montre 2 x la page d’accueil initiale.

Heureusement, le fichier .IZI qui contient l’ensemble du site et les paramètres peut être facilement sauvé, copié et numéroté pour en avoir une version. Même si l’environnement semble assez solide (mis a rude épreuve avec mes essais!), il vaut mieux sauver souvent, il n’y a pas de « undo ». Sans en avoir la certitude, il semblait que les éléments qui composent cet environnement est basé sur des web-services. Vu avec l’excellent « Process Explorer », on peut voir sans ambiguïté que des instances de Explorer sont actives dès qu’on édite.

On voit dans ce menu mes copies malheureuses de la page d’accueil, renommée en information-old. Pour finir, j’ai refait une « Info » depuis la page blanche. Par contre je n’ai pas eu besoin de remettre les éléments (tableau, images, liens) depuis zéro. En effet, en copiant le HTML de la page informations-old, la nouvelle page « Info » a tout repris!

Certes, cet environnement est au départ un peu déconcertant. Il ne faut pas confondre le nom de la page IziSpot, le nom de la page WEB telle qu’affichée dan le browser et le nom dans le menu cliquable. Cliquer sur une des pages (active ou non) lance l’édition wisiwig, confortable et bien pensée.

La manipulation de tableau est – comme dans nombre de concurrent – dépendante du contexte; par contre, on sait particulièrement bien si on s’adresse au tableau dans son entier ou une cellule, ou un groupe de cellules sélectionnées. On peut aussi agir directement dans le HTML, voir intégrer des script. Pour ce faire, le nom de la page WEB pourra obtenir l’extension .php, ou . asp.

Créer un formulaire est très simple: on détermine les champs, indiquant ceux qui sont obligatoires et la page de retour. Par contre, il faut savoir que l’émail passera par le site izisoftware.com:

if (err==1) {alert (erreur)} else {document.envoi.action='http://users.izisoftware.com/Sharing/Form/Default.aspx';document.envoi.submit()}

Organisation du site

L’organisation des pages via le menu, (icône clef 6 pans) est également très facile à utiliser:

Des flèches permettent de déplacer la page; également dans une arborescence (max 4 niveaux). Depuis ce menu, on peut également changer de charte graphique par page.

Mise en ligne

Elle est facilitée par un interface ftp, qui permet de garder les nom et password associés au projet. Un fenêtre montre les commandes ftp et un ascenseur indique la progression. En option, le fichier .izi peut également être déposé sur le serveur à titre de sauvegarde. Bien entendu, il est possible de tout relire le code généré. Par contre, il faut résister à la tentation de le modifier, car à la prochaine mise à jour, les corrections seront perdues!

Heureusement, l’option « mise à jour partielle » permet de ne renvoyer sur le site de production que les fichiers touchés, ce qui permet une accélération de la mise à jour d’un site qui devient complexe et plus lourd au fil du temps. L’édition wisiwig et la prévisualisation via browser (choix entre IE et Firefox) permet de finaliser les pages avant leur mise en ligne.

Qu’en est-il de la conformité du code généré? Il y a forcément pas mal de javascript pour lier et faire fonctionner le tout. Avec le site à 3 pages (www.giron2011.ch) la validation indique 16 erreurs. Elle concerne des balises unique qui devraient être fermées, tel que, ou des tirets excédentaires dans des commentaires. Des images n’ont pas de « alt ». Pas de quoi en faire un drame…

Conclusion (provisoire)

Cet environnement – gratuit!! l’option pour un site marchand est seule payante – mérite attention. Il est en progression constante, si l’on en juge le forum très vivant. Et ce qui pas désagréable, énormément d’efforts en français et pour les langues en général sont faits. Il soutient sans rougir la comparaison avec des outils bien plus complexes et onéreux. Une fois passé l’obstacle (mais est-ce évitable?) des menus et génération de fichiers, il est rapide et agréablement efficace.

Catégories :programmation, site, web

Comparaison de 2 fichiers sources

10 octobre 2010 Commentaires fermés

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.

Téléchargement depuis le site : http://winmerge.org/?lang=fr

Catégories :programmation, Windows

W7 – moniteur de fiabilité

11 septembre 2010 Commentaires fermés

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:

Capture écran

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!)

Horloge et table de commutation

6 mars 2010 Commentaires fermés

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;

Petit piège en langage C, les bytes à transformer en int, sinon-> écrêtage à 255. Ensuite, nous parcourons régulièrement toutes les lignes du tableau de commutation.  Ainsi la valeur obsolète sera mise à jour. Celle-ci sera remplacée au fil des scan, si une ligne plus proche existe dans la table, parcourue de 0 à n.

Pour résoudre ce problème, je me suis contenté d’une fonction qui ne traite que 24 heures, laissant à plus tard son complément pour traiter des semaines. Le tableau ci-dessous montre la simplicité du raisonnement pour 24H:

  • Le plus grand delta négatif est celui de la dernière commutation à 11h – l2;
  • Le plus petit delta positif, la prochaine commutation 13h – l3.

Sur une semaine, ça ne fonctionne plus! En effet, admettons que nous sommes lundi (jour=1) et que les commutations sont seulement sur dimanche, jour=7? En admettant que notre fonction « delta » ajoute 24*60 par jour, il apparaît que la prochaine commutation est la première de dimanche, et la commutation en cours est la dernière de dimanche!! Tous des nombres positifs!! Notre fonction va donc trouver

  • Le plus grand delta (mais pas négatif) sera celui de la dernière commutation à 14h – l4;
  • Le plus petit delta positif, la prochaine commutation 10h – l1.

Faut-il une logique « intraday », travaillant avec +/- et une autre pour les jours à distance?

Commutation

l1

l2

time

l3

l4

heure

10h00

11h00

’12:10

13h00

14h00

Delta

-130

-70

delta

+50

+110

Delta corrigé 1 semaine

+9950

+10010

+50

+110

La solution est la suivante: lors de la recherche et comparaison, pour éviter les problèmes des jours répartis sur une semaine, on ajoute une correction de 7 jours * 24 heures * 60 minutes au temps de commutation de la ligne lue s’il est inférieur a 0. ce calcul tient compte du fait que les écarts sont cycliques sur une semaine de 7 jours. De ce fait, le test de comparaison de temps se fait toujours sur des nombres strictement positifs, et fonctionne pour le jour courant et … les autres de la semaine.

Grâce à Code::Blocks, j’ai pu tester et valider mes fonctions efficacement, car modifier + charger le binaire dans le module PIC est bien long… voir: https://microclub.wordpress.com/2009/11/23/barrette-ecologique-suivi

Yves Masur

Indice de popularité des langages de programmation

29 décembre 2009 Commentaires fermés

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:

Java 60294
C++ 46202
PHP 40271
C 34047
C# 17703
Python 16227
JavaScript 14749
Perl 11047
Unix Shell 4701
Delphi/Kylix 4543
Visual Basic 4268
Visual Basic .NET 3848
JSP 3177
Assembly 2987
Ruby 2545
ASP.NET 2523
PL/SQL 2307
ActionScript 2147
Objective C 1869
Tcl 1486

Topic (382744)

Yves Masur

Catégories :programmation, Uncategorized

Barrette écologique – suivi

23 novembre 2009 13 commentaires

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!).

Les couches logicielles assez bien définies; toutefois, c’est la partie qui risque de subir les plus grand changements – même si le hard est terminé! Chacun pour

clock et datas

clock et datas

ra peaufinner son interface WEB. Pour cela, il faudra une bibliothèque bien établie de tags, et de modules en Javascript. Et de modules en C, bien sûr.

Le tout est téléchargeable ici: http://yves.masur.microclub.ch/articles/

Ce n’est pas vraiment un article, mais il y a: le code source, les pages WEB, et deux documents au format pdf. « MXBOARD_decouverte » présente les différentes facette de cette plateforme, alors que « barette » est le cahier des charges – qui se transforme en cahier de réalisation petit à petit.

Yves Masur

Catégories :Ecologie, hardware, programmation, réseau, web Étiquettes : , , , , ,

Wireshark opérationnel sous W7

18 novembre 2009 Commentaires fermés

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!

Le but est de trouver une requête régulière que ferait un PC, pour lancer un timer de prolongation de durée de l’enclenchement du secteur.

//Yves