Vocabulaire leçons 1 à 8

J’ai mis online une version mise à jour du fichier de vocabulaire, il contient à présent le vocabulaire des leçons 1 à 8. Les fichiers sont accessibles au formats habituels:

  • Vocabulaire au format HTML.
  • Vocabulaire au format RTF.
  • Vocabulaire au format PDF.

Il faudra à l’occasion que je revoie les verbes pour les mettre les verbes dans une autre forme, pour l’instant il sont dans la forme masu, mais j’attendrais qu’on ai vu cela en cours.

flattr this!

Nouveau filtre à spam

Un petit post pour annoncer que j’ai mis en place un nouveau filtre à Spam, hash cash, pour l’instant ça a l’air de fonctionner sans encombres. Le principe de ce plugin est que pour poster, le client doit calculer un hash un peu complexe, i.e ça coûte du temps CPU pour poster. Nous verrons si cela arrêtera les spammeurs…

flattr this!

Le mythe de la simplicité

Une des choses que j’entends très souvent dans le contexte de l’informatique est que le programme ou le système X est trop compliqué. Tout à chacun en informatique aspire a la simplicité. Le gros problème, c’est que la simplicité ne vient pas gratuitement. Pour pouvoir faire simple, il faut souvent avoir fait compliqué d’abord, souvent quand quelqu’un se plaint qu’un système est trop compliqué c’est qu’en fait il ne le comprend pas.

Things should be made as simple as possible – but no simpler.

A. Einstein

Beaucoup de gens pensent qu’un système simple est plus facile à utiliser. C’est vrai dans une certaine mesure, mais c’est aussi un piège: la simplicité implique en général la pureté dans les objectifs, i.e qu’il y a une manière claire et unique d’utiliser l’objet. Donc à moins d’avoir fait cet objet, il faudra s’adapter à lui. Dans la pratique les gens ne veulent pas faire cela. Cela se retrouve dans les langages informatiques et les systèmes, les gens n’utilisent pas des systèmes “purs”, mais des systèmes baroques qui acceptent de nombreuses manières de travailler et tout le monde se plaint que c’est trop compliqué…

flattr this!

Cible mouvante

De nos jours, tout le monde a sa propre distribution Linux. Le ne fait pas exception à la règle, et utilise (SLC), ou plutôt une variante de celui-ci. Elle est basée sur la Red Hat Entreprise Linux. La version 3 que nous utilisons est basée sur le noyau 2.4, la version 4 devrait utiliser le noyau 2.6, mais je ne pense pas qu’elle sera adoptée par le CERN dans un futur proche.

Le gros problème que j’ai avec Linux et ses pléthore de distributions, c’est que cette variété fait de Linux une cible mouvante. Hier, nous avons passé une machine de Red-Hat 7.3 à SLC3, si l’installation du CERN s’est bien passée, quand il fallu synchroniser la machine avec le serveur NIS de l’étage, les problèmes on commencé. Heureusement ce n’est pas moi qui ait du m’en occuper. L’installation finalement terminée, il a fallu réinstaller un des outils que j’utilise pour synchroniser les file-systems, , le problème consistait à chercher un RPM pour installer ce programme. Naturellement, le CERN n’a pas de répertoire de RPM compatibles avec sa distribution, donc je me retrouve à chasser le RPM compatible avec SLC. Après un nombre appréciable de références sur des fichiers introuvables ou incompatibles, j’ai fini par trouver mon bonheur, sauf que c’est une version 2.9 d’unison, qui n’est pas la plus récente, et qui est destinée à Fedora, les version pour entreprise Linux me donnant des erreurs de links.

Ce n’est pas un cas isolé. un autre cas qui m’a énervé est le manuel de la fonction strerror. En gros, le man me donne deux prototypes incompatibles pour la version récursive strerror_r

Le premier prototype (compatible avec POSIX) est:
int strerror_r(int errnum, char *buf, size_t n);

Mais une note me donne un second prototype:

