Damien ALEXANDRE

Aller au contenu | Aller au menu | Aller à la recherche

dimanche, novembre 1 2009

Convertir une fonte TrueType ou OpenType en EOT Embedded OpenType sous Ubuntu Linux

Un titre à ralonge pour un petit tuto rapide qui va vous permettre de convertir vos polices de caractères OpenType (.otf) ou TrueType (.ttf) en Embedded OpenType (.eot), un format propre à Microsoft, utilisé dans Internet Explorer depuis Ubuntu Linux (je dis Ubuntu mais ça devrait fonctionner sur n'importe quel unix).

EOT est le seul format de police accepté par Internet Explorer, il va donc falloir convertir les polices que je souhaite utiliser avec @font-face pour assurer la compatibilité. Microsoft propose un outil pour faire ça (WEFT), mais il est mal fichu et ne tourne pas sous Wine (testé avec Wine 1.0.1 sous Ubuntu 9.10). On va donc se débrouiller autrement !

Let me introduce ttf2eot !

Il s'agit simplement d'un utilitaire en ligne de commande pour OpenTypeUtilities.cpp (une classe qui à la base vient de Chromium, le projet Open Source dont Google Chrome est issu). On télécharge donc les sources, et on fait un petit "make" dans le répertoire :

~/Bureau/ttf2eot-0.0.2-2$ make

Si tout se passe bien le binaire ttf2eot à été compilé (si ça foire, posez vous la question : est-ce que g++ est installé sur mon système ?).

Comme son nom l'indique, on a plus qu'a lui passer un ttf pour qu'il nous génére le eot correspondant :

~/Bureau/ttf2eot-0.0.2-2$ ./ttf2eot < ../delicious-123/Delicious-Roman.ttf > ../delicious-123/Delicious-Roman.eot

Deux paramètre : le fichier d'entrée, et de destination :
$ ./ttf2eot < input.ttf > output.eot
That's all !

Convertir un fichier OpenType

C'est bien beau mais si notre police de caractère n'est pas en TrueType, ttf2eot ne sert à rien. Il n'existe pas d'équivalent pour OpenType, mais il est possible de convertir une fonte OpenType en TrueType. Voici la marche à suivre. On va avoir besoin de fontforge :

$ sudo apt-get install fontforge

Ensuite on écrit un petit script shell qui nous évitera de passer par l'affreuse interface de fontforge (à sauver en otf2ttf.sh par exemple) :

#!/usr/local/bin/fontforge
# Quick and dirty hack: converts a font to truetype (.ttf)
Print("Opening "+$1);
Open($1);
Print("Saving "+$1:r+".ttf");
Generate($1:r+".ttf");
Quit(0);

(Petit script récupéré ici, merci :-))

On s'en sert donc pour convertir notre fichier otf en ttf (et ensuite, on utilise ttf2eot pour enfin obtenir le fichier eot !) :

$ fontforge -script otf2ttf.sh ../delicious-123/Delicious-Roman.otf

Utilisation de @font-face

Si vous vous intéressez à eot c'est que vous allez utiliser @font-face (grillé !), mais savez-vous comment l'utiliser proprement ?

@font-face {
font-family:'Delicious';
src: url('Delicious-Roman.eot');
src: local('Delicious Roman'), local('Delicious'),
url('Delicious-Roman.otf') format('opentype');
}

Pour les explications, veuillez vous référer au billet de Paul Irish, qui est à l'origine de cette solution (qui en gros permet en une seule fois de déclarer une police pour tous les navigateur, sans requête HTTP superflue).

