Trucs de geek

NetBeans, mon nouvel IDE préféré ?

Posted on octobre 18, 2007

Je suis en train de tester NetBeans 6, en particulier pour mon développement Ruby on Rails.

Parmi les fonctionnalités les plus intéressantes (lire : celles qui me manquaient sur TextMate), on trouve

  • l’intégration du debugger Ruby, qui fonctionne comme ça doit (un breakpoint dans la marge, l’exploration de la pile, les watchs et tout)

  • la complétion ; plutôt intelligente pour une complétion de langage dynamique (donc plus dure à implémenter que pour Java)

  • le support de Ruby on Rails : support du script generate (bon ok, c’était déjà dans TextMate, mais si je change, je ne vais pas revenir en arrière), templates RJS, RHTML etc.

  • support Subversion natif. Comme ci-dessus, c’était déjà dans TextMate et dans Eclipse, mais je vais pas cracher dessus non plus …

J’avais testé une béta précédente qui ne m’avais pas autant impressionnée, mais là, respect, Sun.

Et pour finir, embarqué avec NetBeans, JRuby 1.0.1.

Maintenant, il va falloir voir à l’usage, et sur la longueur, le test des 3 minutes est réussi :)

Slides sur OLAP

Posted on octobre 09, 2007

Voici les slides du cours sur OLAP que j’ai donné cette semaine à l’ECE. Ce cours dure en gros 1 heure.

Ces slides sont basé sur le site de Bernard Lupin, Osez OLAP !, que je vous invite à consulter.

Ils s’accompagnent d’une démonstration sur Pentaho Mondrian, un serveur OLAP open source en Java.

Serveur dédié Team Fortress 2 sous Linux

Posted on octobre 06, 2007

Le serveur Djudge! Team Fortress 2 tourne. Sur le serveur qui vous sert en ce moment ce billet.

Vu que c’est basé sur le moteur Source, j’imagine que tous les admins de CS:S savent déjà tout ça, mais j’ai un peu lutté, donc je résume.

On choppe Steam et on télécharge le serveur de TF. C’est gros, vu qu’on télécharge aussi Half-Life 2.


sudo mkdir /usr/local/steam
cd /usr/local/steam
sudo adduser steam
sudo chown steam /usr/local/steam
sudo su steam

wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
# tapez yes
chmod +x steam
./steam -command update -game "tf" -dir 

il faut reprendre la dernière ligne plusieurs fois, parce qu’on se fait déconnecter.

Ensuite il faut ouvrir les ports du firewall.

J’utilise iptables-restore et iptables-save pour respectivement charger et dumper mes règles à partir de l’entrée standard.

Voici les règles que j’ajoute à mon fichier /etc/iptables.up.rules


#Source server
-A INPUT -p udp -m udp --dport 1200 -j ACCEPT
-A INPUT -p udp -m udp --dport 27000:27015 -j ACCEPT
-A INPUT -p udp -m udp --dport 27020 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27030:27039 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27015 -j ACCEPT
# a placer avant cette ligne :
-A INPUT -j DROP
# et les autres DROP

Qu’on charge ensuite avec :


sudo iptables-restore < /etc/iptables.up.rules

Pour finir on lance le serveur :


cd /usr/local/steam/orangebox
./srcds_run -console -game tf +ip ip -port port +hostname "Mon serveur" +maxplayers 24 +map ctf_2fort

Le serveur doit indiquer à un moment qu’il se connecte sur les serveurs steam, et c’est bien.

Une fois qu’il est lancé, la console reste accessible pour donner des commandes (kick/ban user etc)

La liste des commandes peut être affiché avec :


cvarlist mp
# et
cvarlist sv

On peut les sauver dans un fichier log avec


cvarlist log listecvar.txt
Il est donc recommander de lancer le serveur dans un terminal virtuel comme `screen`.

screen 
./srcds_run -console -game tf +ip ip -port port +hostname "Mon serveur" +maxplayers 24

Avec : control-a-d pour se déconnecter du terminal et screen -r pour se ré-attacher au terminal.

Sources : le forum de http://www.teamfortress2.fr/

Beyond Relational : cours donné à l'ECE

Posted on octobre 02, 2007

J’ai appris tardivement que je devais donner un cours de base de données de 3h aux élèves de dernière année en spécialisation SI.

Elèves que j’avais eu l’année dernière, on avait passé une trentaine d’heures sur les SGBD, et j’avais envie de changer de sujet …

Du coup, j’ai préparé un cours que j’ai appelé sans peur “Beyond Relational : Large Dataset / Phat throughoutput”. (Oui, les slides sont en anglais, je ne savais pas non plus si le cours devait être en français ou en anglais).

Les sujets abordés :

  • la montée en charge des bases relationnelles pour les applications web, et comment la gérer,

  • les algorithmes et l’architecture de Google : the almighty MapReduce, GFS, BigTable et Sawzall,

  • Erlang/OTP et Mnesia, et une implementation de MapReduce en Erlang,

  • CouchDB qui est un sujet bien chaud en ce moment.

Ci-joint mes slides, qui évidemment ne font qu’accompagner le discours (ca me fait trois heures, hein).

Toutes mes sources sont listés sur le dernier slide, donc.

Mon objectif caché derrière ce cours était aussi d’ouvrir ces élèves, qui vont bientôt se retrouver dans les DSI de leur rappeler que Java et Oracle n’est pas la seule et unique réponse à tous les problèmes ;)

La semaine prochaine j’ai encore 3 heures avec les mêmes. Je ne sais pas encore quels sujets je vais aborder, le responsable d’option a l’air de tenir à une intro sur OLAP, donc au moins un peu de ça. Et ptet bien un concours de vitesse de réalisation des TP de l’année dernière :)