26 févr. 2009

Commande system de DrScheme

Je viens de découvrir la fonction system de Scheme qui me permet d'ecrire des commandes comme je le ferais dans une console xD.

La commande system s'utilise comme expliqué dans la doc:
http://download.plt-scheme.org/doc/4.1.3/html/reference/subprocess.html#(def._((lib._scheme/system..ss)._system))

J'ai essayé de commander la lecture et la pause d'Amarok grace au protocole DCOP de KDE que je commence vraiment à adorer. L'API des commandes DCOP dispo pour Amarok sont dispo sur leur wiki ici:

En Scheme, ca donne ca (tout betement):

(require scheme/system)

(define (play)
(system "dcop amarok player play"))
(define (pause)
(system "dcop amarok player pause"))



Evidement, j'en suis au début, et je vais essayer de fouiller un peut plus dans les autres primitives de system, comme récuperer la sortie de la console pour la stocker dans une liste par exemple, et a coup de map, member, apply etc, pourquoi pas faire proposer un client pour Amarok en Scheme a notre prof de progra haha. (merde il utilise iTunes -__-).

22 févr. 2009

Fête des citrons 2009

Je dois couvrir la fête des citrons de Menton cette année donc les photos serront en ligne sous peu, n'oubliez pas de checker mon picasaweb ^^

21 févr. 2009

Erreur d'update d'apt-get

Si vous aussi vous avez rajouté des dépots dans votre sources.list et quand vous faites un raffraichissement de la base d'apt-get vous recevez une erreur de ce style:

W: GPG error: http://ppa.launchpad.net intrepid Release: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY FC66403D8670A035

Le problème c'est que votre clée publique pour accéder a la liste des majs des paquets n'est plus valide, et qu'il faut la retélécharger. Pour cela:

  1. gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-key 8670A035
  2. gpg -a --export 8670A035 | sudo apt-key add -

Et il suffit de raffraichir avec un update votre apt-get, tout se passera mieux ^^.

Plus généralement, j'ai vu sur un autre site qui expliquait comment retélécharger les clées gpg directement en fonction de la clée publique qui vous fait défaut.
Dans le message d'erreur, les 8 derniers caractères sont a recopier dans la commande i) comme je l'ai fait pour mon erreur.

Voilà ;)

20 févr. 2009

Sujet du projet de PF2

J'ai finalement choisi mon sujet pour le projet de PF2 qu'on va devoir faire en groupe et rendre à la fin du semestre.
Un client jabber en scheme. Même si j'ai eu quelques hésitations car le projet avait déjà été fait précédement (lors d'un stage de Master par un prof que j'ai eu au premier semestre !).
Le client devrait, en premier lieu pouvoir proposer les fonctions basiques d'un client jabber existant c'est à dire:
  • connexion et authentification à un serveur jabber (évidement avec choix du serveur)
  • envoi et reception de messages (tchat)
En outre, je ne m'arrêterais pas là et je tenterais d'implémenter d'autres fonctions.
Par exemple, une gestion avançée de la connexion:
  • gestion d'un carnet d'adresse de serveurs, modifiable, exportable dans un fichier xml (je dis ça comme ça, après je ne sais pas encore)
  • choix du port de connexion
  • connexion sécurisée ou en clair
Les préferences et les options de l'application serront sauvegardé dans un fichier xml.
D'autres fonctionalités que j'essayerais d'implémenter:
  • historique des conversations (dans un fichier html surement)
  • historique des commandes de l'application, pour le débuggage
  • transfert de données (fichiers, vidéo, son)
J'essayerais de ne pas utiliser HOP, et en me basant uniquement sur l'environnement DrScheme et ses modules.
Le but pour moi étant de créer une couche abstraite entre l'utilisateur (plutôt le codeur) et le langage, en quelque sorte une API. Mon application serra un exemple d'utilisation de cette API.

