<?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/"
	>

<channel>
	<title>Colin Charles Agenda &#187; Ruby</title>
	<atom:link href="http://www.bytebot.net/blog/archives/category/languages/ruby/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bytebot.net/blog</link>
	<description>A permanent record for what's interesting today - this is my live journal</description>
	<lastBuildDate>Sun, 07 Mar 2010 15:59:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://www.bytebot.net/blog/?pushpress=hub'/>
<cloud domain='www.bytebot.net' port='80' path='/blog/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Rails&#8230; Fails&#8230; (sticker)</title>
		<link>http://www.bytebot.net/blog/archives/2008/09/23/rails-fails-sticker</link>
		<comments>http://www.bytebot.net/blog/archives/2008/09/23/rails-fails-sticker#comments</comments>
		<pubDate>Tue, 23 Sep 2008 12:29:36 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[fails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/?p=1064</guid>
		<description><![CDATA[I had first seen the interesting Rails logo in a talk by Terry Chay, while I was at OSCON, a few months ago.



Now, my esteemed colleague Jay Pipes has it on his laptop. It seems they&#8217;re making stickers, even.
Otherwise, my next task is to revamp our Ruby content. Currently, it looks a little sad. It [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2008/03/31/hitchhackers-guide-to-the-mysql-conference-rubyruby-on-rails-edition' rel='bookmark' title='Permanent Link: Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; Ruby/Ruby on Rails Edition'>Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; Ruby/Ruby on Rails Edition</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/07/19/fedora-project-stickers' rel='bookmark' title='Permanent Link: Fedora Project stickers?'>Fedora Project stickers?</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/10/29/conferences-and-co-presenters' rel='bookmark' title='Permanent Link: Conferences and co-presenters'>Conferences and co-presenters</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I had first seen the <i>interesting</i> Rails logo in a talk by <a href="http://terrychay.com/blog/">Terry Chay</a>, while I was at OSCON, a few months ago.</p>
<p><center><br />
<a href="http://www.flickr.com/photos/byte/2881350425/" title="Jay Pipes by byte, on Flickr"><img src="http://farm4.static.flickr.com/3071/2881350425_a104219b97_m.jpg" width="240" height="180" alt="Jay Pipes" /></a><br />
</center></p>
<p>Now, my esteemed colleague <a href="http://jpipes.com/">Jay Pipes</a> has it on his laptop. It seems they&#8217;re making stickers, even.</p>
<p>Otherwise, my next task is to revamp our <a href="http://forge.mysql.com/wiki/Category:Ruby">Ruby</a> content. Currently, it looks a little sad. It has to at least be as good as <a href="http://dev.mysql.com/usingmysql/ruby/">Using MySQL With Ruby</a>, no?</p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2008/03/31/hitchhackers-guide-to-the-mysql-conference-rubyruby-on-rails-edition' rel='bookmark' title='Permanent Link: Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; Ruby/Ruby on Rails Edition'>Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; Ruby/Ruby on Rails Edition</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/07/19/fedora-project-stickers' rel='bookmark' title='Permanent Link: Fedora Project stickers?'>Fedora Project stickers?</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/10/29/conferences-and-co-presenters' rel='bookmark' title='Permanent Link: Conferences and co-presenters'>Conferences and co-presenters</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2008/09/23/rails-fails-sticker/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Selenium at the MyOSS meetup</title>
		<link>http://www.bytebot.net/blog/archives/2008/04/04/selenium-at-the-myoss-meetup</link>
		<comments>http://www.bytebot.net/blog/archives/2008/04/04/selenium-at-the-myoss-meetup#comments</comments>
		<pubDate>Fri, 04 Apr 2008 10:39:06 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2008/04/04/selenium-at-the-myoss-meetup</guid>
		<description><![CDATA[I was at yesterday&#8217;s MyOSS meetup, and the topic was on the Selenium Web Testing Framework, presented by Yuen-Chi Lian. Here are some notes, and hopefully the slides and code make it up to the website soon.
- Java guy, who is a MyJUG guy- Employed by CustomWare Asia Pacific, and is experienced in JIRA, Confluence, [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/04/21/selenium-for-your-web-application-testing' rel='bookmark' title='Permanent Link: Selenium for your web application testing'>Selenium for your web application testing</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2005/02/26/myoss-informal-meetup' rel='bookmark' title='Permanent Link: MYOSS informal meetup'>MYOSS informal meetup</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/17/second-annual-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: Second Annual Silicon Valley Ruby Conference'>Second Annual Silicon Valley Ruby Conference</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I was at yesterday&#8217;s MyOSS meetup, and the topic was on the <a href="http://foss.org.my/projects/meetups/april-2008-meetup/myoss-april-2008-meetup-selenium-web-testing">Selenium Web Testing Framework</a>, presented by Yuen-Chi Lian. Here are some notes, and hopefully the slides and code make it up to the website soon.</p>
<p>- Java guy, who is a MyJUG guy<br />- Employed by CustomWare Asia Pacific, and is experienced in JIRA, Confluence, and Mule (are they an Atlassian reseller?)<br />- He started web development using PHP. Didn&#8217;t do unit tests then. As he started to do web development again, 2 years ago, he found that JIRA guys used Selenium to test their web UI. He started Selenium, last week :)<br />- A Common Web Development flow: analysis, design, development, then its testing&#8230; Unit test, integration tests, and acceptance tests using Selenium<br />- for web UI testing, Selenium helps you invoke a JavaScript method, rather than clicking a button to trigger it&#8230; These tests can be recorded and scripted. You can do it in a simulated browser environment, or use a real user agent<br />- He hasn&#8217;t tested Sahi yet, but he thinks its better than Selenium, based on the blogs that he&#8217;s read<br />- Selenium can be integrated with Continuous Integration (CI)<br />- Lots of examples using Java and Ruby<br />- Imagine doing FOSS development, on the Windows platform. It actually looks scary&#8230;</p>
<p>Overall, a rather basic talk, with a highly motivated/dedicated speaker. This being my second talk that I&#8217;ve attended on Selenium (<a href="http://www.bytebot.net/blog/archives/2007/04/21/selenium-for-your-web-application-testing">last year at the Ruby Conf</a>), and now, its pretty cemented in my head that I&#8217;ve got to make use of it, the next time I write a web-front end. Oh, it has great Firefox integration, with the Web Developer Tools plugin&#8230;</p>
<p>After that, it was off to Pelita for dinner. This ended up becoming supper, and there was lots of chatter&#8230; Drive home was eventful &#8211; on the way to Puchong, to send KageSenshi back, got pulled over twice &#8211; once for a license inspection, once to find out where we were headed. Odd. This has never happened before.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/selenium" rel="tag">selenium</a>, <a class="performancingtags" href="http://technorati.com/tag/web%20app%20testing" rel="tag">web app testing</a>, <a class="performancingtags" href="http://technorati.com/tag/web%20qa" rel="tag">web qa</a>, <a class="performancingtags" href="http://technorati.com/tag/qa" rel="tag">qa</a>, <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a>, <a class="performancingtags" href="http://technorati.com/tag/rails" rel="tag">rails</a>, <a class="performancingtags" href="http://technorati.com/tag/java" rel="tag">java</a>, <a class="performancingtags" href="http://technorati.com/tag/myoss" rel="tag">myoss</a>, <a class="performancingtags" href="http://technorati.com/tag/meetup" rel="tag">meetup</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/04/21/selenium-for-your-web-application-testing' rel='bookmark' title='Permanent Link: Selenium for your web application testing'>Selenium for your web application testing</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2005/02/26/myoss-informal-meetup' rel='bookmark' title='Permanent Link: MYOSS informal meetup'>MYOSS informal meetup</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/17/second-annual-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: Second Annual Silicon Valley Ruby Conference'>Second Annual Silicon Valley Ruby Conference</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2008/04/04/selenium-at-the-myoss-meetup/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; Ruby/Ruby on Rails Edition</title>
		<link>http://www.bytebot.net/blog/archives/2008/03/31/hitchhackers-guide-to-the-mysql-conference-rubyruby-on-rails-edition</link>
		<comments>http://www.bytebot.net/blog/archives/2008/03/31/hitchhackers-guide-to-the-mysql-conference-rubyruby-on-rails-edition#comments</comments>
		<pubDate>Mon, 31 Mar 2008 07:49:39 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2008/03/31/hitchhackers-guide-to-the-mysql-conference-rubyruby-on-rails-edition</guid>
		<description><![CDATA[The Hitchhacker&#8217;s Guide to the MySQL Conference
Ruby/Ruby on Rails Developer&#8217;s Edition
Following on from the excellent Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; PHP Edition by Jay Pipes, I&#8217;m doing one for the Ruby and Ruby on Rails developer in you. If you haven&#8217;t registered yet, remember, I can provide you a 20% discount code, so [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2006/04/04/sdforums-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: SDForum Silicon Valley Ruby Conference'>SDForum Silicon Valley Ruby Conference</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/09/23/rails-fails-sticker' rel='bookmark' title='Permanent Link: Rails&#8230; Fails&#8230; (sticker)'>Rails&#8230; Fails&#8230; (sticker)</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/17/second-annual-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: Second Annual Silicon Valley Ruby Conference'>Second Annual Silicon Valley Ruby Conference</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>The Hitchhacker&#8217;s Guide to the MySQL Conference</strong><br />
<strong>Ruby/Ruby on Rails Developer&#8217;s Edition</strong><br />
Following on from the excellent <a href="http://www.jpipes.com/index.php?/archives/222-Hitchhackers-Guide-to-the-MySQL-Conference-PHP-Edition.html">Hitchhacker&#8217;s Guide to the MySQL Conference &#8211; PHP Edition</a> by <a href="http://www.jpipes.com/">Jay Pipes</a>, I&#8217;m doing one for the Ruby and Ruby on Rails developer in you. If you haven&#8217;t <a href="https://en.oreilly.com/mysql2008/public/register">registered</a> yet, remember, I can provide you a <strong>20% discount code</strong>, so make sure you get it from me, via emailing me. Tutorials, are selling out, <em><strong>fast</strong></em>.</p>
<p><strong>The Keynotes</strong><br />
<a href="http://en.oreilly.com/mysql2008/public/schedule/detail/2552">A Head in the Cloud &#8211; The Power of Infrastructure as a Service</a> is a keynote delivered by Werner Vogels, CTO of Amazon.com. Why would the typical Rubyist be interested in this? Clearly because of the fact that many sites, end up using Amazon Web Services to scale. An example, being Twitter, whom store a lot of data on AWS, and we all know they&#8217;re written using Rails.</p>
<p>While the other keynotes aren&#8217;t Rails specific, they are a great start to the day, and interesting announcements tend to be made before or after a keynote, so wake up early! Yes, even if you were at a BoF till 2am in the morning&#8230;</p>
<p><strong>Tutorial Day (Monday, 14 April 2008) &#8211; <a href="http://en.oreilly.com/mysql2008/public/schedule/grid?date=2008-04-14">schedule</a></strong><br />
My recommendations would include going to the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/2145">MySQL Replication Tutorial</a> by Lars Thalmann and Mats Kindahl, in the morning, as this is a great way to ensure your Rails application scales. This can be followed by either <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1627">Memcached and MySQL: Everything You Need to Know</a> by Brian Aker, and Alan Kasindorf (dormando, if you&#8217;re on IRC) or <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1640">Real World Web: Performance &#038; Scalability MySQL Edition</a> by Ask Hansen, but I&#8217;m told that its completely sold out! If you&#8217;re interested in something to spend the entire day in, I can highly recommend either Giuseppe Maxia and Jan Kneschke&#8217;s talk on <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/478">MySQL Proxy: The Complete Tutorial</a>, or head over to Stewart Smith&#8217;s talk on <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/425">MySQL Cluster Tutorial</a>. Keep in mind that Stewart&#8217;s tutorial is going to be quite hands on.</p>
<p><strong>Sessions (Tuesday, 15 April 2008) &#8211; <a href="http://en.oreilly.com/mysql2008/public/schedule/grid?date=2008-04-15">schedule</a></strong><br />
After the keynotes (remember to be there!), I would personally recommend that you attend <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/625">Lessons Learned in Building a Highly Scalable MySQL Database</a> presented by the folk, behind <a href="http://www.thehive.com/">The Hive</a>. Alternatively, visit Mike Zinner&#8217;s talk about <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/344">MySQL Workbench: The Ultimate Database Design Tool for Developers</a> &#8211; the ease of creating and designing databases, makes it feel very &#8220;Rails-like&#8221;.</p>
<p>At 11:55am, your choices are wide-varied, and choosing one talk, is going to be hard. Consider paying a visit to <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/334">Practical MySQL for Web Applications</a> by Domas Mituzas. Not only is he a support engineer at MySQL, he also engineers the back-end for Wikipedia; sure, they&#8217;re not a Rails-based application, but I can assure you, the commonality between web applications will ensure this is an interesting talk. If your application makes use of full-text search, consider going to <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/63">Full-Text Search with MySQL 5.1: New Features &#038; How To</a>, by Alexander Rubin. If you&#8217;re writing a new application, it probably makes sense to start using 5.1. <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1099">Replication for Dummies</a> by Pat Galbraith should also be an interesting talk &#8211; if you missed the tutorial the day before, definitely go for this; if you attended the tutorial before, you&#8217;ll be re-enforcing your knowledge, and might make use of good Q&#038;A time as well.</p>
<p>After the hearty lunch, a must not miss would be <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/631">Big Bird (Scaling Twitter)</a> by Blaine Cook. Popular, used by many, micro-blogging tool, they&#8217;ve gone through improving how the application performs, and scaling it to heights, much beyond simple ActiveRecord usage. Be there.</p>
<p>At 3:05pm, Monty Taylor&#8217;s <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/493">High Availability Landscape of MySQL</a> should be the one you&#8217;re at. Monty is very conversant with many a language as well, as part of his work on the NDB connectors, but here, you&#8217;ll be learning about replication, DRBD, and possibly Cluster/NDB. <em><strong>Anyone know of a Rails application using MySQL Cluster/NDB?</strong></em></p>
<p>At 4:25pm, definitely go to <span class="description">the talk by Jeremy McAnally, titled: <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/529">Talk = Ruby + MySql.new(bie): An Introduction to Using MySQL with Ruby</a>. Jeremy&#8217;s the author of books and articles on Ruby, Rails, and MySQL, and granted the talk is targeted at beginners, no matter what level you&#8217;re at, you will probably learn something new.</span></p>
<p>By 5:15pm, your energy levels might slowly be sapped, but persevere, and you&#8217;ll be rewarded. While none of the talks are Ruby/Rails specific, I&#8217;d recommend attending either <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/438">Backup and Recovery Basics</a> by Kai Voigt (trainer at MySQL, will be an interesting talk as you will have to backup, and recover your database at some stage) or <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/468">Services Oriented Architecture with PHP and MySQL</a> by Joe Stump (learn from Digg, and apply your knowledge to Ruby/Rails).</p>
<p><strong>Sessions (Wednesday, 16 April 2008) &#8211; <a href="http://en.oreilly.com/mysql2008/public/schedule/grid?date=2008-04-16">schedule</a></strong><br />
Begin the morning having a hearty breakfast, and moving on to the keynotes. After which, if you&#8217;re into GIS and spatial extensions, the talk you must be at is the one offered by Seth Fitzsimmons, from Yahoo!, titled <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/948">Using MySQL&#8217;s Spatial Extensions with Rails</a>. If however you aren&#8217;t a GIS junkie, consider either Giuseppe Maxia&#8217;s talk on <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/311">MySQL Sandbox</a>, or Roland Bouman&#8217;s talk on <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/129">Information Schema and its applications</a>.</p>
<p>At 11:55am, I can recommend either: <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/3284">Falcon from the Beginning</a> by Jim Starkey &#038; Ann Harrison, or Tom Daly&#8217;s talk on <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/2590">Web Workloads for Comparing, Testing and Tuning MySQL Performance , SPECjAppServer2004, EAStress and Faban</a>. Its definitely a tough sell, with the<a href="http://en.oreilly.com/mysql2008/public/schedule/detail/133"> Applied Partitioning and Scaling Your Database System</a> by Phil Hildebrand, and if you&#8217;re after contributing to MySQL, and being part of our community, don&#8217;t hesitate to come see me talk about <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/642">Paying It Forward: Harnessing the MySQL Contributory Resources</a>.</p>
<p>After lunch, at 2:00pm, if you&#8217;re into database normalization, consider <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/68">How to be Normal, a Guide for Developers</a> by Mike Hillyer. However, the two talks I&#8217;d personally be at (if only I can split myself) would be Monty&#8217;s talk (the father of MySQL!), titled <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/521">Architecture of Maria: A New Storage Engine with a Transactional Design</a>  and Jay &#038; Tobias&#8217;s talk, titled <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/477">MySQL Performance Under a Microscope: The Tobias and Jay Show</a>. Did I mention, that nowadays, it only make sense to write code and web applications with great character set support, and Domas Mituzas will be giving you an interesting session on <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/568">Practical Character Sets</a>. With so many conflicting talks at 2pm, all I can hope is that there are some excellent blog entries, and folk end up taking videos! (And no, I checked &#8211; no way to split myself, 4-ways, unlike today&#8217;s modern processors).</p>
<p>At 3:05pm, take a break, and enjoy yourself at <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/849">Astronomy, Petabytes and MySQL</a> by Kian-Tat Lim. If you&#8217;re still fuelled, go take a gander at Markus &#038; Dups talk, titled <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/586">Integration of Frameworks for Rapid Web Development</a> (sure, it might be PHP-centric, but you can learn). Once thing Rails developers will want to know though, is how to make sure you&#8217;re using the query cache properly &#8211; Baron Schwartz will tell you in <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1763">The MySQL Query Cache</a>.</p>
<p>At 4:25pm, I can highly recommend going to <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/872">Grazr: Lessons Learned Building a Web 2.0 Application Using MySQL</a> by Patrick Galbraith and Michael Kowalchik, because even if you don&#8217;t find much Rails-centric content, the lessons learned and what worked/didn&#8217;t, will be useful to all. However, if you&#8217;re interested in storage engines, where Falcon is really the &#8220;Web 2.0 enhanced&#8221; storage engine for MySQL, consider <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/3285">Falcon for InnoDB users</a> by Kevin Lewis and Ann Harrison.</p>
<p>At 5:15pm, its a no-brainer that you should be at <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/531">ActiveRecord Under the Microscope</a> by Jeremy McAnally. There are times to use it, and there are times to avoid it &#8211; Jeremy will tell you when, in general.</p>
<p><strong>Sessions (Thursday, 17 April 2008) &#8211; <a href="http://en.oreilly.com/mysql2008/public/schedule/grid?date=2008-04-17">schedule</a></strong><br />
After the fun from last night (quiz show, et al), make sure you&#8217;re at the keynotes yet again&#8230;</p>
<p>At 10:50am, I&#8217;m sure the realisation that this is the last day of this great conference is going to hit. Never fear, you better savour it. Assuming you&#8217;re deploying your application on software made by our new corporate overlords, consider visiting Frank Mash&#8217;s talk, titled: <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/617">Optimizing MySQL and InnoDB on Solaris 10 for World&#8217;s Largest Photo Blogging Community</a>. That&#8217;s Fotolog for what it&#8217;s worth. There are a whole bunch of scaling related talks that are sure to be interesting, but let&#8217;s try to focus!</p>
<p>At 11:55am, <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/1193">DTrace and MySQL</a> by Ben Rockwood from Joyent, might be interesting to ensure you get a performant database. However, seeing that the hooks themselves aren&#8217;t mainstream (yet), consider<br />
Sheeri Kritzer Cabral&#8217;s talk titled: <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/981">Database Security Using White-Hat Google Hacking</a> or if you&#8217;re wondering what Google does, visit Mark Callaghan, and listen to him speak about <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/66">Helping InnoDB Scale on Servers with Many CPU Cores and Disks</a>.</p>
<p>At 2:00pm, Ronald Bradford will share the <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/283">Top 20 Database Design Tips Every Architect Needs to Know</a>, and it would be my definite pick.</p>
<p>At 2:50pm, the last session of this great conference before the closing keynote, I&#8217;ll recommend <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/3287">High Availability MySQL with DRBD and Heartbeat: MTV Japan Mobile Services</a> by Patrick Bolduan (whom I met in Japan last year, great guy, and the talk should be real interesting). While centred around PHP, Arjen Lentz should impart general knowledge of what a deadly sin is in general, if you weren&#8217;t using ActiveRecord and you were querying things the wrong way from your Rails application, so consider visiting <a href="http://en.oreilly.com/mysql2008/public/schedule/detail/355">Deadly Sins Using MySQL &#038; PHP</a> by Arjen Lentz and Jonathon Coombes.</p>
<p>And that my friends, is me signing off, and telling you what a jam-packed week this is going to be.</p>
<p><strong>Register Now!</strong><br />
There are a ton of options for the discerning Ruby, or Ruby on Rails developer. If you&#8217;ve not <a href="https://en.oreilly.com/mysql2008/public/register">registered</a> yet, please do so now! If you&#8217;re not averse to paying full-price for items, I (and any other speaker) have a <strong>20% discount code</strong>, so drop me an email at colin AT mysql DOT com.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/mysql" class="performancingtags" rel="tag">mysql</a>, <a href="http://technorati.com/tag/rails" class="performancingtags" rel="tag">rails</a>, <a href="http://technorati.com/tag/ruby%20on%20rails" class="performancingtags" rel="tag">ruby on rails</a>, <a href="http://technorati.com/tag/ruby" class="performancingtags" rel="tag">ruby</a>, <a href="http://technorati.com/tag/mysqluc" class="performancingtags" rel="tag">mysqluc</a>, <a href="http://technorati.com/tag/mysqluc2008" class="performancingtags" rel="tag">mysqluc2008</a>, <a href="http://technorati.com/tag/mysqluc08" class="performancingtags" rel="tag">mysqluc08</a>, <a href="http://technorati.com/tag/santa%20clara" class="performancingtags" rel="tag">santa clara</a>, <a href="http://technorati.com/tag/mysql%20conference%20&amp;%20expo" class="performancingtags" rel="tag">mysql conference &#038; expo</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2006/04/04/sdforums-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: SDForum Silicon Valley Ruby Conference'>SDForum Silicon Valley Ruby Conference</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/09/23/rails-fails-sticker' rel='bookmark' title='Permanent Link: Rails&#8230; Fails&#8230; (sticker)'>Rails&#8230; Fails&#8230; (sticker)</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/17/second-annual-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: Second Annual Silicon Valley Ruby Conference'>Second Annual Silicon Valley Ruby Conference</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2008/03/31/hitchhackers-guide-to-the-mysql-conference-rubyruby-on-rails-edition/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ruby Gems, Mono System.Windows.Forms on Ubuntu</title>
		<link>http://www.bytebot.net/blog/archives/2007/08/10/ruby-gems-mono-systemwindowsforms-on-ubuntu</link>
		<comments>http://www.bytebot.net/blog/archives/2007/08/10/ruby-gems-mono-systemwindowsforms-on-ubuntu#comments</comments>
		<pubDate>Fri, 10 Aug 2007 16:04:24 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[Mono/.NET]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/08/10/ruby-gems-mono-systemwindowsforms-on-ubuntu</guid>
		<description><![CDATA[I&#8217;ve recently started doing more development locally on my Ubuntu (Feisty Fawn) laptop (as opposed to being logged in via ssh to various machines, generally running Fedora), and have noticed some quick snags.
Ruby GemsThey&#8217;re currently installed in /var/lib/gems/1.8 which is not in your PATH. So if for example, you use cheat, you&#8217;re not going to [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/11/27/workbench-beta-adventure-on-linux-with-monowine' rel='bookmark' title='Permanent Link: Workbench beta adventure on Linux with Mono/WINE'>Workbench beta adventure on Linux with Mono/WINE</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/04/13/miguel-de-icaza-from-mono-on-moonlight' rel='bookmark' title='Permanent Link: Miguel de Icaza from Mono on Moonlight'>Miguel de Icaza from Mono on Moonlight</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/making-breaking-web-services-with-ruby' rel='bookmark' title='Permanent Link: Making &#038; Breaking Web Services (with Ruby)'>Making &#038; Breaking Web Services (with Ruby)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently started doing more development locally on my Ubuntu (Feisty Fawn) laptop (as opposed to being logged in via ssh to various machines, generally running Fedora), and have noticed some quick snags.</p>
<p><b>Ruby Gems</b><br />They&#8217;re currently installed in <tt>/var/lib/gems/1.8</tt> which is not in your PATH. So if for example, you use cheat, you&#8217;re not going to find it. Fix it via adding <tt>/var/lib/gems/1.8/bin</tt> to your PATH (my .bashrc has it looking such as: <tt>PATH=$PATH:$HOME/bin:/var/lib/gems/1.8/bin</tt>)</p>
<p><b>Mono, and </b><span class="entry-title entry-content"><b>System.Windows.Forms</b><br />I have no problems with Mono and .NET related applications, normally. I run Tomboy (which I like, a lot), I can fire up f-spot, and when I need to Beagle runs fine too. But of late, I&#8217;ve had to run an application that required System.Windows.Forms, aka <a href="http://www.mono-project.com/WinForms">WinForms</a>. Little did I know I&#8217;d need to install the winforms stuff, so a <tt>sudo apt-get install libmono-winforms*</tt> fixed this for me.</p>
<p>This still hasn&#8217;t made my required application run properly, but I&#8217;m now a step closer to finding out compatibility with Windows-based .NET applications and Mono. All thanks to the useful <a href="http://www.mono-project.com/MoMA">Mono Migration Analyzer</a> (MoMA). Hat tip to <a href="http://ditesh.gathani.org/blog/">Ditesh</a> for pointing me to MoMA.<br /></span></p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/gems" rel="tag">gems</a>, <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a>, <a class="performancingtags" href="http://technorati.com/tag/path" rel="tag">path</a>, <a class="performancingtags" href="http://technorati.com/tag/mono" rel="tag">mono</a>, <a class="performancingtags" href="http://technorati.com/tag/winforms" rel="tag">winforms</a>, <a class="performancingtags" href="http://technorati.com/tag/system.windows.forms" rel="tag">system.windows.forms</a>, <a class="performancingtags" href="http://technorati.com/tag/moma" rel="tag">moma</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/11/27/workbench-beta-adventure-on-linux-with-monowine' rel='bookmark' title='Permanent Link: Workbench beta adventure on Linux with Mono/WINE'>Workbench beta adventure on Linux with Mono/WINE</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/04/13/miguel-de-icaza-from-mono-on-moonlight' rel='bookmark' title='Permanent Link: Miguel de Icaza from Mono on Moonlight'>Miguel de Icaza from Mono on Moonlight</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/making-breaking-web-services-with-ruby' rel='bookmark' title='Permanent Link: Making &#038; Breaking Web Services (with Ruby)'>Making &#038; Breaking Web Services (with Ruby)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/08/10/ruby-gems-mono-systemwindowsforms-on-ubuntu/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Pimping my friends: an ODF e-Note and haze.net</title>
		<link>http://www.bytebot.net/blog/archives/2007/08/02/pimping-my-friends-an-odf-e-note-and-hazenet</link>
		<comments>http://www.bytebot.net/blog/archives/2007/08/02/pimping-my-friends-an-odf-e-note-and-hazenet#comments</comments>
		<pubDate>Thu, 02 Aug 2007 08:22:59 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[FLOSSAdvocacy]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/08/02/pimping-my-friends-an-odf-e-note-and-hazenet</guid>
		<description><![CDATA[A couple of my good friends have had some recent achievements that I clearly should help them blow their trumpets for.
First up, we have Ditesh, who&#8217;s an active proponent of ODF, have a little e-Note published on Electronic Document Standards. I got to read it back when it was in an ODF document (*grin*), and [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2004/07/24/user-guide-to-using-the-linux-desktop' rel='bookmark' title='Permanent Link: User guide to using the Linux Desktop'>User guide to using the Linux Desktop</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/03/26/an-important-week-for-document-freedom' rel='bookmark' title='Permanent Link: An important week for document freedom'>An important week for document freedom</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2005/03/15/undpiosn-livecd-rc1serena' rel='bookmark' title='Permanent Link: UNDP/IOSN LiveCD rc1/Serena'>UNDP/IOSN LiveCD rc1/Serena</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A couple of my good friends have had some recent achievements that I clearly should help them blow their trumpets for.</p>
<p>First up, we have <a href="http://ditesh.gathani.org/blog">Ditesh</a>, who&#8217;s an active proponent of ODF, have a little <a href="http://www.apdip.net/news/apdipenote18">e-Note</a> published on <a href="http://www.apdip.net/apdipenote/18.pdf">Electronic Document Standards</a>. I got to read it back when it was in an ODF document (*grin*), and not much has changed since all the comments were pushed. Do read it, and consider giving it to upper management to read as well. Its a very well thought out document, and should be making its rounds on the Internet soon enough. Ditesh welcomes comments via email or his <a href="http://ditesh.gathani.org/blog/2007/08/02/apdip-e-note-on-electronic-document-standards/">blog entry</a>.</p>
<p>Incidentally, this is also one of the first notes that the UNDP/APDIP have published that carry a disclaimer &#8211; &#8220;<i>The views expressed in this APDIP e-Note are those of the author and do not necessarily represent those of the United Nations, including UNDP, or their Member States.</i>&#8221; I thought that was a little soft-cock, but this is the power of lobbying I guess.</p>
<p>Next up, we have <a href="http://blog.aizatto.com/">Aizat</a> creating haze.net.my, aka the <a href="http://haze.net.my/">Malaysian Air Pollution Index</a>. Yes, do laugh out loud &#8211; Malaysia is very well polluted, and the API readings are pretty high usually, and the government of the day always insists its still safe. Aizat built it using Ruby on Rails, and there&#8217;s some active scraping of data (<a href="http://rails.aizatto.com/2007/07/26/building-the-malaysia-air-pollution-index-part-1-scraping-the-doe/">via</a> hpricot), which then all mashes up with Google Maps. The site&#8217;s well designed (i.e. its simple), there&#8217;s an RSS feed if you&#8217;re so inclined to read details that way, and if you&#8217;re just interested about a certain area (say, Kuala Lumpur), you can dig deeper, and look at the graphs (via <a href="http://nubyonrails.com/pages/gruff">Gruff Graphs</a>) of when it started becoming unhealthy and so on. Exporting it to CSV works too, in case you were using it for a project/paper on the haze.</p>
<p>All in all, a good side-project, very informative for those living in Malaysia or visiting Malaysia. Don&#8217;t see a good income stream (ads? pfft.), but definitely very informative. Maybe sell it to a ministry :-)</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/ditesh" rel="tag">ditesh</a>, <a class="performancingtags" href="http://technorati.com/tag/aizat" rel="tag">aizat</a>, <a class="performancingtags" href="http://technorati.com/tag/e-note" rel="tag">e-note</a>, <a class="performancingtags" href="http://technorati.com/tag/apdip" rel="tag">apdip</a>, <a class="performancingtags" href="http://technorati.com/tag/undp" rel="tag">undp</a>, <a class="performancingtags" href="http://technorati.com/tag/electronic%20document%20standards" rel="tag">electronic document standards</a>, <a class="performancingtags" href="http://technorati.com/tag/malaysian%20air%20pollution%20index" rel="tag">malaysian air pollution index</a>, <a class="performancingtags" href="http://technorati.com/tag/haze" rel="tag">haze</a>, <a class="performancingtags" href="http://technorati.com/tag/haze.net" rel="tag">haze.net</a>, <a class="performancingtags" href="http://technorati.com/tag/malaysia" rel="tag">malaysia</a>, <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a>, <a class="performancingtags" href="http://technorati.com/tag/rails" rel="tag">rails</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2004/07/24/user-guide-to-using-the-linux-desktop' rel='bookmark' title='Permanent Link: User guide to using the Linux Desktop'>User guide to using the Linux Desktop</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/03/26/an-important-week-for-document-freedom' rel='bookmark' title='Permanent Link: An important week for document freedom'>An important week for document freedom</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2005/03/15/undpiosn-livecd-rc1serena' rel='bookmark' title='Permanent Link: UNDP/IOSN LiveCD rc1/Serena'>UNDP/IOSN LiveCD rc1/Serena</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/08/02/pimping-my-friends-an-odf-e-note-and-hazenet/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scaling Twitter: &#8220;Is Twitter is UDP or TCP? Its definitely UDP.&#8221;</title>
		<link>http://www.bytebot.net/blog/archives/2007/04/23/scaling-twitter-is-twitter-is-udp-or-tcp-its-definitely-udp</link>
		<comments>http://www.bytebot.net/blog/archives/2007/04/23/scaling-twitter-is-twitter-is-udp-or-tcp-its-definitely-udp#comments</comments>
		<pubDate>Mon, 23 Apr 2007 17:54:17 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/04/23/scaling-twitter-is-twitter-is-udp-or-tcp-its-definitely-udp</guid>
		<description><![CDATA[Presented by Blaine Cook, a developer from Odeo, now probably CTO of Twitter (Obvious Corp spawed, I think). There&#8217;s a video and slides (yes, you need evil Flash so I haven&#8217;t viewed it myself). Then there are my notes&#8230; possibly with some thoughts attached to them. No, they&#8217;re not organized, I&#8217;m too busy and tired&#8230;
Rails [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2008/03/29/on-twitter' rel='bookmark' title='Permanent Link: On Twitter'>On Twitter</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2009/03/24/break-up-over-twitter' rel='bookmark' title='Permanent Link: Break up over Twitter'>Break up over Twitter</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/01/28/memcache-keeping-data-in-the-handiest-place-memory' rel='bookmark' title='Permanent Link: Memcache, keeping data in the handiest place: memory'>Memcache, keeping data in the handiest place: memory</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Presented by <a href="http://romeda.org/blog/">Blaine Cook</a>, a developer from Odeo, now probably CTO of Twitter (Obvious Corp spawed, I think). There&#8217;s a <a href="http://stakeventures.com/articles/2007/04/23/video-of-blaine-cooks-scaling-twitter">video</a> and <a href="http://www.slideshare.net/Blaine/scaling-twitter/">slides</a> (yes, you need evil Flash so I haven&#8217;t viewed it myself). Then there are my notes&#8230; possibly with some thoughts attached to them. No, they&#8217;re not organized, I&#8217;m too busy and tired&#8230;</p>
<p>Rails scales, but not out of the box. This will cause Twitter to stop working very quickly.</p>
<p>600 requests/second, 180 rails instances (mongrel), 1 DB server (MySQL) + 1 slave (read only slave, for statistics purposes), 30-odd processes for misc. jobs, 8 Sun X4100s.</p>
<p>Uncached requests in less than 200ms in most of the time.</p>
<p>steps:<br />
1. realize your site is slow<br />
2. optimize the database<br />
3. &#8220;Cache the hell out of everything&#8221;<br />
4. scale messaging<br />
5. deal with abuse<br />
6. profit.</p>
<p>Have stats (something Twitter didn&#8217;t have before): munin, nagios, awstats/google analytics (latter doesn&#8217;t obviously work if your site itself doesn&#8217;t load), exception notifier/logger (exception logger is what they use at Twitter, so you don&#8217;t get lots of email :P). You need reporting to track problems.</p>
<p>Benchmarks &#8211; they don&#8217;t do profiling, they just rely on their users! What torture for the poor users&#8230;</p>
<p>&#8220;The next application I build is going to be easily partionable.&#8221; &#8211; Stewart Butterfield<br />
Dealing with abusers&#8230;<br />
Inverse spamming &#8211; The Italians &#8211; receiving SMS gives you free call credits!<br />
9,000 friends in 24 hours doesn&#8217;t scale!<br />
Just be ruthless, delete said users. This is where you thank the reporting tools, to allow you to detect abusers.</p>
<p>They&#8217;ve looked at Magic Multi Connections, it looks great, but it wouldn&#8217;t work for Twitter.</p>
<p>Main bottleneck is really in DRb and template generation. Template optimizer that Steven Kays wrote doesn&#8217;t work for them.</p>
<p>Twitter: built by 2 people first. And now, they&#8217;re just 3 developers.</p>
<p>When mongrels hit swap, they become useless. So turn swap off.</p>
<p>Twitter themselves don&#8217;t seem to want to give out details of how many users, etc. they have. Shifty, beyond the fact that they claim its &#8220;a lot of users&#8221;.</p>
<p>Twitter is not built for partitioning. Social applications should be designed to be easily partionable. Wordpress, anything 37signals builds, tends to be partionable. Things start becoming hairy when you have 3,000+ friends!</p>
<p>Index everything &#8211; Rails won&#8217;t do it for you, but you need to repeat for any column that appears in a WHERE clause.</p>
<p>Denormalize a lot &#8211; heresy in the rails book? but he hopes not. This is single handedly what saved Twitter.</p>
<p>They use InnoDB. Don&#8217;t do status.count() when there&#8217;s millions of rows&#8230; it&#8217;ll stop working. MyISAM will be faster, but still, don&#8217;t.</p>
<p>email like &#8220;$#!$&#8221; &#8211; search. Twitter has disabled search right now&#8230; This makes their database enjoy life.</p>
<p>Average DB time is 50ms (to at most 100ms)</p>
<p>They&#8217;re not hurting on the DB. The master DB machine is at a quarter CPU usage. So they don&#8217;t see the need to partition at this point.</p>
<p>Twitter does a lot of caching, they use MemCache. If you really need status.count() use memcache.</p>
<p>Query for friends status on your Twitter homepage, is a complicated query using a lot of JOIN. They use ActiveRecord, they store the status in memory, and they don&#8217;t touch the DB. They plan to use memcache in the future for the statuses too.</p>
<p>ActiveRecord objects are huge (which is why its not stuck in memcache yet). They&#8217;re looking at implementing ActiveRecord nano or something simiar &#8211; smaller, store in cache critical attributes, and use add method missing if you don&#8217;t find what you&#8217;re looking for.</p>
<p>90% of Twitter&#8217;s requests are API requests. So cache them. No fragment or page caching on the front-end, but for API requests, lots of caching.</p>
<p>Producer(s) -&gt; Message Queue -&gt; Consumer(s)</p>
<p>DRb: zero redundancy, tightly coupled.</p>
<p>They use ejabberd for Jabber server.</p>
<p>When the Jabber client went down, everything went down. So they moved to using Rinda. Its O(N) for take() so if the queue has 70,000 messages, you just shut it down, restart it, and lose those 70,000 messages. Sigh.</p>
<p>&#8220;Someone asked if Twitter is UDP or TCP? Its definitely UDP.&#8221; &#8212; Blaine Cook</p>
<p>LiveJournal has a horizontally scaled MySQL, that is just MySQL + Lightweight Locking. RabbitMQ (erlang) is something they&#8217;re looking at, quite clearly, but it looks ugly, and they don&#8217;t want to possibly implement it.</p>
<p>Starling was written. Ruby, will be ported to something faster. Does 4000 transactional messages/second, will have multiple queues (like a cache invalidation one), speakes MemCache (set, get), writes it all to disk. First pass was written in 4 hours, and its been working fine for the last few days (i.e. since Wednesday). Twitter died on Tuesday at the Web 2.0 conference! Starling will probably be open source.</p>
<p>Use messages to invalidate your cache.</p>
<p>Dealing with abusers&#8230;<br />
Inverse spamming &#8211; The Italians &#8211; receiving SMS gives you free call credits!<br />
9,000 friends in 24 hours doesn&#8217;t scale!<br />
Just be ruthless, delete said users. This is where you thank the reporting tools, to allow you to detect abusers.</p>
<p>They&#8217;ve looked at Magic Multi Connections, it looks great, but it wouldn&#8217;t work for Twitter.</p>
<p>Main bottleneck is really in DRb and template generation. Template optimizer that Steven Kays wrote doesn&#8217;t work for them.</p>
<p>Twitter: built by 2 people first. And now, they&#8217;re just 3 developers.</p>
<p>When mongrels hit swap, they become useless. So turn swap off.</p>
<p>Twitter themselves don&#8217;t seem to want to give out details of how many users, etc. they have. Shifty, beyond the fact that they claim its &#8220;a lot of users&#8221;.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/ruby" class="performancingtags" rel="tag">ruby</a>, <a href="http://technorati.com/tag/svrc2007" class="performancingtags" rel="tag">svrc2007</a>, <a href="http://technorati.com/tag/twitter" class="performancingtags" rel="tag">twitter</a>, <a href="http://technorati.com/tag/scaling" class="performancingtags" rel="tag">scaling</a>, <a href="http://technorati.com/tag/performance" class="performancingtags" rel="tag">performance</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2008/03/29/on-twitter' rel='bookmark' title='Permanent Link: On Twitter'>On Twitter</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2009/03/24/break-up-over-twitter' rel='bookmark' title='Permanent Link: Break up over Twitter'>Break up over Twitter</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/01/28/memcache-keeping-data-in-the-handiest-place-memory' rel='bookmark' title='Permanent Link: Memcache, keeping data in the handiest place: memory'>Memcache, keeping data in the handiest place: memory</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/04/23/scaling-twitter-is-twitter-is-udp-or-tcp-its-definitely-udp/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>svrc2007 links</title>
		<link>http://www.bytebot.net/blog/archives/2007/04/22/svrc2007-links</link>
		<comments>http://www.bytebot.net/blog/archives/2007/04/22/svrc2007-links#comments</comments>
		<pubDate>Sun, 22 Apr 2007 13:12:48 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/04/22/svrc2007-links</guid>
		<description><![CDATA[More so that I will remember, the 2nd Annual Silicon Valley Ruby Conference 2007 have some interesting web links.

sv ruby conf on Tumblr &#8211; looks like Twitter for groups? They sell it as &#8220;blogs with less fuss&#8221;, but I&#8217;m definitely not signing up for yet another blogging platform.
Conference Meetup site for svrc2007 &#8211; this is [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end' rel='bookmark' title='Permanent Link: 6-8% of folk don&#8217;t want MySQL as a default back-end'>6-8% of folk don&#8217;t want MySQL as a default back-end</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/making-breaking-web-services-with-ruby' rel='bookmark' title='Permanent Link: Making &#038; Breaking Web Services (with Ruby)'>Making &#038; Breaking Web Services (with Ruby)</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/business-scripting-languages-or-saps-marketing-talk-stanford-hci-mashup' rel='bookmark' title='Permanent Link: Business Scripting Languages or SAP&#8217;s marketing talk + Stanford HCI mashup'>Business Scripting Languages or SAP&#8217;s marketing talk + Stanford HCI mashup</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>More so that I will remember, the 2nd Annual Silicon Valley Ruby Conference 2007 have some interesting web links.
<ul>
<li><a href="http://svruby.tumblr.com/">sv ruby conf</a> on Tumblr &#8211; looks like Twitter for groups? They sell it as &#8220;blogs with less fuss&#8221;, but I&#8217;m definitely not signing up for yet another blogging platform.</li>
<li><a href="http://svrc2007.conferencemeetup.com/">Conference Meetup</a> site for svrc2007 &#8211; this is pretty cool. People logs, make connections, upload presentations, plan gatherings. This is something conferences should definitely look at having running. Its just cool stuff.</li>
</ul>
<p>I&#8217;m sure if you search on Flickr or Technorati for svrc2007 or something similar, that tag will be used&#8230;</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a>, <a class="performancingtags" href="http://technorati.com/tag/svrc2007" rel="tag">svrc2007</a>, <a class="performancingtags" href="http://technorati.com/tag/links" rel="tag">links</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end' rel='bookmark' title='Permanent Link: 6-8% of folk don&#8217;t want MySQL as a default back-end'>6-8% of folk don&#8217;t want MySQL as a default back-end</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/making-breaking-web-services-with-ruby' rel='bookmark' title='Permanent Link: Making &#038; Breaking Web Services (with Ruby)'>Making &#038; Breaking Web Services (with Ruby)</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/business-scripting-languages-or-saps-marketing-talk-stanford-hci-mashup' rel='bookmark' title='Permanent Link: Business Scripting Languages or SAP&#8217;s marketing talk + Stanford HCI mashup'>Business Scripting Languages or SAP&#8217;s marketing talk + Stanford HCI mashup</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/04/22/svrc2007-links/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActiveRecord</title>
		<link>http://www.bytebot.net/blog/archives/2007/04/22/activerecord</link>
		<comments>http://www.bytebot.net/blog/archives/2007/04/22/activerecord#comments</comments>
		<pubDate>Sun, 22 Apr 2007 05:57:17 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/04/22/activerecord</guid>
		<description><![CDATA[ActiveRecord, by Rabble.

Rails ActiveRecord is mostly database agnostic. 
Good subset of the SQL standard is supported, so you can migrate very easily (this is what OS X Leopard will do &#8211; develop using sqlite on your workstation, then migrate to mysql on the server).
Integer primary keys, and classname_id foreign keys. Single table inheritance is what [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/04/17/second-annual-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: Second Annual Silicon Valley Ruby Conference'>Second Annual Silicon Valley Ruby Conference</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/07/22/me-too-comments-in-bug-systems' rel='bookmark' title='Permanent Link: &#8220;Me too&#8221; comments in bug systems'>&#8220;Me too&#8221; comments in bug systems</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end' rel='bookmark' title='Permanent Link: 6-8% of folk don&#8217;t want MySQL as a default back-end'>6-8% of folk don&#8217;t want MySQL as a default back-end</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>ActiveRecord, by <a href="http://anarchogeek.com/">Rabble</a>.
<ul>
<li>Rails <a href="http://wiki.rubyonrails.com/rails/pages/ActiveRecord">ActiveRecord</a> is mostly database agnostic. </li>
<li>Good subset of the SQL standard is supported, so you can migrate very easily (this is what OS X Leopard will do &#8211; develop using sqlite on your workstation, then migrate to mysql on the server).</li>
<li>Integer primary keys, and classname_id foreign keys. Single table inheritance is what really works well. </li>
<li>What ActiveRecord doesn&#8217;t like: </li>
</ul>
<ol>
<li>views</li>
<li>stored procedures</li>
<li>FK constraints</li>
<li>cascading commits</li>
<li>split/clustered DBs</li>
<li>enums</li>
</ol>
<ul>
<li>Complexity is best located in the code, not in the database, according to the Rails developers.</li>
<li>Avoid SQL injection with find. Use an array or let it do the quoting for you. By itself, it allows you to do stupid things &#8211; so avoid cross site scripting, etc.</li>
<li>Joins are very rarely used, you use ActiveRecord relationships.</li>
<li>Some associations:</li>
</ul>
<ol>
<li>has_one &#8211; when the FK is in the OTHER table</li>
<li>belongs_to &#8211; when the FK is in THIS table</li>
<li>has_many</li>
<li>has_and_belongs_to_many</li>
</ol>
<ul>
<li>DBAs like FK constraints, but the Rails way is to really just use validations.</li>
<li>ActiveRecord returns enumarable objects, which look like arrays</li>
<li>ActiveRecord also allows for output formats &#8211; like to_yaml, to_xml, to_json. So your database records can become XML pretty easily.</li>
<li>find_by_sql &#8211; use it when you&#8217;re finding ActiveRecord isn&#8217;t suitable for you, i.e. you&#8217;re doing something that is not very standard.</li>
</ul>
<p>Rabble also gave us an anecdote from his Odeo days. They thought that grabbing feeds should be done in parallel. Which is when they used RubyThreads. And suddenly, they were getting some horrendous database problems, duplicate records and so on. Moral of the story: RubyThreads and ActiveRecord don&#8217;t mix. A member of the audience mentioned that using find_by_sql consumed about 1MB of memory in his application, however, using ActiveRecord to do the same thing was costing about 20MB per thread.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a>, <a class="performancingtags" href="http://technorati.com/tag/svrc2007" rel="tag">svrc2007</a>, <a class="performancingtags" href="http://technorati.com/tag/database" rel="tag">database</a>, <a class="performancingtags" href="http://technorati.com/tag/sql" rel="tag">sql</a>, <a class="performancingtags" href="http://technorati.com/tag/mysql" rel="tag">mysql</a>, <a class="performancingtags" href="http://technorati.com/tag/ActiveRecord" rel="tag">ActiveRecord</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2007/04/17/second-annual-silicon-valley-ruby-conference' rel='bookmark' title='Permanent Link: Second Annual Silicon Valley Ruby Conference'>Second Annual Silicon Valley Ruby Conference</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/07/22/me-too-comments-in-bug-systems' rel='bookmark' title='Permanent Link: &#8220;Me too&#8221; comments in bug systems'>&#8220;Me too&#8221; comments in bug systems</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end' rel='bookmark' title='Permanent Link: 6-8% of folk don&#8217;t want MySQL as a default back-end'>6-8% of folk don&#8217;t want MySQL as a default back-end</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/04/22/activerecord/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Business Scripting Languages or SAP&#8217;s marketing talk + Stanford HCI mashup</title>
		<link>http://www.bytebot.net/blog/archives/2007/04/21/business-scripting-languages-or-saps-marketing-talk-stanford-hci-mashup</link>
		<comments>http://www.bytebot.net/blog/archives/2007/04/21/business-scripting-languages-or-saps-marketing-talk-stanford-hci-mashup#comments</comments>
		<pubDate>Sat, 21 Apr 2007 20:54:23 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/04/21/business-scripting-languages-or-saps-marketing-talk-stanford-hci-mashup</guid>
		<description><![CDATA[The after lunch talk on Business Scripting Languages, by Asuman Suenbuel and Murray Spork was something I found very hard to stay awake in. In fact, I think so did many others, some of whom walked out of the room.
The first half of the talk was filled with SAP marketing spiel, something I think should [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2008/02/29/so-you-want-to-start-a-successful-open-source-business-notes-from-the-paul-fenwick-talk' rel='bookmark' title='Permanent Link: So you want to start a successful open source business? (notes, from the Paul Fenwick talk)'>So you want to start a successful open source business? (notes, from the Paul Fenwick talk)</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/10/17/what-languages-and-connectors-do-you-primarily-use-for-mysql' rel='bookmark' title='Permanent Link: What languages (and connectors) do you primarily use for MySQL?'>What languages (and connectors) do you primarily use for MySQL?</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2005/10/16/of-languages' rel='bookmark' title='Permanent Link: of languages'>of languages</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The after lunch talk on Business Scripting Languages, by Asuman Suenbuel and Murray Spork was something I found very hard to stay awake in. In fact, I think so did many others, some of whom walked out of the room.</p>
<p>The first half of the talk was filled with SAP marketing spiel, something I think should sincerely stay away from conferences that are tech-oriented. When you hear a word like &#8220;SOA&#8221;, you already know you&#8217;re in the wrong talk. <a href="http://www.youtube.com/watch?v=uOQcjvUHZ0k">Greg the architect</a> video (link courtesy <a href="http://lwu.vox.com/library/post/svrubyconf2007-notes.html">Leslie Wu</a>), now that was funny. Saving grace, and they do mention the movies are not from SAP. Figures. SOA is like a clothes wardrobe was the other video, with some somewhat hot looking girl &#8211; sure, again, saving grace.</p>
<p>Model-driven development (this is not UML &#8211; this is more like the Eclipise Modeling Framework, etc.) vs. Ruby Domain Specific Languages (DSL&#8217;s) [<a href="http://www.oreillynet.com/ruby/blog/2005/12/what_is_a_dsl.html">What is a DSL?</a>]. SAP utilizes a modeling framework (MOIN), and supports external DSLs (unlike Ruby where you&#8217;ve got an embedded/internal DSL).</p>
<p>Ruby + SOA is about flexibility, is where they concluded off. I think thats an hour I&#8217;m never getting back, but thank goodness I have my laptop lying around and actually was getting other work done.</p>
<p>I was surprised that they never mentioned <a href="http://www.mysql.com/products/maxdb/">MaxDB</a> once. They do follow MySQL naming schemes, calling things &#8220;connectors&#8221; though.</p>
<p>More interestingly, was the <a href="http://hci.stanford.edu/research/mashups/dmix-uist2007.wmv">video</a>, titled <b>Rapidly prototyping web applications with d.mix</b>, presented by <a href="http://lwu.vox.com/">Leslie Wu</a>, from the Stanford HCI group on <a href="http://hci.stanford.edu/research/mashups/">Ubicomp</a>. Its a cool mashup, and while I haven&#8217;t investigated Yahoo! Pipes yet, it looks like it just may be something similar, except that Ubicomp also supports hardware interfaces. Of course, the other thing about Ubicomp is that I can&#8217;t actually can&#8217;t test it. The publications on their website are worth a read though (see, I told you I found a use for the one hour wasted on SAP). Relevance to Ruby? They use it &#8211; Ubicomp is built with Ruby.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/-EWASTEOFTIME" rel="tag">-EWASTEOFTIME</a>, <a class="performancingtags" href="http://technorati.com/tag/sap" rel="tag">sap</a>, <a class="performancingtags" href="http://technorati.com/tag/soa" rel="tag">soa</a>, <a class="performancingtags" href="http://technorati.com/tag/ubicomp" rel="tag">ubicomp</a>, <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a>, <a class="performancingtags" href="http://technorati.com/tag/svrc2007" rel="tag">svrc2007</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2008/02/29/so-you-want-to-start-a-successful-open-source-business-notes-from-the-paul-fenwick-talk' rel='bookmark' title='Permanent Link: So you want to start a successful open source business? (notes, from the Paul Fenwick talk)'>So you want to start a successful open source business? (notes, from the Paul Fenwick talk)</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/10/17/what-languages-and-connectors-do-you-primarily-use-for-mysql' rel='bookmark' title='Permanent Link: What languages (and connectors) do you primarily use for MySQL?'>What languages (and connectors) do you primarily use for MySQL?</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2005/10/16/of-languages' rel='bookmark' title='Permanent Link: of languages'>of languages</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/04/21/business-scripting-languages-or-saps-marketing-talk-stanford-hci-mashup/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>6-8% of folk don&#8217;t want MySQL as a default back-end</title>
		<link>http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end</link>
		<comments>http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end#comments</comments>
		<pubDate>Sat, 21 Apr 2007 18:10:51 +0000</pubDate>
		<dc:creator>Colin Charles</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end</guid>
		<description><![CDATA[At the 2nd Annual Silicon Valley Ruby Conference, about a dozen folk have stated that they don&#8217;t want MySQL to be their default database for Rails. I do presume that there might be 150-200 folk that have rocked up, so thats a small portion of the market, I guess.
From what I gather, some people have [...]


Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2009/02/19/kde-42-brings-the-mysql-server-to-the-desktop' rel='bookmark' title='Permanent Link: KDE 4.2 brings the MySQL server to the desktop'>KDE 4.2 brings the MySQL server to the desktop</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/07/14/mysql-5126-rc-released-and-developer-resources-thoughts' rel='bookmark' title='Permanent Link: MySQL 5.1.26-rc released, and developer resources thoughts'>MySQL 5.1.26-rc released, and developer resources thoughts</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/03/27/mysql-cool-aid-40-on-mysql-eur1-million-deal-signed' rel='bookmark' title='Permanent Link: MySQL cool-aid: 40% on MySQL; EUR$1+ million deal signed'>MySQL cool-aid: 40% on MySQL; EUR$1+ million deal signed</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>At the 2nd Annual Silicon Valley Ruby Conference, about a dozen folk have stated that they don&#8217;t want MySQL to be their default database for Rails. I do presume that there might be 150-200 folk that have rocked up, so thats a small portion of the market, I guess.</p>
<p>From what I gather, some people have to integrate with other applications, and having two database backends, probably don&#8217;t make so much sense. For example, if you use GRASS for GIS mapping stuff, you&#8217;d not want your default web app database to be MySQL, right?</p>
<p>I do sincerely hope to meet them all in the next couple of days, to see what their concerns are, failing which there&#8217;s a <a href="http://svrc2007.conferencemeetup.com/">who&#8217;s who</a> in where we can still get contacted with later.</p>
<p>Then the distribution statistics. 40% on Mac OS X, 50% on Windows (ick), and a mere 10% on Linux (lots of OS X users do use Linux). </p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/svrc2007" rel="tag">svrc2007</a>, <a class="performancingtags" href="http://technorati.com/tag/mysql" rel="tag">mysql</a>, <a class="performancingtags" href="http://technorati.com/tag/ruby" rel="tag">ruby</a></p>


<p>Related posts:<ol><li><a href='http://www.bytebot.net/blog/archives/2009/02/19/kde-42-brings-the-mysql-server-to-the-desktop' rel='bookmark' title='Permanent Link: KDE 4.2 brings the MySQL server to the desktop'>KDE 4.2 brings the MySQL server to the desktop</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2008/07/14/mysql-5126-rc-released-and-developer-resources-thoughts' rel='bookmark' title='Permanent Link: MySQL 5.1.26-rc released, and developer resources thoughts'>MySQL 5.1.26-rc released, and developer resources thoughts</a></li>
<li><a href='http://www.bytebot.net/blog/archives/2007/03/27/mysql-cool-aid-40-on-mysql-eur1-million-deal-signed' rel='bookmark' title='Permanent Link: MySQL cool-aid: 40% on MySQL; EUR$1+ million deal signed'>MySQL cool-aid: 40% on MySQL; EUR$1+ million deal signed</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.bytebot.net/blog/archives/2007/04/21/6-8-of-folk-dont-want-mysql-as-a-default-back-end/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
