mon parcours

Recherche tuxcoffee.net

Livre Debian GNU/Linux 3.1 (Sarge)

image livre debian/GNU Linux Sarge

Editions ENIEditions ENI

Le site de Nicolas Pons

Documentation présente sur le site

image gnuimage debianimage linuximage debian linuximage gimpimage rubyimage rubyonrailsimage freebsdimage debian-francelogo vim

Au fil des jours...

2006-08-29 : Ze module de recherche sur le site tuxcoffee.net

Ça y est! Le module de recherche de pages du site tuxcoffee.net est en place à titre expérimental pour l'instant, avec de petites lacunes mais déjà bien pratique. Il n'y aura, par conséquent, plus d'autres nouvelles sur l'implémentation de celui-ci jusqu'à l'annonce d'un article complet sur le programme et la disponnibilité d'une archive du programme.

mod_search

Ce module est visible sur la bannière du site et en bas de chaque page.

L'écriture d'une expression pour la recherche sur tuxcoffee.net est très simple.

  • Les mots séparés par un espace permettent de rechercher les pages du sites où ils sont tous présents.
  • Une virgule permet de préciser un "ou" dans l'expression de recherche.
  • La casse des caractères n'est pas pris en compte. Les mots de l'index sont tous en minuscules.
  • Les caractères accentués sont retirés des mots de l'index. C'est une lacune, voir la suite de la nouvelle.

Par exemple l'expression "ruby rails cgi, editions eni" permet de rechercher toutes les pages contenant les mots ruby, rails et cgi, mais aussi toutes les pages contenant editions et eni à la fois.

Lacunes et points à améliorer dans le module de recherche :

  • les mots avec accents, ne sont pas pris en compte "tel que" pour l'instant. En fait les caractères accentués disparaissent.
  • Tout le contenu d'une page HTML est référencé, y compris les mots contenus dans la partie <head></head>. Par conséquent certaines pages seront données en résultat dans la recherche alors que vous ne visualiserez pas le mot recherché dans celles-ci...

Envoyer un commentaire...

2006-08-28 : Module CGI en Ruby de recherche web - partie 2

Une autre partie du module de recherche CGI en langage Ruby, le programme d'appel, appelé à partir d'un formulaire HTML. Le formulaire de recherche ressemble à ceci :

<form action="/cgi-bin/cgi_look_for.rb">
  <input type="text" name="expr" />
  <input type="submit" value="Rechercher" />
</form>

Le programme ruby /cgi-bin/cgi_look_for.rb récupère la chaine de recherche expr du formulaire et va chercher dans le fichier index index_tuxcoffee.txt les fichiers répondants à cette expression.

require 'erb'
require 'cgi'
require 'words_with_files_in_index'

cgi = CGI.new("html4Tr")

# Get cgi entry parameter
expr = cgi['expr']

template = ""
File.open("./template_search_result.erb", "r") do |file|
  file.each_line { |line| template += line }
end

rhtml = ERB.new(template)

# setup the template data
words_with_files = WordsWithFilesInIndex.new("./index_tuxcoffee.txt", expr)

# Produce result.
out = rhtml.result(words_with_files.get_binding)

# HTML view
cgi.out { out }

Un article complet, ainsi que l'archive de tous les scripts et classes Ruby du module CGI de recherche seront bientôt disponible.

Envoyer un commentaire...

2006-08-24 : Module CGI en Ruby de recherche web - partie 1

Je viens de me mettre au langage Ruby, et la meilleure façon d'apprendre est la pratique et l'étude de programmes existants (une fois les bases connues). Pour la pratique j'ai décidé de refaire la roue et de mettre en place un module CGI de recherche par mots clefs sur mon site tuxcoffee.net .

Les bases du programme sont en place, hormis la partie web proprement dite. J'ai décidé de présenter certains morceaux clefs sous forme de nouvelles avant que le programme ne soit finalisé sous forme d'archive (pour la première version) ainsi que la doc écrite et générée. L'objectif de ce programme est simple, mais il me permettra de rassembler des composants indispensables de ruby, comme les bases du langages, les tests unitaires, la doc générée avec rdoc, ...

Première partie d'un ensemble de classes, modules et scripts qui vont composer ce module de recherche, la classe Index qui me permet d'instancier un objet index qui représente l'index d'un ou plusieurs fichiers des mots qui y sont contenus :

