<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>D-Roch</title>
  <id>http://D-Ro.ch</id>
  <link rel="alternate" href="http://D-Ro.ch" title="D-Roch" type="text/html"/>
  <link rel="self" href="http://D-Ro.ch/feed" title="D-Roch" type="application/atom+xml"/>
  <author><name>Roch Delsalle</name></author>
      <entry>
      <id>http://www.D-Ro.ch/2012/09/mongodb-copy-production-database-to-local</id>
      <title type="text">MongoDB, How to make a local copy of your production database</title>
      <link href="/2012/09/mongodb-copy-production-database-to-local" rel="alternate" type="text/html"/>
      <updated>Thu Sep 27 00:00:00 UTC 2012</updated>
      <published>Thu Sep 27 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;mongodump -h HOST:27053 -d DATABASE -u USER -p PASSWORD -o backups&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;mongorestore -h localhost --drop -d DEV_DATABASE backups/DATABASE&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/09/find-replace-mysql</id>
      <title type="text">How to find and replace in a MySQL table</title>
      <link href="/2012/09/find-replace-mysql" rel="alternate" type="text/html"/>
      <updated>Thu Sep 13 00:00:00 UTC 2012</updated>
      <published>Thu Sep 13 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;script src=&quot;https://gist.github.com/3712946.js?file=gistfile1.sql&quot;&gt;&lt;/script&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/09/lift-framework-facebook-opengraph-meta</id>
      <title type="text">How to add Facebook OpenGraph meta tags with Lift Framework</title>
      <link href="/2012/09/lift-framework-facebook-opengraph-meta" rel="alternate" type="text/html"/>
      <updated>Fri Sep 07 00:00:00 UTC 2012</updated>
      <published>Fri Sep 07 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p style=&quot;color: rgb(34, 34, 34); &quot;&gt;&lt;br&gt;- Use a head_merge tag to append some attributes to your default template&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/3665862.js?file=gistfile1.scala&quot;&gt;&lt;/script&gt;&lt;p style=&quot;color: rgb(34, 34, 34); &quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(34, 34, 34); &quot;&gt;- In your snippet you can now add values to the meta properties&lt;/p&gt;&lt;script src=&quot;https://gist.github.com/3665875.js?file=gistfile1.scala&quot;&gt;&lt;/script&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/07/how-to-parse-rss-feed-scala</id>
      <title type="text">How to parse a RSS feed in Scala</title>
      <link href="/2012/07/how-to-parse-rss-feed-scala" rel="alternate" type="text/html"/>
      <updated>Sun Jul 22 00:00:00 UTC 2012</updated>
      <published>Sun Jul 22 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml"> &lt;pre&gt;&lt;code&gt;val rssFeed = XML.load((new URL(&quot;http://feedurl.com&quot;)).openConnection.getInputStream)     &lt;br&gt; &lt;br&gt; for (item &amp;lt;- (rssFeed \\ &quot;channel&quot; \ &quot;item&quot;)) {       &lt;br&gt;      logger.debug( (item \\ &quot;title&quot;) text )       &lt;br&gt;      logger.debug( (item \\ &quot;content&quot;) text )     &lt;br&gt; }&lt;/code&gt;&lt;/pre&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/06/change-file-encoding</id>
      <title type="text">How to change the encoding of a file</title>
      <link href="/2012/06/change-file-encoding" rel="alternate" type="text/html"/>
      <updated>Thu Jun 21 00:00:00 UTC 2012</updated>
      <published>Thu Jun 21 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">Display the current encoding :  &lt;pre&gt;&lt;code&gt;file filetochange.ext&lt;/code&gt;&lt;/pre&gt; &lt;br&gt; Convert it :  &lt;pre&gt;&lt;code&gt;iconv -f ISO-8859-1 -t UTF-8 filetochange.ext &amp;gt; fileoutput.ext &lt;/code&gt;&lt;/pre&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/06/php-memcached-list-all-keys</id>
      <title type="text">PHP / Memcached: List all keys</title>
      <link href="/2012/06/php-memcached-list-all-keys" rel="alternate" type="text/html"/>
      <updated>Tue Jun 19 00:00:00 UTC 2012</updated>
      <published>Tue Jun 19 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;script src=&quot;https://gist.github.com/2953409.js?file=gistfile1.aw&quot;&gt;&lt;/script&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/06/iOS-user-latitude-longitude</id>
      <title type="text">How to get users location on iOS</title>
      <link href="/2012/06/iOS-user-latitude-longitude" rel="alternate" type="text/html"/>
      <updated>Tue Jun 19 00:00:00 UTC 2012</updated>
      <published>Tue Jun 19 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; color: #7f1bab&quot;&gt;CLLocationManager&lt;span style=&quot;color: #000000&quot;&gt; *locationManager = [[&lt;/span&gt;CLLocationManager&lt;span style=&quot;color: #000000&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #4a0083&quot;&gt;alloc&lt;/span&gt;&lt;span style=&quot;color: #000000&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color: #4a0083&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;color: #000000&quot;&gt;];&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; locationManager = [[&amp;lt;span style=&quot; color:=&quot;&quot; #7f1bab&quot;=&quot;&quot;&gt;CLLocationManager &lt;span style=&quot;color: #4a0083&quot;&gt;alloc&lt;/span&gt;] &lt;span style=&quot;color: #4a0083&quot;&gt;init&lt;/span&gt;];&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; color: #7f1bab&quot;&gt;&lt;span style=&quot;color: #000000&quot;&gt;locationManager.&lt;/span&gt;desiredAccuracy&lt;span style=&quot;color: #000000&quot;&gt; = &lt;/span&gt;kCLLocationAccuracyBest&lt;span style=&quot;color: #000000&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; color: #7f1bab&quot;&gt;&lt;span style=&quot;color: #000000&quot;&gt;locationManager.&lt;/span&gt;distanceFilter&lt;span style=&quot;color: #000000&quot;&gt; = &lt;/span&gt;kCLDistanceFilterNone&lt;span style=&quot;color: #000000&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [locationManager &amp;lt;span style=&quot; color:=&quot;&quot; #4a0083&quot;=&quot;&quot;&gt;startUpdatingLocation];&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [locationManager &amp;lt;span style=&quot; color:=&quot;&quot; #4a0083&quot;=&quot;&quot;&gt;stopUpdatingLocation];&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;span style=&quot; color:=&quot;&quot; #7f1bab&quot;=&quot;&quot;&gt;CLLocation *location = [locationManager &lt;span style=&quot;color: #4a0083&quot;&gt;location&lt;/span&gt;];&lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; color: #008c08&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;&lt;br&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; color: #008c08&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;float longitude=location.&lt;span style=&quot;color: #7f1bab&quot;&gt;coordinate&lt;/span&gt;.&lt;span style=&quot;color: #7f1bab&quot;&gt;longitude&lt;/span&gt;;&lt;/span&gt;&lt;br&gt; &lt;/p&gt;  &lt;p style=&quot;margin: 0.0px 0.0px 0.0px 0.0px; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;span style=&quot; color:=&quot;&quot; #cf00a0&quot;=&quot;&quot;&gt;float latitude=location.&lt;span style=&quot;color: #7f1bab&quot;&gt;coordinate&lt;/span&gt;.&lt;span style=&quot;color: #7f1bab&quot;&gt;latitude&lt;/span&gt;;&lt;span rel=&quot;pastemarkerend&quot; id=&quot;pastemarkerend50570&quot;&gt;&lt;/span&gt;&lt;/p&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/04/find-file-using-osx-terminal</id>
      <title type="text">How to find a file using OSX&apos;s Terminal</title>
      <link href="/2012/04/find-file-using-osx-terminal" rel="alternate" type="text/html"/>
      <updated>Tue Apr 10 00:00:00 UTC 2012</updated>
      <published>Tue Apr 10 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;mdfind -name filename&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/03/scp-transfer-files-between-servers</id>
      <title type="text">How to transfer files between two servers</title>
      <link href="/2012/03/scp-transfer-files-between-servers" rel="alternate" type="text/html"/>
      <updated>Fri Mar 30 00:00:00 UTC 2012</updated>
      <published>Fri Mar 30 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;scp filename user@host:/path/to/folder&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2012/02/hide-email-mysql-dev-table</id>
      <title type="text">How to hide every emails from a MySQL table</title>
      <link href="/2012/02/hide-email-mysql-dev-table" rel="alternate" type="text/html"/>
      <updated>Fri Feb 10 00:00:00 UTC 2012</updated>
      <published>Fri Feb 10 00:00:00 UTC 2012</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;UPDATE sys_email SET email=REPLACE(email, SUBSTRING(email,INSTR(email,&apos;@&apos;)+1), &apos;usineadesign.com&apos;)&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/12/git-compare-file-two-branch</id>
      <title type="text">Git : Compare file between two branch</title>
      <link href="/2011/12/git-compare-file-two-branch" rel="alternate" type="text/html"/>
      <updated>Thu Dec 01 00:00:00 UTC 2011</updated>
      <published>Thu Dec 01 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;git difftool master..feature&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/11/github-keep-asking-auth-login-password</id>
      <title type="text">Github: Git keep asking for auth on push/pull</title>
      <link href="/2011/11/github-keep-asking-auth-login-password" rel="alternate" type="text/html"/>
      <updated>Thu Nov 17 00:00:00 UTC 2011</updated>
      <published>Thu Nov 17 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml"> &lt;div&gt; 	If github keep asking for your login and password even if you have copied your ssh public key, this is what you should do !&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	Check your&amp;nbsp;.git/config file :&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	[core]&lt;/div&gt; &lt;div&gt; 	repositoryformatversion = 0&lt;/div&gt; &lt;div&gt; 	filemode = true&lt;/div&gt; &lt;div&gt; 	bare = false&lt;/div&gt; &lt;div&gt; 	logallrefupdates = true&lt;/div&gt; &lt;div&gt; 	ignorecase = true&lt;/div&gt; &lt;div&gt; 	[remote &amp;quot;origin&amp;quot;]&lt;/div&gt; &lt;div&gt; 	fetch = +refs/heads/*:refs/remotes/origin/*&lt;/div&gt; &lt;div&gt; 	url = https://github.com/login/project.git&lt;/div&gt; &lt;div&gt; 	[branch &amp;quot;master&amp;quot;]&lt;/div&gt; &lt;div&gt; 	remote = origin&lt;/div&gt; &lt;div&gt; 	merge = refs/heads/master&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	If the remote origin&amp;#39;s url is formated this way :&amp;nbsp;&lt;strong&gt;https://github.com/user/project.git&lt;/strong&gt; your should replace it with &lt;strong&gt;git@github.com:user/project.git&lt;/strong&gt;&lt;/div&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/11/hackdayparis</id>
      <title type="text">Hack Day Paris</title>
      <link href="/2011/11/hackdayparis" rel="alternate" type="text/html"/>
      <updated>Wed Nov 16 00:00:00 UTC 2011</updated>
      <published>Wed Nov 16 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt; 	Two weeks ago, I went to &lt;a href=&quot;http://hackdayparis.org/&quot;&gt;Hack Day Paris&lt;/a&gt; with my friend &lt;a href=&quot;https://twitter.com/#!/cielattique&quot; style=&quot;font-size: 12px; font-weight: normal; &quot;&gt;Christos&lt;/a&gt;,&lt;/p&gt; &lt;div&gt; 	We had decided to start an app&amp;#39; you could use to find people around you (and going in the same way you are going) in order to share a Taxi.&lt;/div&gt; &lt;div&gt; 	Ok they idea isn&amp;#39;t that amazing, but It was the perfect kind of project for this kind of event.&lt;/div&gt; &lt;div&gt; 	A hackathon is about how you can impress the audience with a two minutes demo of your app. If you have been working on the next generation API,&lt;/div&gt; &lt;div&gt; 	during the last 40 hours then it&amp;#39;s going to be hard to prove it in less than two minutes&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	Some projects were very impressive because of their complexity and I was quite sure their teams would win.&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	We didn&amp;#39;t expect to get any prices, since our project wasn&amp;#39;t going to change the world but we had something to show during demo and thats the most important part.&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	In the end we got two prices : one from &lt;a href=&quot;http://www.la-ruche.net/&quot;&gt;La Ruche&lt;/a&gt; &amp;amp; the 2nd price for &lt;a href=&quot;http://www.techstars.com/&quot;&gt;TechStars&lt;/a&gt; ( The awesome &lt;a href=&quot;http://winecombinator.com&quot;&gt;Winecombinator&lt;/a&gt; arrived first ! )&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	This is the stack we used, It&amp;#39;s extremely productive and scalable :&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	- PlayFramework (Java Web Framework)&lt;/div&gt; &lt;div&gt; 	- Siena (NoSQL persistence)&lt;/div&gt; &lt;div&gt; 	- JQuery (JS Frontend)&lt;/div&gt; &lt;div&gt; 	- Google Maps javascript API v3&lt;/div&gt; &lt;div&gt; 	- Google Places API&lt;/div&gt; &lt;div&gt; 	- Google App Engine (Hosting)&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	Cabster App isn&amp;#39;t only about showing people around you looking for a taxi, we also wanted to sort those matches depending to were they are going.&lt;/div&gt; &lt;div&gt; 	For each users we persist a current latitude/longitude and a destination latitude/longitude. This way, it&amp;#39;s very easy to compare and sort them.&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	This is the function we used to calculate those distances (The unit is Meters):&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	public static double distance(double lat1, double lon1, double lat2, double lon2) {&lt;/div&gt; &lt;div&gt; 	&amp;nbsp; double theta = lon1 - lon2;&lt;/div&gt; &lt;div&gt; 	&amp;nbsp; double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));&lt;/div&gt; &lt;div&gt; 	&amp;nbsp; dist = Math.acos(dist);&lt;/div&gt; &lt;div&gt; 	&amp;nbsp; dist = rad2deg(dist);&lt;/div&gt; &lt;div&gt; 	&amp;nbsp; dist = dist * 60 * 1.85315962;&lt;/div&gt; &lt;div&gt; 	&amp;nbsp; return (dist);&lt;/div&gt; &lt;div&gt; 	}&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	I have released the source of the project on &lt;a href=&quot;https://github.com/D-Roch/Cabster&quot;&gt;Github&lt;/a&gt;, and you can try it &lt;a href=&quot;http://cabster-app.appspot.com/&quot;&gt;here&lt;/a&gt;.&lt;/div&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/10/switch-git-config-default-editor-nano</id>
      <title type="text">Switch Git&apos;s default text editor to Nano</title>
      <link href="/2011/10/switch-git-config-default-editor-nano" rel="alternate" type="text/html"/>
      <updated>Wed Oct 26 00:00:00 UTC 2011</updated>
      <published>Wed Oct 26 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;git config core.editor &quot;nano&quot;&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/10/change-extension-every-files-directory</id>
      <title type="text">How to change the extension of every files in a directory</title>
      <link href="/2011/10/change-extension-every-files-directory" rel="alternate" type="text/html"/>
      <updated>Tue Oct 25 00:00:00 UTC 2011</updated>
      <published>Tue Oct 25 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;for i in *; do mv &quot;$i&quot; &quot;$i.ext&quot;; done&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/09/hackernews-treemap</id>
      <title type="text">Hackernews TreeMap Representation</title>
      <link href="/2011/09/hackernews-treemap" rel="alternate" type="text/html"/>
      <updated>Sun Sep 11 00:00:00 UTC 2011</updated>
      <published>Sun Sep 11 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt; 	A few days ago I found newsmap.jp : It&amp;#39;s a nice way to visualize news. I decided to create the same kind of &lt;a href=&quot;http://www.hackrnews.com&quot;&gt;TreeMap representation&lt;/a&gt; but for the hackernews feed.&lt;br /&gt; 	This small experiment is hosted on &lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt; and you can find the source on &lt;a href=&quot;https://github.com/D-Roch/hackrnews&quot;&gt;Github&lt;/a&gt;. It was made using &lt;a href=&quot;http://www.playframework.org&quot;&gt;Playframework&lt;/a&gt;, InfoVis&amp;nbsp;and the Hacknews Api.&lt;/p&gt; &lt;p&gt; 	It also went recursive on &lt;a href=&quot;http://news.ycombinator.com/item?id=2982458&quot;&gt;hackernews &lt;/a&gt;!&lt;/p&gt; &lt;p&gt; 	&lt;img alt=&quot;&quot; src=&quot;http://www.d-ro.ch/dl/hackernews-treemap.png&quot; style=&quot;width: 500px; height: 299px; &quot; /&gt;&lt;/p&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/09/appengine-cloudflare-crawlrate</id>
      <title type="text">Google App Engine - CloudFlare and Google Bot&apos;s Crawlrate</title>
      <link href="/2011/09/appengine-cloudflare-crawlrate" rel="alternate" type="text/html"/>
      <updated>Sun Sep 11 00:00:00 UTC 2011</updated>
      <published>Sun Sep 11 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt; 	Recently Google App Engine&amp;#39;s team announced some big changes in their pricing.&lt;/p&gt; &lt;p&gt; 	There has been a lot of bad buzz on the newsgroup, on guy even said : &lt;a href=&quot;https://groups.google.com/forum/#!msg/google-appengine/PhDMnRsYpLs/oYckoWlZyeUJ&quot;&gt;Googlebot is your Enemy&lt;/a&gt;. Well yes, while Google is crawling your content you have to pay for servers and bandwidth but at the same time blocking Googlebot would destroy your SEO.&lt;/p&gt; &lt;p&gt; 	The fact that Google App Engine users can&amp;#39;t manage their crawl rate in Google Webmaster Tools is wrong, and I don&amp;#39;t really understand why they want it this way.&lt;/p&gt; &lt;p&gt; 	I wanted to see what happen if I use a round robin proxy on top of my GAE application and the result was very impressive :&lt;/p&gt; &lt;p&gt; 	&lt;img alt=&quot;app engine - cloudflare crawlrate&quot; src=&quot;http://www.d-ro.ch/dl/appengine-cloudflare-crawlrate.png&quot; style=&quot;width: 536px; height: 177px; &quot; /&gt;&lt;/p&gt; &lt;p&gt; 	Basicaly, Cloudflare was activated from June to August, then I disabled it and reactivated it in September. As you can see on the graphic, my crawl rate is way better when my app is served by a proxy.&lt;/p&gt; &lt;p&gt; 	I&amp;#39;m not a SEO expert, but one thing I know for sure is that when I have a high crawl rate my indexing is increasing. What&amp;#39;s going on is not very clear to me, but it looks like GAE applications are disadvantaged.&amp;nbsp;&lt;/p&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/08/import-google-appengine-datastore-remoteapi</id>
      <title type="text">Playframework : Import you GAE Datastore and use it in local</title>
      <link href="/2011/08/import-google-appengine-datastore-remoteapi" rel="alternate" type="text/html"/>
      <updated>Fri Aug 05 00:00:00 UTC 2011</updated>
      <published>Fri Aug 05 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt; This small guide tells  you how to download your data from your Google App  Engine application and use it in your local.&lt;br /&gt; For now, I have only&amp;nbsp;tested those steps on Mac OSX.&lt;/p&gt; &lt;p&gt; First, you will need to enable the remote_api  if it&amp;#39;s not already done.&lt;br  /&gt; By default, Play-gae doesn&amp;#39;t  use any web.xml file so you are going to need to create one  in the /war/WEB-INF folder.&lt;/p&gt; &lt;p&gt; This is my web.xml file feel free to  copy it  :&lt;/p&gt; &lt;script  src=&quot;https://gist.github.com/1126305.js&quot;&gt; &lt;/script&gt; &lt;p&gt;  For some  reasons I can&amp;#39;t really  explain, you  will need  to disable Federated  Login in  your App  Engine&amp;#39;s Application Settings.&lt;/p&gt; &lt;p&gt;  The next step  is to install  Google App Engine&amp;#39;s  Python SDK in  order to be  able to use&amp;nbsp;the remote api and download all your data.&lt;br /&gt;  &amp;nbsp;&lt;/p&gt; &lt;p&gt; Once you have installed it you will be  able   to  download   it  using   the  following  command   :&lt;/p&gt;  &lt;p&gt;   &lt;strong&gt;appcfg.py  download_data --application=my-app --url=http://my-app.appspot.com/remote_api --filename=data.csv&lt;/strong&gt;&lt;/p&gt; &lt;p&gt; Then you need to package your application into a WAR archive :&lt;/p&gt; &lt;p&gt; &lt;strong&gt;play war -o ../package.war&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;  It&amp;#39;s   now  time   to  start   your  application  in   local  !:&lt;/p&gt;   &lt;p&gt;  &lt;strong&gt;dev_appserver.sh package.war&lt;/strong&gt;&lt;/p&gt; &lt;p&gt; Once  your app is started just open  a browser and go to the  following url, you will be asked to setup a  remote_api user :&lt;/p&gt; &lt;p&gt; &lt;strong&gt;http://localhost:8080/remote_api&lt;/strong&gt;&lt;/p&gt; &lt;p&gt; Then   you  can   upload  your   data  to   the  local   server  :&lt;/p&gt;   &lt;p&gt;  &lt;strong&gt;appcfg.py   upload_data --url=http://localhost:8080/remote_api --filename=data.csv&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;  If you are on OSX  you will need to be running Charles Web Debbugging Proxy to get it working ... &amp;nbsp;yeah, I have no clue why it works only when     Charles    is     running.&lt;/p&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/07/Javascript-deobfuscate</id>
      <title type="text">Javascript deobfuscator</title>
      <link href="/2011/07/Javascript-deobfuscate" rel="alternate" type="text/html"/>
      <updated>Sun Jul 24 00:00:00 UTC 2011</updated>
      <published>Sun Jul 24 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">I recently found a service that can be used to deobfuscate code, you can check it out on &lt;a href=&quot;http://jsbeautifier.org&quot;&gt;http://jsbeautifier.org&lt;/a&gt;. Its source is also available on &lt;a href=&quot;http://github.com/einars/js-beautify&quot;&gt;Github&lt;/a&gt;.}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/07/cloudflare-review</id>
      <title type="text">My Review of Cloudflare</title>
      <link href="/2011/07/cloudflare-review" rel="alternate" type="text/html"/>
      <updated>Thu Jul 21 00:00:00 UTC 2011</updated>
      <published>Thu Jul 21 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;
	I recently started using Cloudfare on some of my websites, and here is my review of this service.&lt;br /&gt;
	At first sight it looks like a very attractive Round-robin proxy that can be used as a CDN for cheap. I thought that would be a great way to reduce my usage on Google App Engine.&lt;br /&gt;
	A free plan with unlimited bandwidth ... well that sounds good ! Almost every CDNs are priced on usage so I&amp;#39;m not sure how they are planning to keep a good quality of service but for now it&amp;#39;s fine but if they can save me some money in bandwidth I&amp;#39;m okay with that.&lt;br /&gt;
	The good thing about Cloudflare is that you don&amp;#39;t have to worry about any technical implementation, image upload, cache invalidation or whatever: It&amp;#39;s really easy to setup, you just need update your domain&amp;#39;s DNS. And to be honest that takes less than 5 minutes.&lt;br /&gt;
	So that&amp;#39;s good, plus they have quite a lot of nice things like css/js/html minifiers or hotlink protection preventing other websites to use your images.&lt;br /&gt;
	Now let&amp;#39;s talk about the bad things ! One of the main feature of Cloudflare is to offer a captcha protection and challenge&amp;nbsp;threatening visitors, well that sounds good too until it starts bothering you all the time as if you are a security threat. I basically turned this thing off.&lt;br /&gt;
	I also tried their SSL service which looks awesome : the service is supposed to activate HTTPS on your domain with zero conf. Well that&amp;#39;s great but does it work?&lt;br /&gt;
	It took me a week to get their validation (2 business days were announced). Well that would be okay if the damn thing worked in the end but no all I got was &amp;quot;Cloudflare error&amp;quot; and nothing else.&lt;br /&gt;
	&lt;br /&gt;
	&lt;img alt=&quot;cloudflare error&quot; src=&quot;http://www.d-ro.ch/dl/cloudflare-review&quot; style=&quot;width: 400px; height: 82px; &quot; /&gt;&lt;br /&gt;
	I&amp;#39;m aware that it could be coming from my server configuration and that&amp;#39;s not necessarily cloudflare&amp;#39;s fault but &amp;quot;Cloudflare error&amp;quot; doesn&amp;#39;t mean anything to me. Cloudflare would be much better if it wasn&amp;#39;t a blackbox.&lt;/p&gt;
