Informatique
Utiliser un screen dans un screen
Ca y est, j'ai enfin compris comment utiliser un screen dans un screen. En effet, utilisant sur mon ordinateur local un screen pour mon vim et mes serveurs de développement, je voulais aussi mettre dans un de mes screens une connection ssh à un serveur distant et utiliser aussi sur ce serveur distant un screen. C'est là que l'utilisation d'un screen dans un screen sert. Et bien c'est vraiment tout simple. Un simple Ctrl-a + a permet de faire un Ctrl-a sur le screen distant. Ainsi en tapant Ctrl-a + a + " je peux voir la liste des screens de mon screen distant.
ssh et le host.deny
Pour toutes les personnes comme moi qui ont des problèmes avec la connection en ssh à partir d'un ordinateur et uniquement celui-ci. Première chose à faire ? vérifier que le fichier /etc/hosts.deny n'a pas votre IP ou Host. Moi j'ai réussi à me bloquer tout seul. Bon denyhost y est aussi surement pour quelque chose.
RubyForge accepte mon Whois
Ca y est alors que j'ai envoyé un mail à l'ancien créateur de la lib whois en Ruby qui avait arrêté de la maintenir, j'ai lancé une demande de création de projet d'un whois en Ruby. Ce projet a été accepté et je vais donc m'y atteler complétement et tout ça avec la bénédiction de l'ancien créateur. Je suis bien content de pouvoir me lancer comme ça sur un projet intéressant et pas trop long. Je prend pour exemple les projets whois en C et rwhois en Python.
Voici le lien du projet : Whois en Ruby
Highlight_sound a sa propre page
Comme je l'avais dit dans mon billet annonçant la création du script highlight_sound, j'ai créé la mini page de projet expliquant l'utilité et l'utilisation de ce script. En même temps, j'ai fait une petite évolution indiquant à l'utilisateur que l'application est configuré ou pas.
La page de projet se trouve ici
Plugin Irssi highlight_sound
Comme beaucoup le savent, je suis accro à IRC. Pour IRC, j'utilise des clients en console dans un souci de pratique. J'avais précédemment écrit un billet vantant les mérites du client weechat.
Avec mon éternelle insatisfaction, j'ai donc voulu retesté irssi. J'ai voulu installé un plugin pour faire du son quand je reçois des Highlight ou des messages privés. Après des recherches sur internet, je n'ai trouvé aucun plugin me permettant ça. En tant que bon développeur, j'ai créé un plugin pour faire ce que je voulais. Ce plugin est donc diffusé en GPL v2. Ce plugin devient donc mon deuxième plugin pour irssi. Je ferais sûrement une page comme je l'avais fait pour helloall. En attendant voici mon script :
Retour à Gentoo
Ca y est, c'est décidé, je reviens à Gentoo.
J'étais depuis quelques temps sous une distribution debian. A l'époque, le temps de compilation de Gentoo m'embêtait beaucoup et la stabilité de debian m'a convaincu. Actuellement, le temps de compilation de Gentoo est toujours selon moi un de ses défauts, mais c'est aussi ce qui fait une de ses forces de par sa flexibilité.
J'ai aussi acquis une certaine expérience de linux qui me permet de ne pas installer ou désinstaller des paquets tous les jours et donc après avoir fait une installation propre de mon système, de n'avoir qu'a faire les updates nécessaire pour avoir une distribution stable.
De plus ce que je trouve vraiment bien chez Gentoo est leur clarté. Si on a un problème, il y a toujours un log qui te dit où est ton problème, alors qu'avec debian, au démarrage, on n'arrive même pas à savoir ce qui est réellement lancé comme service et il y a des warning qui sont « normal ». Avec gentoo, on a tout d'indiqué et on peux ainsi plus facilement résoudre les problèmes.
Cette résolution est arrivée avec la mise à jour d'un ordinateur portable sous gentoo qui n'avait pas été mis à jour depuis pas moins de 1 an. Après de grosses difficultés dû aux différentes migrations qui ont eu lieu durant cette période (Xorg, KDE, GCC), j'ai fini par réussir à tout remettre en place et maintenant mon portable a retrouvé une deuxième jeunesse. Je suis vraiment impressionné, par la capacité de gentoo à évoluer aussi facilement avec le temps.
Maintenant avec mon basculement vers gentoo, j'ai de nouveau envie d'aider cette communauté. Ainsi durant mes migrations et la lecture des documentations française, j'ai pu faire corriger une ou deux coquilles dans celle-ci. La réactivité de neyxs (chef de la traduction française sur gentoo), ces coquilles ont été modifiés immédiatement. J'ai vraiment retrouvé un esprit de communauté que j'avais complètement perdu avec Debian où à chaque fois que j'arrivais sur leur channel IRC, je m'engueulais avec l'un ou l'autre des développeurs. Je pense que Gentoo est assez jeune dans sa communauté, mais elle évolue sans cesse dans le bon sens et n'a absolument pas la grosse tête. C'est vraiment génial.
Ainsi, aujourd'hui, j'ai retrouvé mes accès au CVS de traduction de la Gentoo Weekly News et j'ai repris pas mal de relecture que l'équipe avait hélas laissé tombé en désuétude. J'espère maintenant vraiment pouvoir participer à cette superbe communauté qu'est Gentoo.
désactiver le beep système dans son noyau linux
Régulièrement je me pose la question de savoir où ce trouve le module qui gére le beep système dans le noyau linux. Je vais donc l'écrire ici
- Input device support
- --> Miscellaneous devices
- --> --> PC Speaker support (NEW)
En espérant que ça puisse vous aussi vous aider :)
L'adaptation par le Python
J'ai trouvé avec le blog de Jadawin un script qu'il a créé pour mettre à jour son fond d'écran pour les linuxiens dont je fais partie. Il a créé ce script en Perl et moi je suis un pythonien alors juste pour rigoler, j'ai refait tout le script en Python. Et le voici pour vous. C'est pour l'instant ma version 0.1.
Et si Rails était si génial ?
Ce soir, j'ai eu la chance d'assister à trois conférences au sujet de Ruby On Rails. Ces conférences étaient issues des conférences de Paris On Rails.
Après ces présentations et ma grosse difficulté à réaliser un site web en J2EE avec Struts et hibernate où pour faire une simple page, il faut remplir 4Km de fichier de configuration, je me dis vraiment que Rails c'est simple. Il te suffit de si peu de code pour faire une application web original, avec test unitaire et tout. C'est impressionnant. Par contre la réflexion que certain de mes camarades ont eu et que je comprends tout en pensant un peu la même chose c'est que finalement, a quoi sert le développeur dans tout ça ? N'est-ce pas justement pour ça que Java est si verbeux ? pour faire écrire et encore écrire le développeur ?
Au final, moi qui pensait réaliser ma prochaine application web en Python, je pense que je vais finalement la réaliser en Ruby avec RoR. En effet, même si le Python est beaucoup moins verbeux que le Java, il l'est quand même un plus que le RoR au niveau de son mapping Objet Relationnel tout du moins. Il lui manque aussi beaucoup de test unitaire et fonctionnel simple d'execution. Par contre le seul gros défaut de RoR à mon avis est quand même ses performances. Le Python semblerait plus rapide pour ça, d'après les tests disséminés sur internet et même selon les développeurs de la communauté RoR. Mais vu que je fais du Python quotidiennement à mon travail et que je vais apprendre le RoR en fin d'année dans mon cursus scolaire. Je vais donc créer mon prochain projet en Ruby On Rails et qui sait si un jour je suis assez fou pour me lancer dans l'aventure, transcrire tout RoR en Python et créer ainsi PyRor ;)
SchemaSpy aide les développeurs
Ca faisait quelque temps, au niveau de mon stage, j'utilise une Base de donnée avec plusieurs dizaines de Tables différentes. Mais voilà, aucun document n'a été réalisé pour suivre l'évolution de cette Base de Donnée et la seule solution que j'avais pour la consulter, c'était de me connecter sur la BDD et de faire mes requêtes directement. J'ai finalement décidé de me prendre en main et de faire ce document. Mais en tant que bon informaticien, je suis flemmard et j'ai donc cherché une application qui me permettait de tout faire à ma place. Après plusieurs recherche infructueuse, j'ai fini par trouver mon bonheur. Il s'agit de SchemaSpy. Vous pouvez voir un exemple sur leur site. Ce programme est un programme Java et il génére les graphiques à l'aide de Graphviz.
Après plusieurs essais infructueux, j'ai découvert que ce projet manquait par contre d'une documentation plus ou moins simple et explicite. Je vais donc expliquer brievement ici comment faire.
- Installer le JRE 5.0 sur le site internet de Sun
- Télécharger le jar driver de la Base de Donnée que vous voulez consulter. Dans mon cas j'utilise MySQL et vous pouvez le télécharger ici
- Installer Graphviz si vous désirez la création des graphiques
Maintenant la ligne de commande pour analyser une base de donnée MySQL il faut faire :
$java -jar schemaspy -t mysql -host localhost -db mydatabase -u user -p password -o output
Mais voilà pour moi cela n'a pas marché. j'ai donc lu le source du jar et compris comment créer un fichier de configuration pour schemaSpy. Je vais vous expliquer comment en faire un. Voici le fichier que j'ai appelé mymysql.properties
# note that MySQL tables must be of type 'InnoDB' or they won't # have foreign key relationships description=MySQL # connection spec # text between <>'s will be prompted for on the command line # e.g. if <host> is in connectionSpec then you must have -host on the command line # if you're missing a required parameter then you're be prompted with the text # that's associated with that paramter # e.g. missing -db then you'll be prompted for 'database name' # expected format: jdbc:mysql://[hostname][:port]/dbname connectionSpec=jdbc:mysql://localhost/ #host=hostname[:port] (possibly just localhost) db=databasename driver=com.mysql.jdbc.Driver # point this to whatever is appropriate on your machine...let me know if there's a standard path/jar # you can use the -cp command line option if you prefer # The driver should be available at www.mysql.com/products/connector/j/ driverPath=mysql-connector-java-3.1.13-bin.jar # if your driver returns failures like "stream already closed" then its metadata # services probably aren't thread safe and you'll have to uncomment this line # or specify "-dbThreads 1" on the command line. #dbThreads=1 # the following SQL is optional # fill it in if you want to see the SQL used to create your views or your check constraints # send it back to schemaspy.sourceforge.net if it works # these named parameters are supported: :schema, :owner, :table and :view # return text that represents a specific :view / :schema #selectViewSql= # return table_name, constraint_name and text for a specific :schema #selectCheckConstraintsSql= # return table_name, comments for a specific :schema (which MySQL doesn't have, so the db name will be used) # useful if db driver doesn't return this info selectTableCommentsSql=select table_name, table_comment comments from information_schema.tables where table_schema=:schema # return table_name, column_name, comments for a specific :schema # useful if db driver doesn't return this info #selectColumnCommentsSql=select table_name, column_name, column_comment comments from information_schema.columns where table_schema=:schema
Sur le fichier précédent, vous n'avez qu'à changer le lien de votre jar MysqlConnector et le nom de la Base de donnée que vous voulez consulter. Une fois ce fichier créer, il suffit de faire comme appele au programme schemaspy la commande suivante :
$java -jar schemaspy -t mymysql -u user -p password -o output