<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0"><channel><title>delphiki - Lack of Inpiration</title><link>http://www.lackofinspiration.com/</link><description>delphiki website</description><item><title>Quand les CSS3 se mettent au service de la BD !</title><link>http://www.lackofinspiration.com/news-3-107-quand-les-css3-se-mettent-au-service-de-la-bd.html</link><pubDate>Thu, 06 May 2010 07:37:22 GMT</pubDate><description>Ce que nous allons voir aujourd'hui, c'est comment, grâce aux CSS3, créer des bulles de dialogues style bande dessinée. Je vais vous décrire pas à pas, comment arriver à ces résultats : &lt;a href=&quot;http://94.23.18.199/~delphiki/speech-bubble/&quot;&gt;Speech Bubble&lt;/a&gt; &amp; &lt;a href=&quot;http://94.23.18.199/~delphiki/speech-bubble/thought-bubble.html&quot;&gt;Thought Bubble&lt;/a&gt;, en utilisant différents aspects des CSS.

Tout d'abord, nous allons créer notre base :
&lt;/p&gt;&lt;pre class=&quot;brush: html&quot;&gt;
&lt;!-- notre bulle --&gt;
&lt;div id=&quot;bubble&quot;&gt;

  &lt;!-- le texte qui apparaitra dans la bulle --&gt;
  &lt;span id=&quot;text&quot;&gt;
    I never really was on your side.
  &lt;/span&gt;

  &lt;!-- 2 spans qui nous serviront à créer la flèche pointant vers notre personnage --&gt;
  &lt;span id=&quot;arrow_border&quot;&gt;&lt;/span&gt;
  &lt;span id=&quot;arrow_inner&quot;&gt;&lt;/span&gt;

&lt;/div&gt;

&lt;!-- notre personnage --&gt;
&lt;img src=&quot;spy.png&quot; id=&quot;spy&quot; alt=&quot;spy&quot; /&gt;&lt;/pre&gt;&lt;p&gt;

Ajoutons à cela un petit peu de mise en forme grossière, grâce à quelques règles CSS :
&lt;/p&gt;&lt;pre class=&quot;brush: css&quot;&gt;#bubble{
  position: relative;
  right:50px;
  background-color:white;
  text-align:center;
  width:200px;
  height:80px;
  border:2px solid #555555;
}&lt;/pre&gt;&lt;p&gt;
L'attribut &lt;em&gt;position:relative&lt;/em&gt; va nous servir à positionner correctement notre bulle par rapport au personnage, c'est donc à vous de mettre les bonnes valeurs en fonction du personnage et de la mise en page que vous avez choisis.
On rajoute un fond blanc pour le fond de notre bulle, on centre le texte, on fixe les dimensions de notre bulle (là aussi laissées à votre appréciation en fonction du texte) et on lui applique une bordure de 2 pixels.
Jusque-là, ça ne ressemble pas vraiment à une bulle de BD, je vous l'accorde, mais à un simple rectangle avec du texte à l'intérieur.

&lt;h3 style=&quot;color:#cc9900;font-style:italic;&quot;&gt;« Arrondir les angles »&lt;/h3&gt;
Commençons par arrondir notre bulle, histoire de lui donner un style un peu plus « &lt;em&gt;BDisé&lt;/em&gt; ». Pour cela, nous allons nous servir de la propriété CSS3 &lt;strong&gt;border-radius&lt;/strong&gt;. Cette propriété sert à arrondir les angles d'un bloc. Elle n'est pas implémentée sur tous les navigateurs et certains utilisent des propriétés spécifiques pour l'utiliser.
Dans notre cas, voici comment nous allons l'utiliser :
&lt;/p&gt;&lt;pre class=&quot;brush: css&quot;&gt;#bubble{
  /* ... */
  /* propriété CSS3 (fonctionne sous Opera) */
  border-top-right-radius:80px 40px;
  border-top-left-radius:80px 40px;
  border-bottom-right-radius:80px 40px;
  border-bottom-left-radius:80px 40px;
  /* implémentation Firefox */
  -moz-border-radius-topright:80px 40px;
  -moz-border-radius-topleft:80px 40px;
  -moz-border-radius-bottomright:80px 40px;
  -moz-border-radius-bottomleft:80px 40px;
  /* implémentation Chrome, Safari, ... */
  -webkit-border-top-right-radius:80px 40px;
  -webkit-border-top-left-radius:80px 40px;
  -webkit-border-bottom-right-radius:80px 40px;
  -webkit-border-bottom-left-radius:80px 40px;
}&lt;/pre&gt;&lt;p&gt;

