Skate in Mars

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

jeudi 7 juin 2007

Pimp my links

Je n'ai pas d'idées de blabla à mettre autour, alors voici directement les liens :

Et voila, un billet de plus :)
PS : Désolé pour le titre

mercredi 6 juin 2007

Des sous-menus déroulants non obstrusifs avec Jquery


Lors de mon stage, j'ai dû réaliser le prototype d'une page d'accueil qui comprenait plusieurs rubriques et sous-menus.
Le nombre d'éléments à présenter étant trop important il fallait cacher les sous-menus et les afficher à la demande.
Le tout devant être non obstrusif j'ai finalement décidé d'utiliser Jquery pour réaliser des menus déroulants.

La solution est ainsi très élégante et ne requiert que peu de Javascript. Le balisage HTML reste également très propre et valide même si on peut encore améliorer ce côté-ci.
Analysons ce dernier :

<div id="menus">
    <div id="enfants">
        <h2>Accueil d'enfants</h2>
        <ul>
            <li id="enfants_da">
                <a href="#">Déficients auditifs</a>
                <ul>
                    <li><a href="#">Centre 1</a></li>
                    <li><a href="#">Centre 2</a></li>
                    <li><a href="#">Centre 3</a></li>
                </ul>
            </li>
            <li>
                <a href="#">Déficients visuels</a>
                <ul id="enfants_dv">
                    <li><a href="#">Centre 1b</a></li>
                    <li><a href="#">Centre 2b</a></li>
                    <li><a href="#">Centre 3b</a></li>
                </ul>
            </li>
        </ul>
    </div>

    <div id="adultes">
    <!-- Même balisage que pour les enfants -->
    </div>
</div>


Par défaut on doit voir uniquement le titre de la rubrique (le <h2>) ainsi que les liens.
Le tout doit également être visible avec un navigateur ayant le javascript désactivé mais utilisant les CSS, on ne va donc pas utiliser directement ceux-ci pour cacher le <ul> des sous-rubriques.

Voici le code javascript qui utilise donc Jquery.

<script type="text/javascript">
    $(document).ready(function(){

    $("#menus div ul ul").hide();
    $("#menus div ul ul ul").show(); //sous-sous-menus

    $("#menus div ul li a").click(function(){
        $(this).parent().parent().children("li").find("ul.montre").slideToggle("").removeClass("montre").addClass("matched");
        $(this).parent().children("ul").not(".matched").addClass("montre").slideToggle("slow");
        $(this).parent().parent().children("li").find("ul.matched").removeClass("matched");
        if ($(this).attr("href") == "#") {
            return false;
        }
    });

    }); //fin onready
</script>

    
Notez que ce code suffit pour _tous_ les menus (les <div id="enfants">, <div id="adultes"> etc).
Le tout est donc assez compact et élégant en plus d'être adaptable facilement.

Commencons par la fonction de base à utiliser : $(document).ready();
Le paramètre à passer à cette fonction est une fonction qui sera appelée lorsque le DOM sera prêt (entre le chargement du HTML et celui des éléments externes tels que les images).
Remarquez si vous ne le saviez pas que Javascript nous permet d'utiliser ici une fonction anonyme : function(){} en paramètre, ce qui évite de créer la fonction ailleurs.

Le code commence donc réellement à l'intérieur de cette fonction.
La première ligne permet de cacher les sous-menus. La fonction $() retourne les éléments Jquery qui correspondent aux sélecteurs demandés en paramètre. On peut utiliser comme ici du CSS mais aussi Xpath par exemple.
Cette fonction est comparable à la fonction $$() de Prototype.
On applique donc ici la méthode hide() à tous ces éléments. Tous les sous-menus seront ainsi cachés (facile non ? :) ).
La deuxième ligne est necesaire pour éviter aux sous-sous-menus (des <ul> dans les <ul> des centres, ici cela peut-être des services internes d'un centre) de rester constamment cachés à cause de la première règle.

Passons donc au coeur de la technique avec la fonction suivante. Ici on applique à tous les liens une méthode qui permet de leur associer une action lors d'un clic (au lieu d'utiliser onclick directement dans le HTML).
Comme pour le $(document).ready(); on passe une fonction anonyme en paramètre qui représentera l'action à effectuer.

