30 oct. 2009

Serveur DNS défaillant chez Numericable ?


Depuis qu'on est rentrés de Tahiti,

j'ai remarqué quelques soucis au niveau de la résolution de noms (DNS) qui s'éternisait. J'ai changé dans mon routeur les serveurs DNS par défaut par ceux ci:
  • 208.67.222.222
  • 208.67.220.220
Ne vous inquietez pas, ces serveurs sont chez OpenDns aux States (voir whois ici)

Tout est reparti comme avant !

1 oct. 2009

Aide mémoire svn

Pour télécharger un code source par svn:
svn checkout chemin
ou:
svn co chemin

Pour mettre à jour un code source précédement téléchargé par svn:
svn update chemin vers le dossier

voilà !








24 sept. 2009

Debian Lenny

Ouf !

je viens de finir mon installation de Debian Lenny. C'était pas de tout repos car j'avais un soucis avec mon controleur SATA en PCI.

Franchement je me demande pourquoi je n'avais pas franchi le pas plus tôt. On configure plus librement ce qu'on veut sans avoir à se soucier des automatismes d'Ubuntu. Depuis que j'ai l'habitude de me passer d'interface graphique pour coder certaines applications, je me suis fait a Emacs. Evidement lorsque je dois fournir un GUI en Scheme ou Java, je lance X et fluxbox.

J'ai choisi Fluxbox parce qu'il est très leger, on dirait qu'on n'as lancé qu'X en fait ! pas d'icones, pas de menu en trop, juste l'affichage graphique nécessaire, et une barre des taches, point. Ca me fait un systeme un peu plus réactif enfin.

Evidement je suis conscient que ni mon noyau, ni mes applications sont les versions les plus récentes mais je contrôle un peu mieux ce que j'installe, et puis dans le pire des cas je dl le code source et je le compile voilà tout.

D'ailleurs j'ai trouvé que Grub était vraiment un bootmanager suuuuuper et qu'il permettait de faire beaucoup de choses , mais ca ca serra pour un prochain article !

17 sept. 2009

Jde

JDE pour Emacs est un addon qui ferra d'Emacs un IDE Java, franchement il est très pratique quand on ose pas installer d'IDE plus balaise comme Eclipse. Il permet entre autre de browser vos classes, permet de compiler, de debugger, et vous propose une fonction d'autocompletion (ahhh Delphi.... *souvenir*)

Sous Ubuntu il est dans le dépot Multiverse et s'apelle... jde.
Par contre sous mac vous allez un peut galerer pour l'installer, mais je vous rassure c'est pas impossible, pour ma part j'ai suivi ce lien, et ce fil.

10 sept. 2009

Motion Tracking avec Processing

Cette semaine je me suis essayé au motion tracking avec Processing.
En fait il est assez facile d'utiliser sur un macbook la webcam intégrée, notament les I/O gérées par Quicktime. (d'ou coup le code est aussi portable sous Windows :) ).
Pour ma part, en implémentant une classe Cible, j'ai pu "traquer" un pixel de couleur donné et raffraichir la position de ma cible s'affichant a l'écran. Le résultat est assez bluffant même s'il peut être facilement amélioré. En fait mon code est plus un proof of concept, n'étant même pas sur que mon code et ma manière de procéder fonctionnerait.
Je ne sais pas si le tracking se fait habituellement comme cela, mais j'ai intuitivement essayé de "balayer" chaque pixel de mon canvas, si je tombe sur un pixel de couleur voulu, par un habil calcul mathématique je trouve les coordonnées de ce point (loooooooool) et le donne ces coordonnées à ma cible, qui se repositionnera en temps voulu ^^. La capture vidéo est assez facile à comprendre, puisqu'en fait on instancie un objet de classe Capture qui va recevoir a chaque "tic" d'horloge une image raffraichie en provenance de la webcam, le tracking s'effectue sur le canvas, et non sur l'objet myCapture.
Dans mon onglet principal, je code le corps de l'application.

D'abord quelques déclarations et import:
import processing.video.*;
PFont maFont;
Capture myCapture;
Cible maCible;
Ceci est la fonction qui serra lue une fois par Processing, elle sert à initialiser nos variables:

void setup()
{
  size(640, 480);
  Point p = new Point(width / 2, height / 2);
  int[] t = new int[3];
  t[0] = 255;
  t[1] = 0;
  t[2] = 0;
  maCible = new Cible(p, t);
  myCapture = new Capture(this, width, height, 30);
}

Cette fonction sert à raffraichir notre objet de capture vidéo:

void captureEvent(Capture myCapture) {
  myCapture.read();
}

La fonction de tracking, qui pour chaque pixel du canvas, va comparer sa couleur, ici si le pixel sur lequel on itère est blanc, alors sa position est envoyé à la cible:

void tracking() {
  int[] t = maCible.getColor();
 
  // dans un premier temps je traque le point que je veux
  loadPixels();
  for(int i = 0; i < width * height; i++) {
    if(pixels[i] == color(255, 255, 255)) {            // <-- couleur du pt a tracker
      Point p = new Point(i % width, i / width);
      maCible.setPos(p);
    }
  }
  updatePixels();
 
  // et je dessine la cible
  maFont = loadFont("SynchroLET-12.vlw");
  textFont(maFont);
  Point pos = maCible.getPos();
  stroke(t[0], t[1], t[2]);
  strokeWeight(1);
  line(pos.x - 30, pos.y - 30, pos.x - 20, pos.y - 30);
  line(pos.x - 30, pos.y - 30, pos.x - 30, pos.y - 20);
  line(pos.x + 30, pos.y - 30, pos.x + 20, pos.y - 30);
  line(pos.x + 30, pos.y - 30, pos.x + 30, pos.y - 20);
  line(pos.x - 30, pos.y + 30, pos.x - 30, pos.y + 20);
  line(pos.x - 30, pos.y + 30, pos.x - 20, pos.y + 30);
  line(pos.x + 30, pos.y + 30, pos.x + 20, pos.y + 30);
  line(pos.x + 30, pos.y + 30, pos.x + 30, pos.y + 20);
  fill(t[0], t[1], t[2]);
  text(pos.x + " - " + pos.y, pos.x + 35, pos.y + 40);
}

La fonction principale, appelée à chaque "tic" d'horloge, et qui permet de contrôler le déroulement de notre application:

