Le menu
À retenir
Outils
- Convertisseur de code source en HTML
- Générateur de lien en (x)HTML
- Traduction Français-Esperanto online
Vie pratique
Portfolio
Présidentielles
Culture
- Respect des droits d'auteurs et droits voisins — Refus des Mesures Techniques de Protection (MTP)
- Licence globale : finalement je suis contre...
- Lettre à la SACEM : Réaction par rapport au projet de loi DADVSI
- Reprenons en main la culture !
- Gestion Numérique des droits (DRM) : une question de confiance
- Gestion Numérique des droits (DRM) : une question de confiance (2)
Archives
- Septembre 2008
- Aout 2008
- Juillet 2008
- Juin 2008
- Mai 2008
- Avril 2008
- Mars 2008
- Février 2008
- Janvier 2008
- Décembre 2007
- Novembre 2007
- Octobre 2007
- Septembre 2007
- Aout 2007
- Juillet 2007
- Juin 2007
- Mai 2007
- Avril 2007
- Mars 2007
- Février 2007
- Janvier 2007
- Décembre 2006
- Novembre 2006
- Octobre 2006
- Septembre 2006
- Aout 2006
- Juillet 2006
- Juin 2006
- Mai 2006
- Avril 2006
- Mars 2006
- Février 2006
- Janvier 2006
- Décembre 2005
- Novembre 2005
- Octobre 2005
- Septembre 2005
- Aout 2005
- Juillet 2005
- Juin 2005
- Mai 2005
- Avril 2005
- Mars 2005
- Février 2005
- Janvier 2005
- Décembre 2004
- Novembre 2004
- Octobre 2004
Spornikethon
- Mes créations vous plaisent ?
- Vous voulez me soutenir financièrement ?
- Cliquez sur un des boutons ci-dessous selon le montant du dons.
- Merci !
Rouleaux de blogs
Mes préférés
Les amis
- Les bla-blas de Chibi
- Lysel
- Orpheelin
- Nae-chan in Psycholand
- Circée
- Faery Book
- Les bijoux de Hime-Decco
Divers
Mes liens
- Non à la brevetabilité des logiciels en Europe
- Promotion d'artistes proposant de la musique légale et gratuite à télécharger
- Associations pour le Maintien d’une Agriculture Paysanne
- La Bible
- Wikipédia
- Le Trésor de la Langue Française Informatisé
- Liste prête à l'emploi pour Adblock
- Partitions pour guitare classique
- Forum francophone pour les collectionneurs et créateurs de poupées
- Association sportive et culturelle du 13ème arrondissement
Bombardement Google
Mon code geek
Le 30 Novembre 2004 à 15:34
Pour déterminer votre code geek, aller sur The Geek Code.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/IT
d-
s+:
a-
C++
UL+++
P
L+++
E-
W+++
N
o?
K?
w++(--)
O
!M
V-
PS+(++)
PE
Y+
PGP(++)
t+
5
X
R
tv-
b++
DI+
D
G
e++
h---
r++
y+(+++)
------END GEEK CODE BLOCK------
Décodage
Le décodage du code, avec The Geek Code Decoder Page
- GEEK TYPE CODE [GCS/IT]
- Geek of Computer Science, Geek of Information Technology.
- GEEK DRESS CODE [d-]
- I'm usually in jeans and a t-shirt.
- GEEK SHAPE CODE [s+:]
- I'm a little taller than most.
- GEEK AGE CODE [a-]
- My age is 25-29.
- GEEK COMPUTERS CODE [C++]
- Computers are a large part of my existence. When I get up in the morning, the first thing I do is log myself in. I play games or mud on weekends, but still manage to stay off of academic probation.
- GEEK UNIX CODE [UL+++]
- I use GNU/Linux exclusively. I don't need to crack /etc/passwd because I just modified su so that it doesn't prompt me. The admin staff doesn't even know I'm here. If you don't understand what I just said, this category does NOT apply to you!
- GEEK PERL CODE [P]
- I know Perl exists, but that's all.
- GEEK GNU/LINUX CODE [L+++]
- I use GNU/Linux exclusively on my system. I monitor comp.os.linux.* and even answer questions sometimes.
- GEEK EMACS CODE [E-]
- Emacs is too big and bloated for my tastes
- GEEK WORLD WIDE WEB CODE [W+++]
- I am a WebMaster. Don't even think about trying to view my homepage without the latest version of Netscape. When I'm not on my normal net connection, I surf the web using my Newton and a cellular modem.
- GEEK USENET CODE [N]
- Usenet News? Sure, I read that once.
- GEEK USENET ORACLE CODE [o?]
- Usenet Oracle? I don't even know what that is...
- GEEK KIBO CODE [K?]
- Kibo? I don't even know what that is...
- GEEK MICROSOFT WINDOWS CODE [w++(--)]
- My tendencies on this issue range from: "I write MS Windows programs in C and think about using C++ someday. I've written at least one DLL.", to: "MS Windows is a joke operating system. Hell, it's not even an operating system. NT is Not Tough enough for me either. 95 is how may times it will crash an hour."
- GEEK OS/2 CODE [O]
- I finally managed to get OS/2 installed but wasn't too terribly impressed.
- GEEK MACINTOSH CODE [!M]
- I refuse to categorize myself on Macintosh.
- GEEK VMS CODE [V-]
- Unix is much better than VMS for my computing needs.
- GEEK POLITICS & SOCIAL ISSUES CODE [PS+(++)]
- My tendencies on this issue range from: "My whole concept of liberalism is that nobody has the right to tell anybody else what to do, on either side of the political fence. If you don't like it, turn the bloody channel.", to: "I give to liberal causes. I march for gay rights. I'm a card carrying member of the ACLU. Keep abortion safe and legal."
- GEEK POLITICS & ECONOMIC ISSUES CODE [PE]
- Distrust both government and business.
- GEEK CYPHERPUNKS CODE [Y+]
- I have an interest and concern in privacy issues, but in reality I am not really all that active or vocal.
- GEEK PGP CODE [PGP(++)]
- My tendencies on this issue range from: "I've used it, but stopped long ago.", to: "I have the most recent version and use it regularly."
- GEEK STAR TREK CODE [t+]
- It's a damn fine TV show and is one of the only things good on television any more.
- GEEK BABYLON 5 CODE [5]
- I've seen it, I am pretty indifferent to it.
- GEEK X FILES CODE [X]
- Ho hum. Just another Fox show.
- GEEK ROLE-PLAYING CODE [R]
- Role-Playing? That's just something to do to kill a Saturday afternoon.
- GEEK TELEVISION CODE [tv-]
- I watch tv for the news and 'special programming.'
- GEEK BOOKS CODE [b++]
- I find the time to get through at least one new book a month.
- GEEK DILBERT CODE [DI+]
- I read Dilbert daily, often understanding it.
- GEEK DOOM CODE [D]
- I've played the game and I'm pretty indifferent.
- THE GEEK CODE [G]
- I know what the geek code is and even did up this code.
- GEEK EDUCATION CODE [e++]
- Got a Baccalaureate degree.
- GEEK HOUSING CODE [h---]
- Married, (persons living romantically with someone might as well label themselves h---, you're as good as there already.)
- GEEK RELATIONSHIPS CODE [r++]
- I've dated my current S.O. for a long time.
- GEEK SEX CODE [y+(+++)]
- Male. My tendencies on this issue range from: "I've had real, live sex.", to: "I'm married, so I can get it (theoretically) whenever I want."
Gestion des applications installées à la main
sous Linux : partie 1
Le 26 Novembre 2004 à 15:31
Résumé
Quelque soit la distribution Linux utilisée, il arrive qu'il faille installer un logiciel sans passer par le gestionnaire d'application fourni avec la distribution. De plus, la diversité des environnements de bureau rend impossible la gestion automatique de l'inventaire des applications installées. On se propose un système de gestion manuel de l'inventaire des applications.
Objectif
Maintenir un inventaire des applications installées manuellement. Un élément de l'inventaire devrait contenir :
- Le nom de l'application et sa version
- Le répertoire d'installation
- Les commandes de démarrage
- etc...
Préparation de la machine
Création et organisation d'un compte spécial pour l'installation
Le but de ce compte est de séparer l'installation/désinstallation des logiciels des autres activités. De plus, l'installation d'une application peut nécessiter des droits d'accès particulier. Enfin, tous les fichiers nécessaires à l'installation (code source, etc...) seront dans un répertoire innaccessible aux autres utilisateurs.
- Nom de connexion (login)
install
- Groupe
- Choisir un groupe ayant des droits d'administration, ou des droits d'écriture dans un répertoire d'installation (
/opt
par exemple). - Répertoire personnel
/home/install
Contenu du répertoire home/install/sources/[groupe]/[application]/[version]
Ce dossier contient les fichiers nécessaires pour l'installation d'une application.
- [groupe]
- On regroupe les applications par thème, par exemple
multimedia
oufondation_apache
- [application]
- Chaque application dispose de son dossier, par exemple
firefox
ougimp
- [version]
- On sépare les versions de l'application, par exemple
1.4.2rc3
ou01040002rc03
De plus, un fichier texte décrivant l'application, app_comment.txt
, contiendra les informations suivantes :
Nom de l'application -Versions disponibles -Commandes de démarrage en fonction de la version ==================================================
L'utilisation de balise HTML est possible, mais ce n'est pas une obligation.
Génération d'un fichier récapitulatif
Utiliser la séquence de commandes suivante, étant identifié comme l'utilisateur install
:
$HOME/tmp.software.txt chmod 600 $HOME/tmp.software.txt cd $HOME/sources find . -name="app_comment.txt" -exec cat {} >> $HOME/tmp.software.txt ; chmod 644 $HOME/tmp.software.txt mv $HOME/tmp.software.txt $HOME/software.txt]]>
Si vous utilisez des balises HTML, dans les fichiers app_comment.txt
, renommer le fichier final software.html
.
Diffusez ce fichier (par e-mail, une documentation interne, ou une distribution du fichier imprimé) aux utilisateurs.
Réalisation d'un Setup universel
pour les applications Linux : partie 1
Le 25 Novembre 2004 à 15:29
Résumé
Les programmes Linux suivant les règles de l'art utilisent les autotools de GNU, ce qui permet ensuite de les installer avec la célèbre séquence de commandes suivantes :
./configure.sh make make install
Les problèmes commencent lorsqu'on veut une installation un peu personnalisée, et qu'on ne connaît pas les paramètres des commandes.
Objectif
Utiliser une interface Web reprenant l'apparence d'un programme d'installation, pour paramétrer une installation, et obtenir la séquence des commandes à utiliser (en particulier les paramètres de la ligne de commande)
Les scénarios envisagés
Pour commencer simplement, on envisage les scénarios suivants :
- Installation standard
- On indique la séquence standard. Ce scénario est là
pour mémoire
. - Installation simple personnalisée
- L'utilisateur choisi le(s) répertoire(s) d'installation.
- Réparation
- La séquence permettant une réparation (recompilation et réinstallation).
- Désinstallation
- La séquence permettant une désinstallation.
Affichage du résultat
Lorsque tous les paramètres nécessaires pour le scénario choisi sont renseignés, un rapport imprimable sera affichée, contenant les sections suivantes
- Nom de l'application - version de l'application
- Descriptif de l'application.
- Informations supplémentaires : dépendances, licence, etc... (texte libre).
- Options d'installation
- scénario choisi
- répertoires d'installation
- etc...
- Séquence d'installation
- Les commandes à entrer pour l'installation, et les résultats attendus (affichage).
- Séquence de réparation
- Les commandes à entrer pour la réparation (recompilation et installation), et les résultats attendus (affichage).
- Séquence de désinstallation
- Les commandes à entrer pour la désinstallation, et les résultats attendus (affichage).
- Séquence de démarrage
- Les commandes à entrer pour démarrer l'application.
- Aide mémoire des options de démarrage (texte libre).
Accès simplifé au weblog
Le 24 Novembre 2004 à 00:16
En attendant un système plus complet, voilà de quoi lire le blog plus facilement.
Règles AdBlock
Le 16 Novembre 2004 à 12:02
Pour pouvoir les retrouver plus tard...
Le chemin vers la programmation Linux : partie 2
Le 15 Novembre 2004 à 13:29
Le choix d'une API
J'ai décidé d'utiliser Gnome 2 (et donc GTK 2) pour développer mes applications. Les motivations de ce choix sont les suivantes :
- L'utilisation de l'Unicode, une librairie pour les traiter les fichiers xml, et une méthode d'entrée pour le japonais facile à utiliser
comme sous Windows
. - GTK est librement –et gratuitement– disponible sur Windows, des fois que mes applications soient portées sur cette plateforme.
- La possibilité de dissocier l'interface des traitements, avec l'utilisation de
Livre de référence
- Titre
- The Official GNOME 2 developer's guide
- Auteurs
- Miguel de Icaza (Préface)
- Matthias Warkus
- Editeur (date de publication)
- No Starch Press (avril 2004)
- ISBN
- 1593270305
- Langue
- Anglais
Etat d'avancement
J'ai commandé les 2 livres, ils devraient arriver fin novembre.
Passage à Mozilla FireFox 1.0
Le 12 Novembre 2004 à 11:22
Ça y est ! J'ai installé Mozilla Firefox 1.0 au boulot, remplaçant ma version 0.9.3. Quel bonheur que la version française soit disponible immédiatement, c'est ce qui fait que je n'avait pas installé les versions d'avant (ça et le fait qu'étant une grosse faignasse, je n'aime pas passer du temps à mettre à jour).
Premières impressions
Hourra !!!! On a enfin accès au mot de passe principal depuis les préférences. Pour ceux qui ne connaissent pas, c'est le mot de passe qui protège tous les mots de passe que vous sauvegardez sous FireFox, pour les sites qui demandent un mot de passe –justement–. C'est LA fonction qui me manquait (seulement accessible depuis une URL tarbiscotée, et je rappelle que j'ai un baobab dans la main).
Une nouvelle fonction que je kiffe grave
, même si j'ai compris le lendemain seulement comment ça marche, c'est l'abonnement aux listes de news (RSS) : quand un site propose une telle liste, une icône orange apparaît en bas de l'écran, et quand on clique dessus, on rajoute cette liste à notre marque-pages. Ce marque-pages se comportent comme un dossier de liens vers les articles, remis à jour régulièrement.
Une dernière fonction, qui existait avant, mais qui est maintenant plus visible : quand une fenêtre popup est bloquée, une grosse ligne sur fond jaune pastel affiche un message qui avertit du blocage et donne accès à la configuration pour débloquer les popups si nécessaire. Bien vu ! Je me suis fait avoir bien des fois à cause de ça sur mes projets du boulot (mais pourquoi ma popup elle apparaît pas ?
).
Mozilla FireFox 1.0 c'est bon, mangez-en
Je n'ai plus qu'à l'installer avec amour sur mon Linux à la maison.
Modélisation d'un dépôt de données : partie 1
Le 09 Novembre 2004 à 16:44
Résumé
Dans cet article on propose un squelette de modélisation pour un dépôt de données hétérogènes.
Spécifications Générales Fonctionnelles
On veut gérer un dépôt de données hétérogènes. Une donnée peut représenter un client, un article, une adresse, etc... Une modélisation orientée objet donnerait une classe de base Donnée, et des classes dérivée Client, Article, Adresse, etc...
Par gérer les données
, on comprendra créer, modifier, voir en détail, supprimer une donnée
(liste non exhaustive). Une donnée comportera aussi des méta-informations, comme des dates de validités par exemple, ou encore des états (flags
, par exemple un état valide, publié, supprimé, etc...).
Modélisation du dépôt
Avertissement
Le modèle proposé est un squelette qui doit être ensuite adapté aux besoins réels et aux données stockées.
La liste des tables modélisées
On modélisera 2 tables :
- Donnée, qui représentera une donnée en générale.
- Entité, qui représente une classe de données spécifique.
Identification et lien entre les tables
Chaque table disposera d'un identifiant système SID qui sera la clé primaire. On définira 2 séquences, SequenceIdentifiantDonnee et SequenceIdentifiantEntite qui permettront de calculer l'identifiant d'une nouvelle ligne.
À partir d'une ligne de Donnée, on doit pouvoir déterminer la table et la ligne pour récupérer les données spécifiques de Entité. La table Donnée contiendra donc un champ Type et CID.
On peut aussi vouloir identifier une ligne de Donnée à partir d'une ligne de Entité. En particulier lorsq'une entité dispose d'informations spécifiques pour l'identifier (cas de la reprise d'un modèle). La table Entité contiendra donc un champ PID.
Colonne | Type | Gestion | Commentaires |
---|---|---|---|
SID | Nombre Entier | SID > 0 | Utiliser la valeur de la séquence SequenceIdentifiantDonnee à la création d'une nouvelle ligne |
TYPE | 32 caractères | /[0-9A-Za-z]+/ | Valeur permettant de déterminer le nom de la table Entité |
CID | Nombre Entier | CID > 0 | CID correspond à la ligne de la table Entité (fonction de Donnée.TYPE) telle que Donnée.TYPE = Entité.SID |
Colonne | Type | Gestion | Commentaires |
---|---|---|---|
SID | Nombre Entier | SID > 0 | Utiliser la valeur de la séquence SequenceIdentifiantEntite à la création d'une nouvelle ligne |
PID | Nombre Entier | PID > 0 | PID correspond à la ligne de la table Donnée telle que Entité.PID = Donnée.SID |
NB : Tests d'intégrité
- Lignes erronées de la table Donnée.
- Une ligne de Donnée est erronée si a valeur Donnée.CID ne correspond à aucune valeur Entité.SID.
where not CID in (select SID from
)]]> - Lignes erronées de la table Entité.
- Une ligne de Entité est erronée si a valeur Entité.PID ne correspond à aucune valeur Donnée.SID.
where not PID in (select SID from
)]]>
NB : Modélisation d'un méta-modèle
Une implémentation triviale pour le type de donnée (Donnée.TYPE) est d'utiliser le nom de la table Entité. On peut aussi vouloir atteindre une certaine indépendance vis-à-vis de l'implémentation, auquel cas il faut créer un méta-modèle.
Colonne | Type | Gestion | Commentaires |
---|---|---|---|
TYPE | 32 caractères | /[0-9A-Za-z]+/ | Valeur permettant de déterminer le nom de la table Entité |
TABLE | 256 caractères | Non vide | Cette donnée DOIT correspondre à un nom de table existant et respectant le modèle Entité |
NB : Reprise d'un modèle existant
Dans le cas d'une reprise d'un modèle existant, il se peut qu'une donnée puisse être identifiée de manière unique par une autre information ou un autre ensemble d'informations. Ces informations ne seront pas utilisée comme clé primaire, cependant, on rajoutera les contraintes d'unicités adéquates liées à ces informations. La raison de ce choix est d'unifier l'accès aux données spécifiques d'une entité.
À suivre
On the road to the Tablettes Of Chocolat
Le 03 Novembre 2004 à 14:18
Jour 1 : l'attaque sournoise des croissants du matin
Le sporniket avait décidé solonellement de transformer ses petites poignées d'amour (charmantes au demeurant, mais poignéees d'amour quand même) en tablettes de chocolat, pour au moins deux raisons :
- Sa chérie d'amour voudrait avoir des tablettes de chocolat pour noël (^^)
- Le sporniket aimerait éviter de passer à la taille 46
Donc, on commence la journée par un peu d'abdo-bed-fitness (le matelas faisant office de tapis de sol) : on fait travailler toute la ceinture abdominale (les flancs et le centre). Puis on prend un petit déjeuner équilibré et raisonnablement consistant : environ 250g -hé oui, j'ai pesé !-, moitié de riz au lentilles, moitié de flanc aux brocolis.
C'est donc tout guilleret que le sporniket se rendit à son boulot, inconscient de la fourberie qui se tramait, telle un faucon prêt à fondre sur l'innocent petit lapin : un groupe de croissants chauds et croustillants avaient préparé une embuscade dans la salle de repos, profitant d'une collègue peu scrupuleuse (aaaah la traîtresse ! elle paiera cette infamie au centuple !!!)
N'écoutant que son courage, le sporniket resta cloué à son siège, tel Ulysse attaché à son mât face aux sirènes.
Et c'est donc le coeur léger qu'il dégusta sa petite salade et son verre de soupe aux légumes pour le déjeuner.
The End
Epilogue
Ce soir, filets de cabillaud sur lit d'épinards