La première ligne de cette fonction montre la particularité de Jquery qui est le chaînage des méthodes. Chaque méthode renvoie en effet l'élément sur lequel il agit.
Le $(this) représente ici l'élement sur lequel on greffe l'evènement, c'est donc la balise <a> dans notre cas.
Les deux parent() permettent de remonter dans le DOM : on se retrouve donc à agir sur la balise (on devrait parler de noeud plus exactement) <ul>.
Avec children("li") on peut voir que Jquery va gérer sans problème le fait que l'on se retrouve avec plusieurs éléments.
find() permet ensuite de 'trier' les éléments trouvés, ici un <ul> qui possède la classe montre.
On applique ensuite la méthode slideToggle() qui est celle qui permet d'obtenir l'effet de menu déroulant (voir la démo sur le site de Jquery).
On enlève ensuite la classe "montre" avec une simple méthode.

La deuxième ligne est celle qui va montrer le sous-menu demandé (le <ul> présent dans le même <li> que le lien) et y ajouter la classe montre.
La troisième enlève la classe "matched" à tous les éléments qui la possédaient auparavant.

Un peu d'explications : les éléments montrés se voient ici appliqués la classe "montre" ce qui permet de savoir quels éléments sont affichés ou non.
En effet on souhaite n'afficher qu'un seul sous-menu à la fois, il faut donc cacher les sous-menus déjà montrés (ceux qui possèdent la classe montre).
La classe matched permet d'éviter de cacher puis remontrer directement un sous-menu sur lequel on a cliqué deux fois :
en effet, on peut imaginer que si l'utilisateur clique sur un sous-menu une deuxième fois ce sera pour le cacher.
On trie donc dans la règle d'affichage les éléments matched car on sait que ceux-ci ont déjà été cachés. On enlève ensuite cette classe pour éviter des problèmes à la prochaine utilisation.

Le dernier test permet de renvoyer false si le lien a pour cible '#'. Cela permet de ne pas remonter en haut de la page, mais laisse la possibilité d'utiliser de vrais liens dans le menus (si l'on ne souhaite pas de sous-menus dans une partie précise).

C'est tout ! Je ne propose pas de capture d'écran ou de démo, la page étant pour le moment utilisée uniquement dans l'association ou je réliase le stage, mais voici le css que j'utilise :

#menus {
margin-left: 20px;
overflow-y: auto;
overflow-x: hidden;
font-size: 14px;
font-family: Verdana, sans-serif;
font-weight: bold;
color: #456b90;
height: 700px;
}
#menus a {
text-decoration: none;
}
#menus div {
position: absolute;
margin-top: 10px;
}
#menus div ul {
width: 150px;
margin-top: 0px;
margin-left: 0;
padding-left: 20px;
background-color: #FFFFFF;
}
#menus div h2 {
font-size: 19px;
font-family: "Trebuchet MS", sans-serif;
margin-bottom: 7px;
}
#menus div ul li p {
margin: 1px;
padding: 4px;
}
#menus div ul li ul {
background-color: #75b9e4;
padding: 4px;
font-size: 12px;
font-weight: normal;
list-style-type: none;
margin: 0;
}

#enfants {
left: 700px;
top: 30px;
}
#enfants h2 {
color: #6be32f;
}


Chaque sous-partie (enfants, adultes) est positionnée de manière absolue dans la page avec left et top.

On peut donc conclure en affirmant sans problèmes que Jquery permet de réaliser plusieurs effets graphiques dans la page, de manière assez simple et surtout en restant accessible et non obstrusif :)

J'ai peu parlé de Jquery, on aurait pourtant pu dire que la lib est légère (une version compréssée étant de plus disponible), rapide, bref un bon candidat au remplacement de Prototype. Voici quelques liens comme d'habitude :)

lundi 28 mai 2007

Happy birthday... to me

Voila, j'ai 20 ans, et ca fait... rien.

C'est nul en fait.


(En fait ce post mylife est en réponse à ma déprime due au fait que la plupart des joyeux anniversaires recus aujourd'hui viennent de mails automatisés de forums ou autres sites publicitaires et que je n'ai même pas eu l'occasion de faire une soirée pour fêter ca /o\ )

Votre agrégateur a maintenant 2 heures pour se mettre à jour avant que je me fâche ;)

mercredi 23 mai 2007

CodeIgniter, un framework PHP qu'il est bien

Ruby on Rails est peut-être à la mode mais je n'ai jamais été trop utilisateur des dernières technologies jusqu'à maintenant même si j'aime me tenir au courant. Pourtant, les frameworks web permettent de gagner énormément de temps en s'occupant de pas mal de tâches répétitives qui ne sont jamais fun pour un développeur.


Pour regagner un peu de fun dans le développement PHP de nombreux frameworks ont commencé à apparaître tels CakePHP, Symfony ou encore le Zend Framework qui deviendra certainement bientôt celui de référence car écrit par l'équipe des développeurs de PHP eux-mêmes.

J'avais besoin de rapidement créer quelques pages pour mon site (http://skateinmars.net) et j'ai voulu voir ce qui se cachait derrière l'idée d'un framework.

