2009
11.29

Bases de Quickly

Quickly

Quickly

J’ai découvert Quickly il y a une semaine et j’en deviens accro ;) . Comment vous décrire Quickly ? Il vous facilite (grandement) le développement d’applications, le mieux est de le voir en action.

Techniquement les applications sont en python avec Gtk, mais même si ca fait un moment que je n’y avais pas touché, c’est vraiment intuitif et rapide. Quickly n’a pas encore d’interface graphique, tout se passe en console, mais c’est en cours de préparation.

En pratique

Bon, passons à l’action, on crée notre projet : quicky create ubuntu-project nomduprojet, là vous avez le programme tel qu’il est directement, c’est assez complet pour vous baser dessus pour votre projet, mais pas trop complet pour que ce ne soit pas trop lourd.

Maintenant on va modifier cette base, on va dans le dossier : cd nomduprojet, on ouvre l’éditeur de l’interface graphique : quickly glade, là vous pouvez modifier facilement l’interface, par contre c’est très buggé, et il faut cliquer un fois sur le widget puis une fois sur un espace libre pour le placer (pas de glisser-déposser à la QtDesigner). Une fois l’interface changée (je ferais sûrement un tutoriel vidéo parce que c’est simple en aparence mais compliqué au fond) vous pouvez lancer votre programme pour voir ce que ca donne : quickly run.

Votre programme de base

Votre programme de base

Après s’être amusé avec glade ;) , vous pouvez faire en sorte que le programme fasse vraiment quelque chose en éditant le code : quickly edit, là c’est pas magique, faut apprendre à utiliser Python et Gtk, mais le code est assez clair et le fichier le plus important est celui qui porte le nom de votre projet. Juste une astuce : self.builder.get_object(‘nom_du_widget’) pour accéder aux éléments de l’interface.

Ca utilise bazaar pour les versions, quickly save ‘message de la version’ pour sauvegarder les changement, utilisez Olive pour voir vos versions.

Pour faire un paquet, quickly package.

Mais…

Mais il y a tout de même quelques problèmes :

  • Le dialogue « préférences » que j’ai eu du mal à virer entièrement
  • Glade qui est buggé et pas très intuitif pour certaines choses (accéder et modifier la fenêtre « À propos », fonction de callback, …)
  • Il faudrait stocker le nom de l’auteur, l’email, le nom du programme, sa description, sa catégorie, … quelque part au lieu de le mettre manuelement partout
  • quickly share (et quickly release) qui ne sont utilisable
  • quickly package qui est très limité : pas de signature, mauvais email (ca me met le nom de ma machine), pas de paquet source (pour launchpad)
  • problèmes pour la traduction, je traduis le .pot, mais pour le .deb ca ne change rien
  • pas d’autres templates, langages, interfaces, … mais ca serait dur à maintenir
  • … etc

Mais cela est du à la jeunesse du projet donc ca se comprend, en plus les développeur sont français et très actifs, bravo à eux ;) .

Pour en savoir plus : le site officiel, la doc ubuntu, et la doc ubuntu-fr.

2009
11.24

Enregistrer un flux mms:// en Avi

Quand vous regardez une vidéo en streaming (sans utiliser Flash), il y a de forte chances pour que ce soit mms qui soit utilisé, vous avez donc un flux de la forme mms:// mais ca parait compliquer à passer en local.
J’ai essayé avec les méthodes proposés par des utilisateurs de Windows (utilisant VLC) et c’était assez compliqué, c’est là que j’ai découvert dans un message sur linuxfr (datant de 2007 !) qu’il y a un outils très pratique sous Linux : mimms (cliquez pour l’installer).

Ca s’utilise en console :

mimms mms://url.vers/la/video.wmv

Je vais essayer d’utiliser quickly pour faire une petite interface graphique ;) (le code, en python, à l’air clair et la partie librairie est bien séparée de l’interface en console).

Pour passer la vidéo en Avi, on peut utiliser mencoder :

mencoder video.wmv -ofps 25 -ni -ovc lavc -oac mp3lame -o sortie.avi
2009
11.15

Censure d’Apple : les fans se rebellent, ou presque…

Apple

Apple

Je suis sur Twitter depuis un moment, et je vais ici et là des fans d’Apple toujours en extase, mais là, l’ironie de la situation me faisait rire, ils se rebellaient contre la censure de leur Dieu : Apple.

Pour résumer l’histoire, ouverture d’un Apple Store à Montpellier, les journalistes y vont, mais ne peuvent pas poser les questions qu’ils veulent, ni parler à qui ils veulent, … etc. Un de ces journalistes (Lokan) fait une vidéo dans laquelle il dit qu’on lui a interdit de parler à une salarié. Il la poste sur son site, mais Apple lui signale que sa vidéo  « n’était pas très gentille« , dommage pour eux, il tient à sa liberté, et il a tout de même posté la vidéo.

