<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<title type="html">Blog Notes</title>
<subtitle type="html">Les didactitiels de Manuite. J&#039;apprends, je transmets...</subtitle>
<link href="http://manuchap.online.fr/pluxml/feed.php?atom" rel="self" type="application/atom+xml"/>
<link href="http://manuchap.online.fr/pluxml/" rel="alternate" type="text/html"/>
<updated>2013-02-15T13:02:00+01:00</updated>
<id>urn:md5:4a29ab02005b90c3fecffc68b382cc6f</id>
<generator uri="http://pluxml.org/">PluXml 4.3.1</generator>
<entry>
	<title>Livereload ta page gratos!</title> 
	<link href="http://manuchap.online.fr/pluxml/?article30/livereload-ta-page-gratos"/>
	<id>urn:md5:c280a281a7dfa37469084bcec786a296</id>
	<updated>2013-02-15T13:02:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Web</dc:subject>
	<content type="html">Quoi c&#039;est? C&#039;est comment recharger automatiquement un (ou plusieurs) tab(s) de votre navigateur lorsqu&#039;un fichier est modifié. Il s&#039;agit d&#039;un script en ruby (pas de panique, ruby est installé sur votre mac ;-) et d&#039;un service automator qui surveille le dossier depuis le quel vous l&#039;invoquez. Z&#039;allez voir, c&#039;est très simple à installer/utiliser. Yay!&lt;h2&gt;Mini-clip:&lt;/h2&gt;&lt;br /&gt;

&lt;script src=&quot;https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js&quot;&gt;&lt;/script&gt;
&lt;a
    href=&quot;http://manuchap.online.fr/pluxml/data/documents/flv/watcher.m4v&quot;
    style=&quot;display:block;width:624px;height:468px;&quot;
    id=&quot;player&quot;&gt;