Pour expliquer brièvement ce que nous faisons, voici une petite illustration pour la la première : &lt;em&gt;border-top-right-radius:80px 40px;&lt;/em&gt;
La première valeur va définir le rayon de l'arrondi pour la bordure du haut (top), et la seconde, pour la bordure de droite (right), comme ceci :
&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.lackofinspiration.com/img/upload/border_radius_explaination.png&quot; alt=&quot;http://www.lackofinspiration.com/img/upload/border_radius_explaination.png&quot; /&gt;&lt;/div&gt;&lt;p&gt;
A vous de jouer avec les valeurs pour obtenir la forme que vous souhaitez. Tout ce qu'il faut, c'est conserver un morceau de bordure droit pour, comme nous allons le voir, placer notre flèche.

&lt;strong&gt;Attention :&lt;/strong&gt; là où les navigateurs basés sur Webkit n'utilisent que le préfixe &lt;strong&gt;-webkit&lt;/strong&gt;, l'implémentation de border-radius par Firefox, en plus d'utiliser le préfixe &lt;strong&gt;-moz&lt;/strong&gt;, diffère aussi dans l'écriture des paramètres (cf. code ci-dessus) !

&lt;h3 style=&quot;color:#cc9900;font-style:italic;&quot;&gt;« On ne montre pas du doigt ! »&lt;/h3&gt;
Mettre des bulles avec du texte, c'est bien, mais pointer vers le personnage censé dire le texte, c'est mieux !
Nous allons donc voir comment rajouter la petite flèche à notre bulle, permettant de pointer vers le personnage de notre souhait. Pour cela, je vais vous montrer une technique assez &lt;strong&gt;particulière&lt;/strong&gt; et &lt;strong&gt;peu connue&lt;/strong&gt;, mais pourtant &lt;strong&gt;très puissante&lt;/strong&gt; !

Pour créer notre flèche, nous allons utiliser des blocs de dimensions... 0*0 pixels !
Pour bien comprendre la technique que nous allons utiliser, il y a deux points importants à comprendre.

Premièrement, les dimensions réelles d'un bloc sont définies par : le contenu + le padding + les bordures !
Prenons l'exemple de notre bulle. J'avais fixé la hauteur à 80 pixels, mais rajouté une bordure de 2 pixels. Résultat, la hauteur réelle de notre bloc est donc de : 80 pixels + 2 pixels en haut + 2 pixels en bas = 84 pixels !

Le deuxième point concerne le fonctionnement même des bordures. Une bordure part en fait du centre du bloc (quand il est vide), pour aller jusqu'aux extrémités. Prenons l'exemple d'un bloc vide, auquel nous rajoutons des bordures très épaisses :
&lt;/p&gt;&lt;pre class=&quot;brush: html&quot;&gt;&lt;span style=&quot;display:block;
             width:0;
             height:0;
             line-height:0;
             border-top:30px solid green;
             border-right:30px solid yellow;
             border-bottom:30px solid red;
             border-left:30px solid blue;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;
Le résultat obtenu sera le suivant :
&lt;span style=&quot;margin-left:300px;display:block;width:0;height:0;line-height:0;border-top:30px solid green;border-right:30px solid yellow;border-bottom:30px solid red;border-left:30px solid blue;&quot;&gt;&lt;/span&gt;

Essayez de modifier la largeur d'une des bordures pour voir l'effet produit, c'est le meilleur moyen de comprendre le fonctionnement assez particulier des bordures. Toucher à une bordure va affecter la forme d'une autre !

Vous l'aurez compris, c'est donc en jouant avec ces valeurs que nous allons créer notre flèche. Vous allez aussi comprendre pourquoi j'ai utilisé deux spans dans mon code &lt;em&gt;arrow_inner&lt;/em&gt; et &lt;em&gt;arrow_border&lt;/em&gt;. En effet, vu que nous utilisons les bordures pour créer notre flèche, on ne va pas pouvoir ajouter une bordure... à une bordure, pour créer le contour de notre flèche (dans la continuité du contour de notre bulle) ! Pour palier à ce problème, nous allons simplement superposer deux blocs : un de la couleur de la bordure, sur lequel viendra se coller (légèrement décalé) un de la couleur de fond de la bulle.