Apple, que j’admire pour son com’, me decoit, surtout que les fans auraient été prêt à défendre Apple de tout leur coeur (sic) aveuglés par leur culte.

Mais en dehors de ce débat : Apple censure-t-il ? Dont on connais la réponse, je préfère la question : les fanboys peuvent-ils se séparer d’Apple ? Et là la réponse est tout aussi claire : non. Avec leurs macs, ipods, iphones qui leur ont coûté une fortune, et dont ils sont dépendants.

Bon fou-rire en tout cas ;) .

Image par Brianfit sous Creative Commons by.

2009
11.15
Canvas Games sur GitHub

Canvas Games sur GitHub

Je me suis lancé un defi, moi qui n’y comprend rien à Git, je veux le découvrir, mais je n’aime pas trop les long textes théoriques ou les vidéos, donc je me suis lancé !

GitHub

Commencez par ouvrir un compte avec l’offre gratuite de GitHub, Pseudo/Mail/Mot de passe… et Clé SSH, pour vérifier si vous avez cette dernière, faîtes alt+F2 puis gedit ~/.ssh/id_rsa.pub si le fichier est vide alors ouvrez un terminal, et faîtes ssh-keygen puis appuyez sur la touche entrée, là choisissez votre mot de passe, retapez-le. Fini :) vous n’avez plus qu’à remplir le champ SSH Public Key par ce qui est affiché quand vous faîtes alt+F2 puis gedit ~/.ssh/id_rsa.pub.

Je vous passe les banalités de la validation, et on va dire que vous vous retrouvez devant votre tableau de bord : là vous cliquez sur « Create a Repository« , vous remplissez les champs… Voilà votre dépôt est créé mais il est vide ;) .

Dépôt en local puis envoie vers GitHub

(Si vous n’avez pas installé git, cliquez ici)

Vous devez maintenant lancer les commandes listées une après une par GitHub. En résumé, on crée un dossier pour le projet, on le signale comme étant un dépôt git, on crée un fichier README qui va être utilisé sur la page d’accueil de votre projet, on l’ajoute au dépôt, on applique le changement au dépôt en local (avec un message pour faire bien), on ajoute un dépôt distant nommé origin (celui de GitHub), on envoie vers le depôt origin (GitHub) ce qu’il y a sur notre dépôt en local (master).

Voilà, normalement vous devriez avoir le fichier README sur la page d’acceuil de votre projet.

On s’arrête pas là ;)

J’ai testé Giggle et gitg, le plus joli est Giggle mais j’ai reussi à faire ce que je voulais seulement avec gitg, donc je vous conseille d’installer gitg (à moins que vous préfériez rester en console ;) ).

Bon, je crois que c’est le bon moment, je vous laisse vous amusez avec votre dépôt git, et moi avec le mien :) .

Le mieux c’est que ca va me servir de bug tracker, de wiki pour la doc, et bien sur de gestionnaire de version pour le code.

2009
11.14

J’ai des invitations Google Wave

Bon, avec un coup de bol énorme, j’ai eu une invitation Google, donc 8 invitations à donner à tout le monde. J’en garde 3 en reserve, donc les 5 premiers à poster un commentaire auront une invitation (s’ils mettent un mail valide).

(N’oubliez pas de venir me lancer une wave ^^)

2009
11.14
Ubuntu ;)

Ubuntu ;)

J’ai craqué… j’ai installé Ubuntu Karmic Koala depuis un CD que j’ai gravé ;) (le lendemain j’ai trouvé le Live CD que j’avais pré-commandé, trop tard :) ). Et puisque je deviens un habitué d’Ubuntu, je commence à prendre mes réflexes à l’installation :

(Dans mon cas tout à fonctionné à l’installation : internet, drivers, … sauf la mise en veille)

Quelques réglages

Changer l’arrière-plan : SystèmePréférencesApparenceArrière-plan.

Enlever toutes les choses inutiles au démarage : SystèmePréférencesApplications au démarage puis décochez « Aide visuelle », « Bureau à distance », « Encapsulation du registre AT-SPI », « Gestionnaire Bluetooth », « GNOME Login Sound », « Notificateur d’alarme Evolution », « Ubuntu One », et « Vérifier s’il y a de nouveaux pilotes » (si vous n’en avez pas besoin bien sûr ;) ).

Vous pouvez en profiter pour ajouter Firefox au démarage : « Ajouter » → « Firefox », « firefox », « Navigateur Web ».