Voici donc CodeIgniter (http://codeigniter.com/) qui me semble un peu moins connu mais qui mets l'accent sur la simplicité et la légèreté. Il propose donc peu de fonctions mais est très modulaire, et se veut compatible avec PHP4.

La simplicité, est réellement la raison clé du choix de ce framework. Contrairement à une "usine à gaz" comme Symfony (ce n'est pas forcément un défaut, les créateurs annoncant eux-mêmes Symfony comme réservé aux grosses applications web de niveau "corporate"), CodeIgniter n'a pas d'interface en ligne de commande, ni de fichiers de configs évolués pour générer une partie du code.
Pour l'installer on va donc simplement décompresser un fichier, modifier deux/trois variables dans un fichier de config en PHP et c'est prêt.


Mais au lieu de comparer CodeIgniter (que j'appellerai CI pour moins me compliquer à écrire) à d'autres frameworks voyons plutiôt les features qu'il propose et que l'on peut attendre d'un framework aujourd'hui, ainsi que ses particularités ce qui vous permettra de choisir par vous-même.

Premier point, l'architecture : comme beaucoup de frameworks, y compris le célèbre Ruby On Rails, CI propose un système Modèle-Vue-Contrôleur. Pour expliquer rapidement, ce modèle sépare le code en trois parties :
  • d'un côté l'aspect présentation (Vue) qui représente comment l'utilisateur verra l'information. Le plus souvent ce sera donc une page web mais cela peut aussi être un flux RSS, un fichier XML etc... cette partie gérera donc par exemple l'utilisation des templates à utiliser.
  • de l'autre le côté Modèle qui définit comment accéder aux données et les modifier. Par exemple, c'est ici qu'on pourra y définir les méthodes nécessaires à la création d'une news ou à la récupération des commentaires d'un article de blog.
  • Le contrôleur va lui servir à relier les deux autres parties : selon ce que demande le visiteur, il va chercher les données appropriées depuis le modèle, puis les transmettre à la vue qui conviendra.
Dans la pratique, on utilisera une classe pour chaque modèle souhaité (par exemple, articles, ou commentaires), que l'on nommera et placera dans un dossier models définit par CI.
Les vues seront des fichiers PHP classiques ou se mélangeront code PHP et HTML. Des helpers sont mis à dispositions, ce sont des fonctions qui permettent de faciliter l'écriture d'un lien, d'un formulaire, etc...
CI étant modulaire, on peut tout à fait utiliser un moteur de template classique comme Smarty ou TinyButStrong sans problèmes particuliers (à part peut-être la nécessité de s'occuper différemment du cache des fichiers).

Le contrôleur est la partie la plus interressante. En fait, c'est la seule partie qui est strictement necessaire. On peut d'ailleurs y mélanger des tâches dévolues aux vues ou au modèle sans problème, même si cela reste déconseillé pour des raisons d'organisations et de clarté.
Les contrôleurs seront également déterminants car ils définissent les URLs du site.
Par exemple, le contrôleur Contact sera une classe Contact (qui étend la classe controller) placée dans le fichier contact.php du dossier controllers. On y créera les fonctions index, et par exemple send.
Le visiteur ira ensuite sur site.com/contact, et CI déclenchera automatiquement la fonction index de la classe Contact. Magique :)
Si la fonction send prend en paramètre une personne, le visiteur cliquera ensuite sur un lien vers site.com/contact/send/bob, et la fonction send pourra ainsi chercher une vue qui par exemple affichera un formulaire pour contacter l'utilisateur Bob.

Voila donc l'utilisation de base de CI. Il propose bien sûr d'autres fonctionnalités, comme l'URI routing : on peut par ce moyen rediriger une demande d'URL vers un autre URL pour utiliser un autre contrôleur et une autre fonction (de manière plus ou moins complexe grâce aux expressions régulières).

CI propose de plus une série de librairies pour faciliter les tâches courantes du développement web : l'envoi de mail, l'accès à un serveur FTP, la manipulation d'images et de fichiers, les sessions et ainsi de suite.

CI permet également de créer ses propres librairies, ses plug-ins (simples fonctions) ou encore l'utilisation de hooks, fonctions qui agissent à différents moments du traitement de la requête pour modifier le comportement de CI lui-même, encore une fois preuve de sa modularité.


Voila pour une introduction à CodeIgniter qui ne va pas très loin (je n'ai pas parlé du scaffolding par exemple), mais j'espère vous avoir convaincu de l'utilité d'un framework, et de donner une chance à CodeIgniter :)
Sachez que le niveau requis n'est pas très élevé, il vous suffira de connaître (sans forcément avoir déjà pratiqué) les bases de la programmation objet et d'avoir un minimum d'expérience avec PHP ne serait-ce que pour comprendre les objectifs et les besoins auxquels on fait face lors de la création d'un site ou d'un application web.


Les liens à ne pas manquer pour aller plus loin :
  • http://codeigniter.com/ Le site officiel
  • La documentation, très bien faite avec de nombreux exemples
  • Le wiki regorges de helpers, bibliothèques et autre plugins créées par les utilisateurs. Le forum, du peu que j'en ai vu, est quand à lui assez actif et une assez bonne ambiance y règne (quoique les utilisateurs se clashent parfois avec les devs de CodeIgniter, employés de EllisLab).
  • Certains utilisateurs ont d'ailleurs créé CIForge qui regroupe des projets autour de CI.
  • Et pour finir, les screencasts (à la mode depuis RoR) qui vous donneront une idée de CI grâce à un tutorial vidéo.

Mes projets pour l'an prochain

Tout d'abord je previens les âmes sensibles : ce billet n'est pas une liste de liens, il est mylife © compliant, et tout le monde s'en fout. En fait je m'en fout un peu aussi mais ca me permet de me remettre à blogguer des articles avec du vrai texte dedans donc je l'écris quand même, na.


Merci aux courageux qui lisent encore :)
J'ai bientôt fini mes deux ans passés en DUT SRC (qui semble assez répandu chez les ubunteros), et ne voulant pas trop continuer dans des études longues, j'ai décidé de postuler dans 3 licences pro qui me paraissent assez interressantes. Et comme, qui sait, peut-être te rencontrerai-je toi lecteur, je me dois de partager mes projets :

  • Premier choix : la licence Activités et Techniques de Communication option Multimédia, Internet, Webmaster. Le nom est pas top mais le programme a l'air pas mal avec un peu de graphisme, pas mal de prog et des projets web (peut-être trop de flash par contre). La licence est rattachée à l'université d'Aix-En-Provence mais se trouve à Gap, une sympathique ville de montagne que je connais un peu donc c'est bien.
  • La licence Systèmes Informatiques et Logiciels option Développpement d'Application Intranet/Internets a également retenu mon attention, pas pour la ville (Clermondt-Ferrand qui ne me pas l'air d'être réputée pour quoi que ce soit) mais pour son aspect à fond sur la programmation. Bon par contre ils annoncent du Java voire .NET, mais on peut se consoler en se disant que ca sera plus facile de se mettre à un langage fun à la ruby/python après :)
  • La dernière licence sort un peu de mon projet (devenir webdeveloppeur parce que le ouaibe caylefutur, sachez le) mais vu qu'elle représente le bien, elle m'a plus. Il s'agit donc de la licence SIL option Administrateur de Systèmes et Réseaux à base de Logiciels Libre. Au programme de l'administration donc (LAMP, samba...) et un peu de développement d'applis web semble-t-il.
Voila, si une de ces licences vous a plu et que vous aimeriez postuler avec votre bac +2 en poche à la fin de l'année, bah il est presque trop tard à part pour la licence ASRALL (mais ne postulez pas, sinon j'aurais moins de chances d'être pris /o\ )

Je ferais sûrement un autre post pour annoncer ou j'irai gland^Wétudier l'an prochain, d'ici la vous pouvez retourner lire des blogs interressants ou des listes de liens pourris.

dimanche 13 mai 2007

Encore et toujours des liens

Ca vous avait manqué hein :)


On commence direct avec :

Voila de quoi faire en attendant le prochain billet (qui sera peut-être un vrai article avec du texte, qui sait !)

Update :
Un nouveau lien sur l'effet digg : http://pisani.blog.lemonde.fr/2007/05/14/la-rebellion-digg-les-faits/

jeudi 19 avril 2007

Links for 2007-04-19

Une grande personne célèbre (ou pas, en fait je ne m'en rappelle pas) a dit un jour : "Peut-on créer sans copier ?"
Il n'y a toujours pas de réponses certaines à cette question mais quoi qu'il en soit, voila quelques liens toujours plus inintéressants.

Et bah, voila !
J'ajouterai que le module d'édition WYSIWYG de Dotclear 2 est très agréable et me permet de blogguer une liste de liens avec encore plus d'efficacité, pour le plus grand bonheur de mr_prout !

dimanche 15 avril 2007

Migration vers DC2

Voila, j'ai enfin décidé de migrer mon blog vers mon nouveau nom de domaine, skateinmars.net (fourni par Gandi), et j'en ai profité pour passer à Dotclear 2 qui même s'il est encore en version beta se révèle très agréable :)



La migration s'est passée sans aucun problème et les urls si tout se passe bien devraient avoir été conservées :)

samedi 14 avril 2007

Un jeu libre : Urban Terror

Voila un moment que je n'avais pas posté de billet sur le planet. N'ayant pas beaucoup de temps je préfère attendre au lieu de sortir plusieurs billets de quelques lignes pour relayer une info qui de toutes façons sera reprise par plusieurs blogs ;)
Voici donc un billet sur un jeu libre (encore !) : Urban Terror.



Urban Terror (http://www.urbanterror.net/news.php, aussi appelé UrT) est un fps libre, basé sur le moteur de Quake 3.
A la base simple mod de Q3A, la version 4.0 voit l'arrivée d'une version standalone du jeu, qui ne nécessite donc pas le quake originel mais se base (comme d'autres fps tels que Tremulous) sur une version libre du moteur graphique de Quake, ioquake3, permettant à tous d'en profiter.
UrT est un FPS multijoueur qui tend à être réaliste. On pourrait ainsi le considérer comme le Counter-Strike de Quake (même s'il reste plus énergique voire parfois carrément bourrin). La plupart du temps deux équipes sont présentes, la rouge et la bleue, et s'affrontent pour remplir divers objectifs.
Plusieurs modes de jeu sont disponibles, plus ou moins traditionnels :
  • FFA : chacun pour soi (pas d'équipes)
  • Team Deathmatch : 2 équipes s'affrontent et doivent tuer le plus d'oppposants, la partie s'arrêtant après un certains temps ou un certain nombre de morts
  • Team Survivor : vous devez éliminer l'équipe adverse entièrement. Une fois mort, on doit attendre la fin du round pour revenir dans la partie ("respawn")
  • Follow The Leader : un certain membre de l'équipe doit toucher un drapeau situé dans le camp adverse. Les autres doivent le protéger et/ou tuer l'équipe adverse. La aussi on doit attendre la fin du round (soit la capture d'un drapeau par un leader ou la mort d'une équipe) pour respawner
  • Capture and Hold : Un mode à la Unreal Tournament. Les équipes doivent capturer plusieurs drapeaux situés dans plusieurs zones afin de marquer des points.
  • Capture The Flag : Un mode très classique dans les FPS. Deux camps, deux drapeaux, on doit ramener le drapeau du camp adverse dans son camp.
  • Bomb/Defuse : L'équipe rouge doit planter une bombe dans un deux deux points disponibles et la bleue doit l'empêcher. Le round se termine par la mort d'une équipe, l'explosion d'une bombe ou le désamorcage de celle-ci après avoir été activée, ou encore après la fin du temps imparti (à ce moment la l'équipe bleue remporte la victoire)
En pratique je n'ai pas encore pu essayer tous les modes car certains sont peu joués sur le net. La plupart des modes que vous retrouverez sur les serveurs sont CTF et team DM.

Des bots sont disponibles mais assez complexes à mettre en place (un mini tuto est disponible ici : http://www.pmods.net/Quake/news/Version-4.0-disponible_9953.html).


Contrairement à Counter-Strike, il n'y a pas d'argent pour acheter des armes et munitions dans le jeu. Vous définissez à la place votre set d'armes qui vous sera attribué à chaque respawn. Vous aurez à choisir : armes principale, arme secondaire, pistolet, ainsi que de l'équipement supplémentaire (munitions en plus, medikit pour vous soigner ainsi que vos partenaires, gilet par balles etc..). Il faudra donc bien choisir en fonction du moment et de vos goûts et capacités.
Parmi les armes principales, on retrouvera une vaste gamme de fusils d'assaut (dont la kalash ;) ), shotguns, ou fusils snipers (certains fusils ayant un zoom en plus d'un viseur classique et pouvant donc être utilisés dans toutes les conditions). Les armes sont équilibrées, même si en pratique certaines ne sont presque jamais utilisées.

On pourrait encore parler pendant des heures de Urban Terror mais mieux vaut jouer très vite et apprendre sur le terrain les bases du jeu.
Passons donc à l'installation et la configuration de base :
  1. Commencez par vous rendre sur http://www.urbanterror.net/news.php et téléchargez les deux fichiers disponibles : ioUrbanTerror et Urban Terror (attention celui-ci fait 550Mo, vous pouvez suivre quelques autres étapes en attendant) - Décompressez le fichier ioUrbanTerror_1.0.zip dans un répertoire de votre choix. Vous pouvez supprimer les fichiers obtenus et garder uniquement le repertoire Linux-i386 qui contient le programme en lui-même.
  2. Il vous faut maitenant vous rendre dans ce répertoire Linux-i386 (que vous pouvez bien sur renommer) et donnez les droits en exécution aux fichiers ioUrTded.i386 et ioUrbanTerror.i386 afin de pouvoir les lancer (ioUrbanTerror.i386 correspond au jeu de base et ioUrTded.i386 à la version serveur dédié). Dans un terminal vous pouvez utiliser la commande "chmod +x ioUrTded.i386 ioUrbanTerror.i386" après vous être placé dans le bon répertoire grâce à la commande "cd"
  3. A présent, décompressez le fichier UrbanTerror40_full.zip qui contient les données du jeu (ce qui explique sa taille). Vous obtenez un dossier q3ut4. Créez dans votre répertoire personnel le dossier .q3a/ s'il n'existe pas encore (ce répertoire est aussi utilisé par le quake 3 originel) et déplacez y le dossier q3ut4.
  4. Le jeu est maintenant installé. Pour le lancer, rendez vous dans le dossier qui contient les exécutables (Linux-i386), ouvrez un terminal et entrez la commande "./ioUrbanTerror.i386"
  5. Si vous souhaitez ajouter une entrée à votre menu sachez que vous devrez d'abord vous déplacer dans le répertoire de l'exécutable pour le lancer sans problèmes. Vous pouvez donc renseigner dans votre éditeur de menu la commande suivante : "cd ~/Linux-i386 && ./ioUrbanTerror.i386" en admettant que le dossier contenant les exécutables se situe dans votre répertoire personnel et se nomme Linux-i386.

Une fois dans le jeu (tout en anglais), vous pouvez configurer votre personnage, vos commandes et les graphismes du jeu par le menu setup (une fois dans une partie utilisez la touche Echap pour y acceder). Pour trouver une partie, cliquez sur play online, "Get New List" pour obtenir la liste des parties, puis double-cliquez sur la partie qui vous interresse(vous pouvez classer les parties par nombre de joueurs pour ne pas vous retrouver tout seul ;) ).
Le reste se passe comme pour un FPS classique à la souris.
Amusez-vous bien et peut-être à bientôt pour quelques frags ! :)

Pour finir sachez que comme tout jeu basé sur le moteur de Quake 3 UrT est très configurable. Vous avez à votre disposition une console ainsi qu'un fichier de config (q3config.cfg dans le dossier q3ut4). Pour apprendre customiser votre jeu, vous pouvez d'abord lire le fichier de config puis naviguer sur le net à la recherche de binds et configs d'exemples comme ici

Quelques images pour donner envie ;) :





Et quelques liens pour aller plus loin :

vendredi 6 avril 2007

Du divers, encore du divers

Hop, un peu de vacances pour moi entre la fin des cours et le début du stage.
Un énième billet divers pour fêter cela, et peut-être même bientôt un vrai billet !
Au menu ici :
Du js, du css, un peu de blabla et du design
Ca devrait aller pour le moment ;) Si vous avez un lien complémentaire, ou même sans aucun rapport, vous pouvez bien sur m'en faire part par mail ou dans les commentaires :)