void draw() {
  image(myCapture, 0, 0);
  tracking();
  println(get(width / 2, height / 2));
}



Et ma bete classe Cible qui servira à iconer le point que je tracke:


import java.awt.Point;

public class Cible {
    private Point pos;
    private int[] couleur;

    public Cible() {
    pos = new Point();
    couleur = new int[3];
        for(int i = 0; i < 3; i++) {
          couleur[i] = 0;
        }
    }

    public Cible(Point pos, int[] couleur) {
    this.pos = pos;
        this.couleur = new int[3];
        for(int i = 0; i < 3; i++) {
          this.couleur[i] = couleur[i];
        }
    }
   
    public void setPos(Point pos) {
    this.pos = pos;
    }

    public Point getPos() {
    return pos;
    }

    public void setColor(int[] couleur) {
    this.couleur = couleur;
    }

    public int[] getColor() {
    return couleur;
    }

// marche pas, la classe est presque pur java
//    public void afficheToi() {
//    stroke(couleur[0], couleur[1], couleur[2]);
//    line(pos.x - 30, pos.y - 30, pos.x - 20, pos.y - 30);
//    line(pos.x - 30, pos.y - 30, pos.x - 30, pos.y - 20);
//    line(pos.x + 30, pos.y - 30, pos.x + 20, pos.y - 30);
//    line(pos.x + 30, pos.y - 30, pos.x + 30, pos.y - 20);
//    line(pos.x - 30, pos.y + 30, pos.x - 30, pos.y + 20);
//    line(pos.x - 30, pos.y + 30, pos.x - 20, pos.y + 30);
//    line(pos.x + 30, pos.y + 30, pos.x + 20, pos.y + 30);
//    line(pos.x + 30, pos.y + 30, pos.x + 30, pos.y + 20);
//    }

    public String toString() {
    return "Cible:[pos=" + pos.x + ", " + pos.y + ", couleur=(" + couleur[0] + ", " + couleur[1] + ", " + couleur[2] + ")";
    }

}



9 sept. 2009

Macworld Event 2009



La macworld event 2009 "it's only rock and roll" vient juste de se terminer et je vous livre mes impressions !

Alors pour commencer Steve Jobs était là ! (enfin !)

On annonce la mise en ligne dès aujourd'hui de la mise a jour de l'OS 3.0 en 3.1, bizarrement rien n'est developpé sur les fonctionnalités de cette mise à jour excepté qu'elle améliore l'interaction avec Genius (dans l'appstore), et avec iTunes surtout.
Voici les specs du nouvel OS 3.1:
  • recommandations Genius pour les applications
  • Prise en charge de iTunes 9
  • Mélanges Genius
  • Gestion des applications iPhone/iTouch directement dans iTunes
  • Amélioration de la synchronisation avec votre ordinateur
  • meilleure organisation de l'iTunes U
  • Utilisation de cartes prépayés sur l'iTunes Store directement à partir de votre iPhone/iTouch
  • Verrouillage à distance de l'iTouch par code secret via MobileMe
  • avertissements lors de l'acces à des sites porno, oups, frauduleux dans Safari Mobile
  • Amélioration de la synchro via Exchange
  • corrections diverses (de bugs)


Apple va se mettre à la vente de sonneries pour iPhone (est ce qu'on pourra écouter un extrait dans l'iTunes Store j'en sais rien xD).

iTunes passe à la version 9.0, au menu:
  • amélioration de Genius
  • nouvelle fonction: Genius DJ qui s'occupera de vous faire non plus des playlist à la volée comme il le faisait deja, mais de vous faire une sorte de webradio en fonction de ce que vous avez dans votre librairie
  • Home Sharing: dorénavant on pourra copier et partager nos librairies sur 5 ordinateurs en tout
  • gestion des applications de l'iPhone/iTouch directement à partir de votre ordinateur
  • refonte de l'iTunes Store (et propose entre autre des lyrics maintenant)
  • partage de vos morceaux directement sur Twitter ou Facebook
De plus Steve Jobs a présenté le nouvel ipod Nano. (oui je sais c'est dégueulasse pour nous, iTouch users... :( )



L'ipod Nano Video pourra entre autre, prendre des photos, de la vidéo (qu'on pourra uploader aisément sur Youtube), enregistrer l'audio qui va avec (a coté de la cam, y'a un mini microphone), ce qui permettra aussi d'utiliser la nouvelle application d'enregistreur vocal déjà présent sur l'OS 3.0. Enfin on pourra écouter la radio avec puisqu'il est équippé d'un Tuner FM !
Voici les specs vidéo du nouvel ipod nano:
  • H.264 VGA Video, 640x480 pixels, jusqu'a 30/ips avec de l'audio en AAC
  • 15 effets en temps réel: sépia, noir & blanc, rayon X, Grain de film, Vue thermale, Vue camera de sécurité, vue Cyborg (???), Bulge, Kaléidoscope, Flou, Mirroir, Tunnel lumineux, et autres déformations faciales.