sources:
  1. http://fr.wikipedia.org/wiki/Jabber
  2. http://wiki.jabberfr.org/Protocole
  3. http://xmpp.org/rfcs/

19 févr. 2009

Kompozer

J'ai essayé, avant de me tourner vers Emacs, ce qui est pour le moins brusque lol, KompoZer, Nvu avec un nouveau nom, car le développement de Nvu à cessé et que l'équipe de KompoZer ayant repris le programme n'as pas pu reprendre ce nom là, a cause de problèmes de Copyright.

Ayant déja utilisé auparavant ce logiciel (Nvu), je me suis dit chouette je vais pouvoir réutiliser ce programme, et qui sait peut être qu'il pourra remplacer Gedit qui me servait à écrire les articles d'Hipopochat haha.Malheusement j'ai trouvé l'interface euh... trop fouilli, trop de trucs tue le truc, alors quand je suis allé dans Edition -> Sommaire, ben plantage de KompoZer, laisse tomber, j'ai laissé un report de bug sur le Bug Tracker de KompoZer sur Sourceforge, et j'ai installé Emacs (lire mon petit article dessus quand même ^^)

lien vers le track: http://sourceforge.net/tracker/index.php?func=detail&aid=2574363&group_id=170132&atid=853122

16 févr. 2009

Emacs

En cours Systeme, le prof nous oblige à utiliser Emacs, un logiciel tristement célèbre chez les non initiés, pour son utilisation ...euh, différente.
Oui c'est un éditeur de texte, mais pas seulement !

J'en suis encore au début, et j'ai du m'imprimer le manuel pour me rappeler les raccourci clavier, car tout fonctionne avec des raccourcis clavier. Pour ma part je viens de l'adopter, et même si l'apprentissage va être long, je sens qu'Emacs et moi, on va bien s'entendre.

J'ai installé la version pour ma Ubuntu grâce à la commande:

sudo apt-get update
sudo apt-get install emacs


Normalement tout s'installe et satisfait les dépendances. On le lance directement avec un ALT-F2 et on tape emacs.

Alors qu'en est t'il d'Emacs ?
Ben pour tout vous avouer j'écris cet article à partir d'Emacs lui même, avec mon memento scotché au mur à droite (non vous n'aurrez pas de screenshot, j'ai trop honte).
A l'ouverture, déjà, on a droit à une fenetre ou l'on pense que l'on pourra écrire, hélas, il faut d'abord enregistrer le buffer courant dans une fichier. En fait la philosophie d'Emacs est semblable au paradigme fonctionnelle qui dit qu'une fonction (dans notre cas l'application Emacs) ne modifie pas ce qu'on lui donne, mais produit dans un autre fichier, d'ou l'utilisation d'un "buffer" ou tampon, qui serra notre fichier virtuel en mémoire, jusqu'à ce qu'on le sauvegarde (et que ca foute en l'air tout mon discours lol).

Pour vous donner un exemple d'utilisation pour vous écrire cet article, j'ai dû:
  1. quand Emacs est lancé, je fais Ctrl+x puis Ctrl+f qui va m'ouvrir un fichier dont je fournirais le chemin d'accès, si le fichier n'existe pas, il est crée.
  2. quand le fichier est sauvegardé (crée), il m'ouvre un buffer qui me permettra de taper cet article.
  3. de temps à autre, je sauvegarde avec un Ctrl+x puis Ctrl+s
  4. pour quitter, je fais un Ctrl+x puis Ctrl+c
Evidement ca parrait un peu compliqué mais on se rend compte que pour faire tel ou telle "action", Ctrl+x est le couple qui sert à effectuer une action relative à ce que l'on fait avec la souris, dans l'onglet Fichier par exemple.

La grande particularité aussi sur laquelle j'ai failli passer, est le fait que l'on peut ouvrir deux ou plusieurs fichiers dans plusieurs tampons différents. Dans ce cas la j'utiliserais Ctrl+o pour switcher entre les différents buffer visibles.