mardi 13 mars 2007

Divers again

Bonjour à tous les gens.
Tout d'abord, désolé pour cette période sans post (ok, personne n'a remarqué mon absence...) mais j'ai eu pas mal de boulot entre la recherche d'un stage et de longues nuits à coder.

J'ai tout de même eu le temps de commencer la lecture du dernier Werber, Le Papillon des Etoiles. Super bouquin, comme d'hab, bien que celui-ci change pas mal du style habituel d'après moi.

Vous avez peut-être également remarqué que j'ai pris le temps pour un après-midi d'installer le nouveau serveur \o/
C'est un vénérable duron 900, qui me permet enfin d'avoir un zsh sans trop d'efforts pour la machine :)
Plus de détails un jour peut-être (voire même des photos ?)

Passons au habituels liens qui s'accumulaient depuis un moment (pour plus de confusion, ils sont triés uniquement selon leur date de découverte) :

Et voila pour cette fois-ci. Après tout ca, il ne me reste plus qu'a retourner bosser jusqu'au prochain billet...

vendredi 23 février 2007

Encore et toujours du vrac

Toujours plus de liens, avec du fun et même des trucs interressants (uniquement pour moi j'entends)

Et voila....

Bonnes vacances à ceux qui y sont deja ou le seront à la fin de la semaine !

PS : D'ici la fin des vacances devrait arriver un nouveau serveur :) Plus puissant, plus de place, plus de ram... Cela devrait également être l'occasion de (re)faire un vrai site autour du blog, ainsi que de migrer vers Dotclear 2. Les nuits seront très courtes...

lundi 12 février 2007

En vrac

De retour d'une semaine de vacances, en attendant un éventuel billet Mylife sur ce séjour, du vrac, mais du vrac qu'il est intéressant ! (j'espère) Et voilou.

vendredi 2 février 2007

News, liens, php, vacances !

Un bon petit billet plein de bonnes choses, histoire d'inaugurer la nouvelle catégorie Divers.

Quelques news Ubuntu pour commencer :
  • Adri2000 est MOTU ! Bravo à lui :)
  • Le MOTU council a été crée, pour gérer l'organisation autour des Masters Of The Universe. gpocentek en fait partie, encore un bravo :)

Un peu de développement web :
Je suis actuellement dans le cadre de mon projet tutoré en train de développer une sorte de CMS pour une salle de concert afin de rénover le site. C'est mon premier gros projet qui me permet réellement d'apprendre à utiliser PHP et MySQL (voire à coder tout court), et cela s'avère très instructif :). Afin de gérer le travail en équipe (3 devs, 3 graphistes), subversion a été choisi pour gérer la partie code. C'est un vrai plaisir à utiliser, notamment grâce à viewvc.

D'autres composants opensource ont été choisi pour le projet :
  • Kses Permet de gérer les données XHTML envoyées par l'utilisateur, pour éviter les failles de type XSS
  • SoundManager2 est une API javascript qui permet de contrôler un composant flash pour jouer un contenu sonore. Oui, c'est du flash, pas libre, mais quand on voit ce genre de tests (essayez chez vous !), on s'apercoit qu'il n'y a malheureusement pas d'autres solutions pour le moment.

Le libre va donc nous permettre de gagner un temps précieux, la deadline étant en mars. Je publierai le lien une fois le tout terminé ;)

