jeudi 28 avril 2011

Pas beaucoup de mouvement sur le blog pour le moment

Ces deux dernières semaines peuvent paraître bien calme en apparence, il n'y a en effet pas beaucoup de publication sur le blog.

En réalité, je continue a faire mes expérimentations sur la machine que j'ai ré-assemblée récemment (cfr Remonter un laptop serveur web sous Linux) à partir de matériel de récupération.
Ainsi, je complète régulièrement l'article "ArchLinux - Installation d'un laptop serveur web sous Linux" pour indiquer mon avancement.... mais c'est surtout le document "ArchLinux Notepad" (Google Doc, publique) qui gonfle à vue d'oeil.
A ce rythme là, pourrait même faire l'objet d'un document de fond pour une remise de mémoire.

mardi 19 avril 2011

Augmenter la portée du Talkie-Walkee TwinWalker 7100 de TopCom

Introduction
Mon beau-fils à acheté des Talkie-Walkie ayant une portée théorique de 10 Km.
Bien malheureusement, et comme c'est souvent le cas, une telle portée n'est valable que dans les conditions les meilleurs... donc, en terrain découvert et sans obstacle.

Nous vivons dans une quartier résidentiel et nous avons malheureusement constaté que la portée n'excédait pas 500 mètres.
Inutile de précisé qu'a cette distance, la réception est inaudible... ce qui fait perdre tout intérêt aux fameux talkie-walkies.

Après quelques recherches sur internet, il serait possible d'améliorer la portée en modifiant l'antenne avec du câble de cuivre uni-brin (autrement dit, "dur").

Après modification de l'antenne
En ajoutant une antenne maison (de 15 cm comme conseillé), nous avons augmenté la portée jusqu'à un kilomètre au cours de nos essais.
Si le signal est plus faible, la voix reste parfaitement audible et le message vocal d'une clarté exemplaire.
Il faut aussi dire que sur ce kilomètre à vol d'oiseau, il y a de nombreux et haut bâtiments en bétons, un vallon et ce qui pourrait passer pour une petite colline... et j'oubliais, il y a aussi notre quartier résidentiel.
Cette modification est donc un succès totale (pour la modique somme de 50 cent de matériel) :-)

A  nous de voir jusqu'où le signal ira ?

Monter une nouvelle antenne de test
1) Ouverture
Ouvrir le TopCom en retirant les 4 vis.
Attention, elles sont collées et donc un peu difficile a désceller.
Retirer la face arrière du talkie-walkie.

2) Retirer la protection de l'antenne
Apparait alors l'antenne boudin (fil torsadé)
3) Préparer la nouvelle antenne
Couper un fil de cuivre (1.5 mm carré ou 2.5 mm carré) de 15 cm de long.
Utiliser une pince pour griffer toute la longueur du fil.
A l'une des extrémités du fil, écraser le fil sur 3 à 4 mm (pince coupante et pince plate) pour pouvoir le couder.
Le coude ainsi obtenu nous permettra d'aller viser la nouvelle antenne dans le boudin existant... en guise de test, cela sera bien suffisant.
Glisser la nouvelle antenne dans le boudin (du bas vers le haut) en veillant bien a avoir la patte en bas.
Une fois l'antenne placée a fond, tourner délicatement le fil de cuivre pour que la patte vienne se viser dans le boudin.
4) Remonter le TopCom
Remonter le TopCom sans le cache de l'antenne.
Une fois les deux appareils modifiés, il sera temps de faire une sortie pour constater la nette amélioration des performances.
Le montage définitif
Si le test est concluant, il faut alors passer au montage définitif.
En effet, les nombreuses manipulations du talkie-walkie ont vite fait de dévisser notre nouvelle antenne... il faudra donc passer par une étape de soudure pour que cela dure :-)