strerror_r() with prototype as given above is specified by SUSv3, and was in use under Digital Unix and HP Unix. An incompatible function, with prototype char *strerror_r(int errnum, char *buf, size_t n); is a GNU extension used by glibc (since 2.0), and must be regarded as obsolete in view of SUSv3. The GNU version may, but need not, use the user-supplied buffer. If it does, the result may be truncated in case the supplied buffer is too small. The result is always NUL-terminated.

Le problème, c’est que le manuel ne donne aucune moyen de savoir dans quel cas je suis – pas une misérable macro pour pouvoir mettre une compilation conditionelle, rien. Par défaut, gcc compile avec la seconde version (qui est propre à la libc GNU), qui n’est pas portable. Donc je me retrouve à devoir me taper la version obsolète.

Un autre exemple d’idiotie de la libc gnu m’est apparu quand j’ai cherché l’équivalent Linux de la fonction funopen, elle existe! Elle s’appelle fopencookie, le problème c’est qu’elle n’a pas de page de manuel, et impossible de trouver les headers pour l’inclure. Comme je voulais utiliser cette fonction dans un exercice au Tech d’Yverdon, j’ai du me résoudre à donner aux élèves une version refaite du header histoire que le projet ne compile pas avec trop de warnings. Après leur avoir fait la morale sur le fait que leur code ne devrait pas en faire, j’aurais eu l’air fin.

Ce genre de problèmes rend le travail avec linux très fatiguant. Je ne dirais pas que les autres Unix n’ont pas leur idiosyncrasies, ou que le manuel est toujours parfaitement à jour (sous Mac OS X, il date souvent de Next et sous Solaris, les APIs POSIX étaient bien cachées), mais sous Linux, le problème est décuplé car de ce point de vue, chaque distribution est une bête à part, avec ses propres problèmes, d’autres sources de documentation et d’autres sources pour les binaires. En plus, la structure floue de Linux fait que c’est toujours un problème d’un autre composant, c’est un problème de noyau, de la version de la libc, de la distribution, etc…

En plus la proposition que j’ai le plus généralement trouvé pour résoudre ce problème est de changer de distribution. Cela peut régler mes problèmes à court terme, mais certainement pas un problème important de Linux selon moi qui est que c’est réellement une cible mouvante…

flattr this!

Birthday Tool

J’ai terminé le petit programme que j’avais mentionné dans mon entrée de blog précédente. Le programme est à considérer comme en version alpha, i.e si ça saute, il ne faudra pas venir pleurer. Le programme s’appelle BirthdayTool. Il lit tous les dates de naissances dans l’Address-Book de Mac OS X et génère un calendrier avec tous les anniversaires. Pour l’utiliser, il suffit de l’installer dans son path et de taper:
BirthdayTool -o fichier

Par exemple, pour créer un calendrier partagé: BirthdayTool -o ~/Sites/birthdays.ics

Si le partage web est activé, il suffit alors de configurer iCal pour lire ce fichier à l’url suivante:

webcal://127.0.0.1/~username/birthdays.ics

Mise à jour: J’ai mis online une archive avec le code source.

I have just put online the first version of a small utility BirthdayTool, this tool generates a calendar file out of the birth dates in the Mac OS X AddressBook. To use it, simply put it into your path and type:

BirthdayTool -o file

For instance to build a shared calendar: BirthdayTool -o ~/Sites/birthdays.ics

If web sharing is enabled, the calendar will now be available for iCal at the following url:

webcal://127.0.0.1/~username/birthdays.ics

This program should be considered alpha version, i.e if it breaks something don’t cry. If anybody is interested in the source code, simply tell me. If you want to customise the text fields, do a BirthdayTool -h to get a list of all options.

Update: Here is an archive of the source code. The code would need some cleanup.

flattr this!

Jeu nippon

Aujourd’hui, la suite de notre grand jeu, les mots Anglais en Japonais. Comme la dernière fois, c’était trop facile, aujourd’hui, il n’y a pas de thème particulier, les mots sont en général des objets ou des concepts communs.

  1. haihīru
  2. bābekyu
  3. binīru
  4. pīnatsu
  5. futtobōru
  6. burausu
  7. puraibēto
  8. herikuputā
  9. besutoserā
  10. peidē
  11. hōmushikka
  12. botan
  13. boikotto
  14. popyurā
  15. hyūmanizmu
  16. byūtisaron
  17. pyūritan
  18. fainaru
  19. fianse
  20. feapurē
  21. festibaru
  22. fōchyun