&lt;div&gt;
	Conclusion: I&amp;#39;ll keep using Cloudflare on my main domain for now but I&amp;#39;m a bit skeptical about the quality of this service, the idea and the pricing are great but it&amp;#39;s a bit obscure. It would be great to have access and error logs for now It&amp;#39;s just too much marketing.&lt;/div&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/replace-word-many-files-directory</id>
      <title type="text">How to replace a word in multiple files / subdirectories</title>
      <link href="/2011/06/replace-word-many-files-directory" rel="alternate" type="text/html"/>
      <updated>Fri Jun 24 00:00:00 UTC 2011</updated>
      <published>Fri Jun 24 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;
&lt;code&gt;
find . -name &amp;quot;*.php&amp;quot; -print | xargs sed -i &amp;#39;s/OldWord/NewWord/g&amp;#39;
&lt;/code&gt;&lt;/pre&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/github-keep-fork-updated</id>
      <title type="text">Github : Keep your fork up to date</title>
      <link href="/2011/06/github-keep-fork-updated" rel="alternate" type="text/html"/>
      <updated>Mon Jun 20 00:00:00 UTC 2011</updated>
      <published>Mon Jun 20 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml"> &lt;div&gt; 	If github keep asking for your login and password even if you have copied your ssh public key, this is what you should do !&lt;/div&gt; &lt;div&gt; 	&amp;nbsp;&lt;/div&gt; &lt;div&gt; 	Check your&amp;nbsp;.git/config file :&lt;/div&gt; 	 &lt;pre&gt;&lt;code&gt; 	[core] 	repositoryformatversion = 0 	filemode = true 	bare = false 	logallrefupdates = true 	ignorecase = true 	[remote &quot;origin&quot;] 	fetch = +refs/heads/*:refs/remotes/origin/* 	url = https://github.com/login/project.git 	[branch &quot;master&quot;] 	remote = origin 	merge = refs/heads/master &lt;/code&gt;&lt;/pre&gt;  &lt;div&gt; 	If the remote origin&amp;#39;s url is formated this way :&amp;nbsp;&lt;strong&gt;https://github.com/user/project.git&lt;/strong&gt; your should replace it with &lt;strong&gt;git@github.com:user/project.git&lt;/strong&gt;&lt;/div&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/delete-remote-branch-git</id>
      <title type="text">How to delete a remote branch with Git</title>
      <link href="/2011/06/delete-remote-branch-git" rel="alternate" type="text/html"/>
      <updated>Tue Jun 14 00:00:00 UTC 2011</updated>
      <published>Tue Jun 14 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;
