<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for Playlouder dev blog</title>
	<atom:link href="http://blog.playlouder.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.playlouder.com</link>
	<description></description>
	<pubDate>Tue, 18 Nov 2008 09:29:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>Comment on Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs by matthew</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-5005</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Wed, 03 Sep 2008 11:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-5005</guid>
		<description>[quote comment=""]
Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success :)
[/quote]

Aha, yes spotted this the other day. This pretty much solves the problem, great work!

(For anyone following: http://github.com/oldmoe/mysqlplus/tree/master )</description>
		<content:encoded><![CDATA[<blockquote cite="http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-">
<p>Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success <img src='http://blog.playlouder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</blockquote>
<p>Aha, yes spotted this the other day. This pretty much solves the problem, great work!</p>
<p>(For anyone following: <a href="http://github.com/oldmoe/mysqlplus/tree/master" rel="nofollow">http://github.com/oldmoe/mysqlplus/tree/master</a> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Job ad: Music service developer by matthew</title>
		<link>http://blog.playlouder.com/2008/08/14/job-ad-music-service-developer/#comment-5004</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Wed, 03 Sep 2008 11:07:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=95#comment-5004</guid>
		<description>Roger:

[quote comment="5002"]tele-working?[/quote]

It's quite a core role in small company team, so while a mix of working from home and from the office might work, a full-time telecommute (esp from a different time-zone) probably wouldn't at this stage.

There is a good chance we'll have contract work in future that could be done remotely though - so feel free to send us a CV if there are aspects of our work that appeal.</description>
		<content:encoded><![CDATA[<p>Roger:</p>
<blockquote cite="http://blog.playlouder.com/2008/08/14/job-ad-music-service-developer/#comment-5002"><p>
tele-working?</p>
</blockquote>
<p>It&#8217;s quite a core role in small company team, so while a mix of working from home and from the office might work, a full-time telecommute (esp from a different time-zone) probably wouldn&#8217;t at this stage.</p>
<p>There is a good chance we&#8217;ll have contract work in future that could be done remotely though - so feel free to send us a CV if there are aspects of our work that appeal.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs by rogerdpack</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-5003</link>
		<dc:creator>rogerdpack</dc:creator>
		<pubDate>Tue, 02 Sep 2008 19:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-5003</guid>
		<description>Fascinating.  I had no idea the ruby mysql drivers were non-blocking.  Nice!

Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success :)

-=R</description>
		<content:encoded><![CDATA[<p>Fascinating.  I had no idea the ruby mysql drivers were non-blocking.  Nice!</p>
<p>Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success <img src='http://blog.playlouder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>-=R</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Job ad: Music service developer by rogerdpack</title>
		<link>http://blog.playlouder.com/2008/08/14/job-ad-music-service-developer/#comment-5002</link>
		<dc:creator>rogerdpack</dc:creator>
		<pubDate>Tue, 02 Sep 2008 19:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=95#comment-5002</guid>
		<description>tele-working?</description>
		<content:encoded><![CDATA[<p>tele-working?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs by Sérgio Gomes</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-3814</link>
		<dc:creator>Sérgio Gomes</dc:creator>
		<pubDate>Thu, 22 May 2008 12:03:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-3814</guid>
		<description>Hi matthew,

You're absolutely right! I just gave it a try and it nicely ran everything in parallel :)

My queries are simple (I'm not even using Rails), so this is definitely the best option.

Thanks!
Sérgio</description>
		<content:encoded><![CDATA[<p>Hi matthew,</p>
<p>You&#8217;re absolutely right! I just gave it a try and it nicely ran everything in parallel <img src='http://blog.playlouder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My queries are simple (I&#8217;m not even using Rails), so this is definitely the best option.</p>
<p>Thanks!<br />
Sérgio</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs by matthew</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-3813</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Thu, 22 May 2008 11:57:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-3813</guid>
		<description>Sergio,

If scalability/concurrency matters more than speed you could give the native Ruby MySQL API a try. I believe this is non-blocking on Ruby threads as it uses the native ruby libraries for its IO.

To do this you have to do:

  require 'active_record/vendor/mysql'
  require 'activerecord'

to stop activerecord loading the C-extension-based mysql gem.

This isn't ideal though, the native ruby implementation is a fair bit slower and doesn't seem to be recommended for production use. It's worked ok for us although haven't really tested it under high load yet.</description>
		<content:encoded><![CDATA[<p>Sergio,</p>
<p>If scalability/concurrency matters more than speed you could give the native Ruby MySQL API a try. I believe this is non-blocking on Ruby threads as it uses the native ruby libraries for its IO.</p>
<p>To do this you have to do:</p>
<p>  require &#8216;active_record/vendor/mysql&#8217;<br />
  require &#8216;activerecord&#8217;</p>
<p>to stop activerecord loading the C-extension-based mysql gem.</p>
<p>This isn&#8217;t ideal though, the native ruby implementation is a fair bit slower and doesn&#8217;t seem to be recommended for production use. It&#8217;s worked ok for us although haven&#8217;t really tested it under high load yet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs by Sérgio Gomes</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-3812</link>
		<dc:creator>Sérgio Gomes</dc:creator>
		<pubDate>Thu, 22 May 2008 11:47:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-3812</guid>
		<description>I'm running into exactly that issue; I need to connect to several databases and query them simultaneously, and I guess the only way I could do that right now would be to have a separate *process* for each one and use IPC. Not pretty or simple...

If you do come across any solution, even if just experimental, please let me know; otherwise I'll have to implement the process option or code a python script just for that.

Cheers,
Sérgio</description>
		<content:encoded><![CDATA[<p>I&#8217;m running into exactly that issue; I need to connect to several databases and query them simultaneously, and I guess the only way I could do that right now would be to have a separate *process* for each one and use IPC. Not pretty or simple&#8230;</p>
<p>If you do come across any solution, even if just experimental, please let me know; otherwise I&#8217;ll have to implement the process option or code a python script just for that.</p>
<p>Cheers,<br />
Sérgio</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An interesting Ruby hash semantics gotcha by matthew</title>
		<link>http://blog.playlouder.com/2008/05/07/an-interesting-ruby-hash-semantics-gotcha/#comment-3447</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Sat, 10 May 2008 12:15:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=89#comment-3447</guid>
		<description>[quote comment=""]
I thought {} was synonymous with Hash.new

Therefore

{{} =&#62; true}[{}]

generates 2 different hashes with different object_ids and so will return nil
[/quote]

It is Hash.new yes - {{} =&gt; true} is a Hash which has one key/value pair - the key is {} (an empty Hash) and the value true.

[] is then the lookup method for that Hash - so we're looking up the value corresponding to the key {}. We expect to get true, but it doesn't find the value, due to {}.hash not being fixed for different instances of an empty hash.

h = Hash.new
empty_hash_as_key = {}
another_empty_hash = {}
h[empty_hash_as_key] = true

h[another_empty_hash]
=&gt; nil

-Matt</description>
		<content:encoded><![CDATA[<blockquote cite="http://blog.playlouder.com/2008/05/07/an-interesting-ruby-hash-semantics-gotcha/#comment-">
<p>I thought {} was synonymous with Hash.new</p>
<p>Therefore</p>
<p>{{} =&gt; true}[{}]</p>
<p>generates 2 different hashes with different object_ids and so will return nil
</p>
</blockquote>
<p>It is Hash.new yes - {{} => true} is a Hash which has one key/value pair - the key is {} (an empty Hash) and the value true.</p>
<p>[] is then the lookup method for that Hash - so we&#8217;re looking up the value corresponding to the key {}. We expect to get true, but it doesn&#8217;t find the value, due to {}.hash not being fixed for different instances of an empty hash.</p>
<p>h = Hash.new<br />
empty_hash_as_key = {}<br />
another_empty_hash = {}<br />
h[empty_hash_as_key] = true</p>
<p>h[another_empty_hash]<br />
=> nil</p>
<p>-Matt</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An interesting Ruby hash semantics gotcha by Anthony Green</title>
		<link>http://blog.playlouder.com/2008/05/07/an-interesting-ruby-hash-semantics-gotcha/#comment-3379</link>
		<dc:creator>Anthony Green</dc:creator>
		<pubDate>Thu, 08 May 2008 07:48:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=89#comment-3379</guid>
		<description>I love Ruby code examples. I like the whooshing sound they make as they fly by over my head. You lost me at Object#hash. 

From my naive non-software enginneering perspective the first three code examples behave exactly as I would expect:

I thought {} was synonymous with Hash.new

Therefore

{{} =&#62; true}[{}]

generates 2 different hashes with different object_ids and so will return nil

and its the same with

{{}=&#62;true, {}=&#62;true}

the two hashes have two different object_ids so are different keys

where as

 {} == {}

compares just the contents of both hashes and returns true.

There is no === operator for Hashes which I would expect to assert that both objects have the same object_id and the same contents.</description>
		<content:encoded><![CDATA[<p>I love Ruby code examples. I like the whooshing sound they make as they fly by over my head. You lost me at Object#hash. </p>
<p>From my naive non-software enginneering perspective the first three code examples behave exactly as I would expect:</p>
<p>I thought {} was synonymous with Hash.new</p>
<p>Therefore</p>
<p>{{} =&gt; true}[{}]</p>
<p>generates 2 different hashes with different object_ids and so will return nil</p>
<p>and its the same with</p>
<p>{{}=&gt;true, {}=&gt;true}</p>
<p>the two hashes have two different object_ids so are different keys</p>
<p>where as</p>
<p> {} == {}</p>
<p>compares just the contents of both hashes and returns true.</p>
<p>There is no === operator for Hashes which I would expect to assert that both objects have the same object_id and the same contents.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Migrating from Trac to Fogbugz by matthew</title>
		<link>http://blog.playlouder.com/2007/06/19/migrating-from-trac-to-fogbugz/#comment-2161</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Tue, 19 Feb 2008 15:37:15 +0000</pubDate>
		<guid isPermaLink="false">http://devblog.playlouder.com/index.php/2007/06/19/migrating-from-trac-to-fogbugz/#comment-2161</guid>
		<description>Ah neat - might give that a try. Cheers!</description>
		<content:encoded><![CDATA[<p>Ah neat - might give that a try. Cheers!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