Comme la dernière fois, il s’agit en fait de mes devoirs de Japonais de l’École Club Migros. Pour ceux qui viennent de rejoindre nos programmes, quelques principes: ‘e’ se prononce ‘é’, le u est quasiment muet, les voyelles accentuées sont longues, le ‘r’ et le ‘l’ sont interchangeables, ainsi que le ‘b’ et le ‘v’.

flattr this!

Synchronisation

Visualisez des personnes en costumes moulants et colorés criant Synchronisation en faisant des vagues mouvement d’art martiaux. C’est fait ? Ça n’a aucun rapport avec ce dont je vais vous parler aujourd’hui.

devrait sortir une nouvelle version de son système d’exploitation, Tiger, cet été. Cette nouvelle mouture comportera un certain nombre de nouvelles technologies, mais celle que j’attends avec le plus d’impatience est sync services. Ces services permettent d’ajouter des plugins à l’application iSync.

La chose la plus importante dans mon ordinateur n’est pas le système d’exploitation, ni même les applications, mais les données. Il y a dans mon disque dur des fichiers vieux de plusieurs années. Je peux toujours ré-installer des programmes ou le système d’exploitation, mais je ne peux pas régénérer mes données. Cela veut dire faire des backups, des copies, etc… Non seulement je veux garder mes données j’aimerais aussi les garder à jour, notamment en ce qui concerne mes listes d’adresses, calendriers etc.

Pour garder mes données, j’utilises plusieurs outils. Le premier est le programme , ce programme permet de synchroniser deux système de fichiers. J’aime bien ce programme car il est simple et flexible, a des sémantiques de copie claire, et peut travailler à travers une connection ssh. Je l’utilise pour synchroniser mes fichiers depuis le laptop, avec différentes machines linux au et à l’, mais aussi un disque externe pour les backups.

L’autre outil que j’utilise pour synchroniser des données est iSync. Ce programme synchronise mes calendriers et mon carnet d’adresse avec mon iPod mais aussi le serveur Exchange du CERN (seulement pour le carnet d’adresse malheureusement). De fait, il y a beaucoup d’autres choses que j’aimerais pouvoir synchroniser avec iSync:

  • Mes calendriers sur le serveur exchange
  • Mes addresses sur mon téléphone mobile – mon misérable Ericson T28s n’est pas supporté par iSync, je soupçonne qu’il ne supporte même pas les transferts de données.
  • Mon téléphone fixe (même remarque).
  • Mes addresses avec mon compte gmail
  • Mon carnet d’adresse avec les serveurs de pages blanches, en clair, j’aimerais que le système cherche à compléter mon carnet d’adresses, trouvant les numéros de téléphones d’après les addresses ou vice-versa.
  • Mon carnet d’adresse avec un serveur LDAP d’entreprise, j’aimerais bien que si une personne se trouve dans mon carnet d’adresse, les informations professionelles soient complétées à partir des données LDAP.

Je ne veux pas simplement pouvoir copier les données à la création, la plupart de ces données changent et ce qu’il faut c’est un mécanisme de synchronisation.

En attendant, j’ai déjà écrit un petit programme qui permet d’exporter les dates de naissances du carnet d’adresse sous Mac OS X sous la forme d’un calendrier au format ics. Je le mettrais online quand le code sera un peu nettoyé.

flattr this!

What’s in your menubar?

There is an funny meme going on, two blogs, Hicks Design and the Unnoffical Apple Blog are asking people what people have in their Mac OS X menu-bars. So here goes nothing:

My menu Bar

In my case, I have GMailStatus that displays unread mail in my Gmail account., Meteorologist that display the weather, Smart Reporter that displays the S.M.A.R.T status of my hard-drive, plus the classical elements: Cardbus status, bluetooth, security, airport, screens, volume, Swiss French Keyboard – ready to switch to Katakana or Hiragana, clock and battery power.