Pour l'iPhone/iTouch, la gamme 8Go va baisser de prix, et un nouveau modèle à 64Go va apparaitre. De plus, les iPhone/iTouch aurront dorénavant l'OpenGl ES 2.0 (je ne me suis pas renseigné si c'était une mise à jour hardware ou software).

On a aussi parlé des nouveaux iPod Classic dont les prix vont baisser, d'ailleurs les ipod Shuffle aussi vont baisser de prix, et vont sortir dans un nouvel habillage en aluminium brossé (comme les Macbook Pro quoi !)

Et puis... bah voila c'est tout quoi... en fait cette Keynote n'as pas vraiment été extraordinaire, pour ma part, l'OS 3.1 et la refonte d'iTunes et de l'iTunes Store m'ont fait plaisir mais sans plus. Je vois bien que Apple essaye de gratter un peu de part de marché avec son nouvel ipod Nano, ce qui le rend très attractif d'un coup, mais je m'attendais à la fameuse iPad dont la rumeur courre depuis l'année dernière lol.

Serveur DNS défaillant chez Numericable ?


Depuis qu'on est rentrés de Tahiti,

j'ai remarqué quelques soucis au niveau de la résolution de noms (DNS) qui s'éternisait. J'ai changé dans mon routeur les serveurs DNS par défaut par ceux ci:
  • 208.67.222.222
  • 208.67.220.220
Ne vous inquietez pas, ces serveurs sont chez OpenDns aux States (voir whois ici)

Tout est reparti comme avant !

7 sept. 2009

Driver Ati Catalyst 8.10

Mais qu'est ce qui leur arrive chez Ati ?!!
Sans grand espoir j'installe le driver proprio (bouhhh !) et surprise ! il fonctionne du premier coup (hmm, ou peut etre parce que je n'utilise plus Ubuntu mais Debian ??). Du coup:
  • plus d'écran blanc
  • plus d'artefacts sur les cotés de l'écran
  • plus de flickering (joke joke, y'en a toujours en fait ^^)
et surtout un changelog qui colle pour une fois à la réalité !
plus d'info ici.

EDIT: bon en fait non y'a plus de flickering vidéo :)

3 sept. 2009

Big News !

dsl dsl dsl dsl dsl j'ai vraiment eu la fleme de mettre a jour l'hipoposite ces vacances, en plus depuis Tahiti laisse tomber quoi je suis plus habitué.

Mes vacances au fenua se sont bien deroulés et je reprend les cours des aujourd'hui. On a eu notre pré-rentrée today et j'ai deja hate d'être en amphi ^^.

Pour les news j'ai installé Snow Leopard (acheté le jour même de la sortie, how cool is that).

Mon pote Hennessy est papa !

Mon pote Heinui est papa !

Je twitterise sevère depuis que je suis revenu au pays de la peau.

Je suis passé a Lightroom pour le derawtisage de mes photos.

J'ai acheté 2 Pocket Wizards a mon pote Eric. (merci infiniment, j'espere pouvoir te choper les 2 autres l'année prochaine)

J'ai posté une chié de photos sur mon Flickr (à la demande d'Eric :/ )

