jbbarth's

Ce soir je m’ennuie seul à la maison, alors j’ai décidé de prendre soin de mon PC principal :

  • j’ai installé conky, après l’avoir vu dans cet article ; j’ai le même .conkyrc que le monsieur à une vache près, et c’est vrai que ça rend pas mal =) Réservé à mon PC principal, car autant ça rentre bien sur un 22", autant sur un NC 10 et son écran de 10" ça ne va pas le faire. J’ai bien sûr pushé mon .conkyrc sur mon espace github héhé^^
  • je me suis posé des questions sur mes sauvegardes ; en particulier je me demande si utiliser un service type Dropbox est intéressant (cf un article que j’ai croisé récemment ici)
  • j’ai hésité à passer en karmic ; le seul truc dont j’ai peur, comme d’habitude, c’est le support des pilotes Nvidia. En cours de réflexion…
  • … hey ! mais j’ai un serveur à sécuriser moi !
Comments: 0 (view/add your own) Tags: tech, ubuntu

Ce post fait suite à celui-ci.

Tout d’abord, on installe Redmine classiquement ; je passe volontairement les aspects DNS (création d’un sous-domaine, en l’occurence wiki.jbbarth.com), Apache (création du vhost), et “système” (script de démarrage de Mongrel, user et port adéquats, ce genre de choses) :

cd /home/app/jbbarth/
svn co http://redmine.rubyforge.org/svn/trunk _redmine-0.8-wiki
ln -s _redmine-0.8-wiki wiki
cd wiki/
rake db:migrate
rake redmine:load_default_data
rake config/initializers/session_store.rb

Après démarrage, on procède à une configuration basique de Redmine :

  • modification du user/pass admin
  • configuration générale dans Administration > Settings
  • création d’un projet public “wiki”, identifiant “wiki” ; tous les trackers décochés, et tous les modules sauf le module “wiki”
  • dans ce projet, on configurera la “Start page”, et surtout on la créera/remplira (sous peine d’avoir des erreurs 404 dans la suite)

Là commencent les choses “sérieuses”. Que voulons-nous ?

1) que l’accueil de Redmine se fasse sur la page de démarrage du wiki du projet “wiki”
Pour cela, nous allons éditer config/routes.rb, et remplacer l’accueil défini à la ligne “map.home” par :

  #map.home '', :controller => 'welcome'
  map.home '', :controller => 'wiki', :id => 'wiki'

Après redémarrage de l’instance, ça fonctionne !

2) suppression des liens inutiles pour un wiki ; en particulier la première tab “Overview/Aperçu”, et “Projects/Projets”, “My page/Ma page” et “Help/Aide” dans le menu en haut à gauche (nous n’aurons qu’un seul projet “wiki”)
Pour cela nous allons créer un thème à nous et cacher ces liens via du CSS, ce qui me parait bien suffisant : ils ne représentent aucun “danger”, c’est juste qu’ils perturbent la navigation dans le cadre d’une utilisation wiki-only. Voir donc ici pour la création d’un nouveau thème, et éventuellement ici pour des exemples de thèmes.
Nous créons donc un thème “wiki”, puis quelques lignes suffisent à la fin de public/themes/wiki/stylesheets/application.css :

/* Specific to wiki */
#top-menu .my-page, #top-menu .projects, #top-menu .help { display:none; }
#main-menu .overview { display:none; }

3) passage des patches cités dans l’article précédent

cd /home/app/jbbarth/wiki/
mkdir patches

a) passage de CodeRay à UltraViolet :

wget -P patches http://www.redmine.org/attachments/download/1698/syntax_highlighting.diff
patch -p0 < patches/syntax_highlighting.diff
wget -P patches http://www.redmine.org/attachments/download/1699/redcloth.diff
patch -p0 < patches/redcloth.diff
wget -P patches http://www.redmine.org/attachments/1700/ultraviolet_highlighter.zip
cd patches/
unzip ultraviolet_highlighter.zip
cat ultraviolet_highlighter/README.txt
apt-get install libonig-dev
gem install ultraviolet
cp -a ultraviolet_highlighter ../vendor/plugins/
cd ..

Les traductions ne sont pas bien passées, donc on édite à la main config/locales/en.yml et fr.yml, et on supprime les fichiers “.rej” correspondants.
b) pages parent automatiques :

wget -P patches http://www.redmine.org/attachments/download/2082/3108_automatic_parent_with_tests.diff
patch -p0 < patches/3108_automatic_parent_with_tests.diff

c) correction d’un petit bug de Redcloth :

wget -P patches http://www.redmine.org/attachments/download/1728/redcloth_arobas.diff
patch -p0 < patches/redcloth_arobas.diff