&lt;/a&gt;
&lt;script language=&quot;JavaScript&quot;&gt;
    flowplayer(&quot;player&quot;, &quot;http://manuchap.online.fr/pluxml/core/flp/flowplayer-3.1.5.swf&quot;);
&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Script Ruby:&lt;/h3&gt;
&lt;pre class=&quot;prettyprint lang-rb&quot;&gt;&lt;code&gt;
#!/usr/bin/env ruby
# watch.rb by Brett Terpstra, 2011 &lt;http://brettterpstra.com&gt;
# with credit to Carlo Zottmann &lt;https://github.com/carlo/haml-sass-file-watcher&gt;

trap(&quot;SIGINT&quot;) { exit }

if ARGV.length &lt; 2
  puts &quot;Usage: #{$0} watch_folder keyword&quot;
  puts &quot;Example: #{$0} . mywebproject&quot;
  exit
end

dev_extension = &#039;dev&#039;
filetypes = [&#039;css&#039;,&#039;html&#039;,&#039;htm&#039;,&#039;php&#039;,&#039;rb&#039;,&#039;erb&#039;,&#039;less&#039;,&#039;js&#039;]
watch_folder = ARGV[0]
keyword = ARGV[1]
puts &quot;Watching #{watch_folder} and subfolders for changes in project files...&quot;

while true do
  files = []
  filetypes.each {|type|
    files += Dir.glob( File.join( watch_folder, &quot;**&quot;, &quot;*.#{type}&quot; ) )
  }
  new_hash = files.collect {|f| [ f, File.stat(f).mtime.to_i ] }
  hash ||= new_hash
  diff_hash = new_hash - hash

  unless diff_hash.empty?
    hash = new_hash

    diff_hash.each do |df|
      puts &quot;Detected change in #{df[0]}, refreshing&quot;
      %x{osascript&amp;lt;&amp;lt;ENDGAME
        	tell application &quot;Safari&quot;
          	set windowList to every window
          	repeat with aWindow in windowList
          		set tabList to every tab of aWindow
          		repeat with atab in tabList
          			if (URL of atab contains &quot;#{keyword}&quot;) then
          			  tell atab to do javascript &quot;window.location.reload()&quot;
          			end if
          		end repeat
          	end repeat
        	end tell
ENDGAME
}
    end
  end

  sleep 1
end

&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
&lt;ul&gt;
&lt;li&gt;Copiez/collez ce script dans un éditeur de texte et enregistrez le dans un des chemins de votre $PATH (ex: /usr/local/bin/watch.rb).&lt;/li&gt;
&lt;li&gt;Depuis le terminal, donnez au fichier les droits d&#039;éxécution:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;prettyprint lang-bsh&quot;&gt;&lt;code&gt;chmod a+x watch.rb&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
&lt;h3&gt;Service:&lt;/h3&gt;
&lt;img src=&quot;data/images/caps/capture-decran-2013-02-15-a-14.38.46.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Télécharger &lt;a href=&quot;http://manuchap.online.fr/pluxml/data/documents/watcher.zip&quot;&gt;ce fichier&lt;/a&gt; dans &lt;em&gt;&lt;strong&gt;~/Library/Services&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Faites un clic droit sur un des dossiers que vous voulez surveiller puis &lt;em&gt;&lt;strong&gt;Services-&gt;Watcher&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/br &gt;
&lt;img src=&quot;data/images/caps/capture-decran-2013-02-15-a-15.04.05.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;data/images/caps/capture-decran-2013-02-15-a-15.06.05.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;data/images/caps/capture-decran-2013-02-15-a-15.06.17.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;a href=&quot;http://brettterpstra.com/2011/03/07/watch-for-file-changes-and-refresh-your-browser-automatically/&quot;&gt;Source&lt;/a&gt;&lt;/br&gt;</content>
</entry>
<entry>
	<title>L&#039;anti-spoiler le plus simple du monde:</title> 
	<link href="http://manuchap.online.fr/pluxml/?article29/l-anti-spoiler-le-plus-simple-du-monde"/>
	<id>urn:md5:5190b01e81207d7770df2a1fda0948ec</id>
	<updated>2012-09-06T16:41:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Web</dc:subject>
	<content type="html">Sans commentaires tellement c&#039;est simple.&lt;a class=&quot;jsbin-embed&quot; href=&quot;http://jsbin.com/qaxubal/embed?output&quot;&gt;JS Bin on jsbin.com&lt;/a&gt;&lt;script src=&quot;http://static.jsbin.com/js/embed.min.js?3.35.2&quot;&gt;&lt;/script&gt;</content>
</entry>
<entry>
	<title>Dashcode et StackLayout</title> 
	<link href="http://manuchap.online.fr/pluxml/?article28/dashcode-et-stacklayout"/>
	<id>urn:md5:6cf98e9c6dd49c3651767728417c338c</id>
	<updated>2011-12-11T20:30:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Web</dc:subject>
	<content type="html">Vous avez un mac et vous avez installé Xcode? Bien, donc vous avez sûrement joué un peu avec Dashcode, une interface de création de site webkit/mobile. Premier tuto avec l&#039;élément StackLayout...&lt;br /&gt;
Donc un tuto un peu fermé sur ce soft mais bon, c&#039;est moi qui décide.&lt;br /&gt;&lt;br /&gt;
Dashcode est une interface wysiwyg de création de sites html/css/javascript qui s&#039;installe avec Xcode. Le code qui suit concerne l&#039;élément StackLayout, un snippet qui permet de gérer une pile de vues avec des transitions façon slideshow. Parmi ces transition (fade, dissolve,etc.) la transition slide est la plus prisée mais les réglages par défaut ne permettent pas un glissé de droite à gauche. Le code suivant (sur un évènement onclick) génère un glissement vers la gauche à la vue suivante:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;function boutondedroite_onclick(event)
{
   var views = document.getElementById(&#039;stackLayout&#039;);
   for (var i=0;i&amp;lt;views.object.getAllViews().length;i++)
   {
       if (views.object.getAllViews()[i] == views.object.getCurrentView())
         var next = views.object.getAllViews()[i+1];
   }
   if (views &amp;&amp; views.object &amp;&amp; next) {
      views.object.setCurrentView(next);
   }
}
&lt;/code&gt;&lt;/pre&gt;
Pour inverser le glissement et revenir à la vue précédente il suffit de recopier cette fonction sous un autre nom (boutondegauche_onclick) et remplacer:
 &lt;pre&gt;&lt;code&gt;var next = views.object.getAllViews()[i+1];&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
par
&lt;pre&gt;&lt;code&gt;var next = views.object.getAllViews()[i-1];&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
et
&lt;pre&gt;&lt;code&gt;views.object.setCurrentView(next);&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
par
&lt;pre&gt;&lt;code&gt;views.object.setCurrentView(next, &#039;reverse&#039;);&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;</content>
</entry>
<entry>
	<title>Un orchestre de chambre dans le mac(pc)!</title> 
	<link href="http://manuchap.online.fr/pluxml/?article27/un-orchestre-de-chambre-dans-le-mac-pc"/>
	<id>urn:md5:402dba5561ad6aff3c48f833eec99593</id>
	<updated>2011-09-05T13:00:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Mao</dc:subject>
	<content type="html">Amis mélomanes bonjour. En ces temps de poésie moite et sans don il serait bon de pouvoir inviter chez soi un orchestre classique et s&#039;adonner à la composition de quelque sérénade en attendant que le bateau coule...&lt;br /&gt;
Ou comment utiliser un morceau de démo de reason pour composer soi même. Un petit clip rapidos pour vous montrer comment utiliser reason comme banque de sons depuis live.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src=&quot;http://player.vimeo.com/video/28610189&quot; width=&quot;624&quot; height=&quot;390&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;</content>
</entry>
<entry>
	<title>Afficher votre statut ichat sur votre site. [maj]</title> 
	<link href="http://manuchap.online.fr/pluxml/?article26/synchroniser-votre-statut-ichat-sur-votre-site"/>
	<id>urn:md5:10f21e19be3f1f928a984165c4d5e535</id>
	<updated>2011-09-04T21:50:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Web</dc:subject>
	<content type="html">Certains on peut être eu la curiosité de cliquer dans l&#039;angle en haut à droite du blog et ont atterri sur mon site d&#039;assistance. Si, avec la grosse ampoule qui indique si je suis connecté à internet. Pour que le site soit opérationnel il fallait que le statut sur le site corresponde à celui d&#039;iChat de façon automatique.&lt;br /&gt;
J&#039;ai pas mal galéré avant de trouver cette méthode qui n&#039;est peut être pas la plus élégante mais ça fonctionne.&lt;br /&gt;
Au début j&#039;ai essayé avec mon statut twitter, puis facebook sans succès. Et puis en regardant dans les préférences d&#039;iChat: Alléluia! Il est possible d&#039;exécuter un script applescript par évènement et donc quand on passe d&#039;online à offline (et inversement).&lt;br /&gt;
&lt;img src=&quot;data/images/caps/copie-de-capture-decran-2011-09-04-a-22.20.25.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;

Sur le site, la valeur du statut était codée en dur à offline (0) par défaut et j&#039;oubliais tout le temps de le mettre à jour. Je l&#039;ai donc modifié pour que cette valeur soit dans un fichier json à part:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;statut.js&lt;/strong&gt; (contenant une simple paire clé/valeur):&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;{ &quot;value&quot; : &quot;0&quot; }&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
Vu que je ne connais pas bien applescript j&#039;ai opté pour un solution simple: créer deux scripts contenant une instruction en ligne de commande pour envoyer ce fichier par ftp (un pour online, un pour offline).&lt;br /&gt;
Donc voici les deux scripts.&lt;br /&gt;
&lt;strong&gt;Online:&lt;/strong&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;using terms from application &quot;iChat&quot;
	on login finished
		set Source to &quot;/Users/toto/Documents/mystatus/online/status.js&quot;
		set Dest to &quot;ftp.alwaysdata.com/www/&quot;
		do shell script &quot;curl -u ftpuser:ftppassword -T {&quot; &amp; quoted form of POSIX path of Source &amp; &quot;} &quot; &amp; Dest
	end login finished
end using terms from&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;&lt;br /&gt;
&lt;strong&gt;Offline:&lt;/strong&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;using terms from application &quot;iChat&quot;
	on logout finished
		set Source to &quot;/Users/toto/Documents/mystatus/offline/status.js&quot;
		set Dest to &quot;ftp.alwaysdata.com/www/&quot;
		do shell script &quot;curl -u ftpuser:ftppassword -T {&quot; &amp; quoted form of POSIX path of Source &amp; &quot;} &quot; &amp; Dest
	end logout finished
end using terms from&lt;/code&gt;&lt;/pre&gt;&lt;/br &gt;
&lt;br /&gt;
Les lignes avant et après le commande shell sont là pour éviter l&#039;erreur fatale 1708 qui vous affiche 15 fenêtres d&#039;erreur en cascade façon windoze ;-)&lt;br /&gt;
Tout cela se fait de façon invisible et immédiate of course.&lt;br /&gt;&lt;br /&gt;

&lt;a  
    href=&quot;http://api.cld.me/162y0A1G0K072W241P3y/download/statusdemo.m4v&quot;  
    style=&quot;display:block;width:624px;height:390px;&quot;  
    id=&quot;player&quot;&gt; 
&lt;/a&gt; 
 
&lt;script language=&quot;JavaScript&quot;&gt; 
    flowplayer(&quot;player&quot;, &quot;http://manuchap.online.fr/pluxml/core/flp/flowplayer-3.1.5.swf&quot;);
&lt;/script&gt;</content>
</entry>
<entry>
	<title>Edition et partage de CSS live - Video</title> 
	<link href="http://manuchap.online.fr/pluxml/?article25/edition-et-partage-de-css-live-video"/>
	<id>urn:md5:6805b040ddc21372d94b163f296db6e4</id>
	<updated>2011-09-03T23:36:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Web</dc:subject>
	<content type="html">Ou comment éditer le css d&#039;un site existant et partager son code avec d&#039;autres pour le valider ou le modifier. En vidéo m&#039;sieur dames! Sit back &amp; enjoy!&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src=&quot;http://player.vimeo.com/video/28556892&quot; width=&quot;625&quot; height=&quot;445&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.westciv.com/xray/xray_more.html#platforms&quot;&gt;Xray&lt;/a&gt; - &lt;a href=&quot;http://barberboy.github.com/css-terminal/&quot;&gt;CssTerminal&lt;/a&gt; - &lt;a href=&quot;http://www.csspivot.com/&quot;&gt;CssPivot&lt;/a&gt;</content>
</entry>
<entry>
	<title>Service automator bien pratique</title> 
	<link href="http://manuchap.online.fr/pluxml/?article24/service-automator-bien-pratique"/>
	<id>urn:md5:ebcc2f7d3bb66a0ae8591d8b293c9386</id>
	<updated>2011-08-19T19:04:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Osx</dc:subject>
	<content type="html">Vous avez lancé automator (dans le dossier applications) et vous l&#039;avez refermé aussitôt! Dommage… Automator permet, comme son nom l&#039;indique, d&#039;automatiser des tâches dans osx, comme la redimension d&#039;images, l&#039;envoi par ftp,etc.&lt;p&gt;Voici un petit service qui permet de quitter toutes les applications ouvertes en un clic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Lancez &lt;strong&gt;Automator&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
Séléctionnez &lt;strong&gt;service&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Dans la partie du haut choisissez &lt;strong&gt;pas d&#039;entrée&lt;/strong&gt; dans la liste &lt;strong&gt;Réception du service&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
Dans la partie &lt;strong&gt;action&lt;/strong&gt; à gauche cliquez sur&lt;strong&gt; utilitaires&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
Glisser l&#039;action &lt;strong&gt;Quitter toutes les applications&lt;/strong&gt; dans la zone de droite.
&lt;/li&gt;
&lt;li&gt;
Ajoutez (ou non) des applications à ne pas quitter.
&lt;/li&gt;
&lt;li&gt;
Enregistrez votre service: &lt;strong&gt;fichier-&gt;enregistrer&lt;/strong&gt;.&lt;br /&gt;

&lt;em&gt;Pour (Snow)Léopard enregistrez dans bibliothèque-&gt;services&lt;/em&gt;
&lt;li&gt;
Cliquez sur le bureau (pour activer le finder) et allez voir dans le menu &lt;strong&gt;Finder-&gt;services&lt;/strong&gt;
&lt;/li&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;img src=&quot;data/images/caps/capture-decran-2011-08-19-a-19.30.03.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;img src=&quot;data/images/caps/capture-decran-2011-08-19-a-19.25.16.png&quot; alt=&quot;&quot; /&gt;</content>
</entry>
<entry>
	<title>Git à la sauce Mac.</title> 
	<link href="http://manuchap.online.fr/pluxml/?article23/git-a-la-sauce-mac"/>
	<id>urn:md5:3825f1a4334a0c9fe0748381874fe3c4</id>
	<updated>2011-07-22T18:03:00+01:00</updated>
	<author><name>Manuite</name></author>
	<dc:subject>Web</dc:subject>
	<content type="html">Ben voui je suis sur mac maintenant ☺. Ca ne m&#039;empêche pas pas d&#039;utiliser intensément le terminal pour le développement mais comment résister à un soft (gratis) de chez github avec en prime une astuce pour metre à jour son repo git et son site en un clic?&lt;br /&gt;&lt;p&gt;Tout d&#039;abord il faut un compte github mais si vous lisez ça vous en avez déjà un...&lt;br /&gt;
Sur un de vos repos cliquez sur l&#039;icone &lt;strong&gt;clone in mac&lt;/strong&gt;. Lors de la première utilisation le site vous propose d&#039;installer le soft. Par la suite il se lancera tout seul.&lt;/p&gt;&lt;br /&gt;

&lt;p&gt;Je vous laisse découvrir tout seuls (c&#039;est meilleur…) . Quelques sceens:&lt;/p&gt;&lt;br /&gt;
&lt;img src=&quot;data/images/caps/capture-decran-2011-07-03-a-12.16.15.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;data/images/caps/copie-de-capture-decran-2011-07-03-a-12.17.06.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;data/images/caps/copie-de-capture-decran-2011-07-03-a-12.16.50-2.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;L&#039;astuce du jour:&lt;/h2&gt;&lt;br /&gt;

&lt;p&gt;Pour synchroniser votre repo et votre site en un clic:&lt;/p&gt;&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;Mettre son site sur &lt;a href=&quot;http://www.github.com&quot;&gt;github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le cloner sur son serveur&lt;/li&gt;
&lt;li&gt;A la racine du clone ajouter un fichier &lt;strong&gt;PHP&lt;/strong&gt; (ex: pull.php) contenant ceci:&lt;/li&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php `git pull`;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Attention! Il ne s&#039;agit pas d&#039;apostrophes mais de &quot;backticks&quot; qui ont pour effet d&#039;envoyer une commande terminal depuis un fichier php.&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;
&lt;li&gt;Aller sur la page &lt;strong&gt;admin&lt;/strong&gt; de votre repo puis dans le menu &lt;strong&gt;service hooks&lt;/strong&gt; cliquer en haut de la liste sur &lt;strong&gt;Post-Receive URLs&lt;/strong&gt; et pointer vers le fichier pull.php&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Votre site sera mis à jour automatiquement à chaque nouvelle synchro de votre repo.&lt;/li&gt;


&lt;/ul&gt;</content>
</entry>
</feed>