Quelques liens en vrac :


Pour finir, notez que je serais en vacances loin du net à partir de samedi et ce pour une semaine (Snowboard time !). Espérons que le serveur n'explosera pas d'ici la :)

lundi 29 janvier 2007

Encore des liens en vrac

Encore un petit billet en vrac, ce coup ci je le démarre assez tôt pour ne rien rater ;) (ces lignes sont écrites le 22 janvier)
  1. http://www.getafirstlife.com/ Mieux que Second Life ?
  2. http://www.blug.linux.no/rfc1149/ Bon, jsais pas si vous allez trouver ca marrant (mais bon jle mets quand même hein :o ), c'est une implémentation de la RFC 1149 (en passant, toutes les RFC "sorties" un premier avril sont à regarder, comme ici ou ici voire même celle-la, qui fait peur vu la taille)
  3. http://lug.oregonstate.edu/projects/kernelmap/map.php The Linux Kernel Map. Ok, je trouve pas ca très utile mais c'est fun :)
  4. http://aralbalkan.com/687 Quelques conseils (non techniques) sur la construction d'une interface utilisateur
  5. http://www.shibumi.org/eoti.htm Un grand classique (que j'avais oublié), mais comme tout le monde se doit de tomber sur cette page...
  6. http://ticnews.fr/spip.php?article77 Interview de Richard Cazenave, sur les LL à l'assemblée nationale. Je n'aime pas parler politique sur un blog (deja que parler politique tout court...) mais ce Monsieur est à connaître ;)

    à ma permanence, les postes de travail sont équipés de la distribution Xubuntu