Voici le code que j'utilise :
&lt;/p&gt;&lt;pre class=&quot;brush: css&quot;&gt;#arrow_border{
  width:0;
  height:0;
  line-height:0;
  border-bottom:30px solid transparent;
  border-left:30px solid transparent;
  border-right:30px solid #555555; /* couleur de la bordure de la bulle */
}
#arrow_inner{
  width:0;
  height:0;
  line-height:0;
  border-bottom:30px solid transparent;
  border-left:30px solid transparent;
  border-right:30px solid white; /* couleur du fond de la bulle */
}&lt;/pre&gt;&lt;p&gt;

&lt;strong&gt;Note :&lt;/strong&gt; cette technique fonctionne également pour IE dans ses versions 7 et 8 !

Cela dit, ce bout de CSS ne fait pas tout. Il faut maintenant positionner correctement notre flèche (arrow_inner + arrow_border). C'est pour cela que je vous avais demandé au début de garder (si possible) un morceau de bordure rectiligne.

Dans mon cas, j'utilise ce positionnement (en &lt;em&gt;absolute&lt;/em&gt;, car les spans sont contenus dans le div de la bulle) :
&lt;/p&gt;&lt;pre class=&quot;brush: css&quot;&gt;#arrow_border{
  /* ... */
  position:absolute;
  bottom:-30px;
  right:65px;
}
/*
 *  le span qui va se superposer doit être légèrement décalé pour laisser donner l'impression d'une bordure
 */
#arrow_inner{
  /* ... */
  position:absolute;
  bottom:-25px;
  right:67px;
}&lt;/pre&gt;&lt;p&gt;

Et voilà, avec quelques ajustements, vous obtenez normalement une jolie bulle de bande dessinée !
Oui, mais... la police ne fait pas vraiment BD, elle !

&lt;h3 style=&quot;color:#cc9900;font-style:italic;&quot;&gt;« 22, v'là les flics ! Euh... la police ! »&lt;/h3&gt;
Pour personnaliser notre police de caractères selon nos envies et pour faire en sorte qu'elle s'affiche correctement même si le visiteur n'a pas la police installée sur son ordinateur, nous allons utiliser une propriété CSS2, qui... (j'espère que vous êtes assis) est supportée par IE (premier « BOUM ») depuis sa version 5 (deuxième « BOUM ») !

Il s'agit de la propriété &lt;strong&gt;@font-face&lt;/strong&gt;, qui permet de « créer » une police personnalisée utilisable en CSS.
Avant de commencer, il faut déjà trouver la police qui convient. Personnellement, je l'ai trouvée sur &lt;a href=&quot;http://www.blambot.com/fonts_dialogue.shtml&quot;&gt;Blambot&lt;/a&gt;, il s'agit de la police &lt;em&gt;Crime Fighter&lt;/em&gt;.

Cela dit, la police fournie est au format TTF (TrueType). Sauf que pour pouvoir l'utiliser avec @font-face, il faut qu'elle soit au format .otf (OpenType) ou .eot (Embedded OpenType, dans le cas d'Internet Explorer). Je vous redirige donc vers un petit outil online très bien conçu permettant de convertir vos polices : &lt;a href=&quot;http://www.fontsquirrel.com/fontface/generator&quot;&gt;@Font-Face Generator&lt;/a&gt;.
Passez en mode Expert et dans la zone Font Formats, ne cochez que les cases : EOT et OpenType.
Récupérez les fichiers &lt;em&gt;votrepolice.otf&lt;/em&gt; et &lt;em&gt;votrepolice.eot&lt;/em&gt;, et placez-les dans le répertoire de votre projet.

L'utilisation est très simple, pour créer notre police utilisable en CSS, voici le code à rajouter :
&lt;/p&gt;&lt;pre class=&quot;brush: css&quot;&gt;@font-face{
  font-family: ComicFighter; /* le nom que vous voulez */
  src: url('ComicFighter.otf'); /* lien vers votre fichier .otf */
  src: url('ComicFighter.eot')\9; /* hack CSS permettant d'utiliser cette police pour IE uniquement */
}&lt;/pre&gt;&lt;p&gt;

Les fichiers .otf et .eot seront stockés directement sur votre FTP, donc nul besoin que l'utilisateur ait la police installée sur son ordinateur pour qu'elle s'affiche correctement.

Vous pouvez ensuite utiliser directement la police avec le nom que vous avez spécifié, comme n'importe quelle autre police, sur votre texte :
&lt;/p&gt;&lt;pre class=&quot;brush: css&quot;&gt;#text{
  font-family: ComicFighter, Georgia; /* on spécifie une autre police standard, au cas où... */
  font-weight:bold;
  font-size:11pt;

  position:relative;
  top:26px;
}&lt;/pre&gt;&lt;p&gt;