flattr this!

Veniss Underground

Ces jours, j’ai de grosse complications avec l’administration, ce qui me stresse complètement. Pour essayer de me détendre, j’ai commencé à lire Veniss Underground, de Jeff Vandemeer. Je l’ai fini. J’avais beaucoup aimé City of Saint and Madmen. Veniss Underground est très similaire et très différent à la fois, très similaire car on retrouve le même environnement urbain baroque et décadent, aussi présent dans les livres de China Mieville, comme Perdido Street Station.

Néanmoins Veniss Underground est somme toute assez différent de City of Saint and Madmen. D’abord s’il y a une ressemblance certaine entre le décor, les personnages (notamment l’importance des artistes et de leur millieu), Veniss Underground est beaucoup plus un roman de science fiction, avec des machines avancées, des bricolages génétiques alors que le livre précédent était beaucoup plus dans la veine Steampunk. Le roman tourne autours d’un triangle de personnage, l’artiste raté, sa sœur, l’ex-amant de celle-ci, un rescapé des niveaux inférieurs de la ville. Tous trois gravitent autours d’un mystérieux généticien. La description de la ville et des personnage se mue en descente dans les enfers, tous trois tirés vers les entrailles de la ville par l’artiste déchu.

La narration de Jeff Vandemeer est très riche, avec beaucoup de très bonne idées, la descente dans la ville est une belle reprise du thème de la descente dans les enfers. J’ai beaucoup aimé les personages (contrairement à China Mieville qui décrit des personnages vaguement antipathiques et inintéressants), qui malgré l’évolution du monde autours d’eux sont centrés sur leur propres problèmes et dilemmes.

En bref, c’est un livre dont je recommande la lecture.

flattr this!

Circuit cachés

The Register a un article intéressant sur les entrailles du Mac Mini, en gros, il y a des connections firewire qui ne sont pas utilisées. Ces connections pourraient servir à implémenter un dock d’iPod, mais une autre possibilité serait de connecter un tuner vidéo.

Le fait qu’un ordinateur contienne des circuits cachés qui ne sont pas en service peuvent sembler étrange, mais c’est souvent le cas. Lorsqu’un ordinateur est conçu, un certain nombre d’options sont envisagées, et elles sont planifiées. Il arrive que pour des raisons techniques ou politiques, ces capacités ne sont jamais utilisées. Parfois les capacités sont simplement inutilisables, parfois il suffit des les activer par le software, parfois, il faut ajouter quelques câbles. Mon premier Mac classic avait la possibilité de booter sur un image de disque gravée dans la ROM. Lors de sa conception il avait été envisagé qu’elle puisse être utilisée comme une station diskless. Le code était présent dans la ROM, mais cette capacité n’a jamais été annoncée par Apple et rarement utilisée, sauf par quelques initiés qui utilisaient cela pour debugger la machine.

Les Power-macs G3 beiges regorgent de tels circuits. Conçus avant le retour de Jobs, leur carte mère avait été conçue pour être utilisée dans des clones. Elle peut donc recevoir du courant d’une alimentation ATX, et peut se connecter à un lecteur de disquettes PC. L’ironie c’est que la puce de contrôle du lecteur de disquette était tellement complexe, que le support de disquettes, même avec un lecteur Apple, n’a jamais été officiellement présent dans OS X, il y a un eu un driver porté depuis MkLinux, mais il n’a jamais fonctionné avec OS X 10.2. Cette même machine avait un connecteur mystérieux qui ressemblait à de l’IDE sur la carte fille vidéo, je n’ai jamais trouvé d’explication sur ce que ce connecteur pouvait faire.

Si en général, les circuits cachés ont eu tendance à diminuer chez Apple avec le retours de Jobs. Il y a quand même eu des trucs intrigants, par exemple, les premiers iBook blancs avaient le même connecteur audio que les premiers iPods, cela aurait pu vouloir dire qu’à un point dans le temps, les iBooks auraient pu être contrôlés par une télécommande d’iPod, ou alors que Apple avaient acheté un trop gros stock de ces connecteurs.

flattr this!