<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>r/champourlier&#039;s public tech way</title>
	<atom:link href="http://rchampourlier.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rchampourlier.wordpress.com</link>
	<description>R/C&#039;s tech blog: development, technical tips&#039;n&#039;tricks, mostly on iPhone SDK</description>
	<lastBuildDate>Sun, 18 Dec 2011 15:09:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rchampourlier.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>r/champourlier&#039;s public tech way</title>
		<link>http://rchampourlier.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rchampourlier.wordpress.com/osd.xml" title="r/champourlier&#039;s public tech way" />
	<atom:link rel='hub' href='http://rchampourlier.wordpress.com/?pushpress=hub'/>
		<item>
		<title>A little more open source: a personal accounting software</title>
		<link>http://rchampourlier.wordpress.com/2011/07/07/a-little-more-open-source-a-personal-accounting-software/</link>
		<comments>http://rchampourlier.wordpress.com/2011/07/07/a-little-more-open-source-a-personal-accounting-software/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 12:20:45 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[CoreData]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[macosx]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=264</guid>
		<description><![CDATA[Today I published on GitHub a software I developed for personal accounting I use for a long time. It may help some of you with custom view, table views and probably Core Data, or provide a fundation if you want to build such software. It&#8217;s available on GitHub ! Enjoy<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=264&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I published on GitHub a software I developed for personal accounting I use for a long time. It may help some of you with custom view, table views and probably Core Data, or provide a fundation if you want to build such software. It&#8217;s available on <a title="Ges repository on GitHub" href="https://github.com/rchampourlier/Ges" target="_blank">GitHub</a> ! Enjoy <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/264/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=264&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2011/07/07/a-little-more-open-source-a-personal-accounting-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>nginx reverse-proxying unicorn</title>
		<link>http://rchampourlier.wordpress.com/2011/06/29/nginx-reverse-proxying-unicorn/</link>
		<comments>http://rchampourlier.wordpress.com/2011/06/29/nginx-reverse-proxying-unicorn/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 18:33:26 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Around Rails (with Rubies below)]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=261</guid>
		<description><![CDATA[After the experiments detailed in my last post, I faced today the need to have clean ruby/gems environments for each project I deploy on my Amazon EC2 server. Just like on my development machine, I wish to use &#60;code&#62;rvm&#60;/code&#62; to make a separate gemset for each application. However, to be able to run each app [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=261&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After the experiments detailed in my last post, I faced today the need to have clean ruby/gems environments for each project I deploy on my Amazon EC2 server. Just like on my development machine, I wish to use &lt;code&gt;rvm&lt;/code&gt; to make a separate gemset for each application.</p>
<p>However, to be able to run each app in its own environment, using a dedicated ruby-server instance is needed. Like described in my previous post, I was using Passenger to do that. Trying to deploy a ruby-1.9.2 / rails 3.1 app, I could not get Passenger Standalone installed due to some rake &gt; 0.9.0 incompatibilities. This required to get the last version of the Passenger gem on GitHub, what I can&#8217;t do with my current knowledge.</p>
<p>Since I was using Passenger to make deployment easier, I was wondering if it was still the case. And I was feeling like it was getting a very big machine running for each app, while there was surely other solutions. And sure there is! There are other ruby production-class servers which can be used: Thin, Unicorn, and surely many others. And since I&#8217;m reverse-proxying through nginx, I can use any of them.</p>
<p>So, from now, I&#8217;ll be using Unicorn. It&#8217;s much more easy to get it running, no need to have a complex and hazardous installation process, just add it to the Gemfile, bundle install and get it running. I think it will do the trick for now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/261/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=261&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2011/06/29/nginx-reverse-proxying-unicorn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>Reunionite is now opensource on GitHub if you need some material to start building an iPhone app!</title>
		<link>http://rchampourlier.wordpress.com/2011/06/23/reunionite-is-now-opensource-on-github-if-you-need-some-material-to-start-building-an-iphone-app/</link>
		<comments>http://rchampourlier.wordpress.com/2011/06/23/reunionite-is-now-opensource-on-github-if-you-need-some-material-to-start-building-an-iphone-app/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 04:52:49 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=253</guid>
		<description><![CDATA[Find it there: https://github.com/rchampourlier/Reunionite More info on the app here! And you can get it on the AppStore too&#8230; Feel free to contact me if you need some info, I was in a hurry when developing so there is not much documentation<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=253&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Find it there: <a title="Reunionite on GitHub" href="https://github.com/rchampourlier/Reunionite" target="_blank">https://github.com/rchampourlier/Reunionite</a></p>
<p>More info on the app <a title="Reunionite for iPhone available on the AppStore!" href="http://rchampourlier.wordpress.com/2010/11/11/reunionite-for-iphone-available-on-the-appstore/" target="_blank">here</a>! And you can get it on the AppStore too&#8230;</p>
<p>Feel free to contact me if you need some info, I was in a hurry when developing so there is not much documentation <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/253/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=253&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2011/06/23/reunionite-is-now-opensource-on-github-if-you-need-some-material-to-start-building-an-iphone-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>nginx + Rails (through Passenger) on different Rubies + PHP, all this on Amazon AWS</title>
		<link>http://rchampourlier.wordpress.com/2011/05/09/nginx-rails-through-passenger-on-different-rubies-php-all-this-on-amazon-aws/</link>
		<comments>http://rchampourlier.wordpress.com/2011/05/09/nginx-rails-through-passenger-on-different-rubies-php-all-this-on-amazon-aws/#comments</comments>
		<pubDate>Mon, 09 May 2011 18:29:09 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Around Rails (with Rubies below)]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=242</guid>
		<description><![CDATA[Hi everybody! It&#8217;s been quite a long time since my last post&#8230; I have lots to do, I&#8217;m working on a startup project and I&#8217;ve now another blog on which I have to write. I do not spend so much time developing, and almost not any more for Cocoa&#8230; Due to my project I&#8217;ve been [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=242&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi everybody!</p>
<p>It&#8217;s been quite a long time since my last post&#8230; I have lots to do, I&#8217;m working on a startup project and I&#8217;ve now another blog on which I have to write. I do not spend so much time developing, and almost not any more for Cocoa&#8230;</p>
<p>Due to my project I&#8217;ve been switching to web application technologies, and since I&#8217;m looking in the startup ecosystem, I&#8217;ve been looking at Ruby On Rails. After having played a little with Heroku, I wanted to start with a more customized hosting experience, so I&#8217;m now testing Amazon AWS service, through their free 1-year tier (allowing a sufficient cloud hosting for my purpose).</p>
<p>However, since I found the road quite long to reach a working config (I&#8217;m really newbie as sysadmin), I put all the things I went through on an Evernote page, and now I&#8217;m sharing them with you. It&#8217;s raw, I&#8217;ll try to refine all this with the time, but it may help nonetheless. And feel free to ask for help, I&#8217;ll do what I can <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-242"></span></p>
<hr />
<p>First of all, setup the user and group to use with the server and other processes (that will be Passenger, PHP FastCGI&#8230;) :</p>
<p><code>groupadd www<br />
useradd -d /var/www -s /bin/bash -g www www</code></p>
<p>The following version may be more secure, or maybe not, maybe it&#8217;s generally useless to have home directory and shell, but we will need to be able to <code>su</code> as the www user later in our Passenger Standalone init script, so we&#8217;d better choose the previous useradd proposition&#8230; The following one is only kept for reference.</p>
<p><code>useradd -d /dev/null -s /etc -g www www</code></p>
<p>This is now what we&#8217;ll be installing:</p>
<ul>
<li>Nginx, with common options, SSL capability, PHP support and Passenger for Rails.</li>
<li>Passenger Standalone to serve Rails app with esoteric configurations (not the main one to be used by Passenger integrated with nginx).</li>
<li>Ruby Enterprise Edition</li>
</ul>
<p>Install nginx with both PHP and Passenger support involves going through Passenger installation process, which compiles and setup nginx by itself, but providing it with the necessary options, in our case:</p>
<ul>
<li>the common options we want to have,</li>
<li>PHP support through fast-cgi thanks to fgm.</li>
</ul>
<p>The rest is already handled by the install (as SSL and the pcre library).</p>
<ol>
<ul>
<li>Download nginx source code.</li>
</ul>
<ul>
<li>Follow Passenger installation as described on http://www.modrails.com/install.html (easy way), and when the installer prompts you to, answers you want to customize your Nginx installation. You will customize this way:</li>
</ul>
<ol>
<ul>
<li>provide the location of the nginx source code you downloaded and extracted,</li>
<li>specify an installation path for nginx, I chose /usr/local/nginx (nginx default&#8217;s, but not Passenger&#8217;s),</li>
<li>add options to nginx configuration:</li>
</ul>
</ol>
</ol>
<p><code> --user=www --group=www --with-http_sub_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_realip_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/nginx/tmp/client_body_temp --http-proxy-temp-path=/var/nginx/tmp/proxy_temp --http-fastcgi-temp-path=/var/nginx/tmp/fastcgi_temp --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/nginx/log/error.log --http-log-path=/var/nginx/log/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock</code></p>
<ol>
<ul>
<ul>
<li>These options are the remaining ones proposed by the tutorial you can find <a title="here" href="http://download.pureftpd.org/docs/configuration_nginx_php.pdf (from this forum http://forum.ovh.com/showthread.php?t=39114" target="_blank">here</a>, which is well done : (for French speaking persons however)! ). It mainly provides path for nginx work files and add the fastcgi support to integrate with PHP through FPM.</li>
</ul>
</ul>
</ol>
<ul>
<li>After that, create the nginx config file as indicated in the tutorial and add the lines indicated by the Passenger at the end of the installation. The config file will be waiting in <code>/etc/nginx/nginx.conf</code></li>
</ul>
<p><strong>Now nginx should be installed.</strong> You should make a link to the binary in /usr/sbin for example (to allow the system to find it). Give it a try with : <code>sudo nginx</code>, and try in your browser your server&#8217;s public IP, you should see a message about Nginx&#8230; If this works, add nginx to the <code>init.d</code>to have it started when your server launches. For this:</p>
<ul>
<li>create a nginx script in <code>/etc/init.d</code> (for example with emacs), and copy the content provided on <a title="nginx init script" href="http://articles.slicehost.com/2009/2/2/centos-adding-an-nginx-init-script" target="_blank">this page :</a></li>
<li>be sure to change the provided script to match the location where you installed nginx</li>
<li>you&#8217;ll need the functions file for init.d, you can use the sample one on this <a title="init script" href="http://bash.cyberciti.biz/guide//etc/init.d" target="_blank">page</a></li>
<li>now you should be able to start nginx through /etc/init.d/nginx start (be sure to set your permissions correctly to be able to execute the script)</li>
</ul>
<h3>Get PHP with nginx (haaaaaard to find&#8230;)</h3>
<p>Found the solution in <a title="nginx php mysql" href="http://neokraft.net/2010/03/20/serveur-web-nginx-php-mysql" target="_blank">here</a></p>
<ul>
<li><code>install spawn-fcgi: yum install spawn-fcgi</code></li>
<li>Create the init script according to the previous tutorial <strong>(just edit it to change from php5-cgi to php-cgi, because it is installed this way on the AWS AMI distrib package)</strong>.</li>
<li>Start your fast-cgi service (<code>/etc/init.d/php-fcgi start</code>) and configure it to be started with the server:</li>
<li><code>chkconfig --add php-fcgi</code></li>
<li><code>chkconfig php-fcgi on</code></li>
<li>Update nginx configuration file. Use this (based on my config, the only combination I found to work &#8211; <strong>used to had a &#8220;No input file specified error&#8230;&#8221;</strong>).</li>
</ul>
<p><code>server {</code></p>
<p><code>   server_name www.example.com;<br />
root /var/www/example.com;location / {<br />
index index.php     index.html index.htm;<br />
}<br />
</code><span class="Apple-style-span" style="font-family:monospace;">   location ~ \.php$ {<br />
</span><span class="Apple-style-span" style="font-family:monospace;">      fastcgi_pass  localhost:9000;<br />
</span><span class="Apple-style-span" style="font-family:monospace;">fastcgi_index index.php;<br />
</span><span class="Apple-style-span" style="font-family:monospace;">      fastcgi_param SCRIPT_FILENAME /var/www/work.jili.fr$fastcgi_script_name;<br />
</span><span class="Apple-style-span" style="font-family:monospace;">include /etc/nginx/fastcgi_params;</span></p>
<p><code>   }<br />
}</code></p>
<p>There are things to do in the <code>/etc/nginx/fastcgi_params</code> file too&#8230; So be sure it contains the following&#8230;</p>
<p><code>fastcgi_param  QUERY_STRING       $query_string;<br />
fastcgi_param  REQUEST_METHOD     $request_method;<br />
fastcgi_param  CONTENT_TYPE       $content_type;<br />
fastcgi_param  CONTENT_LENGTH     $content_length;</code></p>
<p>fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;<br />
fastcgi_param  REQUEST_URI        $request_uri;<br />
fastcgi_param  DOCUMENT_URI       $document_uri;<br />
fastcgi_param  DOCUMENT_ROOT      $document_root;<br />
fastcgi_param  SERVER_PROTOCOL    $server_protocol;</p>
<p>fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;<br />
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;</p>
<p>fastcgi_param  REMOTE_ADDR        $remote_addr;<br />
fastcgi_param  REMOTE_PORT        $remote_port;<br />
fastcgi_param  SERVER_ADDR        $server_addr;<br />
fastcgi_param  SERVER_PORT        $server_port;<br />
fastcgi_param  SERVER_NAME        $server_name;</p>
<p># PHP only, required if PHP was built with &#8211;enable-force-cgi-redirect<br />
fastcgi_param  REDIRECT_STATUS    200;</p>
<p>fastcgi_split_path_info ^(.+\.php)(.*)$;<br />
fastcgi_param PATH_INFO $fastcgi_path_info;<br />
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;<br />
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</p>
<p>* Be sure to check your permissions. I used www as user and group for everything, so all my served stuff is under this user:group, and I start my nginx server and the spawn-fcgi with it too&#8230;<br />
* You&#8217;ll like to have a SysV init script to start your Spawn FCGI for PHP at server launch. You can use this one. Be sure to change the user:group with whatever you&#8217;re using.<br />
#!/bin/sh#<br />
# php-fcgi   Start and stop FastCGI processes<br />
#<br />
# chkconfig:   &#8211; 80 20<br />
# description: Spawn FastCGI scripts to be used by web servers</p>
<p>### BEGIN INIT INFO<br />
# Provides:       php-fcgi<br />
# Required-Start: $remote_fs $syslog<br />
# Required-Stop:  $remote_fs $syslog<br />
# Default-Start:  2 3 4 5<br />
# Default-Stop:   0 1 6<br />
# Short-Description: PHP5 FastCgi Spawned processes<br />
### END INIT INFO</p>
<p># Source function library.<br />
. /etc/rc.d/init.d/functions</p>
<p>COMMAND=/usr/bin/spawn-fcgi<br />
ADDRESS=127.0.0.1<br />
PORT=9000<br />
USER=www<br />
GROUP=www<br />
PHPCGI=/usr/bin/php-cgi<br />
PIDFILE=/var/run/fastcgi-php.pid<br />
RETVAL=0</p>
<p>PHP_FCGI_MAX_REQUESTS=500<br />
PHP_FCGI_CHILDREN=2</p>
<p>start() {<br />
echo -n $&#8221;Starting $PHPCGI: &#8220;<br />
export PHP_FCGI_MAX_REQUESTS PHP_FCGI_CHILDREN<br />
$COMMAND -a $ADDRESS -p $PORT -u $USER -g $GROUP -f $PHPCGI -P $PIDFILE<br />
retval=$?<br />
echo<br />
return $retval<br />
}</p>
<p>stop() {<br />
echo -n $&#8221;Stopping $PHPCGI: &#8220;<br />
/usr/bin/killall -9 php-cgi<br />
retval=$?<br />
echo<br />
return $retval<br />
}</p>
<p>case &#8220;$1&#8243; in<br />
start)<br />
start<br />
RETVAL=$?<br />
;;<br />
stop)<br />
stop<br />
RETVAL=$?<br />
;;<br />
restart|reload)<br />
stop<br />
start<br />
RETVAL=$?<br />
;;<br />
*)<br />
echo &#8220;Usage: fastcgi {start|stop|restart}&#8221;<br />
exit 1<br />
;;<br />
esac<br />
exit $RETVAL</p>
<h3>Installing Passenger Standalone instances for dedicated-environment apps</h3>
<p>You may want to run an app which requires a specific environment, maybe older than the one you&#8217;re using everyday (e.g. Redmine which runs on Rails 2). Or you want to dedicate a production environment for your app. For this need, you can use Passenger Standalone and configure it to be served by nginx.</p>
<p>Finally, you&#8217;ll like to have you Passenger Standalone instances started with the server too. BEWARE NGINX WILL NOT START IF LAUNCHED AFTER PASSENGER SA</p>
<p>I could do with this script, but you can probably use another one&#8230; Be sure however to add the<br />
# chkconfig &#8211; 86 14<br />
line (you may change the numbers to match your configuration), to make sure redmine starts after nginx&#8230;</p>
<p><code><br />
#!/bin/bash                                                                     #<br />
# chkconfig: - 86 14<br />
### BEGIN INIT INFO<br />
# Provides:          myapp passenger in standalone<br />
# Default-Start:     2 3 4 5<br />
# Default-Stop:      0 1 6<br />
# X-Interactive:     true<br />
# Short-Description: Start/stop de-fra.com web site<br />
### END INIT INFO</code></p>
<p>#PATH=/sbin:/usr/sbin:/bin:/usr/bin<br />
#GEM_HOME=/usr/local/rvm/gems/ruby-1.8.7-p302<br />
RVM=rvm<br />
PASSENGER=passenger<br />
ADDRESS=127.0.0.1<br />
PORT=3000<br />
ENVIRONMENT=production<br />
APP=&#8221;/var/www/railsapps/redmine&#8221;<br />
USER=www<br />
RVM_GEMSET=ree@rails2passengerSA<br />
USER=www<br />
SET_PATH=&#8221;cd $APP; $RVM use $RVM_GEMSET;&#8221;<br />
CMD=&#8221;$SET_PATH $PASSENGER start -a $ADDRESS -p $PORT -e $ENVIRONMENT -d&#8221;<br />
CMD_STOP=&#8221;$SET_PATH $PASSENGER stop -p $PORT&#8221;</p>
<p>#. /lib/lsb/init-functions</p>
<p>case &#8220;$1&#8243; in<br />
start)<br />
echo &#8220;Starting myapp passenger&#8221;<br />
echo $CMD<br />
su &#8211; $USER -c &#8220;$CMD&#8221;<br />
;;<br />
stop)<br />
echo &#8220;Stopping myapp passenger&#8221;</p>
<p>cd $APP<br />
su &#8211; $USER -c &#8220;$CMD_STOP&#8221;<br />
;;<br />
*)<br />
echo &#8220;Usage: $0 start|stop&#8221; &gt;&amp;2<br />
exit 3<br />
;;<br />
esac</p>
<h3>Using unicorn reverse-proxied through Nginx</h3>
<p>Good tutorial on: http://blog.sietch-tabr.com/index.php/post/2010/04/03/Faire-tourner-des-applications-ruby-on-rails-avec-nginx-et-unicorn (French)</p>
<p><em><strong>The following part is kept for reference, but not necessary if you follow the previous guidelines&#8230;</strong></em><br />
<em>Installing Nginx (NOT NECESSARY IF YOU&#8217;RE INSTALLING PASSENGER, IT WILL DO IT BY ITSELF)</em><br />
<em> Commands will need a sudo before, or just log in a bash as root with sudo bash</em></p>
<p><em>* Doing it from source</em><br />
<em> * need to install GCC, make first : sudo yum install gcc make</em><br />
<em> * get the pcre library source : http://sourceforge.net/projects/pcre/files/pcre/</em><br />
<em> * get nginx source (naturally): http://wiki.nginx.org/Install#Source_Releases</em><br />
<em> * in nginx folder:</em><br />
<em> * ./configure &#8211;user=www &#8211;group=www &#8211;with-http_sub_module &#8211;with-http_flv_module &#8211;with-http_gzip_static_module &#8211;with-http_stub_status_module &#8211;with-http_realip_module &#8211;http-log-path=/var/log/nginx/access.log &#8211;http-client-body-temp-path=/var/nginx/tmp/client_body_temp &#8211;http-proxy-temp-path=/var/nginx/tmp/proxy_temp &#8211;http-fastcgi-temp-path=/var/nginx/tmp/fastcgi_temp &#8211;conf-path=/etc/nginx/nginx.conf &#8211;error-log-path=/var/nginx/log/error.log &#8211;http-log-path=/var/nginx/log/access.log &#8211;pid-path=/var/run/nginx.pid &#8211;lock-path=/var/run/nginx.lock &#8211;with-pcre=/home/ec2-user/pcre-8.12/ &#8211;with-http_ssl_module</em><br />
<em> * be sure to adjust the path to your pcre lib source</em><br />
<em> * make</em><br />
<em> * make install</em><br />
<em> * Now nginx should be installed. You should make a link to the binary in /usr/sbin for example (to allow the system to find it).</em><br />
<em> * Give it a try with : sudo nginx, and try in your browser your server&#8217;s public IP, you should see a message about Nginx&#8230;</em><br />
<em> * If this works, add nginx to the init.d to have it started when your server launches. For this:</em><br />
<em> * create a nginx script in /etc/init.d (for example with emacs), and copy the content provided on this page : http://articles.slicehost.com/2009/2/2/centos-adding-an-nginx-init-script</em><br />
<em> * be sure to change the provided script to match the location where you installed nginx</em><br />
<em> * you&#8217;ll need the functions file for init.d, you can use the sample one on this page: http://bash.cyberciti.biz/guide//etc/init.d</em><br />
<em> * now you should be able to start nginx through /etc/init.d/nginx start (be sure to set your permissions correctly to be able to execute the script)</em><br />
<em> * Important thing, we should now setup user/group and permission correctly for more security. Nginx can run with any user, but we&#8217;ll dedicate one to web services. We&#8217;ll name it www.</em><br />
<em> Installing Phusion Passenger for Nginx</em></p>
<p><em>* Log in bash as root with sudo bash to make life easier.</em><br />
<em> * Install rvm.</em><br />
<em> * You can use the quick install: https://rvm.beginrescueend.com/.</em><br />
<em> * Try to verify the type rvm | head -1 thing works as expected (it does for me, but I dont really know how&#8230;). Check on  https://rvm.beginrescueend.com/rvm/basics if needed.</em><br />
<em> * You&#8217;ll need RVM to have a nice install of Ruby, since the one installed with the Amazon AWS image does not make gem install Passenger works (seems to lacks some Ruby files&#8230;).</em><br />
<em> * Some dependencies to install REE :</em><br />
<em> * yum install gcc-c++ patch redline-devel</em><br />
<em> * You should have a look to RVM doc to know what you can do: different rubies, gemsets&#8230; Maybe create a gemset to host ree with passenger, it will enable you to keep your gems to the strict necessary while trying other configurations later.</em><br />
<em> * Now install REE. Thanks to rvm, it should be as simple as rvm install ree (can look at https://rvm.beginrescueend.com/interpreters/ree/)</em><br />
<em> * Once this is done, install passenger. Follow instructions http://www.modrails.com/install.html. It is well explained and the installer is really well done: self configuring, it did all by itself for me (even what I had already done <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </em><br />
<em> * If you followed the installer instructions to the end (and add necessary lines to your nginx config file), you should be able to deploy your ruby apps now.</em><br />
<em> Bonus: Nginx to serve PHP too (useful to manage your MySQL DB with phpMyAdmin)</em></p>
<p><em>* http://download.pureftpd.org/docs/configuration_nginx_php.pdf (from this forum http://forum.ovh.com/showthread.php?t=39114)</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/242/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=242&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2011/05/09/nginx-rails-through-passenger-on-different-rubies-php-all-this-on-amazon-aws/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>A great article to have a better understanding of Javascript&#8217;s prototype</title>
		<link>http://rchampourlier.wordpress.com/2011/01/01/a-great-article-to-have-a-better-understanding-of-javascripts-prototype/</link>
		<comments>http://rchampourlier.wordpress.com/2011/01/01/a-great-article-to-have-a-better-understanding-of-javascripts-prototype/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 09:43:44 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=231</guid>
		<description><![CDATA[The concept of prototype, the variables involved, the meaning depending on the browser and the use in inheritance: a great article, clarifying the thing out in a nice way! https://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=231&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The concept of prototype, the variables involved, the meaning depending on the browser and the use in inheritance: a great article, clarifying the thing out in a nice way!</p>
<p>https://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=231&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2011/01/01/a-great-article-to-have-a-better-understanding-of-javascripts-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>Snow Leopard, 64bits, Ruby and MySQL</title>
		<link>http://rchampourlier.wordpress.com/2010/11/20/snow-leopard-64bits-ruby-and-mysql/</link>
		<comments>http://rchampourlier.wordpress.com/2010/11/20/snow-leopard-64bits-ruby-and-mysql/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 16:01:27 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Mac OS X Tips]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=232</guid>
		<description><![CDATA[I recently started again wanting to play a little bit with the so acclaimed Ruby on Rails framework. Being on a Mac, I had not much to do to start working, with Ruby &#38; RoR already installed with my Snow Leopard default OS X install (maybe because I&#8217;ve already installed the XCode Developer package, as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=232&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently started again wanting to play a little bit with the so acclaimed <strong>Ruby on Rails framework</strong>. Being on a Mac, I had not much to do to start working, with Ruby &amp; RoR already installed with my Snow Leopard default OS X install (maybe because I&#8217;ve already installed the XCode Developer package, as well as the iPhone&#8217;s one&#8230; maybe you should check). So I was playing with my Ruby on Rails&#8217; guide and I had already started building a project, having it displayed in my browser, so I knew <strong>the core of the install was up and ready.</strong></p>
<p>Next step was to connect with MySQL. It proved not to be so simple as expected&#8230; Running <code>rake db:migrate</code> to check Ruby was well connected with MySQL lead to the following errors (both errors came repeatedly during my way to the solution, given below&#8230;):</p>
<ul>
<li>uninitialized constant MysqlCompat::MysqlRes</li>
<li>dyld: lazy symbol binding failed: Symbol not found: _mysql_init<br />
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/<br />
mysql.bundle</li>
</ul>
<p>After some research and tests following different articles on the net, I finally got with a working solution <strong>(however please notice that it applies to an <span style="text-decoration:underline;">Intel Mac with 64bits processor under Snow Leopard</span>)</strong>:</p>
<ul>
<li>Install the latest x86_64 MySQL release (currently the <em>mysql-5.1.53-osx10.6-x86_64</em>). Several articles on the net will tell you the problems are due to the 64 bits version, you should install the 32 bits one, and so on. In my case, <strong>I tried both and it worked with the 64 bits one.</strong></li>
<li><strong>Make it work!</strong> Check the install documentation, connect with mysql, start the server&#8230; to be sure everything is working. A good thing would be to be able to connect to it with phpMyAdmin for example (which I did).</li>
<li>If you had already install the mysql gem (which you should have to need this page because you must have faced the previously mentioned issues&#8230;), <strong>uninstall it with <code>sudo gem uninstall mysql</code></strong>.</li>
<li>The trick is then to reinstall it with the following command line: <code>sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config </code> which ensures <strong>the gem is installed for the 64bits architecture, matching the MySQL one.</strong></li>
</ul>
<p>Then, you should not face the previous problem any more, maybe some access denials due to misconfiguration in your RoR&#8217;s project &#8220;database.yml&#8221; file or your MySQL configuration. But the Ruby/MySQL connection should be OK!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=232&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2010/11/20/snow-leopard-64bits-ruby-and-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>Reunionite for iPhone available on the AppStore!</title>
		<link>http://rchampourlier.wordpress.com/2010/11/11/reunionite-for-iphone-available-on-the-appstore/</link>
		<comments>http://rchampourlier.wordpress.com/2010/11/11/reunionite-for-iphone-available-on-the-appstore/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 15:50:12 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[iPhone applications]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[softroch]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=225</guid>
		<description><![CDATA[Check and share with your friends your meeting costs with this free app for your iPhone. Watch the demonstration video • Get it in the iPhone AppStore.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=225&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://rchampourlier.files.wordpress.com/2010/11/illustration-promo-en.jpg"><img class="alignnone size-full wp-image-226" title="Reunionite" src="http://rchampourlier.files.wordpress.com/2010/11/illustration-promo-en.jpg?w=600&#038;h=600" alt="Reunionite iPhone application goal" width="600" height="600" /></a></p>
<p><strong>Check and share with your friends your meeting costs</strong> with this <strong>free app</strong> for your <strong>iPhone</strong>.</p>
<p><a title="Reunionite demo video" href="http://softroch.free.fr/reunionite/video-en.html" target="_self">Watch the demonstration video</a> • <a title="Get Reunionite in the AppStore" href="http://itunes.apple.com/app/reunionite/id401686337?mt=8#" target="_blank">Get it in the iPhone AppStore</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=225&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2010/11/11/reunionite-for-iphone-available-on-the-appstore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>

		<media:content url="http://rchampourlier.files.wordpress.com/2010/11/illustration-promo-en.jpg" medium="image">
			<media:title type="html">Reunionite</media:title>
		</media:content>
	</item>
		<item>
		<title>Fix Apple aluminium ultraflat keyboard</title>
		<link>http://rchampourlier.wordpress.com/2010/11/02/fix-apple-aluminium-ultraflat-keyboard/</link>
		<comments>http://rchampourlier.wordpress.com/2010/11/02/fix-apple-aluminium-ultraflat-keyboard/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 19:38:32 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Other Computer Science]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=219</guid>
		<description><![CDATA[I have had a little issue with my Apple aluminium ultraflat keyboard: I used some cleaning foam to make it shine, and there must have been more liquid than foam on my tissue&#8230; and some must have gone to the &#8216;L&#8217; key&#8230; I faced the following issue after plugging my keyboard back: the &#8216;L&#8217; key [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=219&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have had a little issue with my Apple aluminium ultraflat keyboard: I used some cleaning foam to make it shine, and there must have been more liquid than foam on my tissue&#8230; and some must have gone to the &#8216;L&#8217; key&#8230;</p>
<p>I faced the following issue after plugging my keyboard back: the &#8216;L&#8217; key was acting like it was pushed, so as soon as the keyboard was plugged it started typing llllllllllllllllllllllllllllllll&#8230; and so on. Typing another key stopped it, but then no way to make the &#8216;L&#8217; key work anymore.</p>
<p>After having tried to blow on the unmounted key, unmount the mechanism, have some water on it, nothing made it, it was still not working. Finally, I ended up sinking the whole keyboard in water, leaving it there for approx. 2 hours, hoping the product would be gone. After 1 week drying quietly not far from the heater, it was working again as before!</p>
<p>Since during my first repairing trial I kind of broke some part of the mechanism, I had to exchange two keys (my broken &#8216;L&#8217; with the never-used-number-pad-lock-key). To prevent this, please find a <a title="Fix Apple aluminium ultraflat keyboard video" href="http://vimeo.com/16438128" target="_blank">video</a> (sorry voice and subtitles are in French) explaining how to unmount the key and the mechanism without broking it.</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/16438128' width='400' height='300' frameborder='0'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=219&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2010/11/02/fix-apple-aluminium-ultraflat-keyboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>Retain your IB objects in Cocoa Touch</title>
		<link>http://rchampourlier.wordpress.com/2010/11/01/214/</link>
		<comments>http://rchampourlier.wordpress.com/2010/11/01/214/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 14:16:03 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[question]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=214</guid>
		<description><![CDATA[I previously published 2 articles on the fact that you had to retain your objects instantied from Interface Builder. I finally discovered the scientific explanation within an AdMob source file: Note that top level objects in nibs other than MainWindow.xib in Cocoa Touch are autoreleased, not retained like in OS X. Be sure to use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=214&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I previously published <a title="IB instancied object to be linked to code" href="https://rchampourlier.wordpress.com/2009/09/13/object-instantied-by-the-interface-xib-file-need-to-be-linked-to-code/" target="_blank">2 articles</a> on the fact that you had to retain your objects instantied from Interface Builder. I finally discovered the <em>scientific</em> explanation within an AdMob source file:</p>
<blockquote><p>Note that top level objects in nibs other than MainWindow.xib in Cocoa Touch are autoreleased, not retained like in OS X. Be sure to use [self retain] in -awakeFromNib when part of a custom nib (as in this example).</p></blockquote>
<p><em>Extract from the AdMob SDK source files for iOS.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/214/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=214&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2010/11/01/214/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatically restart an app having started a call?</title>
		<link>http://rchampourlier.wordpress.com/2010/10/29/automatically-restart-an-app-having-started-a-call/</link>
		<comments>http://rchampourlier.wordpress.com/2010/10/29/automatically-restart-an-app-having-started-a-call/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 23:31:10 +0000</pubDate>
		<dc:creator>rchampourlier</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPhone applications]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[question]]></category>

		<guid isPermaLink="false">http://rchampourlier.wordpress.com/?p=204</guid>
		<description><![CDATA[This post will be quite simple. Its goal is to answer this question : is there a way to automatically restart an app which has initiated a call, once this call ended? This question is pretty related to my own apps (I hope you already know them! if not, just check them in the AppStore! [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=204&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post will be quite simple. Its goal is to answer this question :<strong> is there a way to automatically restart an app which has initiated a call, once this call ended? </strong>This question is pretty related to my own apps (I hope you already know them! if not, just check them <a title="My apps in the AppStore!" href="http://itunes.apple.com/fr/artist/romain-champourlier/id317731876" target="_blank">in the AppStore</a>! most are free!), since these are phone shortcuts (naturally just a little advertising picture below&#8230;).</p>
<p><a href="http://rchampourlier.files.wordpress.com/2010/10/appelmoncheri-v2-3-en-1.jpg"><img class="alignnone size-full wp-image-205" title="iPhone shortcut apps" src="http://rchampourlier.files.wordpress.com/2010/10/appelmoncheri-v2-3-en-1.jpg?w=600" alt="My iPhone shortcut apps"   /></a></p>
<p>So I recently checked to determine if I may make my apps a little more better, by allowing the user to have them restarting after the call ended. And the answer is&#8230; yes&#8230; but&#8230; this involves doing something which is not really nice in my case. In fact <strong>you can do this through using a WebKit view</strong>, and having a phone URL displayed in it. Having the <strong>user clicking this URL will bring a confirmation alert</strong>, if the user goes on the call takes place, and once it finished the app is restarted (you can Google this to find more details, I will not since I did not use this trick, doesn&#8217;t match my user experience goal!).</p>
<p>And that&#8217;s all! There is no other way, so if you don&#8217;t rely on a click on a link to start a call, do not hope to have your app restarting. iOS is not doing this&#8230; anymore (I remember it did in its first versions&#8230; it&#8217;s a shame it&#8217;s not customizable).</p>
<p>Have fun!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rchampourlier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rchampourlier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rchampourlier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rchampourlier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rchampourlier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rchampourlier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rchampourlier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rchampourlier.wordpress.com/204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rchampourlier.wordpress.com&amp;blog=5985799&amp;post=204&amp;subd=rchampourlier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rchampourlier.wordpress.com/2010/10/29/automatically-restart-an-app-having-started-a-call/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68d9977b572f9093a5ddcaa014e694f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rchampourlier</media:title>
		</media:content>

		<media:content url="http://rchampourlier.files.wordpress.com/2010/10/appelmoncheri-v2-3-en-1.jpg" medium="image">
			<media:title type="html">iPhone shortcut apps</media:title>
		</media:content>
	</item>
	</channel>
</rss>