git push origin :nameOfTheBranch
&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/remove-folders-git-history</id>
      <title type="text">How to remove folders from Git History</title>
      <link href="/2011/06/remove-folders-git-history" rel="alternate" type="text/html"/>
      <updated>Wed Jun 08 00:00:00 UTC 2011</updated>
      <published>Wed Jun 08 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;
git filter-branch --index-filter &quot;git rm -rf --cached --ignore-unmatch ./heavy/folder&quot;
&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/irccloud-invites</id>
      <title type="text">IRCCloud Invites</title>
      <link href="/2011/06/irccloud-invites" rel="alternate" type="text/html"/>
      <updated>Tue Jun 07 00:00:00 UTC 2011</updated>
      <published>Tue Jun 07 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;
	I have three&amp;nbsp;&lt;strong style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; &quot;&gt;IRCCloud&lt;/strong&gt;&amp;nbsp;invites, send me your email or ask me via &lt;a href=&quot;http://www.twitter.com/D_Roch&quot;&gt;@D_Roch&lt;/a&gt;&amp;nbsp;if you want one.&lt;/p&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/gae-blob-binding-siena2</id>
      <title type="text">GAE Blob binding with Siena/Crudsiena 2.0.0</title>
      <link href="/2011/06/gae-blob-binding-siena2" rel="alternate" type="text/html"/>
      <updated>Tue Jun 07 00:00:00 UTC 2011</updated>
      <published>Tue Jun 07 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;
	In order to use a GAE Blob binding with Siena/Crudsiena 2.0.0, you need to add a new model to your application:&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/1011311.js?file=GaeBlobBinder.java&quot;&gt;&lt;/script&gt;