Je vais m'arrêter la pour le moment, mais comme je n'ai pas trop le temps pour écrire de vrais articles, le prochain billet risque bien d'être à nouveau un "en vrac". ;)

lundi 22 janvier 2007

Quelques news et liens divers

Un petit billet de liens sur diverses actus ou liens trouvés ces derniers temps.
  1. Xfce 4.4 is out Enfin \o/ :)
  2. Sortie de Prototype 1.5 et Scriptaculous 1.7
    A noter, l'ouverture d'un nouveau site pour prototype, rempli de docs pour vous convaincre que javascript, ca rosque ;)
  3. Quelques bandes dessinées (strips) sur Linux
  4. http://trac.gajim.org/ticket/2918 Un bug marrant sur le bugtracker de gajim. Merci shadok :)
  5. http://lca2007.linux.org.au/Programme Les conférences de linux.conf.au de la semaine dernière à Sydney. Certaines sont téléchargables en ogg/théora, d'autres visibles avec un applet java (qui fait pas mal planter firefox en passant :|)
  6. http://www-128.ibm.com/developerworks/xml/library/x-matters48/ J'avoue ne pas avoir encore lu ce lien, mais il a l'air assez intéressante pour ceux qui se demandent comment échanger des informations entre serveur et client grâce à Ajax. Dans la même veine, la sortie de Operator 0.6 (0.6.2 même), une extension de firefox permettant d'accéder aux infos sous forme de microformat dans vos pages web
  7. http://www.my-os.net/blog/index.php?2006/11/26/586-une-histoire-du-design-numerique-premiere-partie Celui la vient d'un de mes (ex) profs de gestion de projets multimédias. Le nom du lien est assez explicite je l'espère ;)