Si vous êtes sur un ordinateur portable, réglez les options de la gestion de batterie : SystèmePréférencesGestionnaire d’énergie.

Vous pouvez continuer à fouiller dans le menu Système en faisant attention à ne pas faire trop de bêtises dans le sous-menu Administration ;) .

Un bon gros paquet de paquets

(Si vous utilisez firefox, en cliquant sur les liens vous pourrez installer les logiciels, sinon, cherchez-les dans la Logithèque Ubuntu, au pire un sudo apt-get install <nom du paquet>)

  • ubuntu-restricted-extras : d’un coup plein les paquets non-libres mais très utiles : Flash, Java, Codecs, …
  • Gwibber : Pour le micro-blogging (Twitter, identi.ca, …), les flux RSS, …
  • Inkscape : un éditeur d’image très simple d’utilisation (et qui produit des dessins vectoriels).
  • VLC : qui est largement mieux que totem & co pour lire tout et n’importe quoi (vidéos, musique, flux, …).
  • PiTiVi : L’éditeur vidéo le plus simple et le mieux adapté à de la composition vidéo très légère.
  • Geany : Pour programmer ;)
Teeworld

Teeworld

Allons jouons maintenant !

Alors là vous avez le choix, je vous met les meilleurs de ceux qui me reviennent de tête :

  • armagetron : Rapide, très rapide, très très rapide, et efficace en plus !
  • xmoto : Trop adictif, il faut que j’évite de l’installer ;) .
  • chromium B.S.U : Détruisez tout depuis votre vaisseau (graphisme et reactivité).
  • Battle for Wesnoth : Jeu de référence pour la stratégie.
  • openarena : basé sur quake, je suis resté pendant un moment dessus.
  • tremulous : Là c’est mieux fait et c’est Humain contre Araignées.
  • nexuiz et warsow : voir wikipédia pour la définition de nolife ;) .
  • teeworld : mon coup de coeur, le jeu le plus fun du monde
  • Après pour les plus aventuriers allez voir du coté de djl (vous ne serez pas déçu !)

Et encore je n’ai presque rien essayé, Plee The Bear a l’air pas mal par exemple, aussi Alien Arena, … et après certains disent qu’on manquent de jeux sous Linux ;) alors que déjà y’en a pas mal, et il y a Play On Linux pour faire fonctionner (presque) tout les jeux Windows.

Je crois que j’ai laissé une place trop importante aux jeux… ;) Mais il faut bien que je m’inspire pour Canvas Games !

Image par arrayexception sous Creative Commons By-Sa.

2009
11.11

Créer un raccourci clavier pour lancer un Terminal (ou autre)

Clavier

Clavier

J’avais fait un article sur comment faire un raccourci clavier sur Ubuntu Jaunty (avec xbindkeys), mais maintenant Ubuntu Karmic intègre par défaut un programme qui le gère largement mieux :

Allez dans Système Préférences Raccourcis clavier puis dans la catégorie Bureau, chercher « Lancer un Terminal », cliquez dessus puis appuyez sur les touches qui vont lancer le raccourci : pour moi Ctrl, Alt et T.

Vous pouvez en profitez pour regardez (et modifier ;) ) d’autres raccourcis, mais aussi en créer de nouveau…

Image par Arjan Almekinders sous Creative Commons By-Nc-Nd.

2009
11.07
Ubuntu Karmic en pleine utilisation

Ubuntu Karmic en pleine utilisation

Après une longue journée de mise à jour des paquets (1971 !), il est là, Karmic Koala!

C’est génial, mais comme toujours, on ne remarque que les défauts…

Je vais pas vous refaire un article sur les nouveautés, je pense que vous les avez déjà lu (voir par ici pour 3 articles très bien écrits)…

J’ai d’abord voulu tout réinstaller (pour avoir l’ext4 et nettoyer un peu mon ordi) mais l’iso, que j’ai téléchargé via bittorent (y’avait du monde !), n’a pas voulu fonctionner (problème de gravure je pense), et là j’ai commencé à voir beaucoup de commentaires négatifs (avec identi.ca), mais après hésité, j’ai appuyé sur le fameux bouton « mettre à niveau », là on me dit que j’ai plein de paquets à supprimer (~300) et surtout, tout à mettre à jour (presque 2000 paquets !), bon je vous passe les ~24h de mise à jour (et oui je suis à 30ko/s dans mon patelin ;) ) et la demi-heure de configuration.

Démarrage

Petit redémarrage… quelques problèmes pour booter mais ca passe, le nouveau gdm est vraiment plus sympa (surtout l’intéractivité style jQuery)… je remarque que les développeurs ont adopté le style de pensée de Windows : on te fait croire que c’est démarré (souris, fond d’écran, …) mais ca a pas démarré ! Le démarrage m’a semblait plus rapide que sous Jaunty tout de même.

