<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TiloWeb</title>
	<atom:link href="http://www.tiloweb.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tiloweb.com</link>
	<description>La passion du web (et de tous les trucs inintéressants qui s&#039;en rapprochent)</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:31:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[Smarty] Redimensionner une image</title>
		<link>http://www.tiloweb.com/smarty/cropbox</link>
		<comments>http://www.tiloweb.com/smarty/cropbox#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:31:06 +0000</pubDate>
		<dc:creator>Tilotiti</dc:creator>
				<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://www.tilotiti.com/?p=15</guid>
		<description><![CDATA[Il existe diverses techniques pour redimensionner une image sur internet : La technique dynamique : Utiliser une librairie PHP (au hasard, GD) qui permettrait de créer une nouvelle image dans laquelle coller une partie seulement de l&#8217;image originale. C&#8217;est compliqué, long, lourd et surtout, ça ne marche pas à tous les coups (pas de prise [...]]]></description>
			<content:encoded><![CDATA[<p>Il existe diverses techniques pour redimensionner une image sur internet :</p>
<ul>
<li>La technique dynamique : Utiliser une librairie PHP (au hasard, GD) qui permettrait de créer une nouvelle image dans laquelle coller une partie seulement de l&#8217;image originale. C&#8217;est compliqué, long, lourd et surtout, ça ne marche pas à tous les coups (pas de prise en compte des animations GIF, de la transparence PNG, etc &#8230;).</li>
<li>La technique statique : Rien ne vaut le bon vieux HTML (ou pas), on renseigne la hauteur et la largeur est calculée automatiquement, ou alors on rentre les deux et l&#8217;image est toute déformée. Quel plaisir !</li>
<li>La technique néandertalienne : On télécharge la photo sur son ordinateur, on ouvre Paint, on crop, et hop ! Mais il ne faut pas pousser mémé dans les orties, quand on a quelques dizaines de milliers de photos par jour à redimensionner, il faudrait alors un bon paquet de stagiaire pour en venir à bout.</li>
</ul>
<p>Bien sûr, je ne peux pas tout lister, d&#8217;une part parce que je ne les connais pas toutes, d&#8217;autre part, parce que celles-ci évoluent tous les jours. Ainsi, je vais proposer, aux utilisateurs de smarty, un petit plugin de ma conception que j&#8217;utilise tous les jours. Le concept est très simple : un peu de php et un peu de CSS pour une image parfaitement adaptée et centrée sur tous les navigateurs web, que j&#8217;ai appelé, la cropbox.</p>
<h2>Un peu de CSS</h2>
<pre class="brush: css">.cropbox {
overflow: hidden;
display: inline-block;
}

.cropbox img {
margin:auto;
}</pre>
<p>Jusque là, pas vraiment besoins d&#8217;explication.</p>
<h2>Un peu de PHP</h2>
<p>Construisons notre plugin smarty (<a title="[smarty] Créer un plugin" href="http://www.tilotiti.com/">voir le tutoriel</a>) ! Nous allons donc créer une fonction smarty que nous appellerons &laquo;&nbsp;crop&nbsp;&raquo; :
<pre class="brush: php">&lt;?php
function smarty_function_crop($params, &amp;amp;amp;amp;amp;$smarty) {

$info = @getimagesize($params[&#039;img&#039;]); // On récupère les informations liées à l&#039;image

if(!$info): // Si l&#039;image n&#039;existe pas
return false;
endif;

// Définition des styles de la cropbox
if(isset($params[&#039;align&#039;])): // On imite le paramètre HTML &quot;align&quot;
$style .= &quot;float: &quot;.$params[&#039;align&#039;].&quot;;&quot;;
endif;

if(isset($params[&#039;border&#039;])): // On définie la présence d&#039;une bordure
$style .= &quot;border: &quot;.$params[&#039;border&#039;].&quot;;&quot;;
endif;

if(isset($params[&#039;margin&#039;])): // On défini les marges
$style .= &quot;margin: &quot;.$params[&#039;margin&#039;].&quot;;&quot;;
endif;

// On calcules le format optimal de l&#039;image ainsi que les marges associées

$img = $params[&#039;img&#039;];
$alt  = $params[&#039;alt&#039;];
$x_orig  = $info[0];
$y_orig = $info[1];
$x_crop = $params[&#039;width&#039;];
$y_crop = $params[&#039;height&#039;];
$margin_x = 0;
$margin_y = 0;
$ratio_orig = $y_orig/$x_orig;
$ratio_crop = $y_crop/$x_crop;
$ratio_x = $x_crop/$x_orig;
$ratio_y = $y_crop/$y_orig;

// On calcul les dimensions en se basant sur la hauteur fixe
$y_final  = $y_crop;
$x_final  = $x_orig * $ratio_y;
$margin_x = -($x_final - $x_crop)/2;
if($x_final &lt; $x_crop): // Si ça ne colle pas
$y_final  = $y_orig * $ratio_x;
$x_final  = $x_crop;
$margin_y = -($y_final - $y_crop)/2;
$margin_x = 0;
endif;

return &#039;&lt;span style=&quot;width:&#039;.$x_crop.&#039;px; height:&#039;.$y_crop.&#039;px; &#039;.$style.&#039;&quot;&gt;
&lt;img src=&quot;&#039;.$img.&#039;&quot; alt=&quot;&#039;.$alt.&#039;&quot; width=&quot;&#039;.$x_final.&#039;&quot; height=&quot;&#039;.$y_final.&#039;&quot; style=&quot;margin-left:&#039;.$margin_x.&#039;px; margin-top:&#039;.$margin_y.&#039;px;&quot; /&gt;
&lt;/span&gt;&#039;;
} ?&gt;</pre>
<h2>Ce qui donne</h2>
<pre class="brush: html"> {crop img=&quot;http://www.tiloweb.com/claramorgan.png&quot; width=&quot;110&quot; height=&quot;150&quot;} </pre>
<p> Votre image sera parfaitement centrée dans le cadre aux bonnes dimensions.</p>
<div id="attachment_54" class="wp-caption aligncenter" style="width: 580px"><a href="http://www.tiloweb.com/wp-content/uploads/2012/02/cropbox.png"><img class="size-full wp-image-54" title="cropbox" src="http://www.tiloweb.com/wp-content/uploads/2012/02/cropbox.png" alt="Rendu du plugin cropbox" width="570" height="300" /></a><p class="wp-caption-text">Image 245x210 redimensionnée en 110x150 sans être déformée.</p></div>
<p>&nbsp;</p>
<p>PS : Oui, j&#8217;ai choisi comme modèle Clara Morgan, simplement pour optimiser mon SEO : Sexy Engine Optimizer, histoire de fidéliser mes lecteurs masculins.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tiloweb.com/smarty/cropbox/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Astuce] Savoir si l&#8217;index d&#8217;un tableau associatif existe</title>
		<link>http://www.tiloweb.com/js/astuce-savoir-si-lindex-dun-tableau-associatif-existe</link>
		<comments>http://www.tiloweb.com/js/astuce-savoir-si-lindex-dun-tableau-associatif-existe#comments</comments>
		<pubDate>Mon, 19 Dec 2011 17:02:22 +0000</pubDate>
		<dc:creator>Tilotiti</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.tiloweb.com/?p=39</guid>
		<description><![CDATA[En travaillant sous Titanium Appcelerator pour la création d&#8217;applications mobile (j&#8217;écrirais peut-être un petit quelque chose à ce sujet par ailleurs) je me suis vite confronté à un petit problème. Ce problème, presque insignifiant, m&#8217;a tout de même prit plus d&#8217;une heure de recherche pour en trouver une solution propre et native (prise en charge [...]]]></description>
			<content:encoded><![CDATA[<p>En travaillant sous Titanium Appcelerator pour la création d&#8217;applications mobile (j&#8217;écrirais peut-être un petit quelque chose à ce sujet par ailleurs) je me suis vite confronté à un petit problème. Ce problème, presque insignifiant, m&#8217;a tout de même prit plus d&#8217;une heure de recherche pour en trouver une solution propre et native (prise en charge par tous les navigateurs).</p>
<p>Le problème est simple : Comment savoir si l&#8217;index est présent dans un tableau associatif ?</p>
<p>Bien entendu, on peut faire de la manière suivante :</p>
<pre class="brush: javascript">// Erreur javascript avec Titanium Appcelerator
if(array[key] != undefined) {
// ...
}</pre>
<p>Oui mais voila, Titanium ne le prend pas en compte, ni même certains navigateurs. Comment faire alors ? Et bien la réponse est étonnamment simple, mais quand on ne la connait pas, on a du mal à l&#8217;inventer.</p>
<p>Rappelons-nous qu&#8217;en Javascript, un tableau, c&#8217;est avant tout un objet. L&#8217;index d&#8217;un tableau associatif est alors une propriété d&#8217;un objet. Ainsi, au lieu de faire notre recherche sur un index (ce qui provoque des erreurs), il suffit de faire une recherche sur la propriété.</p>
<pre class="brush: javascript">// Marche sous Titanium Appcelerator ainsi que tous les navigateurs
if(array.hasOwnProperty(key)) {
//...
}</pre>
<p>La méthode retourne une valeur booléenne, rien de plus simple. Je me sens ainsi bête d&#8217;y avoir passé autant de temps alors j&#8217;écris ces quelques lignes pour permettre à mes semblables perdus dans les méandres de google de trouver une réponse simple à un problème qui l&#8217;est tout autant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tiloweb.com/js/astuce-savoir-si-lindex-dun-tableau-associatif-existe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conférence Microsoft &#8211; Les après-midi du Dev Javascript : sous le capot des applications HTML5 modernes</title>
		<link>http://www.tiloweb.com/js/conference-microsoft-les-apres-midi-du-dev-javascript-sous-le-capot-des-applications-html5-modernes</link>
		<comments>http://www.tiloweb.com/js/conference-microsoft-les-apres-midi-du-dev-javascript-sous-le-capot-des-applications-html5-modernes#comments</comments>
		<pubDate>Mon, 14 Nov 2011 13:52:47 +0000</pubDate>
		<dc:creator>Tilotiti</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.tiloweb.com/?p=32</guid>
		<description><![CDATA[#amdev, ou comment finir sa semaine de bonne humeur. En effet, ce fût, pour moi, la première fois que je me retrouvais dans une salle entouré de 200 personnes parlant le même langage (au sens large du terme, parce que moi et le .NET &#8230;) et très concrètement, ces quelques heures m&#8217;ont été très instructives et [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Twitter - Hashtag #amdev" href="https://twitter.com/#!/search/%23amdev" target="_blank">#amdev</a>, ou comment finir sa semaine de bonne humeur. En effet, ce fût, pour moi, la première fois que je me retrouvais dans une salle entouré de 200 personnes parlant le même langage (au sens large du terme, parce que moi et le .NET &#8230;) et très concrètement, ces quelques heures m&#8217;ont été très instructives et passionnantes.</p>
<p>Au programme de l&#8217;après-midi :</p>
<ul>
<li><strong>Les fondamentaux du JS</strong>, présenté par<a title="Twitter de Jean-Pierre Vincent - #theystolenmynick" href="http://www.twitter.com/#theystolemynick" target="_blank"> Jean-Pierre Vincent</a>. La génération actuelle de développeur (moi y compris) a de grosse lacune concernant les bases même de ce langage. Et j&#8217;ai été le premier étonné de voir, qu&#8217;au fond, comme beaucoup de monde, je ne maîtrisais pas les bases de ce langage qui est pourtant utilisable chez 99.5% des internautes (contre 95% pour flash). Très bonne présentation pour faire le point, donc, sur les namespaces, la Programmation Orientée Objet (POO), le SCOPE (domaine de portée  des variables et des fonctions).</li>
<li><strong>Les outils de Debug</strong>, par les très sympathiques <a title="Twitter de David Rousset" href="http://www.twitter.com/#davrous" target="_blank">David Rousset</a> et <a title="Twitter de David Catuhe" href="http://www.twitter.com/#deltakosh" target="_blank">David Cahute</a> (expert en Troll Microsoft CHEZ Microsoft, un grand bravo), pour faire le tour des outils de développement d&#8217;Internet Explorer, de FireBug et de Chrome. C&#8217;est d&#8217;ailleurs avec une grande surprise que l&#8217;on a découvert des fonctionnalités trop peu connues d&#8217;IE (F12) comme le développement automatique de fichier JS compressé et le profiling.</li>
<li><strong>jQuery</strong>, par Aurélien Verla (Directeur technique de la société <a title="Bureau d'expertise technologique" href="http://www.wygwam.com/" target="_blank">Wygwam</a>, entreprise au palmarès impressionnant, tout autant que notre intervenant). Bien que mes connaissances sur ce framework de développement sont relativement déjà poussées, j&#8217;ai tout de même eu la chance d&#8217;apprendre les spécifications techniques me permettant maintenant de contribuer à ce projet, ce à quoi je ne manquerais pas (dans ce blog d&#8217;ailleurs). Merci également pour ce petit historique (passé et futur) ainsi que la présentation de son outil de sélecteur CSS <a title="Sizzle" href="http://sizzlejs.com/" target="_blank">Sizzle</a>.</li>
<li><strong>Le choc des titans : Canvas VS SVG</strong>, par les deux survoltés <a title="Twitter de David Rousset" href="http://www.twitter.com/#davrous" target="_blank">David Rousset</a> et <a title="Twitter de David Catuhe" href="http://www.twitter.com/#deltakosh" target="_blank">David Cahute</a> (encore !). La présentation était simple (mais complète). Entre Canvas et SVG, faites votre choix. Le miens est d&#8217;ailleurs fait grâce à vous ! SVG, bravo monsieur Rousset. En effet, le SVG reste accessible (et donc référençable), facile à écrire, facile à manipuler, compatible avec les spécifications du CSS3 (les animations notamment) et de nombreux outils de création existent sur le net !</li>
</ul>
<div>En bref, j&#8217;ai passé une très bonne journée et cela faisait bien longtemps que je n&#8217;avais pas découvert autant de chose. J&#8217;ai eu un plaisir immense à Livetwitter l&#8217;évènement (et désolé pour mon troll sur le .NET qui a été remarqué en pleine conférence &#8230; Mais vous savez, les allergies, ça ne pardonne pas).</div>
<div>Je retiendrais d&#8217;ailleurs quelques autres points importants :</div>
<div>
<ul>
<li>Internet Explorer 9 devient performant, fini la hantise de tout webmaster concernant la suite IE.</li>
<li>Internet Explorer 10 se présage vraiment intéressant, performant, abouti et pourrait, peut-être, faire changer d&#8217;avis la plupart des Anti-IE.</li>
<li>Microsoft a fait preuve de beaucoup d&#8217;auto-dérision pendant cette conférence concernant leur navigateur et il est rare, très rare, de voir une entreprise laisser ses employés blaguer sur les performances d&#8217;un produit face à ses concurrents. L&#8217;image de l&#8217;entreprise n&#8217;en ai que meilleure à mes yeux.</li>
<li>Le .NET n&#8217;est pas forcément le cancer du développement web. <small style="font-size: 8px;">Juste une petite grippe &#8230;</small></li>
<li>Le combot Pizza/Bière, rien de mieux pour amadouer une bande de 200 geeks.</li>
<li>Contrairement à ce que je pensais, les développeurs web ne sont pas tous boutonneux, affreusement habillé et aux cheveux gras. <small style="font-size: 8px;">Non. Il y en a même de plutôt craquant &#8230;</small></li>
</ul>
</div>
<div>Merci donc à tous les intervenants et à Microsoft pour cette conférence.</div>
<div>Merci à <a title="Digital Dealer" href="http://www.digitaldealer.fr" target="_blank">Digital Dealer</a> pour m&#8217;avoir débloqué une après-midi pour y aller.</div>
<div>Et merci à <a title="Synapse Studio" href="http://blog.synapse-studio.fr/" target="_blank">Synapse Studio</a> sans qui le troll durant la conférence n&#8217;aurait jamais été aussi amusant.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tiloweb.com/js/conference-microsoft-les-apres-midi-du-dev-javascript-sous-le-capot-des-applications-html5-modernes/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CDI Développeur web junior</title>
		<link>http://www.tiloweb.com/job/cdi-developpeur-web-junior</link>
		<comments>http://www.tiloweb.com/job/cdi-developpeur-web-junior#comments</comments>
		<pubDate>Thu, 03 Nov 2011 16:47:23 +0000</pubDate>
		<dc:creator>Tilotiti</dc:creator>
				<category><![CDATA[Offres d'emploi]]></category>

		<guid isPermaLink="false">http://www.tiloweb.com/?p=29</guid>
		<description><![CDATA[Notre partenaire, Digital Dealer, cherche un nouveau développeur web ! Digital Dealer est la 1ère agence de communication online spécialisée pour la distribution Automobile en France. Notre offre s’articule autour de 4 axes principaux : Plateformes Web (sites, Intranet, boutique e-commerce…), Plateformes mobiles (application Smartphones), Plateformes réseaux sociaux (blogs, Facebook,…) Services (web marketing). Nous cherchons [...]]]></description>
			<content:encoded><![CDATA[<p>Notre partenaire,<a title="Digital Dealer, agence de communication internet pour distributeur automobile" href="http://www.digitaldealer.fr/" target="_blank"> Digital Dealer</a>, cherche un nouveau développeur web !</p>
<blockquote><p>Digital Dealer est la 1ère agence de communication online spécialisée pour la distribution Automobile en France.<br />
Notre offre s’articule autour de 4 axes principaux :<br />
Plateformes Web (sites, Intranet, boutique e-commerce…),<br />
Plateformes mobiles (application Smartphones),<br />
Plateformes réseaux sociaux (blogs, Facebook,…)<br />
Services (web marketing).<br />
Nous cherchons des collaborateurs passionnés par le Web et l’automobile !<br />
Nous sommes aujourd’hui à la recherche d’un développeur web.</p>
<p>Missions principales :<br />
- Développement et exploitation de sites internet<br />
- Développement et exploitation d’un CMS dédié<br />
- Développement et exploitation d’applications Facebook<br />
- Développement et exploitation d’application iOS et Android en JavaScript (si si !)</p>
<p>Compétences absolument nécessaires :<br />
- HTML/CSS/JS<br />
- PHP/MySQL</p>
<p>Les connaissances du langage Smarty serait un réel plus ainsi qu’un usage courant de la langue anglaise.<br />
Une expérience précédente (stage, alternance, CDD…) en agence Internet est nécessaire.<br />
Sous les ordres de responsable technique et en équipe avec un autre développeur, vous serez également en relation directe avec d’autres membres de l’agence.<br />
Des contacts ponctuels avec certains clients sont à prévoir.<br />
Vous devrez donc avoir de réelles compétences techniques mais aussi un sens marqué du relationnel et de l’esprit de travail en équipe.</p>
<p>Rémunération : selon profil<br />
Disponibilité : dès que possible<br />
Poste basé à Paris</p>
<p>Envoyez votre CV et lettre de motivation à <a title="Envoyer une candidature" href="mailto:job@digitaldealer.fr">jobs@digitaldealer.fr</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tiloweb.com/job/cdi-developpeur-web-junior/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ecopack &#8211; Tête-thermique.fr</title>
		<link>http://www.tiloweb.com/references/ecopack-tete-thermique-fr</link>
		<comments>http://www.tiloweb.com/references/ecopack-tete-thermique-fr#comments</comments>
		<pubDate>Tue, 01 Nov 2011 10:49:35 +0000</pubDate>
		<dc:creator>Tilotiti</dc:creator>
				<category><![CDATA[Références]]></category>

		<guid isPermaLink="false">http://www.tilotiti.com/?p=19</guid>
		<description><![CDATA[La société ECOPACK est, depuis 1995, spécialisée dans la distribution, la rénovation et l&#8217;intégration de systèmes de marquage industriels et vous propose des solutions efficaces pour vos différents besoins d&#8217;identification et de traçabilité. Tiloweb vient de réaliser, pour le compte de la société ECOPACK, l&#8217;un de ses sites de vente Tête-thermique.fr. Véritable catalogue de tête-thermique, le site [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="text-align: justify;">La société <a title="Ecopack" href="http://ecopack.fr" target="_blank">ECOPACK </a>est, depuis 1995, spécialisée dans la distribution, la rénovation et l&#8217;intégration de systèmes de marquage industriels et vous propose des solutions efficaces pour vos différents besoins d&#8217;identification et de traçabilité.</p>
</blockquote>
<p style="text-align: justify;"><a title="Tiloweb - Accueil" href="/">Tiloweb</a> vient de réaliser, pour le compte de la société ECOPACK, l&#8217;un de ses sites de vente <a title="Tête Thermique" href="http://www.tete-thermique.fr" target="_blank">Tête-thermique.fr</a>. Véritable catalogue de tête-thermique, le site propose aux professionnels d&#8217;établir leur devis pour se procurer des produits de toutes les marques du secteur.</p>
<p style="text-align: justify;">La prestation comprenait la création d&#8217;un nouveau design, d&#8217;une nouvelle architecture tout en respectant le désir d&#8217;optimisation du référencement (SEO) du site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tiloweb.com/references/ecopack-tete-thermique-fr/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