&lt;strong&gt;Note :&lt;/strong&gt; j'applique ici la propriété &lt;em&gt;position:relative&lt;/em&gt;, histoire de bien positionner le texte à l'intérieur de la bulle. L'utilisation des padding auraient pour effet de casser la mise en forme.

Et voilà ! Si tout s'est bien passé jusque là, vous devriez obtenir une belle bulle de dialogue comme on en trouve dans les BD !

Si vous avez compris le principe pour créer une &lt;a href=&quot;http://94.23.18.199/~delphiki/speech-bubble/&quot;&gt;Speech Bubble&lt;/a&gt;, vous pouvez très simplement créer d'autres types de bulles, comme la &lt;a href=&quot;http://94.23.18.199/~delphiki/speech-bubble/thought-bubble.html&quot;&gt;Thought Bubble&lt;/a&gt; (jetez un œil au code source) !</description></item><item><title>Trailer Harry Potter et les Reliques de la Mort (sous-titré)</title><link>http://www.lackofinspiration.com/news-1-106-trailer-harry-potter-et-les-reliques-de-la-mort-sous-titre.html</link><pubDate>Fri, 11 Dec 2009 22:53:15 GMT</pubDate><description>J'avais fait les sous-titres du trailer du prochain &lt;strong&gt;Harry Potter&lt;/strong&gt; qui a fuité.
Le voici donc, avec les sous-titres français ou anglais, au choix :
&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div&gt;&lt;object width=&quot;560&quot; height=&quot;340&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.youtube.com/v/P5QRmvs1g-8&amp;amp;hl=fr_FR&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/P5QRmvs1g-8&amp;amp;hl=fr_FR&amp;amp;fs=1&amp;amp;&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;</description></item><item><title>Vidéos non-crénelées avec VLC sous Windows 7 : les solutions</title><link>http://www.lackofinspiration.com/news-1-105-videos-non-crenelees-avec-vlc-sous-windows-7-les-solutions.html</link><pubDate>Tue, 27 Oct 2009 20:15:55 GMT</pubDate><description>Vous l'avez peut-être remarqué si vous utilisez VLC sous Windows 7, les vidéos ont souvent un rendu pas terrible. C'est dû au mode de sortie par défaut.

Il y a pour cela deux solutions, qui ont toutes les deux leurs inconvénients, mais qui ont le mérite de rendre vos vidéos regardables !
Pour ce faire, il faut aller farfouiller dans les préférences de VLC : menu Outils &gt; Préférences &gt; onglet Vidéo.
Il faut modifier le mode de sortie utilisé par VLC :
&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a class=&quot;aclimg&quot; href=&quot;http://www.lackofinspiration.com/img/upload/vlc_video_params.png&quot;&gt;&lt;img class=&quot;clickimg&quot; src=&quot;http://www.lackofinspiration.com/img/upload/miniatures/mini_vlc_video_params.png&quot; alt=&quot;vlc_video_params.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;
Vous avez deux choix, avec leurs inconvénients respectifs :

- &lt;strong&gt;Sortie vidéo « DirectX »&lt;/strong&gt; : le problème en utilisant ce mode de sortie, c'est que le jeu de couleurs de Windows va être modifié pendant que VLC sera lancé, c'est-à-dire qu'au lieu d'avoir le thème Aero comme ceci :
&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a class=&quot;aclimg&quot; href=&quot;http://www.lackofinspiration.com/img/upload/vlc_jeu_couleurs_normal.png&quot;&gt;&lt;img class=&quot;clickimg&quot; src=&quot;http://www.lackofinspiration.com/img/upload/miniatures/mini_vlc_jeu_couleurs_normal.png&quot; alt=&quot;vlc_jeu_couleurs_normal.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;
Vous aurez quelque chose comme ceci (pour toutes vos fenêtres) :
&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a class=&quot;aclimg&quot; href=&quot;http://www.lackofinspiration.com/img/upload/vlc_jeu_couleurs_base.png&quot;&gt;&lt;img class=&quot;clickimg&quot; src=&quot;http://www.lackofinspiration.com/img/upload/miniatures/mini_vlc_jeu_couleurs_base.png&quot; alt=&quot;vlc_jeu_couleurs_base.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;
Fort heureusement, le mode de couleurs repasse en normal à la fermeture de VLC.

