test de mudballs sbcl sur ma ubuntu

décembre 4, 2008

En faisant ma veille sur bloglines, je tombe sur un post de Sean Ross annoncant la sortie de Mudballs sur Lisp Planet. C’est un package manager pour Lisp. Ma dernière tentative d’installer hunchentoot avec ASDF ayant échouée, je décide de tester la chose.

L’install est super facile :

$ cd /usr/local

$ sudo wget http://mudballs.com/releases/mudballs-latest.tgz

$ sudo tar xzf mudballs-latest.tgz

Ensuite suffit de lire l’excellente et concise documentation de Mudballs. Sur ma ubuntu j’ai eu des CFFI:LOAD-FOREIGN-LIBRARY-ERROR car libssl.so n’existait pas. J’ai corrigé le pb avec un simple lien :

$ cd /usr/lib/ && sudo ln -s libssl.so.0.9.8 libssl.so

Et la bonne nouvelle c’est qu’hunchentoot tourne sans pb ! 🙂

Publicités

The revenge of the Unicode

septembre 30, 2008

Bon ce coup-ci c’est peut être la bonne, l’explication ultime (?) semble être ici.

Pour lire : Connaitre l’encoding (la repr binaire) de ce qu’on recoit, sinon on devine le plus proche et en fonction de la criticité de l’appli on bascule en ‘replace’ ou on gère au try except.

Pour écrire : ustr.encode(‘utf8’)

unicode_str = ascii_str.decode()

unicode_str = utf8_str.decode(‘utf8’)

unicode_str = utf8foireux_str.decode(‘utf8′,’replace’)


how to print python source code

septembre 30, 2008

use the force luke :

enscript -E –color -whtml –toc -pfoo.html *.py

source code avec highlight et printable via browser ! pas sympa ça ? Maintenant reste plus qu’a creuser la manpage pour faire une version postcript avec multiple page sur une A4, numéro de lignes, linewrap et tout le toutim… GNU rules ! 😉


firefox session restore

septembre 2, 2008

about:config

browser.sessionstore.enabled = true


5W1H – méthode d’analyse simple

juin 21, 2008

I have six faithful serving men

They taught me all I knew

Their names are What and Where and When

And Why and How and Who

— Rudyard Kipling

http://coe.jmu.edu/LEarningToolbox/5w1h.html

http://changingminds.org/techniques/questioning/5w1h.htm


rcs dirty howto

juin 17, 2008

$ cd blah

$ mkdir RCS

$ echo « # $Id$ » >> prog.py

$ ci -l prog.py

$ rlog prog.py

$ rcsdiff prog.py


custom vim syntax highlight (quick and dirty)

mai 12, 2008

Everything between brackets will be yellow.

: syn clear

: hi MyStuff ctermfg=yellow

: syn match MyStuf /\[.*\]/

If you wan’t to save this, put everything in a file under ~/.vim/syntax/mystuff.vim.

Add this at the end of the file you wan’t to highlight :

set vim: syn=mystuff:

That was quick’n’dirty ! 😉

I use this for highlighting timestamps on my text notes.


Joel Spolsky et Jeff Atwood en podcast

mai 9, 2008

J’ai écouté les 4 premiers podcasts de stackoverflow.com. Il s’agit d’une conversation entre Joel Spolsky et Jeff Atwood. C’est assez sympa comme truc, me fait pratiquer le british en allant au boulot. La qualité du son était bien pourrie mais elle s’améliore, un peu pareil pour le contenu. Cela dit Spolsky est un monstre, j’adore son coté « poil à gratter ». Par moment il bouscule tellement Atwood, que c’est à ce demander si le duo va résister bien longtemps 😉


Port de NetBSD vers AMD x86-64

mai 8, 2008

Un petit paper sympa de Frank van der Linden décrivant le port de NetBSD vers une architecture x86-64 ou l’on apprend notamment que ce port a pris en gros 6 semaines et c’est fait en 20440 lignes de C et 3735 ligne d’ASM soit en gros 800 lignes de code / jour en prenant des semaines de 5 jours.


Wake On Lan (WOL) et ma freebox

mai 5, 2008

Argh ! C’est toujours la même chose. A chaque fois que quelqu’un squatte mon canapé-lit, j’éteins mon serveur NetBSD parce qu’il fait un boucan d’enfer dans le salon et que moi ou mes invités auraient bien du mal à dormir avec ce buzz incessant. Résultat des courses, j’oublie de le rallumer le matin en partant au boulot et je me retrouve sans rien (ie: mutt, zsh, python, vim, reminder, mon bot jabber etc…).

Bref pour pouvoir allumer la machine à distance :

– Activer le proxy WOL dans l’interface de la freebox.

– Redémarrer la freebox.

– activer le wake on lan dans le bios de la machine concernée.

– sur le serveur $ ifconfig -a (récupérer l’adresse arp de l’interface)

Maintenant il suffit d’aller ici : http://www.depicus.com/wake-on-lan/woli.aspx (mask=255.255.255.255, port=9) pour allumer la machine a partir de n’importe quel navigateur 😉


Gutmann sound wave therapy

février 1, 2008

 » Whenever someone thinks that they can replace SSL/SSH with something much better that they designed this morning over coffee, their computer speakers should generate some sort of penis-shaped sound wave and plunge it repeatedly into their skulls until they achieve enlightenment.  »  Peter Gutmann


Cute timestamp with vim key mapping

janvier 13, 2008

With this in my .vimrc if I press CTRL and « : » a nice timestamp will automagically be inserted 🙂

imap ^_ <C-R>=strftime('[ %d/%m/%y %H:%M ] ')<CR>

lovely !