Voila tout, j'ai sûrement oublié des dizaines de liens intéressants ou non, j'essayerai donc de faire ce genre de billet plus souvent si cela vous plait ;)

mercredi 17 janvier 2007

Le flash player 9 disponible en version finale.

"This is it" comme le dit Mike Melanson, responsable du portage linux du flash player sur son blog penguin.swf : http://blogs.adobe.com/penguin.swf/2007/01/flash_player_9_for_linux_x86.html.

Après un (trop ?) long développement, le flash player version 9 est disponible en version finale pour Linux (x86 seulement, malheureusement).

Voici le lien pour le télécharger : http://www.adobe.com/go/getflashplayer/.

Le programme est disponible en rpm ainsi qu'en tar.gz, que vous aurez à choisir pour le moment pour l'installer sous ubuntu, en attendant un paquet qui ne devrait sûrement pas tarder vu la popularité du flash player ;)

EDIT : Quelques liens

EDIT 2 : Un paquet pour Ubuntu feisty est deja disponible !

PS : N'oublions pas que flash est une technologie propriétaire et devrait réellement être évité sur le net, en raison du faible nombre de plate-formes supportées et des problèmes techniques qu'il engendre (accessibilité, etc..)

mercredi 10 janvier 2007

De nouveaux membres d'ubuntu

