Site Perso de

Thomas JANNAUD

Des actualités personnelles sous un style impersonnel, et inversement.



Créer un site html/css à partir de templates

En 2010 j'écrivais comment créer un site web. Les choses ont quelque peu changé depuis côté serveur mais comme toujours en informatique, les vieux outils déconseillés sont encore d'actualité et les nouveaux outils à la mode sont encore trop difficiles à utiliser pour les débutants, la documentation à leur sujet est peu fournie et ils passeront à une nouvelle version prochainement ce qui vous obligera à tout changer.
Pour ce qui est du visuel de votre site, le html/css est fait pour durer et n'a pas trop changé en soi donc tout est encore d'actualité. Vous pouvez tout coder "à ...

AppEngine : analyse et conseils techniques

J'ai récemment décidé de faire tourner mon site web sur AppEngine, ce qui a été l'occasion d'un redesign complet, tant au niveau interface que l'architecture. Je tenais à écrire sur Appengine pour faire les présentations si ce n’était déjà fait, pour donner un maximum d’information afin que vous puissiez faire un choix de migration ou de premier site, et finalement pour décrire des solutions à des problèmes techniques que vous pourriez rencontrer lors du bulkupload.
Qu'est-ce que AppEngine et pourquoi ?

AppEngine est un service de Google. Ils hébergent gratuitement votre site tant qu'il reste "petit" (jusqu'à 1 million de ...

Config MAMP : php/mysql/phpmyadmin sur Mac OS X

First part in French, 2nd part in English
Edit 01/12/2013 : Le site a migré de php/mysql à Python/Jinja2 avec un hébergement gratuit sur AppEngine. En lisant ce dernier article je constate que Apache/MySQL est extrêmement compliqué et que c'est avec soulagement que l'on ne s'en sert plus. Si vous souhaitez installer MAMP juste pour utiliser phpMyAdmin, abandonnez l'idée. Un logiciel pour ouvrir une base de données MySQL (sans installer MAMP) est beaucoup plus adapté pour éditer/utiliser une base de données en local. Et SQLite est encore mieux si l'on a le courage de migrer ses données. Et si vous ...

Troubleshooting with iOS. UI tips

Back in the iPhone Apps with JapanEasy, check it out ! I would like to help the community back too by writing down here a few things that solved my headaches while making this app. As always I would like to say when you play with the "developer enemily" Cocoa framework. width/height bug after rotation
If you reimplement - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation in your UIViewController, watch out if you use the .width and .height properties ! The iPhone and iPad have different behaviours on this. When you go from portrait to landscape, width and height are swapped on the iPhone but ...

PHP/MySQL conseils/tips

First part in French, 2nd part in English
L'une des choses les plus embêtantes à gérer dans un site est l'échappement de guillemets pour éviter les injections MySQL. Et même sur un site qui tourne depuis 3 ans il y a toujours à régler des petits bugs.
Les problèmes peuvent venir de plusieurs endroits : Injections SQL
les injections SQL. Si on fait juste INSERT INTO comments('$_POST["message"]), on va avoir des problèmes si l'utilisateur rentre qqchose comme "1); DROP DATABASE xxx;". On s'en protège en mettant des \ devant les guillemets et les apostrophes., L'utilisateur peut rentrer des ...

Url propres avec .htaccess / Minimal urls using .htaccess

First part in French, 2nd part in English
Adieu les ".php" qui traînent, pour configurer votre htaccess pour avoir des url comme https://jjannaud.fr/prog, c'est ici ! Voici la solution, obtenue après plusieurs heures de combat acharné et des lectures entières de forums.
Dans cet exemple, on suppose que l'on aimerait que monsite.com/xxxxx soit traité par la page blog.php comme si l'url entré était monsite.com/blog.php?page=xxxx.
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^blog/(.*)$ blog.php?page=$1 [L] ...

Créer un site web : Tutoriel complet


Se faire un site Web, c'est sympa : ça change de la programmation bête et méchante et on peut laisser libre cours à sa créativité !
Il y a pourtant des pièges à éviter et cette page est là pour vous faire acquérir les bonnes bases, dès le début.
Vous verrez comment faire pour tester son site internet sur son ordi perso avant d'acheter un hébergement et de publier votre site, quelle architecture je conseille pour vos fichiers, dossiers, images, ... Vous verrez aussi comment rentabiliser votre site internet et gagner un peu d'argent.
Nous allons travailler avec un ...

Automator et Applescript

First part in French, second part in English.
Applescript et Automator sont censés rendre plus facile la vie aux gens qui ne programment pas mais qui veulent faire faire à leur ordinateur des choses répétitives. Dans les faits j'aurai passé plus de temps à écrire ces 3 lignes de script qu'à faire à la main ce que je voulais faire :) Il me reste la satisfaction du devoir accompli, ce qui n'est pas rien.
J'ai voulu tout faire en Applescript au début, parce que je pensais que plus on fait d'appels à des choses extérieures, plus je passerai de temps ...

Fils RSS

Ce symbole : est de plus en plus présent sur le Web. Vos enfants vous traitent de vieux ringard ? A votre tour de les épater sur les nouvelles technologies en leur expliquant ce qu'est un fil RSS !
Qu'est-ce qu'un fil RSS ?

Il y a 2 types de sites web :
ceux à vocation "statique", où le contenu ne change pas, ou alors que très rarement. Exemples : la page de votre CV, un site où c'est un dictionnaire en ligne, ..., et les sites où le contenu est amené à changer fréquemment. Exemple : les sites des ...

Mes codes open source

Visual Basic

Certaines sources ne sont là que pour mettre en avant une fonction particulière avancée du système d'exploitation. Elles sont mentionnées par des **** astérisques ****.
Les chiffres entre parenthèses de 1 à 3 indiquent le niveau de difficulté de celle-ci : 1 - Facile, 3 - Difficile
N'ayez pas peur de télécharger : ce sont des sources, pas des fichiers exécutables. Vous pouvez donc les ouvrir, regarder le code, et copier-coller la fonction qui vous intéresse. Et l'exécuter, c'est vrai. Mais comme vous avez le code, vous pouvez vérifier qu'il n'y a pas de commandes comme "Kill"... ...