Interface

Ca ne m’avait pas changé mon thème, j’ai donc changé manuellement vers le thème Human, et je pense le garder, il y est vraiment très agréable à utiliser, et le thème d’icône est superbe ! Pour le fond d’écran, je garde le mien (un planisphère qui se met à jour toute les heure avec des photos satellites, dommage que les icônes du sons et du réseau soient noirs : avec mon tableau de bord semi-transparent ca passe mal. L’icône « à tout faire » (statut msn, session, eteindre, …) à disparue, je l’ai remplacé par 2 icônes.

Les notifications sont décalées (« pour laisser place aux notifications systèmes ») et je trouve que c’est une très mauvaise idée : on se demande d’où vient le message (auparavant associé à la zone de notification) et ca brise tout le style bien organisé et sobre du reste de la distribution… Point positifs, lorsque l’on passe la souris dessus, l’effet est mieux pensé : plus progressifs, .

Logiciels

Légérement en retard ;) , je viens de passer à Firefox 3.5 ! J’adore, j’adore, j’adore ! Les pages que je connaissait se transforment : ombres, vidéos, … et c’est beaucoup plus rapide ! Seul problème, Flash qui est encore pire, je crois je vais repasser à gnash…

J’ai remplacé Pidgin par emphaty, c’est plus ergonomique, c’est pas aussi intuitif et complet que Pidgin.

J’en ai profité (après la mise à jour des paquets ;) ) pour supprimer tout les paquets liés à KDE, dont les presque-essentiels Kdenlive et KSnapshot, remplacés par les presque aussi bons, PiTiVi et Shutter.

Conclusion

Le choc n’a pas été trop brutal, comme il y a 6 mois, que des bonnes nouvelles (ou presque ;) ) !

2009
11.07

Colorez votre code avec Dojox Wordpress Syntax Highlighter

Voilà longtemps que je cherchais un bon plug-in Wordpress qui colorer le code, et je l’ai enfin trouvé ! (avant j’utilisait ce site)

Dojox Wordpress Syntax Highlighter

Pour colorer, vous pouvez faîtes :

<code class="javascript">var nombre = 34;</code>

Et ca donne :
var nombre = 34;

Il est tout simple, comme j’en révais (pas le numéro de lignes, ni de barre de menu !) mais il ne supporte pas encore tout les langages… ni le code « inline » mais je vois qu’il est basé sur un plugin dojo qui permet de le faire, donc ca sera surement implémenté bientôt.

2009
11.04

Bonne base d’un bon jeu ;)

J’ai été étonné que certains commencent déjà à faire des jeux pour Canvas Games, je vais donc faire ce tutoriel pour donner de bonnes bases à vos jeux :

// Placez ici la déclaration de vos variables, par exemple :
var time;

function draw() {
    // Le plus souvent on nettoie le canvas avant de dessiner :
    api.clear();

    // Placez ici vos calculs, collisions, ... :
    time = (time > 0) ? time - 1 : 100;

    // Placez ici les appels pour dessiner sur le canvas :
    api.point(time);
}

function start(init) {
    if (typeof init == 'object' || init == false) {
        // Placez ici ce qui se passe lorsque que l'on appuie sur "recommencer"
        api.stop();
    }

   // Placez ici les initialisations de vos variable, par exemple :
   time = 200;

    // par défaut, lance la fonction draw() toute les 20ms soit 50 fps
    api.start();
}

$(function () {
    // On place tout ce qui ne nécessite qu'un seul appel
    api.addHtml('<br />');
    api.addButton("recommencer", start);
    start(true);
});

Les codes sont bien sûr là à titre d’exemple, et j’espère que les indications vous aiderons à mieux comprendre cette organisation du code (que j’ai adopté ;) ).

// Placez ici la déclaration de vos variables, par exemple :
var time;

function draw() {
    // Le plus souvent on nettoie le canvas avant de dessiner :
    api.clear();

    // Placez ici vos calculs, collisions, ... :
    time = (time > 0) ? time - 1 : 100;

    // Placez ici les appels pour dessiner sur le canvas :
    api.point(time);
}

function start(init) {
    if (typeof init == 'object' || init == false) {
        // Placez ici ce qui se passe lorsque que l'on appuie sur "recommencer"
        api.stop();
    }

   // Placez ici les initialisations de vos variable, par exemple :
   time = 200;

    // par défaut, lance la fonction draw() toute les 20ms soit 50 fps
    api.start();
}

$(function () {
    // On place tout ce qui ne nécessite qu'un seul appel
    api.addHtml('<br />');
    api.addButton("recommencer", start);
    start(true);
});