Ce soir s'est tenu sur irc un nouveau Community Council (https://wiki.ubuntu.com/CommunityCouncil).
Lors de ces réunions sont entre autre acceptés de nouveaux ubunteros comme "membres", preuve de leur implication dans l'amélioration d'ubuntu, d'un côté techniques (packaging, rapports de bugs) comme humain (publicité ("advocacy"), traductions, implications dans les Linux Users Groups, sur irc et sur les forums).


Cette reunion était l'occasion pour mr_pouit, Adri2000 et Lutin de demander leur inclusion en tant que membres, ce qui leur ouvre également la voie pour devenir MOTU (responsables des paquets dans universe).

Grâce à leur talents et actions passées j'ai tenu à bloguer pour les féliciter car ils ont su (peut-être grâce au soutien des membres deja reconnus ?) convaincre le conseil (dont fait partie entre autres Mark Shuttleworth) et ils sont à présent tous trois ubuntu members !

Je tiens également à les remercier pour leurs travaux respectifs,
  • Adri2000 pour son implication dans le packaging pour ubuntu et debian.
  • Lutin pour son implication dans medibuntu et evidemment son travail de packaging avec Sp4rky pour e17 qui a permis a beaucoup d'ubunteros de découvrir ce window manager, sans oublier son travail de modérateur du forum et sa présence sur irc.
  • mr_pouit personnage bien connu pour son travail avec le plf, maintenant medibuntu en plus de packager pour debian et ubuntu. Vous le croiserez également sur le forum ou sur irc, prêt à aider un packageur en herbe. Espérons juste qu'il ne lache pas trop ubuntu pour debian ;)

Voila donc trois personnages à suivre, esperons qu'il suivent les traces de "stars" comme gpocentek (Monsieur Xubuntu) et qu'ils inspirent à leur tour d'autre packageurs et acteurs de la communauté ubuntu :)

Les logs de la réunion sur le channel (en anglais) : https://wiki.ubuntu.com/MeetingLogs/
Plus d'infos sur la "hierarchie" d'ubuntu : http://www.ubuntu.com/community/processes/governance

mardi 2 janvier 2007

Geany, un éditeur simple et efficace

Voici geany, un éditeur de texte/ Environnement de Développement Intégré qui se veut simple, léger (donc rapide) et efficace, ce qui est l'objectif d'à peu prêt tous les éditeurs de texte :)

Lire la suite...

Bonne année

Juste un petit billet Mylife pour souhaiter une bonne année à tous les gentils lecteurs réguliers de mon blog, ainsi qu'aux lecteurs irréguliers, et à tous ceux qui ne lisent pas mon blog (même s'ils auront du mal à lire ce billet).

Pour ne pas poster inutilement, un petit lien qui vous permettra de savoir si vous êtes geek. C'est simple, si vous rigolez à la lecture de http://www.cs.auckland.ac.nz/~pgut001/misc/gnxt.txt, vous êtes geek.

Sinon l'auteur a une tonne de papiers et liens interressants sur http://www.cs.auckland.ac.nz/~pgut001/, quand même.

PS : Promis, l'article sur geany arrive, et il va faire mal ;)

- page 2 de 4 -