<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>onidev</title>
	
	<link>http://www.onidev.com</link>
	<description>excellence in app design &amp; development</description>
	<lastBuildDate>Tue, 31 Jan 2012 17:58:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/onidev" /><feedburner:info uri="onidev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>A fake Apple APNS for Performance Testing</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/RaWU525IpnA/</link>
		<comments>http://www.onidev.com/2012/01/31/a-fake-apple-apns-for-performance-testing/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 17:58:28 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[Code Examples]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[APNS]]></category>
		<category><![CDATA[Push Notifications]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=702</guid>
		<description><![CDATA[Recently we had to conduct a performance test on our Push Notification Server software to measure how long it would take to deliver a large number of Push Notifications to the Apple APNS. Bombarding the Apple APNS with 500,000+ messages might not go down well with Apple, and we didn&#8217;t want to risk getting our [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we had to conduct a performance test on our Push Notification Server software to measure how long it would take to deliver a large number of Push Notifications to the Apple APNS.</p>
<p>Bombarding the Apple APNS with 500,000+ messages might not go down well with Apple, and we didn&#8217;t want to risk getting our server IP blocked for any reason. </p>
<p>We created a fake APNS on a separate server that we could point our Push Notification Server to. This would accept the request but do nothing with it. It&#8217;s not a 100% accurate test (the Apple APNS would be slightly slower since it processes the data), but it&#8217;s good enough to find a benchmark.</p>
<p>We implemented this using Python, which you can find the code for below. To use this, run the script on the server you want to be the fake APNS. Then in your code that connects to the socket, replace the apple url with the one to this fake server.<br />
e.g &#8220;ssl://gateway.push.apple.com:2195&#8243; will become &#8220;tcp://yourserver.com:2195&#8243;</p>
<p>From this test and other tests we performed, we found that we could send between 1,000 to 3,800 Push Notifications a second to the APNS. Not too shabby I think!</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">SocketServer</span>
&nbsp;
HOST = <span style="color: #483d8b;">&quot;0.0.0.0&quot;</span>
PORT = <span style="color: #ff4500;">2195</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># this server uses ThreadingMixIn - one thread per connection</span>
<span style="color: #808080; font-style: italic;"># replace with ForkMixIn to spawn a new process per connection</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> EchoServer<span style="color: black;">&#40;</span><span style="color: #dc143c;">SocketServer</span>.<span style="color: black;">ThreadingMixIn</span>, <span style="color: #dc143c;">SocketServer</span>.<span style="color: black;">TCPServer</span><span style="color: black;">&#41;</span>:
    <span style="color: #808080; font-style: italic;"># no need to override anything - default behavior is just fine</span>
    <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> EchoRequestHandler<span style="color: black;">&#40;</span><span style="color: #dc143c;">SocketServer</span>.<span style="color: black;">StreamRequestHandler</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;
    Handles one connection to the client.
    &quot;&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> handle<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;connection from %s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">client_address</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
        <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
            line = <span style="color: #008000;">self</span>.<span style="color: black;">rfile</span>.<span style="color: #dc143c;">readline</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> line: <span style="color: #ff7700;font-weight:bold;">break</span>
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;%s wrote: %s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">client_address</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>, line.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            <span style="color: #808080; font-style: italic;">#self.wfile.write(line)</span>
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;%s disconnected&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">client_address</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;"># Create the server</span>
server = EchoServer<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>HOST, PORT<span style="color: black;">&#41;</span>, EchoRequestHandler<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Activate the server; this will keep running until you</span>
<span style="color: #808080; font-style: italic;"># interrupt the program with Ctrl-C</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;server listening on %s:%s&quot;</span> <span style="color: #66cc66;">%</span> server.<span style="color: black;">server_address</span>
server.<span style="color: black;">serve_forever</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<img src="http://feeds.feedburner.com/~r/onidev/~4/RaWU525IpnA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2012/01/31/a-fake-apple-apns-for-performance-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2012/01/31/a-fake-apple-apns-for-performance-testing/</feedburner:origLink></item>
		<item>
		<title>Merry Xmas!</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/oDBd8KnW0Gc/</link>
		<comments>http://www.onidev.com/2011/12/23/merry-xmas/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 14:56:18 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=692</guid>
		<description><![CDATA[We would like to wish everyone a very Merry Xmas and a Happy New Year! Cheers!]]></description>
			<content:encoded><![CDATA[<p>We would like to wish everyone a very Merry Xmas and a Happy New Year!</p>
<p>Cheers!</p>
<p><a href="http://www.onidev.com/wp-content/uploads/2011/12/Cosmo-Merry-xmas.png" rel="lightbox[692]"><img src="http://www.onidev.com/wp-content/uploads/2011/12/Cosmo-Merry-xmas-300x190.png" alt="" title="Merry Xmas from Onimobi" width="300" height="190" class="alignnone size-medium wp-image-693" /></a></p>
<img src="http://feeds.feedburner.com/~r/onidev/~4/oDBd8KnW0Gc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2011/12/23/merry-xmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2011/12/23/merry-xmas/</feedburner:origLink></item>
		<item>
		<title>We’re hiring!</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/r89HyzCv6T0/</link>
		<comments>http://www.onidev.com/2011/12/20/were-hiring/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 16:00:56 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[OniMobi]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=689</guid>
		<description><![CDATA[Guess what? We&#8217;re on the lookout for a talented iOS developer to join our team! Working in our Abingdon Office (near Oxford) you will predominantly be developing iPhone/iPad applications for our clients. You will also have an active role in the design &#038; development of our own games. You may also be developing apps and [...]]]></description>
			<content:encoded><![CDATA[<p>Guess what? We&#8217;re on the lookout for a talented iOS developer to join our team!</p>
<blockquote><p>Working in our Abingdon Office (near Oxford) you will predominantly be developing iPhone/iPad applications for our clients. You will also have an active role in the design &#038; development of our own games. You may also be developing apps and games for other platforms in the future such as Android or PS Vita.</p>
<p>You will need to be self-motivated, have excellent problem solving skills and be able to manage your own time efficiently. We are looking for a developer who will share our values of passion, quality &#038; service and a good attention to detail is very important. We believe that a rushed product is bad, and that the small details can make a big difference.</p>
<p>This is an excellent opportunity for someone who wants to grow with the company – someone who enjoys the challenge and excitement of being on the cutting edge and someone who will reap the rewards of their hard work.</p>
<p><a href="http://www.onidev.com/files/jobs/OniMobi_iOS_Developer.pdf" target="_blank">Download the full job spec here</a></p></blockquote>
<p>If you&#8217;d like to apply for this position please send us your CV to <a href="mailto:jobs@onimobi.com">jobs@onimobi.com</a></p>
<p>If you think this might be of interest to anyone you know please pass it on!</p>
<img src="http://feeds.feedburner.com/~r/onidev/~4/r89HyzCv6T0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2011/12/20/were-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2011/12/20/were-hiring/</feedburner:origLink></item>
		<item>
		<title>Steve Jobs Resigns as Apple CEO</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/zoB1PIZT8J4/</link>
		<comments>http://www.onidev.com/2011/08/25/steve-jobs-resigns-as-apple-ceo/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 08:52:57 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Resignation]]></category>
		<category><![CDATA[Steve Jobs]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=585</guid>
		<description><![CDATA[Wow, I guess we all shouldn&#8217;t be surprised that eventually Steve Jobs would resign as CEO of Apple, especially considering his health problems and extended medical leave from the company&#8217;s day to day runnings. However it is a little sad to find out the day has finally come. I wish Steve Jobs all the best [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, I guess we all shouldn&#8217;t be surprised that eventually Steve Jobs would resign as CEO of Apple, especially considering his health problems and extended medical leave from the company&#8217;s day to day runnings.</p>
<p>However it is a little sad to find out the day has finally come. I wish Steve Jobs all the best for the future and with his recovery.</p>
<p>This is Steve Jobs&#8217;s Resignation letter in full:</p>
<blockquote><p>To the Apple Board of Directors and the Apple Community:<br />
I have always said if there ever came a day when I could no longer meet my duties and expectations as Apple&#8217;s CEO, I would be the first to let you know. Unfortunately, that day has come.<br />
I hereby resign as CEO of Apple. I would like to serve, if the Board sees fit, as Chairman of the Board, director and Apple employee.<br />
As far as my successor goes, I strongly recommend that we execute our succession plan and name Tim Cook as CEO of Apple.<br />
I believe Apple&#8217;s brightest and most innovative days are ahead of it. And I look forward to watching and contributing to its success in a new role.<br />
I have made some of the best friends of my life at Apple, and I thank you all for the many years of being able to work alongside you.</p></blockquote>
<img src="http://feeds.feedburner.com/~r/onidev/~4/zoB1PIZT8J4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2011/08/25/steve-jobs-resigns-as-apple-ceo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2011/08/25/steve-jobs-resigns-as-apple-ceo/</feedburner:origLink></item>
		<item>
		<title>Xcode4 bad codegen, pointer diff</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/_HVMoAAzY6E/</link>
		<comments>http://www.onidev.com/2011/04/11/xcode4-bad-codegen-pointer-diff/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 13:43:28 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Linker]]></category>
		<category><![CDATA[Static Lib]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[Xcode 4]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=579</guid>
		<description><![CDATA[We recently upgraded to Xcode 4 and we found a lot of our static libraries no longer built due to a change Apple made with symbol visibility settings. The errors crop up something like this: ld: bad codegen, pointer diff in b2ContactListener::b2ContactListener()to global weak symbol vtable for b2ContactListener The fix we found was to modify [...]]]></description>
			<content:encoded><![CDATA[<p>We recently upgraded to Xcode 4 and we found a lot of our static libraries no longer built due to a change Apple made with symbol visibility settings.</p>
<p>The errors crop up something like this:</p>
<p><b>ld: bad codegen, pointer diff in b2ContactListener::b2ContactListener()to global weak symbol vtable for b2ContactListener</b></p>
<p>The fix we found was to modify the build settings for every static library, as well as the App to:</p>
<p><b>Symbols Hidden By Default = YES<br />
Inline Methods Hidden = NO<br />
</b></p>
<p>Hopefully this helps someone else out with the same problem!</p>
<img src="http://feeds.feedburner.com/~r/onidev/~4/_HVMoAAzY6E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2011/04/11/xcode4-bad-codegen-pointer-diff/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2011/04/11/xcode4-bad-codegen-pointer-diff/</feedburner:origLink></item>
		<item>
		<title>OniMobi is selected as a finalist for the Southern Oxfordshire New Business Competition!</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/aQUD437oALo/</link>
		<comments>http://www.onidev.com/2011/03/02/onimobi-is-selected-as-a-finalist-for-the-southern-oxfordshire-new-business-competition/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 16:34:07 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Office Life]]></category>
		<category><![CDATA[OniMobi]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=567</guid>
		<description><![CDATA[We have just found out today that we have been selected as one of the 10 finalists for the Southern Oxfordshire New Business Competition! The judging panel will assess what applicants have learnt from running a new business, plus any achievements, growth, challenges overcome, profitability and potential. Wish us luck! &#160;]]></description>
			<content:encoded><![CDATA[<p>We have just found out today that we have been selected as one of the 10 finalists for the <a href="http://www.sonbc.co.uk/">Southern Oxfordshire New Business Competition</a>!</p>
<p>The judging panel will assess what applicants have learnt from running a new business, plus any achievements, growth, challenges overcome, profitability and potential.</p>
<p>Wish us luck!</p>
<div class="clear" style="margin-top: 25px;">&nbsp;</div>
<p><a href="http://www.onidev.com/wp-content/uploads/2011/03/home-highlight-bg.png" rel="lightbox[567]"><img src="http://www.onidev.com/wp-content/uploads/2011/03/home-highlight-bg.png" alt="Southern Oxfordshire New Business Competition" title="Southern Oxfordshire New Business Competition" width="580" height="410" class="alignnone size-full wp-image-568" /></a></p>
<img src="http://feeds.feedburner.com/~r/onidev/~4/aQUD437oALo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2011/03/02/onimobi-is-selected-as-a-finalist-for-the-southern-oxfordshire-new-business-competition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2011/03/02/onimobi-is-selected-as-a-finalist-for-the-southern-oxfordshire-new-business-competition/</feedburner:origLink></item>
		<item>
		<title>A new year, a new look!</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/tfAhLET-NZA/</link>
		<comments>http://www.onidev.com/2011/01/06/a-new-year-a-new-look/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 13:22:32 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OniMobi]]></category>
		<category><![CDATA[Christmas]]></category>
		<category><![CDATA[New Year]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=559</guid>
		<description><![CDATA[Happy New Year from all of us at OniMobi! I hope you had a good break, whatever you may have been doing. It&#8217;s a brand new year and a perfect time for us to unveil our new look for OniMobi. We&#8217;ve redesigned our logo for both OniMobi and OniDev, and we&#8217;ve given our websites a [...]]]></description>
			<content:encoded><![CDATA[<p>Happy New Year from all of us at OniMobi! I hope you had a good break, whatever you may have been doing.</p>
<p>It&#8217;s a brand new year and a perfect time for us to unveil our new look for OniMobi. We&#8217;ve redesigned our logo for both OniMobi and OniDev, and we&#8217;ve given our websites a lick of polish to smooth things over. We hope you like it!</p>
<p>Last year was a busy and exciting time for us. We&#8217;ve had the pleasure of working with some great clients, building a wide range of fantastic apps &#8211; some of which are still to be released! In November Simon joined the team and we moved into our new office in Abingdon (near Oxford, UK), which has been heaps of fun.</p>
<p>Looking to the year ahead, we&#8217;ll continue to design &#038; create apps for our clients but we&#8217;ll also be doing a lot more of our own stuff in the months to come. We&#8217;ve been talking about our upcoming games for a while now but hopefully we&#8217;ll start to unveil the lid on some of them soon!</p>
<img src="http://feeds.feedburner.com/~r/onidev/~4/tfAhLET-NZA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2011/01/06/a-new-year-a-new-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2011/01/06/a-new-year-a-new-look/</feedburner:origLink></item>
		<item>
		<title>Our new office!</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/6g0AaHGC1vg/</link>
		<comments>http://www.onidev.com/2010/12/09/our-new-office/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 14:50:28 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Office Life]]></category>
		<category><![CDATA[OniMobi]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=546</guid>
		<description><![CDATA[We recently moved into a new office. We&#8217;re still settling in and have un-built furniture over the place, but it already feels a bit like home! This is where the magic happens! (Plus we got a little bit festive with our mini xmas tree!)]]></description>
			<content:encoded><![CDATA[<p>We recently moved into a new office. We&#8217;re still settling in and have un-built furniture over the place, but it already feels a bit like home!</p>
<p>This is where the magic happens! (Plus we got a little bit festive with our mini xmas tree!)</p>
<div style="float:left;"><a href="http://www.onidev.com/wp-content/uploads/2010/12/IMG_0475.jpg" rel="lightbox[546]"><img src="http://www.onidev.com/wp-content/uploads/2010/12/IMG_0475-150x150.jpg" alt="" title="Office Pic 1" width="150" height="150" class="alignnone size-thumbnail wp-image-547" /></a></div>
<div style="float:left; margin-left:5px;"><a href="http://www.onidev.com/wp-content/uploads/2010/12/IMG_0476.jpg" rel="lightbox[546]"><img src="http://www.onidev.com/wp-content/uploads/2010/12/IMG_0476-150x150.jpg" alt="" title="Office Pic 2" width="150" height="150" class="alignnone size-thumbnail wp-image-548" /></a></div>
<div style="float:left; margin-left:5px;"><a href="http://www.onidev.com/wp-content/uploads/2010/12/IMG_0477.jpg" rel="lightbox[546]"><img src="http://www.onidev.com/wp-content/uploads/2010/12/IMG_0477-150x150.jpg" alt="" title="Office Pic 3" width="150" height="150" class="alignnone size-thumbnail wp-image-549" /></a></div>
<div class="clear"></div>
<img src="http://feeds.feedburner.com/~r/onidev/~4/6g0AaHGC1vg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2010/12/09/our-new-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2010/12/09/our-new-office/</feedburner:origLink></item>
		<item>
		<title>First run of OniMobi mugs</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/05wpTXOFWsE/</link>
		<comments>http://www.onidev.com/2010/11/19/first-run-of-onimobi-mugs/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 12:25:13 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Office Life]]></category>
		<category><![CDATA[Mugs]]></category>
		<category><![CDATA[OniMobi]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=528</guid>
		<description><![CDATA[The first run of our OniMobi mugs arrived today! wohoo. Check them out below.]]></description>
			<content:encoded><![CDATA[<p>The first run of our OniMobi mugs arrived today! wohoo.</p>
<p>Check them out below.</p>
<div style="float:left;"><a href="http://www.onidev.com/wp-content/uploads/2010/11/150013_10150339900670160_832165159_16033224_4001502_n.jpg" rel="lightbox[528]"><img src="http://www.onidev.com/wp-content/uploads/2010/11/150013_10150339900670160_832165159_16033224_4001502_n-150x150.jpg" alt="" title="OniMobi Mugs 1" width="150" height="150" class="alignnone size-thumbnail wp-image-529" /></a></div>
<div style="float:left; margin-left:5px;"><a href="http://www.onidev.com/wp-content/uploads/2010/11/150086_10150339900370160_832165159_16033221_2381977_n.jpg" rel="lightbox[528]"><img src="http://www.onidev.com/wp-content/uploads/2010/11/150086_10150339900370160_832165159_16033221_2381977_n-150x150.jpg" alt="" title="OniMobi Mugs 2" width="150" height="150" class="alignnone size-thumbnail wp-image-530" /></a></div>
<div style="float:left; margin-left:5px;"><a href="http://www.onidev.com/wp-content/uploads/2010/11/154328_10150339900505160_832165159_16033223_2084667_n.jpg" rel="lightbox[528]"><img src="http://www.onidev.com/wp-content/uploads/2010/11/154328_10150339900505160_832165159_16033223_2084667_n-150x150.jpg" alt="" title="OniMobi Mugs 3" width="150" height="150" class="alignnone size-thumbnail wp-image-531" /></a></div>
<div class="clear"></div>
<img src="http://feeds.feedburner.com/~r/onidev/~4/05wpTXOFWsE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2010/11/19/first-run-of-onimobi-mugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2010/11/19/first-run-of-onimobi-mugs/</feedburner:origLink></item>
		<item>
		<title>Ruby on Rails with Apache2</title>
		<link>http://feedproxy.google.com/~r/onidev/~3/DKxjhGg5OGI/</link>
		<comments>http://www.onidev.com/2010/11/12/ruby-on-rails-with-apache2/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 10:31:41 +0000</pubDate>
		<dc:creator>Mitch</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.onidev.com/?p=481</guid>
		<description><![CDATA[Continuing on from our last post Redmine Project Management on Debian Lenny, here we will setup Ruby on Rails (and thus Redmine) to run through Apache2, using Passenger (aka mod_rails). This is a fairly brief step by step guide and assumes you are familiar with Debian, the command line, and tools like apt-get and ruby [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing on from our last post <a href="/2010/11/12/redmine-projec…n-debian-lenny/">Redmine Project Management on Debian Lenny</a>, here we will setup Ruby on Rails (and thus Redmine) to run through Apache2, using Passenger (aka mod_rails).</p>
<p><em>This is a fairly brief step by step guide and assumes you are familiar with Debian, the command line, and tools like apt-get and ruby gems.</em></p>
<div style="margin-top:10px;">&nbsp;</div>
<ol>
<li>Install passenger:<br />
<code>sudo gem install passenger</code></p>
<div>&nbsp;</div>
</li>
<li>Setup passenger in Apache. Run this command and follow the instructions:<br />
<code>sudo passenger-install-apache2-module</code></p>
<div>&nbsp;</div>
</li>
<li>When it asks you to edit the Apache config file, do it like so (using the contents given to you by the program):
<p>Create <strong>/etc/apache2/mods-available/passenger.load</strong> with the contents:<br />
<code>LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.14/ext/apache2/mod_passenger.so</code></p>
<p>Create <strong>/etc/apache2/mods-available/passenger.conf</strong> with the contents:<br />
<code>PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.14<br />
PassengerRuby /usr/bin/ruby1.8</code></p>
<p>Enable passenger module:<br />
<code>a2enmod passenger</code></p>
<p><strong>Note:</strong> Make sure you use the values provided by the program and do not simply copy &#038; paste what is here!</li>
<li>Edit the Virtual host file to something like this:<br />
<code>&lt;VirtualHost *&gt;<br />
ServerName redmine.mydomain.com<br />
DocumentRoot /var/redmine/1.0-stable/public<br />
RailsEnv production<br />
&lt;/VirtualHost&gt;</code></p>
<p><strong>Note:</strong> The document root cannot be a softlink, because the dispatch script of rails will change directory using “../”</li>
<li>Restart Apache and all should be good:<br />
<code>sudo /etc/init.d/apache2 restart</code></p>
<div>&nbsp;</div>
</li>
<li>Test by going to http://redmine.mydomain.com</li>
</ol>
<img src="http://feeds.feedburner.com/~r/onidev/~4/DKxjhGg5OGI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.onidev.com/2010/11/12/ruby-on-rails-with-apache2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.onidev.com/2010/11/12/ruby-on-rails-with-apache2/</feedburner:origLink></item>
	</channel>
</rss>