d) système de tagging :
Il y avait un patch proposé ici, mais il ne correspond pas vraiment à ce que je veux. Voici quand même une méthode pour l’appliquer sur une copie de travail SVN :

wget -P patches http://www.redmine.org/attachments/download/2060/wiki_page_categories_20090520.patch
sed -i -e 's#- redmine.orig/#- #g' -e 's#\+ redmine/#+ #g' -e 's#diff.*\.orig/\([^ ]*\).*#Index \1\n===============================================#g' patches/wiki_page_categories_20090520.patch
patch -p0 < patches/wiki_page_categories_20090520.patch
rake db:migrate

Après toutes ces modifs, on se rend compte que certains patches ne sont pas bien passés :

find . -iname "*.rej"

Normalement avec cet ordre de passage des patches, il n’y a que lib/redcloth3.rb dont on résoud les conflits à la main.

Voilà, hormis le système de tagging on a un wiki fonctionnel. Je ferai un nouveau post si je trouve quelque chose pour le support des tags. Il ne reste plus qu’à le remplir maintenant !

EDIT
- pour que l’activité du projet prenne en compte les changements du wiki par défaut : éditer lib/redmine.rb, et modifier autour de la ligne 155/156:

-  activity.register :wiki_edits, :class_name => 'WikiContent::Version', :default => false
+  activity.register :wiki_edits, :class_name => 'WikiContent::Version', :default => true

- la même option permet que les recherches prennent en compte les entrées du wiki sur le projet courant
- pour cacher la liste déroulante de sélection des projets dans la recherche : édition de public/themes/wiki/stylesheets/application.css, ajout de :

select#scope { display:none; }

EDIT2
J’ai changé l’ordre de passage des patches pour avoir le moins de choses possibles à résoudre à la main.

En ce moment j’ai trop d’articles techniques à publier, souvent trop en bazar, ou trop long pour être publiés dans une demi-colone de ce blog. De plus je risque de quitter mon boulot dans quelques mois, et tout ce que j’ai pû documenter là-bas sera perdu pour moi si je ne le récupère pas avant. Bref, j’ai besoin d’un wiki, simple d’utilisation, avec suivi des révisions, formatage en Textile, un peu comme celui de Remine.

Une contrainte supplémentaire, qu’il soit en Ruby on Rails, éventuellement Merb. Pas par idéologie, croyance en REST, ou quelconque connerie de ce genre (et certains en tiennent une couche à ce niveau quand on voit la liste rails-france), mais plutôt parce que j’en ai marre de maintenir 50 technos hétérogènes sur mon serveur. Mon blog, mon gestionnaire de projets tournent déjà en Rails. Ce sera bientôt le cas du site chanmasters.com que je réécris en ce moment. Bientôt le cas également de ma gallerie de photos, qui tourne déjà avec des scripts ruby mais pas administrable en mode web. Donc dommage pour Dokuwiki qui a priori me convenait parfaitement…

J’ai essayé Instiki sans être réellement convaincu, je ne saurais pas bien expliquer pourquoi. Et puis, j’aurais des modifs à faire dessus pour qu’il me convienne (templates trop épurées à mon goût, affichage “geeky” de certains champs, etc…). Ce qui implique un petit peu d’exploration du code, cf la suite. Je n’ai pas trouvé d’autres projets très actifs en Rails et qui me convienne (liste ici)…

En fait, le wiki de Redmine me convient parfaitement. Facile à “hacker” (je commence à connaître un peu le code même si je suis loin d’être un gourou comme les 3 ou 4 grands contributeurs réguliers), maintenu, communauté active, support de textile entre autres, jolis diff, etc. Nickel, à 4 petites choses près :

  1. le support Textile est un peu foireux parfois ; voir ici
  2. la coloration syntaxique est hideuse, j’aimerais bien remplacer CodeRay par autre chose ; voir ici
  3. j’aimerais bien que les hiérarchies soient faites automatiquement, quitte à rendre l’arborescence un peu profonde, pas grave ; voir ici
  4. j’aimerais bien un système de tags avec un nuage sur le côté ; voir ici, ici et ici

Bref, ça sent bon, et le choix est tout fait ; je documenterai dans le prochain article l’installation et la configuration de Redmine pour me servir de wiki :-)

J’avais évoqué ici la synchronisation de dépôts Git (en l’occurrence Github mais ça n’a pas d’importance).

Mais voilà, ça ne fonctionnait plus tout à fait après migration de serveur, et ce n’était pas très clair pour moi honnêtement. Alors j’ai de nouveau regardé sur le wiki de Redmine et trouvé cet article qui décrit les choses très bien.