J'en profite pour vous faire part du catalogue 2009 de Hennessy, qui propose des Tee Shirts carrement top, j'en ai pris un et franchement si j'avais eu plus de sous j'aurrais surement pris toute sa collec (et quand je pense que c'est des limited edition :/ ) alors jvais haputu les sous pour l'année prochaine !

voici son catalogue:

20 mai 2009

Fini les exams !

Je viens de finir mes exams de première session, je suis vraiment enthousiaste pour mes résultats même si j'espère pas grand chose de l'Analyse et de l'Algèbre... pfff c'était pourtant bien parti :s

Je pourrais me consacrer à l'hipoposite et développer un peu plus Fluxus, parler de mon install Debian, de Fluxbox (aucun rapport avec Fluxus), ou encore des la librairie ffi de PLT Scheme qui est trop OMG ! Comment "arranger" l'affichage console sous GNU/Linux. (grace a Grub :p).

Bon je suis trop sous le choc encore. Je me remet de mes émotions et je poste.

Keep updated !

11 mai 2009

Invitations Spotify

Salut,
je viens de voir qu'il me reste 8 invitations pour Spotify ^^.
Je pensais que la beta fermée était fini mais apparement si on nous donne des invits à distribuer y'a un gag :/ enfin bref, si vous ne savez pas encore ce qu'est Spotify, c'est un Deezer-like (sans le lag je vous rassure) qui permet d'écouter directement de la musique sans avoir à passer par T*z ou Emule, le tout gratuitement et légalement. Evidement l'astuce est que vous entendrez des petits jingles de pub de temps en temps (vraiment de temps en temps, beaucoup moins qu'a la radio en tout cas) et la bibliothèque est assez bien fournie ! Spotify s'utilise via l'interface a télécharger, qui est une application à part entière (je suspecte du XUL la dessous m'enfin je suis pas sûr). Si ca vous intéresse/intrigue, laissez moi un commentaire et je vous répondrais.

30 avr. 2009

Projet Fluxus rendu !

Enfin on en a fini avec notre projet de semestre. On a rendu notre projet sur Fluxus, l'application de livecoding de graphisme 3d. Je met a votre disposition les pdf principaux que l'on aurra fourni au professeur. Excusez pour la traduction qui pourrait sembler un peu inexacte par moment, on a vraiment speedé pour le finir :/

Manuel de la version 0.16

Présentation de Fluxus et Installation sous Mac OS 10.5 et GNU/Linux

Profitez en car ces documents se retrouveront sur le site qui maintient Fluxus. J'essayerais de tenir à jour le manuel au fil des versions ^^

28 avr. 2009

ca vient ca vient !

Desolé de pas avoir posté ces derniers temps, on est a fond sur le projet PF2 et il ne nous reste que cette journée pour le finir.
Je vous tiendrais au courant de la suite des évenements !

Aussi j'ai bientôt mes partiels et j'afficherais mes dates bientôt.

14 avr. 2009

Aide mémoire: activation / désactivation port de macport

Lors de la compilation de PLT Scheme, si vous tombez sur une erreur qui dit que le make ne trouve pas les librairies jpeg et png, ou que ces librairies ont un problème, il faudra les désactiver pour que lors du configure, il ne les trouve plus et compile alors PLT Scheme avec ses propres librairies.

Avec macport, pour désactiver un port:
sudo port deactivate port

exemple: sudo port deactivate jpeg

Pour réactiver un port:
sudo port activate port

exemple: sudo port activate libpng

11 avr. 2009

Compilation de PLT Scheme sous Mac OS X Leopard

J'ai oublié de préciser comment compiler PLT Scheme sous Mac OS X Leopard. Je me suis aidé de cette page mais je pense envoyer un message sur la mailing list pour leurs signaler le bug.

On récupère le code source avec svn:
svn checkout http://svn.plt-scheme.org/plt/trunk plt

Quand tout serra copié, déplacez vous dans le répertoire plt/src

De là, faites:
./configure --prefix=/usr/local/ --enable-pthread --enable-libfw --enable-sdk=/Developer/SDKs/MacOSX10.5.sdk --enable-lt=glibtool

On indique ou on l'installera lors du make install, et surtout active le partage de librairies.

Maintenant il faudra désactiver les ports jpeg et libpng de macport, et si vous ne les avez pas installé via macport, effacez les (ou enlevez les temporairement) de votre dossier bin et lib.

On compile avec:
sudo make

et on installe par:
sudo make install

Vous pourrez dorénavant lancer drscheme directement a partir du path, de plus vous avez mzscheme (le toplevel de scheme) directement dans le terminal ! c'est pas dla balle ca ? ^^

4 avr. 2009

Compilation de Fluxus sous Mac OS X Leopard

Installation de Fluxus sous Mac OS X Leopard

Finalement j'ai réussi à compiler et installer Fluxus quasiment from scratch, après avoir galeré une bonne semaine :s

Pour commencer, je conseille d'installer les dépendances de Fluxus à partir de leurs codes source, bien évidement PLT Scheme - et encore, y'a apparement moyen avec le binaire et en modifiant votre fichier Sconstruct, mais aussi liblo et ode.

Dépendances installables via macport:
zlib
jpeg
libpng
tiff
scons
freetype

Par contre il vaut mieux, je pense installer ode et liblo à partir du source.
Tout les deux sont récupérable dans des dépôts svn, sur sourceforge:

ode: svn co https://opende.svn.sourceforge.net/svnroot/opende opende
liblo: svn co https://liblo.svn.sourceforge.net/svnroot/liblo liblo

Ainsi en vous rendant dans les répertoires respectifs /trunk, vous pourrez lire le README ou INSTALL qui vous aideront à les compiler et les installer à bien.

Il faudra dans un premier temps "bootstraper" le code récupéré par svn avec la commande:
sh autogen.sh

Puis:
./configure
sudo make
sudo make install


Et le tour est joué.
Pour Fluxus, il faudra installer par macport l'application git:
sudo port install git-core


Il vous permettra de vous connecter au dépôt git de fluxus par:
git clone git://git.savannah.nongnu.org/fluxus.git


Rendez vous dans le répertoire fluxus.
Il faudra spécifier à scons quelques options de compilation, sans quoi il vous pondra un binaire buggé (segfaut 0x0; bus error).
scons MULTITEXTURE=0 GLSL=0
sudo scons MULTITEXTURE=0 GLSL=0 install


A la fin, vous obtiendrez un binaire copié dans /usr/local/bin, dans mon cas c'était /opt/local/bin.

Vous pourrez éventuellement tomber sur des erreurs lors de la compilation du genre:
ERROR: 'quelquechose' must be installed!
Dans ce cas, et si vous etes sur de l'avoir bien installé, vous pouvez commenter sa vérification lors du scons, dans le fichier SConstruct à partir de la ligne 118:
LibList = [["m", "math.h"],
["pthread", "pthread.h"],
["dl", "stdio.h"],
["mzscheme3m", PLTInclude + "/scheme.h"],
["jpeg", ["stdio.h", "stdlib.h", "jpeglib.h"]],
["tiff", "tiff.h"],
["freetype", "ft2build.h"],
["z", "zlib.h"],
["png", "png.h"],
["ode", "ode/ode.h"],
["sndfile", "sndfile.h"],
["fftw3", "fftw3.h"],
["lo", "lo/lo.h"],
["GLEW", "GL/glew.h"]]


Vous pourrez, je pense, commenter la ligne ou est la dépendance qui vous bloque.

Si vous avez un soucis, envoyer moi un mail et j'essayerais de vous aider, je pense être tombé sur toutes les erreurs possible finalement xD

Configuration de Jack OS X:
entrée par defaut: JackRouter
sortie par defaut: JackRouter
sortie systeme: sortie intégrée

Préfs de Jack Pilot:
interface: périphérique agrégé (voir la doc jack)

20 mars 2009

update PF2: Fluxus

Alors j'ai passé cette aprem à essayer d'installer convenablement Fluxus sur le portable de mon camarade de classe avec qui je fais Fluxus. Je dois dire que sa bécane est sympa, tout est reconnu, et l'accélération graphique de CompizFusion passe à merveille gràce à son chipset graphique Nvidia, et puis avec Fluxus en même temps, ca le fait trop :)

Je met ici en aide mémoire la procédure (ca fonctionne sous Intrepid Ibex, sous les autres versions je ne sais pas, feedback powa !):

Je vous rappelle les dépendances requises pour compiler à bien Fluxus.

La compilation (make) et l'installation (make install) se fait en tant qu'administrateur (sudo).

Bon je vous met les dépendances de ces dépendances (euhh... ouais c'est bien ca), avec apt-get installez les applications/librairies suivantes:
  1. autotools-dev
  2. gcc
  3. g++
  4. libxaw7-dev
  5. libjpeg62-dev
  6. libtiff4-dev
  7. libglut3-dev
  8. libasound2-dev
  9. subversion
  10. cvs
  11. scons


Alors déjà si l'accélération graphique fonctionne (faites un glxgears), vous sautez l'étape d'OpenGL, mais je pense de toute manière qu'il est installé de base sous Ubuntu 8.10. (un peu de feedback ca ferrait du bien).

Installation de Ode (v0.11), fftw (v3.2.1), liblo (v0.25), libsndfile (1.0.19) et jack (v0.116.2):
Je vous conseille de lire le fichier README ou INSTALL qui est à l'intérieur et ne pas suivre bêtement ma procédure. La compilation pour chacune des applications se fait avec:
./configure
make
make install


Pour Jack, c'est pas la peine de faire un make install, car on installera la version bundlé avec Intrepid Ibex (sinon y'a un conflit avec le GUI qjackctl, passez votre chemin).

Il reste à installer ce mastodonte de PLT Scheme:
on récupère le code source directement sur le dépôt svn:
cd Bureau ; svn checkout http://svn.plt-scheme.org/plt/trunk plt
ou
cd Bureau ; git clone git://git.savannah.nongnu.org/fluxus.git

Vous verrez sur le bureau un dossier plt, le code source est à l'intérieur du dossier src.
Faites un:
./configure --prefix=/usr/usr/local --enable-shared
make
make install


Priez car il est très chatouilleu à la compilation le bougre :s

Enfin Fluxus ! on récupère le code source sur le serveur cvs:
cvs -z3 -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/fluxus co fluxus


Sur le bureau va apparaitre un dossier fluxus avec le code source de fluxus à l'intérieur.
on le compile/installe avec scons:
scons
scons make install


Quand scons finit, on peut lancer directement Fluxus en l'apellant dans un terminal.

Jusque là on à finit de l'installer, pour utiliser le son dans Fluxus on installera via apt-get jackd et un GUI qjackctl, les versions qui ont fonctionné sont pour jackd version 0.109 et qjackctl version 0.3.2. Je pense que si vous faites un make install du code source de jack vous avez téléchargé plus haut alors il faudra faire de même pour qjackctl sinon y'aurra conflit et qjackctl ne reconnaitrera pas les drivers de jackd.

Je remarque que Jack est assez compliqué à utiliser lorsque l'on n'as pas l'habitude. En fait il faudra lancer Jack avant de lancer votre lecteur audio et Fluxus, sinon qjackctl ne pourra pas "hooker" votre lecteur audio.Lancez qjackctl (cliquez sur Start).
Pour ma part j'utilise Amarok (avec Xine), mais il faudra compiler Xine à la main car la version installé avec Amarok par Ubuntu ne permet pas à Xine de se connecter au serveur Jack. Alors il faudra aller chercher une autre version de Xine, les versions 1.1.7 et 1.1.8 fonctionnent (merci le feedback ;). Xine se compile et s'installe comme d'habitude.

Si vous n'arrivez pas à le compiler, vous pourrez récuperer ce fichier et le mettre dans le répertoire /usr/lib/xine/plugins/votre_version

Ensuite dans Amarok je suis allé dans Settings->Configure Amarok->Engine->Output Plugin->choisissez Jack (veillez a ce que Jack soit lancé sans quoi Amarok va vous cracher dessus).

Lancez une musique, si vous n'entendez pas votre morceau c'est normal, Xine renvoie le flux audio vers Jack, il faut que vous cliquiez sur Connect dans qjackctl puis vous pourrez prendre dans la colonne de gauche une source audio et a droite l'entrée sur laquelle vous brancherez votre prise jack ^^. A force c'est très intuitif et on se rend compte que c'est super pratique Jack, surtout pour ripper du son de sources... exotiques ;)

Fluxus livecoding

J'avais pensé pour mon projet prendre Fluxus, qui est un peu un extraterrestre dans son genre. Il permet (quand on arrive a l'installer, et c'est pas une mince affaire) de programmer des séquences 2D ou 3D dans le but d'illustrer de la musique, à l'instar du VJing, vous pourrez créer de magnifiques tableaux abstrait réactif à la musique.

A l'aide de jackd, vous pourrez "router" un flux audio dans fluxus qui vous permetrera d'utiliser le son comme variable (trop la classe ca !).

Evidement ca à l'air facile sur hipopochat mais je vous assure pour le compiler et le faire marcher proprement c'est pas facile du tout.

Une astuce, deja ne cherchez pas à installer les dépendances à partir d'apt-get mais installer chaque dépendance à la main (combo wget+./configure+make+make install xD).
Si vous avez un soucis avec l'installation n'hésitez pas à m'envoyer un mail j'essayerais de vous guider.

Dépendances:
  1. OpenGL
  2. Ode
  3. PLT Scheme
  4. fftw
  5. Jack
  6. libsndfile
  7. liblo
  8. glew
  9. scons (la seule dépendance que j'ai installé via apt-get)


Vous téléchargez les sources de fluxus sur leur site.


Vous n'aurrez pas de problème particulier à compiler et installer ces dépendances sauf peut être pour PLT Scheme ou il faudra rajouter une option au configure.

Aussi pensez à installer qjackctl via apt-get, c'est un GUI pour jack, il vous permettrera de gérer le routage des flux audio en live, et c'est très pratique ^^.

J'ai oublié de le dire aussi, mais Fluxus se code en Scheme (décidement, vive le Lisp !). Vous pouvez chercher des démos sur Youtube y'en a quelques unes mais pas grand chose finalement, de plus c'est pas vraiment connu, perso je pense qu'il faut vraiment être un hardcore coder pour bien tripper avec :)

19 mars 2009

Satelliiiiiiiiite !

J'ai pas pu vraiment poster depuis deux semaines car j'avais des partiels, encore mardi il me reste le partiel d'Algèbre qu'il va falloir que je bosse. On a eu partiel d'Analyse que j'ai raté je pense (faut vraiment que je bosse cette matière, c'est trop dur !! XO

Sinon pour vous donner des nouvelles j'ai finalement un groupe, on est 3 et on bosse sur Fluxus (looool)

Et pour m'aider, le prof m'as mis en contact avec le major L2 MP de l'année dernière, le même que le prof envoie en stage à Google wtffffff !!!! En tout cas il est super sympa et il est super calé :)

Bon je vous laisse j'ai TP de Java :p

15 mars 2009

Problème de connexion client jabber en scheme

J'avais un petit soucis quand a l'établissement de connexion en PLT Scheme pour mon client Jabber. J'avais en parti raison quand à la source du problème, c'était bien la réception de données qui déconnait !

En effet, il faut savoir que a réception avec le listener de Scheme se fait en blocks, ca veut dire que lorsque le serveur me répond quelque chose, et il peut me répondre en plusieurs messages (ou blocks), mon listener ne capture que le premier block, et me le retourne. C'est pourquoi je n'avais que le début du message.

Dans le code suivant, et surtout la fonction la plus en bas, vous verrez comment je contourne le problème. En fait je vais donner une taille en bytes au block, et je vais aller piocher dedans sans modifier ce qu'il y a, jusqu'à avoir un block qui n'est pas rempli de 0 (ou de la quelconque valeur que le listener met en attendant de recevoir quelque chose). Notez que j'utilise la librairie port qui me sert a utiliser peek-string, peek-string va jeter un oeil dans le port-input et me dire ce qu'il y a dedans, sans y modifier le contenu, càd qu'a la différence de read-string par exemple, il ne va pas effacer ce qu'il y a dans le input-port, ce qui est tout bon !

#lang scheme
(require scheme/port)
(require scheme/tcp)
(require xml)

;-------------------------------------
;
; Client Jabber: reseau
;
;-------------------------------------

; c'est bon je parse mieux les données
; il est preferable d'utiliser display que write, car display affiche les données raw sans les parser !
;
;


; serveur jabber au hasard
(define URL "jabber.org")
(define PORT 5222)
(define TAILLEBLOCK 2048) ; taille d'un block en byte



(define (client-test)
(let-values ([(server->me me->server)
(tcp-connect URL PORT)])
;(write "" me->server)
(display "" me->server)
(close-output-port me->server)
(sleep 1) ; optionnel ? car recupServer->me

;reponse du serveur
(let ((reponse (recupServer->me server->me)))
(display reponse)

(close-input-port server->me))))



; recupServer: int -> string
; je récupere les données de [server->me] directement en raw
(define (recupServer->me port)
(let loop ()
(let ([available (peek-string TAILLEBLOCK 0 port)])
(if (null? available) ; on boucle tant que le serveur ne m'as rien renvoyé !
(loop)
(read-string TAILLEBLOCK port)))))


Ainsi, je récupère bien tout ce donc j'ai besoin, et je peux continuer à recevoir de cette manière.

Dbus, dcop et... osascript ?!

En cherchant à modifier mon application réseau Scheme j'ai cherché un équivalent de dcop, enfin dbus sous Leopard, et en suivant cette info, je suis tombé sur osascript, qui permet de dialoguer avec d'autres application suivant la philosophie d'apple (vous savez, l'unification des raccourci des applications et les appels d'applescript). Alors finalement j'ai réécris la partie serveur pour commander iTunes (haéééé la classe xD).
Si vous voulez le code source, faites le moi savoir, que je le mette en ligne pour tout le monde.

11 mars 2009

[Projet PF2] premier soucis !

Mon problème est tout con: je n'arrive pas à récupérer les données que le serveur jabber m'envoie quand j'envoie une requête de connexion :s

vous pourrez voir mon code, simple, je ne parse pas encore l'XML, j'essaye de m'attaquer au nerf de logiciel, la connexion en elle même:

#lang scheme
(require xml)

;-------------------------------------
;
; Client Jabber: reseau
;
;-------------------------------------

; ca marche pas, les données recu sont mal parsées :(
;


; serveur jabber au hasard
(define URL1 "im.apinc.org")
(define URL2 "talk.google.com")
(define PORT 5222)




(define (client-test)
(let-values ([(server->me me->server)
(tcp-connect URL2 PORT)])
(write "" me->server) ; temporaire, histoire de debugger rapidement
(sleep 1) ; pour quand ca lag un peu
(write "" me->server)
(sleep 1)
(close-output-port me->server)
(let ([response (read server->me)])
(display response) (newline) ; c'est la que ca déconne

(close-input-port server->me))))

J'ai bien essayé avec le serveur googletalk et apinc.org, le truc c'est que les deux serveurs ne retournent pas le même message xD

googletalk me retourne: HTTP/1.1
apinc me retourne:
  • Je recois bien toutes les données du serveur mais je n'arrive pas a afficher comme il faut les données envoyées du serveur (avec printf et display), comme c'est du xml, mais en même temps c'est quoi, une string de toute manière ?!
  • Sinon je ne recois même pas la réponse complète, car xmpp permet l'envoie non synchrone des données genre il va m'envoyer un bout, et ensuite il va m'en envoyer un autre. Le problème c'est que par défaut le listener que tcp-connect crée est configuré pour ne récupérer qu'un block de donnée. Peut être que le soucis est là ? j'essayerais de reconfigurer le listener quand j'y penserais !
  • Sinon ben quand je crée un listener en mode serveur et que je m'y connecte, j'essaye de lui envoyer une string, ben le serveur m'affiche bien la string en entier...

    9 mars 2009

    Introduction au protocole Jabber

    Des informations utiles sur comment créer une connexion (stream) client-serveur, et la plupart des commandes que l'on va utiliser pour le projet de PF2.

    Introduction au protocole Jabber

    raccourci clavier de completion avec jde

    Pour la complétion de code avec JDE (sous Emacs), le raccourci est le suivant:
    C-c C-v C-.

    6 mars 2009

    Unimotion pour Processing

    En fouillant sur le web un sujet de projet pour mon option PF2, je suis tombé sur la librairie Unimotion qui permet de récuperer des informations du capteur SMS sur les portables Mac d'Apple et de les réutiliser dans Processing ou n'importe quel application Java (normalement).

    Si vous comptez l'installer, sur mac il faut glisser les deux fichiers
    du dossier library dans /Bibliotheque/Java/Extensions/

    Sur ce site:
    http://www.shiffman.net/p5/sms/

    Vous s'y trouverez les prototypes pour utiliser les fonctions relatives à l'utilisation de cette librairie.



    J'ai fait une petite animation d'une balle qui est soumise a la gravité, et rebondit sur le sol, lorsque vous penchez votre mac vers la gauche, la balle rebondit vers la gauche, vers la droite la balle rebondit vers la droite, vous faites monter le mac, le rebond se fait plus prononcé, par contre j'ai eu la fleme de coder la colision balle-plafond donc ne secouez pas trop votre macbook ou la balle risque de rester scotché au plafond :)

    5 mars 2009

    le monde en 2019

    Mais WTF koi ! Bon maintenant faut pas que je die avant de vivre tout ça !

    >ICI<

    Microsoft sait faire rêver en tout cas :)

    3 mars 2009

    Lightning 101 en français !

    Salut tout le monde,
    je viens de voir que David Hobby a mis en ligne une version française de Lightning 101, qui est une introduction à l'éclairage photo (un must have !).

    dispo ici.

    bientot les partiels

    Bientôt les partiels de mi semestre (semestre 2) vont commencer.
    Lundi j'ai eu un petit partiel d'Analyse qui était pas si dur que ça (on verra les résultats xD), et demain j'ai partiel d'Algèbre, je suis actuellement en train de bosser dessus, omg je pensais avoir compris pas mal de choses mais en fait plus je révise et plus je me rend compte que c'est encore plus vaste que ce que je pensais (Quelle est la forme des vecteurs du sev de R4 engendré par (1, 2, -1, 1 et (2, -1, 0, -1) ? ).
    Enfin bref,
    je finis ça et je vais me coucher, comme on a un prof de TD un peu... (italien) alors les explications sont pas très compréhensible, autre difficulté d'une fac pluriéthnique ! Si je suis prof plus tard je ferais exprès de parler vite et de garder l'accent de Tahiti (hahahahahahaha je lol juste en pensant à la tête des élèves).
    Je dois réviser:
    • affirmer qu'un système est libre ou non et le prouver
    • trouver si une famille de vecteurs forme une base ou génératrice et le prouver
    • trouver des vecteurs dans la famille {(1, 2, 3), (x, y, z), (4, 5, 6)} tel que ça forme une base et le prouver
    • dire si une application linéaire et injective, surjective, et le prouver
    • opérations sur les matrices
    • le noyau et l'image, et les corrolaires sur la dimension et le rang
    Je pense que c'est tout et je ne suis même pas sur que le partiel serra sur ça car ben le prof est italien et on pige pas grand chose.

    -blablabla...assurdo
    -qu'est ce qu'il a dit ?
    -par l'absurde
    -thx thx thx

    Enfin voilàa koi xD

    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.

    31 janv. 2009

    Projet Scheme


    Salut tout le monde,
    notre bon professeur de programmation fonctionnelle nous a informé que l'on allaient être amenés à travailler et a rendre un projet entièrement fait en Scheme. Normalement en binome, mon associabilité fait que ben.. je suis tout seul xD et je n'ai toujours trouvé personne avec qui travailler dessus, et en fait j'ai même aucune idée sur quoi je pourrais me baser. Quand on voit ce que les anciens elèves ont pondu, omg on se send vraiment incapable d'être à la hauteur !

    A la base je pensais faire un moteur physique en 2D, avec comme base le moteur Phun, en metant en avant les lois de la physique qui m'aurront permis de "construire" mon projet.

    J'ai trouvé comme ressources ce site de pixar, mais aussi ce site sur les lois physique.

    En tout cas ca me ferrait plaisir si vous aviez des idées pour moi, dans TOUT les domaines possible, peut importe.

    27 janv. 2009

    Créer un compte Itunes sans CB

    Pour pouvoir se connecter ou même télécharger des applications de l'App

    Store, il faut avoir un compte Itunes. Or une carte (de payement) était
    requise.

    Il existe une astuce qui permet de créer son compte sans avoir à

    mettre d'info relative à votre compte bancaire (dans la limite ou vous
    n'achetez rien) et permet, de profiter de la fonction Genius de Itunes,
    mais aussi de la recherche des pochettes de CD de votre librairie
    musicale.

    On utilise Itunes directement pour l'astuce:

    On va dans l'Itunes Store, puis on se déplace vers le bas droit pour
    cliquer sur une application iphone/itouch gratuite.

    Dans la fenêtre qui va s'ouvrir, il faudra cliquer sur le bouton "Créer

    un compte", à partir de la le formulaire de création de compte va
    s'ouvrir dans Itunes, et une petite option vous permettra, dans le choix
    du mode de payement, de choisir "aucun" !

    Et voilà !

    24 janv. 2009

    Ma première applet

    Hurray !
    Je viens de finir le premier TP d'IPO et j'ai pondu ma première applet Processing ! elle est disponible ici

    Vous pouvez voir le code source, super simple ;)

    22 janv. 2009

    Langage de programmation orienté objet: Processing

    Processing est un langage de programmation orienté objet mais aussi un environnement de développement utilisé principalement dans l'éducation, et l'enseignement d'un langage de programmation orienté objet. Utilisant java (ironiquement lol), et multiplateforme (tout comme java), il permet une installation aisé puisqu'il suffit de le copier sur son disque dur, et de lancer l'éxecutable.

    J'ai aujourd'hui eu mon premier cours avec, et faut dire que c'est plutôt simple !

    On devait dans un exo, faire tourner une aiguille au milieu d'un canvas qu'on aurra définit.
    int rayon; // rayon de mon aiguille
    float t; // pour l'utilisation de coordonnées polaire pour l'aiguille

    void setup() {
    size(200,200);
    rayon = 50;
    t = 0;
    smooth(); // histoire de lisser mon aiguille
    }

    void draw() {
    background(255,255,0);
    line(100 + rayon * cos(t), 100 + rayon * sin(t), 100 + rayon * cos(t + PI), 100 + rayon * sin(t + PI)); // toute la puissance des maths !!!
    t = t + 0.01;
    }
    Alors en fait, la fonction setup() ne serra lancée qu'une fois et va servir à initialiser mes variables avec les bonnes valeurs.

    La fonction draw() serra appelée en boucle, et c'est cette fonction qui va dessiner l'aiguille. Elle va dans un premier temps effacer le dessin précédent, puis on dessine l'aiguille, en passant par des coordonnées polaires, l'utilisation de la fonction line() se fait ainsi:

    line( x_origine, y_origine, x_destination, y_destination)


    Et le résultat, en image:

    21 janv. 2009

    De l'utilité d'un "multi-processeurs"

    Ces derniers temps on entend parler des processeurs qui sur un unique die possèdent 2 ou plusieurs coeurs. Même si les systèmes d'exploitations sont censé vous rentabiliser l'achat quoique cher de ces processeurs, en est t'il pareil des jeux vidéos ?

    Teva veut jouer à l'ordinateur, on va lui raconter qu'il faut privilégier la carte graphique, ce qui n'est pas faux, mais surtout ne négligez pas le processeur ! et même si vous entendez dire que le choix d'un processeur, Code 2 Duo ou pas, Quad-Core peut être ? Phenom ? je vous répondrais que OUI prenez un multicoeurs ! Certains jeux (et les plus joués !) sont déjà optimisé pour les processeurs multicoeurs, comme Far Cry 2, ou Call Of Duty 4, ou encore Silent Hill 5 Homecoming, Battlefield, Counter Strike et le moteur vieillissant de Half Life 2 en est épargné (ouf ! au moins pas de soucis avec Left 4 Dead xD). Vous vous en rendrez peut être pas compte mais je vous le dit moi, avec un P4 3Ghz HT, on le sent bien le manque de coeurs !!!!

    18 janv. 2009

    keynote Apple au Macworld expo 2009

    Assez déçu de cette Keynote (sans Steve Jobs :( ), j'aurrais attendu pour rien le phantasque Macbook Touch ou un Macbook low cost (on sait jamais !) ou l'improbable Macbook Wheel, les nouveautés qu'on aurra finalement seront purement logicielles, avec iLife '09 et iWork '09.

    Pour ceux qui veulent voir les nouveautés, allez sur le site d'Apple :s

    15 janv. 2009

    Ceci est un test !

    Ouais juste pour voir si je peux poster des articles a partir de mon itouch... Wesh wesh j'ai un itouch et j'en suis bien content je decouvre petit a petit qu'il possède vraiment tout ce dont j'avais besoin. Plus de détails quand je serrais chez moi.

    Posted by ShoZu

    Pspvc

    J'ai essayé d'installer pspvc, logiciel qui me permettrait de réencoder mes vidéos pour ma psp. Il permet notament la création du fichier .thm qui est l'aperçu sur psp.

    En gros pspvc est une interface graphique à ffmpeg, logiciel multiplateforme en ligne de commande. La psp permet l'utilisation du codec H.264, et de l'audio en amr, et acc aussi. Or pour que ffmpeg "sache" gérer l'amr, il faut l'expliciter au configure:
    --enable-libamr-nb
    --enable-libamr-wb
    --enable-nonfree


    Il faut aussi rajouter le dépôt multiverse à votre source.list !

    Il faudra installer libamr avec aptitude (ainsi que les versions dev).

    Au bout je n'ai pas réussi a compiler ffmpeg successivement, j'ai donc utilisé la version bundlé avec pspvc :s

    Les dépendances de pspvc sous Ubuntu 8.10 Intrepid Ibex sont les suivantes:
    build-essential
    nasm
    libfaac-dev
    libfaad-dev
    libxvidcore4-dev
    liba52-dev
    libgtk2.0-dev

    et l'installation roule toute seule ^^

    12 janv. 2009

    Canon Speedlite 430EX II

    Ca y est !!! ma chérie d'amour m'as offert mon Speedlite 430EX ii, mon premier flash externe pour mon 400D.

    Après avoir passé 8 heures à attendre que les batteries rechargeables du flash se remplissent, j'allume mon fier 400D muni de sa belle parrure (il a pris du poids le bougre !), eeeeeet... je me rend compte que je n'ai plus de batterie dans le reflexe : /

    Finalement ce matin a 4h30, la batterie est rechargée et je peux enfin m'essayer aux joies de la lumière. En mode P (tout auto, je contrôle que l'expo), et le flash configuré en mode noob (E-TTL II), la différence est flagrante:

    avec le flash interne:













    avec le 430EX II:















    J'ai aussi fait quelques essais avec une boite à lumière homemade (studio macro feira quoi), vous pouvez voir ce que ca donne sur mon compte flickr ;)

    Je sens que je vais m'amuser dès que j'aurrais mon réflecteur :p

    DrJava

    Au 2ème semestre on va voir la programmation orientée objet avec le langage Java. Depuis le temps que j'en entend parler, enfin on va entrer dans le vif du sujet :p

    Notre bon professeur JP Roy propose l'utilisation de DrJava, qui n'est qu'un habituel notepad qui permet de compiler directement, mais aussi d'un toplevel qui commence aussi à devenir habituel.

    Il est multiplateforme (java oblige) et s'installe aussi facilement que DrScheme. Sous Mac Os Leopard, on copie l'application dans le dossier Applications, sous Windows c'est un executable qui s'occupe de l'installation et sous Linux (dans mon cas sur Ubuntu 8.10 Intrepid Ibex) il faut télécharger un fichier jar que l'on lance avec l'environnement java que l'on est censé avoir installé.

    Pour Java, il faut installer le JDK (Java Dev Kit) version 5, que JP Roy conseille, même si normalement il ne devrait pas y avoir de problème avec la dernière version ( 6.0).

    L'installation du JDK 5 se fait assez facilement sur Ubuntu, on ouvre une console (alt+F2: gnome-terminal) et on tape:
    sudo apt-get update

    Pour mettre à jour la base de donnée d'aptitude

    sudo apt-get install sun-java5-jdk

    Pour installer le Java JDK 5.0

    Redemarrer n'est pas nécessaire, on peut donc aller chercher DrJava, sous Ubuntu je conseille de prendre la révision 20061025 car les versions plus récentes font apparement planter Xorg notament avec l'utilisation de Compiz Fusion. Quand vous avez téléchargé votre version de DrJava, deux façons de le lancer:

    en console avec:
    java -jar drjava-stable-*.jar


    ou en mode graphique, vous faites un clique droit sur le fichier jar et vous aller sur propriétés, dans l'onglet Ouvrir avec, vous choisissez Sun java 5.0 Runtime

    Voilà.

    Maintenant il se peut que DrJava ne trouve pas le compilateur, il faut alors l'expliciter dans DrJava, edit->preferences, dans Ressources locations -> Tools.jar location:
    et cherchez le chemin suivant: /usr/lib/jvm/java-1.5.0-sun-1.5.0.1.6/lib/tools.jar

    Ensuite il faut redémarrer DrJava pour qu'il prenne en compte le changement.

    Il y a aussi un dernier soucis auquel j'ai été confronté, c'est la fenêtre blanche des préférences (ou d'une autre fenêtre !) dans DrJava, pour cela tout ce que j'ai trouvé c'est d'utiliser le JDK 6 (en l'installant de la même manière que le JDK 5), et tout revient dans l'ordre.

    Si vous avez d'autres soucis n'hésitez pas à laisser un commentaire, j'essayerais de vous aider ;)

    7 janv. 2009

    Résultats des partiels de premier semestre

    Le résultat des notes:
    • Programmation Fonctionnelle: 15,9/20
    • Intro Web: 18,5/20
    • Algèbre: 14/20
    • Maths discrètes: 15/20
    • Informatique générale: 13/20
    • Electronique Numérique: 18,5/20
    Moyenne générale: 15,51/20
    Classement: 5/61

    je crois qu'il y a une couille un problème quelque part je dois voir le coordinateur des L1 Info lundi prochain...

    5 janv. 2009

    Google Earth disponible par le navigateur

    Google a rendu disponible Google Earth 3D disponible directement par votre navigateur sans passer par l'application dédiée, l'avantage c'est que c'est disponible partout, avec Firefox, Safari et Internet Explorer, surement avec Google Chrome mais je l'ai pas essayé. C'est vraiment bluffant de voir ce que l'API de Google Earth permet de faire, on peut cross-afficher une carte 3D et une maps de Google sur la même page, notament lorsque l'on lance un itinéraire en 3D et que l'on veut garder une vue générale avec maps (ou le contraire suivant vos préférences).

    Le lien vers le plugin