1) Percer le cache de l'antenne
Utiliser une foreuse pour percer un trou dans le haut du cache de l'antenne.
Cela permettra le passage de notre charmant fil de cuivre.
2) Soudure à l'étain
Ouvrir le TopCom.
Récupérer l'antenne de test et couper la petit pâte que nous avions fait pour le test.
Utiliser 4 brins de fils multi-brins que l'on viendra souder à la place de la pate.
3) Replacer l'antenne 
Replacer l'antenne, rabattre le fil multi-brins sur l'antenne boudin (comme sur l'image) et viser le tout d'un demi-tour sur l'antenne boudin.
Le but est de faire passer le fil multi-brins de l'autre côté du boudin.
4) Un petit point de soudure
Appliquer un petit point de soudure une fois le fils multi-brun de l'autre côté du boudin.
N'hésitez pas à ajuster la longueur du fil avant de le souder... après, ce sera nettement plus compliquer.
Et pour faciliter votre travail, étamer les fils multi-brins avant de faire la soudure finale.
5) Remontage
Voici un petit aperçu avant remontage.
Replacez les caches d'antennes (que nous avons percés) et remonter les caches arrières.
6) La perle sur le bricolage
Pour éviter tout accident, je vous suggère de placer une perle (ou tout autre embout) au bout du fil de cuivre.
En effet, un enfant borgne voit deux fois moins bien...

lundi 18 avril 2011

Bash Programming - ressources

Tous les utilisateurs Unix, et donc Linux, savent qu'il est nécessaire à un moment ou l'autre de se frotter au langage de scripting. S'il existe plusieurs langages de scripting, le plus répandu reste certainement Bash (Bourne Again Shell) issus d'une initiative de la Free Software Foundation.

Voici quelques référence relatives au Bash Programming.

Et pour un accès plus facile, ces références seront également accessible depuis la zone de raccourcis de ce blog (accessible sur la droite de cet article)

samedi 16 avril 2011

L'enfant est le père de l'homme

Introduction
Cet article concerne une demande apparue dans un devoir de psychologie.
A savoir:
Que vous inspire la déclaration "L'enfant est le père de  l'homme" du poème Arc-En-Ciel (Rainbow) de Wordsworth (1770-1850).
Sujet qui m'a inspiré sur le coup, cette déclaration étant pleine de bon sens.

L'enfant est le père de l'homme
A y réfléchir un peu, l'on se trouve face au fameux paradoxe de l'oeuf ou la poule.
Pour paraphraser, il s'agit d'un dilemme autour de la question "Qu'est donc apparu le premier? L'oeuf ou la poule?"
L'enfant est le père de l'homme renvoi vers le même dilemme... qui est donc apparu en premier "l'enfant ou l'homme".
Si l'on fait abstraction de l'évolution dans son ensemble et que l'on s'arrête sur le cycle de vie autour de quelques générations (donc sans vraie évolution), chaque enfant devient un homme et chaque homme mettra au monde des enfants qui deviendront à leurs tours des hommes... le cycle de l'oeuf et la poule.
Cependant, cela va plus loin... dans la cadre du dilemme de l'oeuf et la poule il n'est seulement possible de constater que des faits d'ordre biologique... chez l'homme, les choses sont beaucoup plus complexes en ce sens que le cycle de vie de la race humaine s'appuie également sur des concepts sociétaux, éducationnels, émotionnels... donc sociologique et psychologique.
Avant d'être un homme, chaque enfant fera son expérience, certes sous le couvert des hommes, mais dont naîtront ses propres schémas psychologiques, et relationnels.
Schémas qui mûriront et serviront de base à la vie de l'adulte (l'homme en devenir) qui lui même s'en servira pour éduquer ses propres enfants.
L'expérience de l'enfant servira de fondation à ce futur homme... tout comme les parents apportent également leurs fondations à l'enfant... l'enfant sera aussi le père de l'homme (son propre père sur le plan non biologique).