Seule différence, j’utilise les branches sous Git, et ce mode ne synchronise que la branche principale (“master”, ce que l’on appellerait le “trunk” sous subversion).

Initialisation de mon dépôt:

cd /var/redmine/git_repositories/
git clone —bare git@github.com:jbbarth/project.git project
cd project
git remote add origin git@github.com:jbbarth/project.git
git fetch -v

Ajout de ceci en CRON:

#sync of my github repos for redmine
*/10 * * * * /var/redmine/git_repositories/sync_repositories.sh >/dev/null

Et le petit script qui va bien:

#!/bin/sh

base=$(dirname $0)
[ "$base" == "." ] && base=$(pwd)

cd $base
for repo in $(ls -F |fgrep "/"); do
  cd $base/$repo
  git fetch origin
  for branch in $(ls refs/remotes/origin/); do
    git reset —soft refs/remotes/origin/$branch
  done
done

Youpi!

Impossible de dormir correctement cette nuit. Deuxième jour. Tu te tournes dans ton lit, tu comptes les moutons, tu fais un calin au ragondin, l’ennui quoi.

Bon, le monde va mal :

  • le pape serait un ancien nazi, mais bon, on s’en fout un peu, ils l’étaient tous à cette période, c’était une mode, comme les tamagochis dans le début des 90’s
  • la loi Hadopi est passée à l’Assemblée. Elle passera au Sénat, vu que le PS s’abstient. Reste le conseil constitutionnel, mais soyons réalistes, il y a peu de chances. Cela dit, avant que ce soit appliqué… Bref, Albanel devrait être condamnée à la Réclusion à la Honte Perpétuelle ; tant de mauvaise foi, de mensonges, d’incompétence, ça ne devrait pas être permis à un si haut niveau.
  • que le site soit en effet piraté ou non, ça la fout mal : Rachida Dati, qui est quand même ministre, insulte Elizabeth Guigou en direct sur le site internet du ministère de la justice : ahah et ahah. Quand même, fallait oser: Compte tenu de l’intelligence de Mme Guigou, celle-ci devrait déroger au principe archaïque selon lequel tout prédécesseur mésestime ses successeurs.
  • le monde entier est en crise ; il y a 50000 chomeurs de plus tous les mois en France ; et ça fait deux mois qu’on nous casse les coui*lles avec Continental, soit … 1000 péquins. Ok c’est super triste, mais c’est la vie les mecs, arrêtez de nous les briser et on passe à autre chose là. En plus on les prévient, et ils touchent des indemnités. Les 49000 autres ont pas cassé une sous-préfecture et mis le feu partout où ils pouvaient. Même combat pour Molex et autres hein.
  • ah et puis la grippe du cochon. Parlons-en. Encore un truc qui fait trembler dans les chomières. Heureusement qu’on regarde “C dans l’air” pour se rendre compte que les spécialistes savent que c’est chaotique et restent sceptiques face à tout ça.
  • Ferrari et Renault risquent de quitter la F1 ; wow ça doit être la crise ! Ah mais non, lisez bien : ils boudent parce qu’on veut limiter leur budget à 45 millions d’euros la saison prochaine, et comme actuellement ils dépensent beaucoup plus, ils ont peur de ne pas avoir le temps de se retourner. Ahah.
  • il est 7h et j’ai dormi 3h en tout. En pointillés. Et merde ; hop, au boulot :-)

Envie de changement sur mon NC10, je suis donc passé à XFCE, plus léger que GNOME, et, maintenant que je l’ai sous les yeux, aussi plus joli :-)

J’avais plusieurs problèmes à première vue :
- dans un terminal xfce, screen ne voyait plus la touche “retour arrière” ; après un peu de recherches, j’ai trouvé cet article, et ça remarche.
- les touches Fn liées au son ne fonctionnent pas ; via la page d’aide de la communauté, je suis tombé sur cet article, et en particulier sur le script Python fait par son auteur. La commande proposée amixer—sset Master 100% fonctionne bien, reste que j’aimais bien la petite notification en transparence. Bref, je ne vais pas reprendre tout le boulot du monsieur vu que pour mon utilisation, tout fonctionne à part ça ; d’autant que c’est un peu lourd et non packagé. J’essayerai d’éditer ce post dès que je trouve la soluce pour rétablir l’ancien comportement sous Gnome :-)

EDIT: bon bah, les fn keys pour le son fonctionnent. Ca m’énerve un peu parce que je ne sais pas ce que j’ai fait pour, mais je profite ; xfce est un pur bonheur!