Quelques liens :

  • compatibilité de @font-face (on y voit que Google Chrome n'active pas Web Font par défaut)
  • la police pour laquelle je me suis penché sur le sujet, Delicious (ces conditions d'utilisations autorise @font-face)

samedi, octobre 31 2009

Ubuntu 9.10 et Gnome Shell

J'ai passé cette nuit mon PC fixe de Ubuntu 9.04 à Ubuntu 9.10 (Karmic Koala), aucun problème majeur à signaler pour une fois :-) 

L'ensemble du système est toujours stable et mes applications ont survécus. Seulement je suis toujours déçu, et ce depuis quelques années maintenant, par l'aspect graphique général d'Ubuntu. On a enfin un boot graphique, mais il manque encore quelque chose. Et j'ai trouvé mon bonheur par hasard dans ce billet : Gnome Shell.

Gnome Shell est le remplaçant de gnome-panel et du window manager metacity prévu pour Gnome 3.0 (qui lui-même sera inclut dans Ubuntu 10.10 ! On a le temps (c'est dans un an)).

Il s'agit de remplacer toute l'interface utilisateur de Gnome (le menu / barre des tâche, bureau, etc) par quelque chose de beaucoup plus pratique ! C'est en tout cas l'effet que produit gnome-shell chez moi, j'ai le sentiment d'être dans un environnement beaucoup plus cool que le précédent : alors oui d'une part c'est le côté bling bling qui saute aux yeux, mais après quelques heures d'utilisation on se rend compte qu'on est vraiment aidé par cette nouvelle interface.

Suffisement parlé, place à une vidéo :

Pour l'installer sur votre 9.10, faite un petit apt-get du paquet gnome-shell, pour le lancer, il suffit de l'appeler dans un terminal :

gnome-shell --replace

Il va donc remplacer gnome-panel et metacity sans redémarrer la session. Ceci n'est pas permanent (gnome-shell est encore en cours de développement, bien que parfaitement stable) et donc il suffit de faire la manipulation inverse pour revenir à votre gestionnaire de fenêtre initiale :

metacity --replace
gnome-panel

Enjoy (site officiel).

dimanche, octobre 25 2009

Les sorties musicales du moment

Ce n'est pas parce qu'Hadopi 2 est passé qu'on doit s'empêcher d'écouter ce qu'on aime. Et ça tombe bien la période post-rentrée est pleine de sorties intéressantes :

Air - Love 2

Sortie au début du mois, le nouvel opus des deux Frenchies sonne comme un bol d'air frais (je sors ->[]). Je dis air frais, mais les influences sixties et seventies sont clairement affichés (Eat my beat) et c'est pas pour me déplaire. L'album est comme d'habitude planant, relaxant. Les mélodies, la production léchée, le son cristallin et la voix féminine sont toujours présents. Enregistré dans les nouveaux studios du groupe à Paris (vers Belleville \o/) ça ne les as pas empêché de sortir l'opus une semaine avant au Japon, pays dans lequel le groupe est une divinité (si si, les écolières tag leurs trousses au tipex, colle des écussons sur leurs sacs et se coiffent comme Nicolas Godin). Love 2 sur Spotify.

Massive Attack - Splitting the Atom

Massive Attack nous fait patienter avec un EP uniquement disponible en download et vinyl. Composé de 4 titres dont deux remix, ce nouvel opus est donc un avant gout de ce qui nous attends avec Weather Underground : leur véritable nouvel album qui a été repoussé à février 2010.

Les Anglais ont prévu 8 dates en France en ce mois de novembre, pour ma part je les vois le 11 au Zenith de Paris :-) (avec Martina Topley Bird en première partie en plus !). Splitting the Atom sur Spotify.

Foo Fighters - Greatest Hits

Le groupe de Dave Grohl fête ses presque 15 ans d'existence avec son premier Greatest Hits (sortie le 3 novembre). On y retrouve donc tous leurs "tubes", sauf (et ça me fait bien rager) Let it die ! Pauvre de moi. Bon je crois que leur discographie est bien trop riche pour me contenter simplement d'une sélection. Il n'empêche que ce best of est dispo en vinyl... alors j'ai craqué :-)

La tracklist :

  1. All My Life
  2. Best Of You
  3. Everlong
  4. The Pretender
  5. My Hero
  6. Learn To Fly
  7. Times Like These
  8. Monkey wrench
  9. Big Me
  10. Breakout
  11. Long Road To Ruin
  12. This is a Call
  13. Skin and Bones
  14. Wheels
  15. Word Forward
  16. Everlong (acoustic)

Je vous ai fait une playlist sur Spotify avec ces quelques titres. Wheels (sortie en single et ayant un clip) et Word Forward sont deux nouveaux titres enregistré exclusivement pour ce Greatest Hits (il ne s'agit donc pas de deux titres "cultes" du groupe).

Them Crooked Vultures - éponyme

Yeah ! Le super groupe de Josh Homme (le mec derrière les Desert Sessions et Queens of the stone age, deux monuments très important de ma bibliothèque musicale), Dave Grohl (batteur de Nirvana puis leader des Foo Fighters, il est aussi batteur sur "Songs for the deaf", LE meilleur album des QOTSA) et John Paul Jones (bassiste de Led Zep) sort donc son premier album le 17 novembre, avec un single (New Fang) qui sort normalement demain. Pour les avoir vu en live à Rock En Seine cet été, je peux juste dire que ça déchire sévère :-) Je ne suis pas du tout objectif mais, on parle de rock là !!

Pour écouter ce que ça donne, à part youtube il n'y a rien pour l'instant.

EDIT : le premier single de Them Crooked Vultures : http://twt.fm/315221

Voilà c'est pas la première fois que je parle de musique sur ce blog, là il me paraissait important de parler de ces 4 sorties, je sais pas si ça en vaut la peine mais j'ai du coup ouvert une nouvelle catégorie. Peut être un moyen de faire revivre ce blog !

lundi, septembre 14 2009

Mettre en place sfWidgetFormTextareaTinyMCE, symfony 1.2

Hey les gens, j'en vois de belles à propos de TinyMCE sous symfony 1.2 !

Non il n'y a aucun besoin de modifier le plugin sfFormExtra pour avoir un éditeur WYSIWYG sous symfony ! La marche à suivre est on ne peu plus simple (mais absolument pas documenté je vous l'accorde, ça manque).

  1. Installer le plugin : ./symfony plugin:install sfFormExtraPlugin (un ./symfony plugin:publish-assets et un ./symfony cc sont aussi conseillés)
  2. Télécharger TinyMCE, déplacer le répertoire tiny_mce dans web/js/ (c'est une dépendance externe qui n'est pas incluse dans sfFormExtra)
  3. Déclarer l'utilisation du widget sfWidgetFormTextareaTinyMCE dans le configure() de votre classeForm :
    $this->widgetSchema['content'] = new sfWidgetFormTextareaTinyMCE(array(
            'width'=>950,
            'height'=>350,
          ));
  4. Et enfin, ajouter le javascript js/tiny_mce/tiny_mce.js à la réponse, dans le view.yml, ou un appel à
    sfContext::getInstance()->getResponse()->addJavascript(sfConfig::get('sf_rich_text_js_dir').'/tiny_mce.js');

That's all.

lundi, août 31 2009

Fin des vacances

C'était un bon mois d'août, retour aux choses sérieuses. 

dimanche, août 2 2009

jQuery, éviter la soumission multiple d'un formulaire

Le morceau de code qui suit permet d'éviter la soumission multiple d'un formulaire en désactivant l'event submit d'un formulaire et en mettant les input submit en disabled dès la première soumission effectuée.

J'ai été incapable de trouver quelque chose de correct, il existe même des plugins jQuery pour faire ça mais ils sont mauvais et inefficace (oui, on peux soumettre un formulaire autrement que par un click! sur un input:submit...). Donc voilà je publie mon code, il sera peut être utile à toi, visiteur de l'internet mondial :

$(document).ready(function() {
$('form').submit(function() {
if(typeof jQuery.data(this, "disabledOnSubmit") == 'undefined') {
jQuery.data(this, "disabledOnSubmit", { submited: true });
$('input[type=submit], input[type=button]', this).each(function() {
$(this).attr("disabled", "disabled");
});
return true;
}
else
{
return false;
}
});
});

Il s'agit en même temps d'un bon exemple d'utilisation de jQuery.data :)

PS : peux poser des problèmes avec les solution d'autocomplete pour jquery :/

PPS : non ce blog n'est pas mort, il survit.

- page 1 de 43