Ainsi, il est courant de retrouver des mères/pères autorisant certaines actions à leur progéniture parce qu'elles/ils mêmes en étaient privés de façon injuste (selon leurs propres perceptions d'enfants, perceptions qui ont mûries).
La relation "l'enfant est le père de l'homme" est ici évidente sur le plan émotionnel et éducationnel (plans où domine la psychologie).
Il est d'ailleurs à noter que ce comportement permissif aura inévitablement un impact sur les enfants de la seconde génération, enfants qui en tireront leurs propres préceptes de vie, qui mûri à l'age adulte, iront peut être dans le sens opposé de leurs propres parents.
Cycle de la vie, cycle de la poule et l'oeuf, enfant père/mère de son propre avenir, cycle sans cesse recommencé avec ses propres variations mais cycle qui se nourrit de sa propre dynamique (de lui même)... hommes parents d'enfants... enfants pères d'hommes en devenir

mardi 12 avril 2011

Le kernel Linux fêtes ses 20 ans

Si peu d'utilisateurs finaux connaissent les systèmes d'exploitations basés sur Linux (Ubuntu, Debian, RedHat, Suse, etc), le noyau Linux (le coeur du système d'exploitation) s'est largement répandu dans l'industrie économique.
Il est aujourd'hui utilisé dans de nombreux domaines (crf film ci-dessous) et sans conteste, la plus belle réussite du noyau Linux fut encore d'adopter la licence GPL.

Voici un petit film commémoratif de la Free Software Foundation.

ArchLinux - Installation d'un laptop serveur web sous Linux

Il y environ deux semaines, je publiai l'article "Remonter un laptop serveur web sous Linux" ou j'expliquai comment j'avais remonté une machine dans le but d'en faire un petit serveur de test qu'il serai possible de commander à distance.

Dans cet article, je publie un document résumant l'installation et la configuration de ArchLinux sur cette machine. Il s'agit plutôt d'une synthèse s'arrêtant sur les éléments principaux et non d'un guide abondamment détaillé.
S'il n'est pas très détaillé en lui même, le document reprend des références (liens) vers des documentations pertinentes.

Voici le contenu actuel du document qui doit encore évoluer, en effet, le but final n'est pas encore atteint.
  • Installation - partie 1
    • Installation de ArchLinux et mise à jour
    • Installation de Python, GCC et pip (installer pour les modules Python)
    • Installation de Lynx (web browser en mode texte)
    • Installation et configuration de OpenSSH pour prendre le contrôle à distance.
      A partir de maintenant, je n'utilise plus que ssh, sftp et sshfs pour contrôler la machine à distance et continuer mes installations.
  • Installation - partie 2
    • Installation de MySQL
    • Définition d'une base de donnée de test (vraiment rudimentaire)
    • Installation de SqlAlchemy (Object Relational Mapping pour Python)
    • Installation du package MySql-python pour permettre à SqlAlchemy de dialoguer avec MySQL :-)
    • Un peu de code pour tester SqlAlchemy.
  • Installation - partie 3
    • Tests avancés de SqlAlchemy
    • Installation du web serveur Apache
    • Test d'accessibilité au serveur Apache.
  • Installation - partie 4
    • Zope installation depuis les sources
    • Zope test et exemple simple
    • Zope démarrage automatique au boot (a finaliser)
  • Installation - partie 5
    • Plone (en cours)
  • Jeter un oeil sur TurboGears 2.1 (turbogears.org) qui allie un ORM (Object Relational Mapping) avec une plateforme de développement Web (écrit en Python) supportant de nombreux kit de developpement Web.
Document complet
Le document complet est disponible sur Google Doc.Vous pouvez y accéder via le lien suivant: ArchLinux Notepad

Note:
Au début de ma rédaction, j'avais inséré le document dans cet article à l'aide d'une balise iframe.
Se faisant, il était donc directement consultable.
Cependant, si le rendu était correct, cela avait le désavantage de perturber l'affichage (déplacement du focus en cours de chargement du blog) et de requérir un login google selon certaines circonstances.
En fin de compte, j'ai remplacé le iframe avec un lien pointant directement sur le document google doc.

lundi 11 avril 2011

Sql Serveur - Manipulation avancée de chaine de caratère (string) en TSQL

