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