And this is how you can use it in your entities:
&lt;pre&gt;&lt;code&gt;
@Column(&quot;picture&quot;)
@As(binder=models.GaeBlobBinder.class)
public Blob picture;
&lt;/pre&gt;&lt;/code&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/pandaranol</id>
      <title type="text">Le Pandaranol</title>
      <link href="/2011/06/pandaranol" rel="alternate" type="text/html"/>
      <updated>Mon Jun 06 00:00:00 UTC 2011</updated>
      <published>Mon Jun 06 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;
	Le &lt;strong&gt;Pandaranol&lt;/strong&gt; n&amp;#39;est pas une espece de panda, c&amp;#39;est un concours SEO.&lt;/p&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/06/gae-appstats-playframework</id>
      <title type="text">How to use GAE AppStats with Playframework</title>
      <link href="/2011/06/gae-appstats-playframework" rel="alternate" type="text/html"/>
      <updated>Mon Jun 06 00:00:00 UTC 2011</updated>
      <published>Mon Jun 06 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;
	Use the war command to generate a web.xml file.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;play war -o ./tmpfolder/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	Move it to your war folder&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;mv ./tmpfolder/WEB-INF/web.xml ./war/WEB-INF/web.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	Remove the tmp folder&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;rm -r ./tmpfolder/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
	Activate AppStats and add the routes to the web.xml file (before )&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/1010610.js&quot;&gt; &lt;/script&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/05/merge-two-git-repos</id>
      <title type="text">How to merge two git repositories</title>
      <link href="/2011/05/merge-two-git-repos" rel="alternate" type="text/html"/>
      <updated>Tue May 31 00:00:00 UTC 2011</updated>
      <published>Tue May 31 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;