class Index 

  attr_reader :index

  def initialize
    @index = {}
  end

  def add_file_to_index(file_to_index)
    # pour chaque ligne du fichier, extraction des mots et indexation.
    File.open(file_to_index, "r") do |file|
      file.each_line do |line|
        line.scan(/\w[-'\w]+\w/) do |word|      # Recherche des mots dans 1 ligne.
          word.downcase!
          @index[word] = [] if @index[word].nil?
          @index[word].push(file_to_index) unless @index[word].include?(file_to_index)
        end
      end
    end
  end

  def search(word)
    @index[word.downcase]
  end

end
Un point faible à corriger dans le source montré ici, les caractères accentués ne sont pas pris en compte :(
Les sources de ce programme sont sous licence GPL, licence qui sera incluse dans le programme final qui sera librement utilisable et modifiable dans les termes de cette licence.

Envoyer un commentaire...

2006-08-14 : Sortie du livre "Debian GNU/Linux" aux éditions ENI

livre.debian.200
Figure 4: Livre Debian GNU/Linux version 3.1 (Sarge) - Administration du système

Agrandir l'image...

Livre sur l'administration du système Debian GNU/Linux, des bases d'un système GNU/Linux aux spécificités Debian pour une compréhension et une maitrise avancée.

Pour en savoir plus ...

Lire l'article...

editions_eni

Livre aux Editions ENI...

Envoyer un commentaire...

2006-08-13 : Projet GINK = Gink Interface Nettool Kit

savannah
Figure 3: GINK, un projet hébergé par Savannah

Il s'agit d'un vieux projet que j'ai arrêté en 2003. C'est principalement une interface graphique à un ensemble d'outils réseaux, faisant de ce logiciel une sorte de couteau suisse pour le réseau. D'autres projets similaires sont arrivés à maturité avant que celui-ci n'aboutisse.

Je le garde sous le coude, comme exemple de développement objet en langage Perl avec l'outil interactif de construction d'interface graphique Glade. Le code est propre, alors...

Description du projet...

Dépot CVS...

Le site de Savannah...

Envoyer un commentaire...

2006-08-12 : Comment se voient les programmeurs les uns par rapport aux autres!

Les programmeurs sont attachés à un ou plusieurs langages qu'ils considèrent de façon intrinsèque comme supérieurs aux autres. Un point de vue qui permet au développeur de se comparer aux autres. Le graphique qui suit illustre cet ensemble de points de vue non objectifs... ;)

programmer.hierarchy
Figure 2: Image sur lukewelling.com. License: inconnue

Ce clasemment très subjectif me séduit tout de même, les langages que j'ai longuement pratiqués se retrouvent plutôt en haut de tableau. Pour Ruby c'est en cours. Par contre, ayant utilisé le langage Ada pendant des années, je le mets beaucoup plus haut dans cette hiérarchie. C'est mon point de vue et ma nouvelle...

Envoyer un commentaire...

2006-08-10 : Mise en place d'un environnement de développement complet et léger pour Ruby on Rails

env.rails.devel.complet.300

Agrandir l'image...

Cet article décrit la mise en place d'un environnement simple mais néanmoins complet de développement Ruby et Rails. Il se termine par le traditionnel "Hello World" sous Rails pour s'assurer que l'environnement est bien en place.

Lire l'article...

Envoyer un commentaire...

2006-08-04 : HPUX 11i : Mise en place d'un nouveau service

Ces notes traitent de la mise en place d'un service sur HPUX. La version de HP-UX qui a été utilisée pour des tests est la 11i (B.11.11). La gestion des services est similaire sur la plupart des versions 10 et 11 de HP-UX.

Sont décrits ici la gestion des scripts de démarrage et d'arrêt de services, la gestion des niveaux d'exécution et à partir de quoi commencer à écrire un script de démarrage pour un nouveau service, ou bien, un service existant ne possédant pas de script de lancement et d'arrêt.

Lire l'article...

Envoyer un commentaire...

2001-01-01 : Archives: les autres brèves du site

août 2006 - juillet 2006 - mai 2006 - avril 2006 - mars 2006 - février 2006 - janvier 2006 - décembre 2005 - novembre 2005 - octobre 2005

Envoyer un commentaire...

Dernière compilation : today - Copyright (c) 2005 - 2006 Yann Le Thieis.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".