Emacs dispose d'un mini navigateur de fichiers (mode Dired), on peut évidement copier/coller des fichiers ou l'on veut, faire des liens dur ou symboliques, comparer des fichiers entre eux (comme le ferrait un serveur svn), "flagger" des fichiers pour appliquer sur eux une fonction F quelconque (rename, copy, move etc...) on peut analyser un fichier pour voir ce qu'il y a dedans sans avoir a l'ouvrir.

Ce que je trouve très bien dans cet application, ce qui m'as absolument bluffé est que Emacs fait bien plus que de faire le dactylo, il peut vous servir à envoyer des mails, vous connecter sur internet, programmer en Lisp (ben voyons lol), il permet la reconnaissance syntaxique de plusieurs langages de programmation, permet avec certains petits hack la compilation de programmes,il peut fonctionner avec Mapple, bref on peut presque tout faire avec !

Finalement quand on sait bien l'utiliser, on se rend compte que la souris fait perdre beaucoup de temps pour taper du texte :s. Manquerais plus que je trouve un client Jabber // 5 minutes plus tard, bon ok j'ai ouvert ma bouche plus tôt, y'a bien quelques client Jabber lol.

Je vous met un lien vers le manuel, intérressant pour au moins comprendre comment ca fonctionne si on le lit un peu en diagonale, et indispensable si l'on veut apprendre les raccourcis clavier que vous utiliserez pour améliorer votre rendement lol, et pourquoi pas, vous vous rendrez compte à quel point vos petits doigts peuvent être souple ;-)

lien manuel: http://www.gnu.org/software/emacs/manual/emacs.html
lien cli jabber: http://www.emacswiki.org/emacs/JabberEl
lien Dired: http://www.gnu.org/software/emacs/manual/dired-x.html

9 févr. 2009

Morpion sous Processing

J'ai codé un Morpion sous Processing, ce qui était assez simple car j'avais déjà codé auparavant le Morpion en C pour PSP avec la librairie OSLib. Porter le code n'était vraiment pas dur mais comme je l'ai codé à l'arrache (pendant le cours de Système), alors c'est pas optimisé du tout, l'important était qu'il fonctionne avant la fin de l'heure lol.
L'applet est sur ma page étudiant, et le code source aussi.

J'ai remarqué que le prof de programmation avait reçu un jeu aussi fait sous Processing, un super jeu ! vous pouvez le voir ici sur la page de notre prof. (prof: "Hey Paraita c'est toi qui m'as envoyé le jeu ?") loooool. Je vais essayer de porter Pong maintenant.

3 févr. 2009

Créer un compte Itunes sans CB le retour !

Alors voilà, dans un soucis de clarté, je réitère la procédure à suivre pour ouvrir un compte Itunes sans CB ^^.


I) Itunes Store

Il faut ouvrir Itunes et cliquer sur Itunes Store (entouré en rouge sur le screenshot), je précise ici que j'ai choisi d'être dans l'Itunes Store de France.





II) Classement Apps Gratuites
Il faut scroller vers le bas de l'Itunes Store et chercher vers la droite l'encadré "CLASSEMENT APPS GRA..."




Cliquez sur une des applications (par exemple Super Monkey Ball Lite ;) )

III) La magie opère

Sur la page de présentation de l'application, cliquez en dessous du titre, sur obtenir.



Une fenêtre s'ouvre et vous demande de vous logger. Là vous cliquez sur "Créer un nouveau compte"



Ca vous ramène sur la page d'accueil de création de compte Apple ID. Faites Continuer, acceptez les conditions générales iTunes.



Là il vous faudra une adresse email qui n'as jamais servi à créer un compte auparavant sur iTunes. Quans vous aurrez rempli la page, faites Continuer.

Et là la magie opère ! Apple vous demande un mode de paiement, et vous avez à l'extreme droite l'option Aucun.



Bon pour la suite je vous fait confiance, rien de bien compliqué !

A la date du 3 Février 2009, cette méthode fonctionne encore.