Il y a quelques années j'avais découvert deux articles abordant le traitement des chaînes de caractères en TSQL. Sql Serveur étant relativement pauvre en ce domaine j'avais immédiatement classé l'information sous le libellé "merveille à ne surtout pas perdre"... pourtant, au fil du temps, je réussis finalement à perdre ces références (Arghhh!!!).
Le hasard aura voulut que je retombe dessus... et cette fois, je vais faire ce qu'il faut pour ne pas les perdre à nouveau... je vais publier ces références.
Au passage, je vais également traduire l'introduction de Robyn Page and Phil Factor, les auteurs de ces deux articles.

Je vous invite d'ailleurs à prendre connaissance des autres articles édités par Robyn Page and Phil Factor [on y trouve en autre un article expliquant comment manipuler une feuille Excel :) ]

Introduction
Traduction "at the best" de l'introduction de l'article "SQL String User Function Workbench".

Nous allons vous présenter quelques-unes des très simples fonctions de manipulation de string.
Plutôt que d'inventer ceux que nous voudrions, nous allons aborder le problème sous un angme différent et implémenter, au mieux, les fonctions Python de manipulation de chaîne de caractères.
Plein d'exemples maus aussi quelques astuces de programmation !
Quelque-fois, lors de développement d'application Sql Serveur, vous commencez à avoir besoin de manipuler des chaînes de caractères. Pour un débutant, ces fonctions SQL de manipulation peuvent sembler particulièrement ingrates – rien à voir avec ce qui est disponible en Python dans le même domaine.
Cette différence c'est plutôt une question de style. Les fonctions de bases disponible en TSQL sont d'une grande puissance, et il n'est pas toujours évident de comprendre ce qu'elles font lorsque l'on insecte le code. Personne n'essayerait de prétendre que la fameuse function STUFF est intuitive.
Lorsque l'on met en place un projet DB, il est toujours préférable de commencer avec une boîte à outils (toolkit) reprennant des fonctions élémentaire de traitement de chaîne de caractère, cela rendra votre TSQL code lisible. C'est seulement lorsque l'on rencontrera des problèmes de performance particulier qu'il sera nécessaire d'utiliser les fonction de bases plutôt que celles de la boite à outils.
Dans l'effervescence d'une équipe de développement, les choses semblent mieux se présenter si des fonctions élémentaires de traitement de chaîne de caractères sont disponibles et prêtent à l'emploi.
Sans raison particulières, nous aimons utiliser les fonctions de manipulation de chaîne de caractères de PHP et Python adaptés à l'usage de SQL Serveur.
 

Références
Voici donc une liste d'articles totalement incontournables dans ce domaine.
On y trouvera du code vraiment très précieux ainsi que les explications les concernant.
Code source
Liste des fonctions
Dans le premier article, l'on retrouvera la définition des fonctions suivantes:
   1. Capitalize
   2. Center
   3. Count Substring in String
   4. EndsWith
   5. ExpandTabs
   6. IsAlnum
   7. IsAlpha
   8. IsDigit
   9. IsLower
  10. IsTitle
  11. IsSpace
  12. LJust
  13. LStrip
  14. RFind
  15. RJust
  16. RStrip
  17. Strip
  18. SwapCase
  19. Title
  20. Zfill


Tandis que le deuxième article abordera des fonctions nettement plus avancées telles que:
   1. Split function
   2. SplitLines
   3. Within (not from python)
   4. EndsWith
   5. StartsWith
   6. Contains (not from python)
   7. Join
   8. Parts (not from python)
   9. Partition
  10. RPartition

Le troisième article abordant le traitement des arrays (php) aborde déclare les fonctions suivantes:
  • The array() function
  • The PHP-style str_Replace() function
  • The str_Find function
  • The str_GetDelimited function
Finalement, l'article consacré à l'utilisation des régulars expression en TSQL aborde les points suivants:
   1. Introduction
   2. The OLE Functions
         1. The OLE Regex Match function
         2. The OLE Regex Replace function
         3. The OLE Regex Find (Execute) function
   3. Combining two Regexs
   4. OLE Regex Performance