- &lt;strong&gt;Sortie vidéo « OpenGL »&lt;/strong&gt; : le (gros) inconvénient de ce mode de sortie, c'est qu'en plein écran, les contrôles de VLC disparaissent et l'usage de la souris devient aléatoire. Mais dans ce cas, le jeu de couleurs ne sera pas touché, et vous pourrez là aussi regarder votre vidéo avec un beau rendu.

&lt;strong&gt;Attention :&lt;/strong&gt; pour que les modifications prennent effet, il faut fermer et relancer VLC !

Voilà pour l'astuce du jour, en espérant que ça rende service à certains. :)</description></item><item><title>Beds Are Burning - Tck Tck Tck</title><link>http://www.lackofinspiration.com/news-6-104-beds-are-burning-tck-tck-tck.html</link><pubDate>Sat, 17 Oct 2009 17:34:48 GMT</pubDate><description>&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.youtube.com/v/aBTZOg6l6cA&amp;amp;hl=fr&amp;amp;fs=1&amp;amp;&quot; width=&quot;560&quot; height=&quot;340&quot;&gt;
	&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/aBTZOg6l6cA&amp;amp;hl=fr&amp;amp;fs=1&amp;amp;&quot; /&gt;
	&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;
&lt;/object&gt;&lt;/div&gt;&lt;p&gt;</description></item><item><title>Tweets se cache (le filou) !</title><link>http://www.lackofinspiration.com/news-3-103-tweets-se-cache-le-filou.html</link><pubDate>Thu, 08 Oct 2009 18:43:39 GMT</pubDate><description>Derrière ce magnifique jeu de mots très recherché se cache (double jeu de mots !!) en fait une petite mise à jour apportée à ma pseudo-lib &lt;a href=&quot;http://www.lackofinspiration.com/news-3-100-tweets-ajout-des-informations-sur-l-utilisateur.html&quot;&gt;Tweets&lt;/a&gt;.

Vous l'avez peut-être remarqué, mais le chargement des pages de mon site se fait désormais bien plus rapidement. C'est grâce au système de cache que j'ai implémenté à &lt;em&gt;Tweets&lt;/em&gt;.

Vous pouvez désormais spécifier une durée pendant laquelle vos tweets seront mis en cache. Cela permet de soulager le traitement et d'éviter de faire un appel au fichier XML situé sur Twitter à chaque chargement de page.

L'utilisation est simple, par défaut, le cache dure 5 minutes. Vous pouvez en changer la valeur directement dans la lib, ou en passant par la méthode qui va bien :
&lt;/p&gt;&lt;pre class=&quot;brush: php&quot;&gt;var $c_lifetime = 5; // durée en minutes
// ou
$tw = new Tweets('delphiki', false);
$tw-&gt;set_cache_lifetime(10);&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Note :&lt;/strong&gt; Si la valeur est inférieure ou égale à 0, la mise en cache sera désactivée.

Vous pouvez aussi spécifier le dossier de cache que vous désirez. Par défaut, le dossier &lt;strong&gt;tw_cache&lt;/strong&gt; est créé.
Là aussi, vous pouvez le modifier directement dans la lib ou avec la bonne méthode :
&lt;/p&gt;&lt;pre class=&quot;brush: php&quot;&gt;var $c_path = './tw_cache/';
// ou
$tw = new Tweets('delphiki', false);
$tw-&gt;set_cache_path('./mon_super_dossier_cache/');&lt;/pre&gt;&lt;p&gt;
Si vous modifiez le nom et que le dossier n'existe pas, il est créé automatiquement.
&lt;strong&gt;
Note :&lt;/strong&gt; si cURL n'arrive pas à joindre Twitter et que la &quot;date d'expiration&quot; de votre cache est dépassée, le cache est conservé.

Pour télécharger la lib, c'est par là : &lt;a href=&quot;http://www.lackofinspiration.com/twitter/tweets.zip&quot;&gt;tweets.zip&lt;/a&gt; (2.2 ko)

Voilà pour les petites news, j'espère que ça vous sera utile. ;)

@ la prochaine</description></item></channel></rss>