&lt;code&gt;
git remote add branchB git@github.com:user/repo.git
git pull branchB
git pull branchB master
&lt;/code&gt;&lt;/pre&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/05/random-string-mysql</id>
      <title type="text">How to generate a random string in MySQL</title>
      <link href="/2011/05/random-string-mysql" rel="alternate" type="text/html"/>
      <updated>Mon May 30 00:00:00 UTC 2011</updated>
      <published>Mon May 30 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6)
&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/05/jquery-load-events-href</id>
      <title type="text">How to bind JQuery load events on href links</title>
      <link href="/2011/05/jquery-load-events-href" rel="alternate" type="text/html"/>
      <updated>Thu May 26 00:00:00 UTC 2011</updated>
      <published>Thu May 26 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;
&lt;code&gt;
$(document).ready(function() {
    $(&amp;#39;.insite&amp;#39;).live(&amp;quot;click&amp;quot;, function(ev) {
    var href = $(this).attr(&amp;#39;href&amp;#39;);
        if ( history.pushState ) history.pushState( {}, document.title, href);
        ev.preventDefault();
        $(&amp;#39;#content&amp;#39;).fadeOut().load(href+&amp;#39; #content&amp;#39;, function() {
                $(this).fadeIn();
                _gaq.push([&amp;#39;_trackPageview&amp;#39;, href ]);
		//window.disqus_no_style = true;
		//$.getScript(&amp;quot;http://disqus.com/forums/mnml/embed.js&amp;quot;)
            });
    });
});
&lt;/code&gt;&lt;/pre&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/05/remove-conflicted-files-dropbox</id>
      <title type="text">How to remove conflicted files from Dropbox</title>
      <link href="/2011/05/remove-conflicted-files-dropbox" rel="alternate" type="text/html"/>
      <updated>Thu May 26 00:00:00 UTC 2011</updated>
      <published>Thu May 26 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;
find . -type f -name &quot;* conflicted *&quot; -exec rm -f {} \;
&lt;/pre&gt;&lt;/code&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/05/recturn-http-response-code</id>
      <title type="text">Return a HTTP Response code</title>
      <link href="/2011/05/recturn-http-response-code" rel="alternate" type="text/html"/>
      <updated>Wed May 11 00:00:00 UTC 2011</updated>
      <published>Wed May 11 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;wget --delete-after site.com 2&amp;gt;&amp;amp;1|egrep &amp;quot;HTTP|Length|saved&amp;quot; | head -1 | sed s/&amp;quot;HTTP request sent, awaiting response... &amp;quot;//&lt;/code&gt;&lt;/pre&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/04/how-to-word-count-a-mysql-column</id>
      <title type="text">How to word count a MySQL column</title>
      <link href="/2011/04/how-to-word-count-a-mysql-column" rel="alternate" type="text/html"/>
      <updated>Tue Apr 12 00:00:00 UTC 2011</updated>
      <published>Tue Apr 12 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;
&lt;code&gt;
SELECT SUM( LENGTH(name) - LENGTH(REPLACE(name, &amp;#39; &amp;#39;, &amp;#39;&amp;#39;))+1) FROM table
&lt;/code&gt;&lt;/pre&gt;
}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/03/how-to-fetch-url-parameters-using-javascript</id>
      <title type="text">How to fetch url parameters using Javascript</title>
      <link href="/2011/03/how-to-fetch-url-parameters-using-javascript" rel="alternate" type="text/html"/>
      <updated>Fri Mar 18 16:45:21 UTC 2011</updated>
      <published>Fri Mar 18 16:45:21 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;
&quot;getParameter&quot;: function(name) {
    name = name.replace(/[\[]/,&quot;\\\[&quot;).replace(/[\]]/,&quot;\\\]&quot;);
    var regexS = &quot;[\\?&amp;]&quot;+name+&quot;=([^&amp;#]*)&quot;;
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
      return &quot;&quot;;
    else
      return results[1];
 }
&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/03/how-to-mirror-your-website-on-amazon-s3</id>
      <title type="text">How to mirror your website on Amazon S3</title>
      <link href="/2011/03/how-to-mirror-your-website-on-amazon-s3" rel="alternate" type="text/html"/>
      <updated>Fri Mar 11 00:00:00 UTC 2011</updated>
      <published>Tue Mar 08 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt; 	First, you need to fetch your website using wget:&lt;/p&gt; &lt;p&gt; wget -r -k -E -p -U Mozilla http://www.usineadesign.com -c --force-html 2&gt;&amp;1 | egrep -o  &quot;(http|https):.*&quot;&lt;/p&gt; &lt;p&gt; 	Then we upload it all to amazon s3:&lt;/p&gt; &lt;p&gt; 	php5 import.php&lt;/p&gt; &lt;pre&gt; &lt;code&gt;include_once(&amp;#39;./s3.php&amp;#39;); try {   //AWS access info   if (!defined(&amp;#39;awsAccessKey&amp;#39;))     define(&amp;#39;awsAccessKey&amp;#39;, &amp;#39;MYACCESSKEY&amp;#39;);   if (!defined(&amp;#39;awsSecretKey&amp;#39;))     define(&amp;#39;awsSecretKey&amp;#39;, &amp;#39;MYSECRETKEY&amp;#39;);    function listFolder($folder = &amp;quot;.&amp;quot;) { // Fonction qui liste un dossier de fa&amp;ccedil;on r&amp;eacute;cursive     $s3 = new S3(awsAccessKey, awsSecretKey);     if (is_dir($folder)) {       if ($folderOpen = opendir($folder)) {         while (($file = readdir($folderOpen)) !== false) {           if ($file == &amp;quot;..&amp;quot; || $file == &amp;quot;.&amp;quot; || $file == &amp;quot;index.php&amp;quot;) {             continue;           } else {             if (is_dir(&amp;quot;$folder/$file&amp;quot;))               listeDossier(&amp;quot;$folder/$file&amp;quot;);             else               $paths[] = &amp;quot;$folder/$file&amp;quot;;           }         }       }     }     foreach ($paths as $path) {       $chemin = explode(&amp;#39;/&amp;#39;, $path, 2);       $s3-&amp;gt;putObject($s3-&amp;gt;inputResource(fopen(&amp;#39;domain.com/&amp;#39; . $chemin[1], &amp;#39;r&amp;#39;), filesize(&amp;#39;domain.com/&amp;#39; . $chemin[1])), &amp;#39;subdomain.domain.com&amp;#39;, $chemin[1], S3::ACL_PUBLIC_READ, null, array(&amp;#39;Content-Type&amp;#39; =&amp;gt; &amp;#39;text/html&amp;#39;));     }   }      listFolder(&amp;#39;domain.com&amp;#39;);    } catch (Exception $e) {} &lt;/code&gt;&lt;/pre&gt; &lt;p&gt; 	The s3 php class can be found on this &lt;a href=&quot;http://undesigned.org.za/2007/10/22/amazon-s3-php-class&quot;&gt;website&lt;/a&gt;&lt;/p&gt; }</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/02/git-how-to-create-a-new-remote-branch</id>
      <title type="text">GIT: How to create a new remote branch</title>
      <link href="/2011/02/git-how-to-create-a-new-remote-branch" rel="alternate" type="text/html"/>
      <updated>Tue Mar 22 12:32:31 UTC 2011</updated>
      <published>Tue Feb 22 09:20:21 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&#65279;1. Create the remote branch
&lt;pre&gt;&lt;code&gt;
git push origin origin:refs/heads/new_feature_name
&lt;/code&gt;&lt;/pre&gt;

2. Make sure everything is up-to-date
&lt;pre&gt;&lt;code&gt;
git fetch origin
&lt;/code&gt;&lt;/pre&gt;

3. Then you can see that the branch is created.
&lt;pre&gt;&lt;code&gt;
git branch -r
&lt;/code&gt;&lt;/pre&gt;

This should show &#8216;origin/new_feature_name&#8217;

4. Start tracking the new branch
&lt;pre&gt;&lt;code&gt;
git checkout &#8211;track -b new_feature_name origin/new_feature_name
&lt;/code&gt;&lt;/pre&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/02/how-to-synchronize-installed-packages-between-computers</id>
      <title type="text">How to sync installed packages between computers</title>
      <link href="/2011/02/how-to-synchronize-installed-packages-between-computers" rel="alternate" type="text/html"/>
      <updated>Tue Feb 22 00:00:00 UTC 2011</updated>
      <published>Tue Feb 22 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;pre&gt;&lt;code&gt;dpkg --get-selections &gt; installed-software dpkg --set-selections &lt; installed-software dselect&lt;/pre&gt;&lt;/code&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/02/check-ati-radeon-temperature-change-fan-speed-check-gpu-load-on-linux</id>
      <title type="text">How to check Ati Radeon temperature &amp; change fan speed &amp; check GPU load on Linux</title>
      <link href="/2011/02/check-ati-radeon-temperature-change-fan-speed-check-gpu-load-on-linux" rel="alternate" type="text/html"/>
      <updated>Tue Feb 22 00:00:00 UTC 2011</updated>
      <published>Tue Feb 22 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">sudo aticonfig --initial -f aticonfig --adapter=0 --od-gettemperature aticonfig --pplib-cmd &quot;set fanspeed 0 100&quot; aticonfig --pplib-cmd &quot;set fanspeed 0 auto&quot; aticonfig --adapter=0 --od-getclocks}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2011/01/paas-web-hosters</id>
      <title type="text">List of PaaS web hosters</title>
      <link href="/2011/01/paas-web-hosters" rel="alternate" type="text/html"/>
      <updated>Wed Mar 09 00:00:00 UTC 2011</updated>
      <published>Sun Jan 09 00:00:00 UTC 2011</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;h2&gt;Ruby&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.heroku.com/&quot;&gt;Heroku&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.duostack.com/&quot;&gt;Duostack&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.engineyard.com/&quot;&gt;Engine Yard&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;Python&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.ep.io/&quot;&gt;ep.io&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://djangozoom.com/&quot;&gt;Django Zoom&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;https://www.djangy.com/&quot;&gt;Djangy&lt;/a&gt; (shutted down)&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://appengine.google.com/&quot;&gt;Google Appengine&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://stable.io/&quot;&gt;Stable&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://gondor.io/&quot;&gt;Gondor&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://picloud.com&quot;&gt;PiCloud&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;PHP&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://phpfog.com/&quot;&gt;PHPFog&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://cloudcontrol.com/&quot;&gt;CloudControl&lt;/a&gt;&lt;/li&gt;         	&lt;li&gt;&lt;a href=&quot;http://orchestra.io/&quot;&gt;Orchestra&lt;/a&gt;&lt;/li&gt;	&lt;li&gt;&lt;a href=&quot;https://pagodabox.com/&quot;&gt;Pagodabox&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;CMS&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://acquia.com/products-services/drupal-hosting&quot;&gt;Acquia Hosting for Drupal&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;https://getpantheon.com&quot;&gt;Pantheon for Drupal&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;.NET&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://appharbor.com/&quot;&gt;AppHarbor&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://biaslogic.com/&quot;&gt;biasLogic&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://moncai.com/&quot;&gt;Moncai&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://microsoft.com/azure&quot;&gt;Microsoft Azure&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://apprenda.com/saasgrid/&quot;&gt;Apprenda SaaSGrid&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;Java (JVM)&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.cloudbees.com/&quot;&gt;CloudBees&lt;/a&gt; via the purchase of&amp;nbsp;&lt;a href=&quot;http://stax.net/&quot;&gt;Stax&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://appengine.google.com/&quot;&gt;Google Appengine&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.playapps.net/&quot;&gt;Playapps&lt;/a&gt; (Play framework only)&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://aws.amazon.com/elasticbeanstalk/&quot;&gt;AWS Elastic Beanstalk&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;Node.js&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.nodejscloud.com/&quot;&gt;NodeJSCloud&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;https://no.de/&quot;&gt;Joyent SmartMachine&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.duostack.com/&quot;&gt;Duostack&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://nodejitsu.com/&quot;&gt;Nodejitsu&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://apps.jgate.de&quot;&gt;JGate&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://nodester.com&quot;&gt;Nodester&lt;/a&gt; (NodeFu)&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;RingoJS&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://www.erbix.com/&quot;&gt;Erbix&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;Data&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://cloudscale.com&quot;&gt;Cloudscale&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;h2&gt;Multi Platform&lt;/h2&gt; &lt;ul&gt; 	&lt;li&gt;&lt;a href=&quot;http://kodingen.com/&quot;&gt;Kodingen&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://dotcloud.com/&quot;&gt;DotCloud&lt;/a&gt;&lt;/li&gt; 	&lt;li&gt;&lt;a href=&quot;http://webbynode.com/&quot;&gt;Webbynode&lt;/a&gt;&lt;/li&gt;         	&lt;li&gt;&lt;a href=&quot;http://www.makara.com/&quot;&gt;Makara&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;}</div>
      </content>
    </entry>
      <entry>
      <id>http://www.D-Ro.ch/2010/04/lpmnmlplaycrud</id>
      <title type="text">lp:~mnml/play/crud</title>
      <link href="/2010/04/lpmnmlplaycrud" rel="alternate" type="text/html"/>
      <updated>Thu Apr 01 00:00:00 UTC 2010</updated>
      <published>Thu Apr 01 00:00:00 UTC 2010</published>
      <content type="xhtml" xml:base="http://www.D-Ro.ch">
	<div xmlns="http://www.w3.org/1999/xhtml">&lt;iframe src=&quot;http://player.vimeo.com/video/10755756?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;400&quot; height=&quot;160&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;}</div>
      </content>
    </entry>
   
</feed>