Best tutorial ever on key mappings under vim !!


unicode le retour…

décembre 22, 2007

Argh ! Mon script de synchro google calendar vient de crasher sur un caractère accentué.

http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

L’article de Spolsky je l’avais déjà lu à l’époque de sa publication et c’est une bombe, autant l’avoir sous la main 😉

http://www.amk.ca/python/howto/unicode

Celui là est bien aussi.


Synchronisation google calendar bidirectionnelle

octobre 16, 2007

Par rapport à ma dernière tentative de synchronisation, j’ai un peu simplifié mon setup : je n’utilise plus qu’un hp ipaq hw6915 (windows mobile 5). En fait à l’époque, j’étais en pleine transition entre un Palm TX et cet ipaq. Bref, je n’ai donc plus besoin de synchroniser avec le palm et palm desktop.

Pour avoir une synchro bidirectionnelle, j’utilise le logiciel oggsync qui fonctionne très bien (j’ai acheté la version pro), maintenant je peux indifféremment créer un rdv dans mon ipaq ou sur google calendar et la synchronisation se fera automatiquement une fois l’ipaq branché sur sa station d’accueil. All sweet and smooth 😉

Bon cela ne devrait pas durer bien longtemps… j’attends un blackberry en remplacement de l’ipaq 🙂


Quel process a ouvert cette #!@!?! de socket ?

octobre 9, 2007

Au départ mon client openvpn refuse de se lancer en grommelant que le port 1194 est « already in use » !! (j’ai mis un nobind dans la config depuis 😉 )

D’abord un petit « netstat -ao » nous donne ça:

netstat

Le « -o » de netstat nous donne le PID des process qui ont ouvert les sockets. Le « -b » donne directement le binaire (ex: sshd.exe qui a ouvert la socket), mais ça prends 10 plombes.

Quel est le process qui a bindé le port 1194 en udp ?!

Une fois le PID (1156, dans la colonne de gauche) en main un petit « tasklist » va nous dire de quel processus il s’agit: svchost.exe !

Un autre tasklist (« tasklist /svc /fi « imagename eq svchost.exe ») va nous donner la réponse:

tasklist

C’est « Dnscache » ! J’avais configuré mon openvpn avec les pieds 😉


Alien technology

septembre 21, 2007

Lisp anyone? Common Lisp tutorial

You asked for it Peter 😉


vim cut and paste problem

août 2, 2007

Sometimes when you paste code in vim (running in a terminal), lines don’t align themselves pretty well. To avoid this weird effect I use:

:set paste

vim paste

use :set nopaste to go back to the default config.


netbsd hang and net.inet.tcp.recvspace

juin 19, 2007

Quand ton interface ethernet a un comportement de weirdo, il faut parfois lui rappeler qui est le boss:

cat /etc/sysctl.conf
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536

Je viens juste de faire la modification (sur ces buffers par défaut on est à 32K) En espérant que cela ne m’explosera pas à la figure parce que je n’ai pas franchement étudié le problème…

En gros, le serveur de mail, en fonction de la charge avait un comportement bizarre (réseau et I/O ), après quelques investigations, et sans vraiment y croire, on ajoute une nouvelle carte réseau. Et là, miracle, ca tourne mieux, et j’ai même un message du pilote qui me dit que j’ai plus assez de place dans mon rx buffer.

Donc pour faire court, le pilote de la première carte ethernet plantait toute la stack ip sans rien dire, le pilote de la nouvelle carte lui « downgrade » pas trop mal et en plus donne quelques infos sur le problème.

La modification de sysctl.conf devrait régler le problème de charge, wait’n’see. 😉

update du 31.07.07: So far so good, le pb de charge a disparu !


Synchronisation Google Calendar

avril 26, 2007

Bon je sens que ca va être long et chiant mais je voudrais trouver le moyen de synchroniser mon gcal avec un tas d’autres machins : palm desktop, palm tx, hp ipaq 6915 sous windows mobile 5, entre autre…

A priori selon mes premières googlisations, ca va être velu et probablement « usine à gaz ». Alors commencons petit avec une synchronisation (one way) de gcal vers mon ipaq avec gmobilesync :

PROS

  • gratuit
  • n’utilise pas activesync (en gros à partir du moment ou le ipaq a accès à internet c’est ok)

CONS

  • petit coté « amateur » qui me fait douter de la pérennité de la solution, bref première brique d’une belle « usine à gaz »
  • synchronisation uniquement dans le sens GCAL vers PDA
  • ne gère pas les multiples calendar

L’installation est ultra simple, il suffit de:

Downloader le framework .Net 2.0 (oui je sais c’est bloated! mais bon seule une infime partie des 31 megs est envoyée sur le PDA) et de lancer le wizard d’install qui gère la totale tout seul.

Copier/coller le cab de gmobilesync (cf link plus haut) sur le PDA, lancer le cab à partir du PDA et basta ! done.

La configuration est easy, juste le login/pass à saisir et ya plus qu’a lancer la synchronisation. Chez moi ca fonctionne avec la v1.2 de gmobilesync.

C’est maigre, mais c’est un début. La prochaine version de gmobilesync devrait fonctionner en two-way sync.


postfix filter (builtin)

avril 3, 2007

Yay!


# grep header_checks /etc/main.cf
header_checks = regexp:/etc/postfix/header_checks

Then


# cat /etc/postfix/header_checks
/^Subject:.*R0407z2 postfix$/ REDIRECT root@localhost

finally


# postfix reload

Now every mail subject ending with « R0407z2 postfix » will be redirected to root@localhost, the original recipient won’t receive the mail.

You can reject, hold, redirect the mail etc. All you need is here and there.