<?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:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Rida Al Barazi's Personal Blog</title>
	
	<link>http://www.ridaalbarazi.com/blog</link>
	<description>Rida's Zone in Cyberspace</description>
	<lastBuildDate>Sat, 14 Feb 2009 14:49:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feeds.feedburner.com/RidaAlBarazi?format=skin</thespringbox:skin><itunes:explicit>no</itunes:explicit><itunes:subtitle>Rida's Zone in Cyberspace</itunes:subtitle><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RidaAlBarazi" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Install your iPhone application using Cydia</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/t1-SHf9xaSI/</link>
		<comments>http://www.ridaalbarazi.com/blog/2009/02/14/install-your-iphone-application-using-cydia/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 22:10:17 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[cydia]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/?p=172</guid>
		<description><![CDATA[Becoming a registered Apple iPhone Developer can be a long process, you need to wait for Apple&#8217;s evaluation which may take a long time specially if you are outside the US. This makes it really frustrating to wait to get your iPhone application installed on your phone. When I faced this myself I had to [...]]]></description>
			<content:encoded><![CDATA[<p>Becoming a registered Apple iPhone Developer can be a long process, you need to wait for Apple&#8217;s evaluation which may take a long time specially if you are outside the US. This makes it really frustrating to wait to get your iPhone application installed on your phone. When I faced this myself I had to do some research on how to install my application on my iPhone using a third-party installer called Cydia, and here&#8217;s how I ended up doing it.</p>
<p>This tutorial expects you already built your application, you have a bricked/unlocked iPhone with Cydia installed and you don&#8217;t have an Apple iPhone Developer license.</p>
<p>If you are a registered iPhone developer getting the application on your iPhone is as simple as compiling it directly to the device and you&#8217;re all set. If you&#8217;re not, you&#8217;ll need to go over a long process starts with obtaining a Code Signing identity, compiling the application to device profile, packaging it as a Debian package and finally hosting it on a Cydia online repository.</p>
<h3>Code Signing and building for device</h3>
<p>In order to install an iPhone application on your phone you have to first compile it for the device. you can do that from Xcode by setting the Active SDK to Device instead of Simulator. Go to <strong>Project > Set Active SDK > Device &#8211; iPhone OS 2.2 (Project Setting).</strong></p>
<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/xcode-set-active-sdk-to-iphone-debice-22.png" class="image-link" rel="lightbox"><img class="linked-to-original" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/xcode-set-active-sdk-to-iphone-debice-211.png" height="268" width="379" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p>If you try to compile now you&#8217;ll get the following error <strong>&#8220;CodeSign error: Code Signing Identity &#8216;iPhone Developer&#8217; does not match any code-signing certificate in your keychain. Once added to the keychain, touch a file or clean the project to continue.&#8221;</strong> and that&#8217;s because Xcode expects a code signing certificate to be installed on your system.</p>
<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/xcode-codesign-error-code-signing-identity-iphone-developer-doesn-not-match-any-code-signing-certificate-in-your-keychain.png" class="image-link" rel="lightbox"><img class="linked-to-original" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/xcode-codesign-error-code-signing-identity-iphone-developer-doesn-not-match-any-code-signing-certificate-in-your-keychain11.png" height="254" width="378" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p>But that&#8217;s not a big issue, you can create an untrusted code signing certificate yourself following the steps mentioned on <a href="http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_2.html">Apple website</a>.</p>
<ul >
<li>Open Applications > Utilities > Keychain Access.</li>
<li>From the Keychain Access menu, choose Certificate Assistant > Create a Certificate.</li>
<li>Use the name <strong>iPhone Developer</strong> as the name of your certificate.</li>
<li>Choose <strong>Self Signed Root</strong> from the Type popup menu.</li>
<li>Check the <strong>Let me override defaults</strong> checkbox. Click <strong>Continue</strong>.</li>
<li>Select a serial number for the certificate, normally if this is your first Code Signing certificate you should be fine with the default <strong>Serial Numbe</strong>r of 1.</li>
<li>Choose <strong>Code Signing</strong> from the <strong>Certificate Type</strong>. Click <strong>Continue.</strong></li>
<li>Fill in the information for the certificate. Click <strong>Continue.</strong></li>
<li>Accept the defaults for the rest of the dialogs.</li>
</ul>
<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/iphone-developer-certificate.png" class="image-link" rel="lightbox"><img class="linked-to-original" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/iphone-developer-certificate11.png" height="292" width="378" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p>Trying to compile again now (you may need to restart Xcode), you&#8217;ll receive another error message <strong><em>&#8220;CodeSign error: a valid provisioning profile is required for product type &#8216;Application&#8217; in SDK&#8217; Device &#8211; iPhone OS 2.2&#8242;&#8221;</em></strong> asking for provisioned (trusted) certificate.</p>
<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/xcode-codesigning-error-a-valid-provisioning-profile-is-required.png" class="image-link" rel="lightbox"><img class="linked-to-original" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/xcode-codesigning-error-a-valid-provisioning-profile-is-required11.png" height="254" width="378" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p>To bypass that you&#8217;ll need to edit your Xcode configuration file in <em>/Developer/Platforms/iPhoneOS.platform/Info.plist</em> by adding the bold lines below inline (via <a href="http://iphonesdkdev.blogspot.com/2008/11/how-to-skip-provisioning-profile-for.html">iPhone Software Development</a>):</p>
<p class="code">
  &lt;key&gt;NATIVE_ARCH&lt;/key&gt;<br />
  &lt;string&gt;armv6&lt;/string&gt;<br />
  &lt;key&gt;PLIST_FILE_OUTPUT_FORMAT&lt;/key&gt;<br />
  &lt;string&gt;binary&lt;/string&gt;<br />
  <strong>&lt;key&gt;PROVISIONING_PROFILE_ALLOWED&lt;/key&gt;<br />
  &lt;string&gt;NO&lt;/string&gt;<br />
  &lt;key&gt;PROVISIONING_PROFILE_REQUIRED&lt;/key&gt;<br />
  &lt;string&gt;NO&lt;/string&gt;</strong><br />
  &lt;key&gt;SDKROOT&lt;/key&gt;<br />
  &lt;string&gt;iphoneos2.2&lt;/string&gt;
</p>
<p>For 2.2.1 SDK update the same file but with the following instead (again only the bold lines):</p>
<p  class="code">
  &lt;key&gt;OverrideProperties&lt;/key&gt;<br />
  &lt;dict&gt;<br />
  &nbsp;&nbsp;&lt;key&gt;CODE_SIGN_CONTEXT_CLASS&lt;/key&gt;<br />
  &nbsp;&nbsp;&lt;string&gt;XCiPhoneOSCodeSignContext&lt;/string&gt;<br />
  &nbsp;&nbsp;&lt;key&gt;DEBUG_INFORMATION_FORMAT&lt;/key&gt;<br />
  &nbsp;&nbsp;&lt;string&gt;dwarf-with-dsym&lt;/string&gt;<br />
  &nbsp;&nbsp;&lt;key&gt;EMBEDDED_PROFILE_NAME&lt;/key&gt;<br />
  &nbsp;&nbsp;&lt;string&gt;embedded.mobileprovision&lt;/string&gt;<br />
  &nbsp;&nbsp;&lt;key&gt;SDKROOT&lt;/key&gt;<br />
  &nbsp;&nbsp;&lt;string&gt;iphoneos2.2.1&lt;/string&gt;<br />
  <strong>&nbsp;&nbsp;&lt;key&gt;PROVISIONING_PROFILE_ALLOWED&lt;/key&gt;<br />
  &nbsp;&nbsp;&lt;string&gt;NO&lt;/string&gt;</strong><br />
  &lt;/dict&gt;
</p>
<p>Restart Xcode and try again, you will be able to compile and build your application for the phone now. The next step is to package it and make it ready for Cydia to install it on the iPhone.</p>
<h3>Preparing The Package</h3>
<p>Cydia basically is a graphical interface for debian package installer on the iPhone, so first you&#8217;ll need to have a unlocked/jailbroken phone, with Cydia installed on it. If you don&#8217;t have an unlocked/jailbroken phone you can do that using <a href="http://blog.iphone-dev.org/">QuickPwn</a>.</p>
<p>Now with Cydia installed we need to prepare your application as a Debian package, and create a source repository for Cydia to download your application from.</p>
<p>To create a Debian package on Mac OS X we&#8217;ll need some Debian tools like dpkg-deb and dpkg-scanpackages which don&#8217;t come in Mac OS X. To get those tools we have to <a href="http://www.finkproject.org/">Fink</a>.</p>
<p>After installing Fink on your computer, create the following folder structure for your application:</p>
<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/cydia-debian-package-folder-structure.png" class="image-link" rel="lightbox"><img class="linked-to-original" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/cydia-debian-package-folder-structure11.png" height="94" width="223" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<p>The <strong>MyProgram.app</strong> file is the compiled for device build available in MyProgram/build/Debug-iphones/ or MyProgram/build/Release-iphones, the <strong>control</strong> file is a configuration file for your application, it contains the package information, here&#8217;s an example control file:</p>
<pre name="code" >Package: com.yourdomain.myprogram
Name: MyProgram
Version: 1.0.4-1
Architecture: iphoneos-arm
Description: A small description
Homepage: http://www.yourdomain.com/more_info_about_package_for_cydia
Depiction: http://www.yourdomain.com/even_more_info
Maintainer: Your Name <you@example.com>
Author: Developer/Your Name (nickname) <you@example.com>
Sponsor: Company Name <http://www.companydomain.com>
Section: Application Section
</http://www.companydomain.com></you@example.com></you@example.com>
</pre>
<p>Here is a little explanation for some of the sections above (from Jay Freeman (saurik) <a href="http://www.saurik.com/id/7">website</a>, full explanation can be there):</p>
<ul >
<li><strong>Version:</strong> A package&#8217;s version indicates two separate values: the version of the software in the package, and the version of the package itself. These version numbers are separated by a hyphen.</li>
<li><strong>Homepage:</strong> Often, there is more information that a packager wants to provide about a package than can be listed in the description of the package. Cydia supports a &#8220;More Info&#8221; field on the details screen that shunts users off to a website of the packager&#8217;s choice.</li>
<li><strong>Depiction:</strong> Pretty much the entire interface of Cydia is a webpage, which makes adding features or new functionality remotely very easy. One thing you might want is to be able to display custom links or screenshots with special formatting&#8230; just plain something special (even an advertisement) on your package page. This is done with a &#8220;depiction&#8221;, which is a URL that is loaded into an iframe, replacing the Description: and Homepage: links that are normally presnt. For a good example see WinterBoard&#8217;s package details page in Cydia. For many packagers this has simply become their More Information page, which is only used for backwards compatibility. It does not need to be the same, however. You also may consider not having a Homepage: field at all if you include Depiction:.</li>
<li><strong>Maintainer:</strong> The person who built the package is called the &#8220;maintainer&#8221;. This is the person who will be contacted with issues relating to the package itself. This should be of the form &#8220;their name <email@addre.ss>&#8220;.</email@addre.ss></li>
<li><strong>Author:</strong> In contrast, the person who wrote the original software is called the &#8220;author&#8221;. This name will be shown underneath the name of the package on the details screen. The field is in the same format as &#8220;Maintainer&#8221;.</li>
<li><strong>Sponsor:</strong> Finally, there might be someone who is simply providing the influence or the cash to make the package happen. This person should be listed here in the form of &#8220;Maintainer&#8221; except using a resource URI instead of an e-mail address.</li>
<li><strong>Section:</strong> Under the &#8220;Install&#8221; tab in Cydia, packages are listed by &#8220;Section&#8221;. If you would like to encode a space into your section name, use an underscore (Cydia will automatically convert these.</li>
</ul>
<h3>Packaging and Indexing</h3>
<p>Now that we have the folder structure ready let&#8217;s package it, fun the following from the Terminal from your the directory you&#8217;re holding the above folder structure in:</p>
<pre >username@computername:~/projects/MyProgram/Cydia$ ls -l
total 0
drwxrwxrwx 5 rbarazi rbarazi 170 Feb 13 23:46 MyProgram

username@computername:~/projects/MyProgram/Cydia$ dpkg-deb -d MyProgram
warning, 'MyProgram/DEBIAN/control' contains user-defined field 'Name'
warning, 'MyProgram/DEBIAN/control' contains user-defined field 'Homepage'
warning, 'MyProgram/DEBIAN/control' contains user-defined field 'Depiction'
warning, 'MyProgram/DEBIAN/control' contains user-defined field 'Author'
warning, 'MyProgram/DEBIAN/control' contains user-defined field 'Sponsor'
dpkg-deb: building package 'com.yourdomain.myprogram' in 'MyProgram.deb'.
dpkg-deb: ignoring 5 warnings about the control file(s)

username@computername:~/projects/MyProgram/Cydia$ ls -l
total 24
drwxrwxrwx 5 rbarazi rbarazi  170 Feb 13 23:46 MyProgram
-rw-r--r-- 1 rbarazi rbarazi 9190 Feb 14 00:20 MyProgram.deb
</pre>
<p>This will generate a Debian package called <strong>MyProgram.deb</strong>, now we need to make it available for Cydia to download and install on the phone. To do that we need a web folder, the package we created and a packages index file.</p>
<p>To generate the packages index file we&#8217;ll use another tool called dpkg-scanpackages (also from the Terminal):</p>
<pre name="code" >username@computername:~/projects/MyProgram/Cydia$ dpkg-scanpackages . /dev/null > Packages
  ** Packages in archive but missing from override file: **
   com.yourdomain.myprogram
  Wrote 1 entries to output Packages file.

username@computername:~/projects/MyProgram/Cydia$ bzip2 Packages
username@computername:~/projects/MyProgram/Cydia$ ls -l
total 32
drwxrwxrwx 5 rbarazi rbarazi  170 Feb 13 23:46 MyProgram
-rw-r--r-- 1 rbarazi rbarazi 9190 Feb 14 00:20 MyProgram.deb
-rw-r--r-- 1 rbarazi rbarazi  371 Feb 14 00:23 Packages.bz2
</pre>
<p>Now you&#8217;ve got the <strong>Packages.bz2</strong> index file and the Debian package <strong>MyProgram.deb</strong>, upload both to your web server, for example I uploaded mine to <a href="http://ridaalbarazi.com/iphone">http://ridaalbarazi.com/iphone</a></p>
<h3>Installing the application</h3>
<p>From Cydia go to <strong>Manage > Sources > Edit > Add</strong> and add the URL of your online repository there. Cydia will automatically show your package, install it and enjoy having your application on your iPhone.</p>
<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/add-cydia-repository-url.png" class="image-link" rel="lightbox"><img class="linked-to-original" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2009/02/add-cydia-repository-url1.png" height="460" width="306" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></p>
<h3>Additional Resources</h3>
<ul >
<li><a href="http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_2.html">Code Signing Guide: Obtaining a Signing Identity</a></li>
<li><a href="http://www.saurik.com/id/8">Bypassing iPhone Code Signatures</a></li>
<li><a href="http://www.246tnt.com/iPhone/#xcode">Using XCode with Pwned iPhone</a></li>
<li><a href="http://iphonesdkdev.blogspot.com/2008/11/how-to-skip-provisioning-profile-for.html">How to skip provisioning profile for iPhone SDK 2.2</a></li>
<li><a href="http://iphonesdkdev.blogspot.com/2009/01/how-to-skip-provisioning-profile-for.html">How to skip provisioning profile for iPhone SDK 2.2.1</a></li>
<li><a href="http://www.saurik.com/id/7">How to Host Cydia Repository</a></li>
<li><a href="http://www.cuppadev.co.uk/platforms/running-your-own-iphone-applications-without-paying-the-developer-fee/" style="">Running your own iPhone applications without paying the developer fee</a></li>
<li><a href="http://www.appleiphoneapps.com/2009/02/how-to-add-a-source-in-cydia/" style="">How To Add A Source In Cydia</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=t1-SHf9xaSI:ky_PSax37cU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=t1-SHf9xaSI:ky_PSax37cU:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=t1-SHf9xaSI:ky_PSax37cU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=t1-SHf9xaSI:ky_PSax37cU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/t1-SHf9xaSI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2009/02/14/install-your-iphone-application-using-cydia/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2009/02/14/install-your-iphone-application-using-cydia/</feedburner:origLink></item>
		<item>
		<title>Testing your Rails plugin</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/VjQLUOiHkZ0/</link>
		<comments>http://www.ridaalbarazi.com/blog/2008/11/18/testing-your-rails-plugin/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 19:00:37 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tests]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/?p=167</guid>
		<description><![CDATA[When I first released both ArabicHelper and SimplySearchable I didn&#8217;t have any tests for them because I didn&#8217;t know the right way to write those tests. After doing some digging and looking at other plugins tests I found out how, and I&#8217;m sharing that here with you.
Specifically for ActiveRecord extensions you need a database and [...]]]></description>
			<content:encoded><![CDATA[<p>When I first released both <a href="http://www.ridaalbarazi.com/blog/2008/10/12/arabic-helper-ruby-on-rails/">ArabicHelper</a> and <a href="http://www.ridaalbarazi.com/blog/2008/11/05/simplysearchable-plugin/">SimplySearchable</a> I didn&#8217;t have any tests for them because I didn&#8217;t know the right way to write those tests. After doing some digging and looking at other plugins tests I found out how, and I&#8217;m sharing that here with you.</p>
<p>Specifically for ActiveRecord extensions you need a database and models definition to test your plugin, to do that you have to:</p>
<ul>
<li>Require ActiveRecord gem:
<pre name="code" class="ruby">
require 'activerecord'
</pre>
</li>
<li>Establish an ActiveRecord connection to a memory based sqlite3 database:
<pre name="code" class="ruby">
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")
</pre>
</li>
<li>Define both <em>setup_db</em> and <em>teardown_db</em>:
<pre name="code" class="ruby">
def setup_db
  ActiveRecord::Schema.define(:version => 1) do
    create_table :posts do |t|
      t.column :title, :string
      t.column :body, :text
      t.column :category_id, :integer
    end
    create_table :categories do |t|
      t.column :id, :integer
      t.column :name, :string
    end
  end
end

def teardown_db
  ActiveRecord::Base.connection.tables.each do |table|
    ActiveRecord::Base.connection.drop_table(table)
  end
end
</pre>
</li>
<li>Define your models:
<pre name="code" class="ruby">
class Post < ActiveRecord::Base
  belongs_to :category
end
class Category < ActiveRecord::Base
  has_many :posts
end
</pre>
</li>
<li>Finally define both <em>setup</em> and <em>teardown</em> methods in your test class (Note that all the above should be placed before your test class definition):
<pre name="code" class="ruby">
  def setup
    setup_db
  end

  def teardown
    teardown_db
  end
</pre>
</li>
</ul>
<p>That's it, now you can write your tests as if you're writing them in your Rails application unit tests. Check the following for more example tests:</p>
<ul>
<li><a href="http://github.com/rbarazi/simply_searchable/tree/master/test%2Fsimply_searchable_test.rb">SimplySearchable test</a></li>
<li><a href="http://github.com/rails/acts_as_tree/tree/master/test/acts_as_tree_test.rb">acts_as_tree test</a></li>
<li><a href="http://github.com/technoweenie/acts_as_versioned/tree/master/test/versioned_test.rb">acts_as_versioned test</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=VjQLUOiHkZ0:68gNXDVAy4o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=VjQLUOiHkZ0:68gNXDVAy4o:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=VjQLUOiHkZ0:68gNXDVAy4o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=VjQLUOiHkZ0:68gNXDVAy4o:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/VjQLUOiHkZ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2008/11/18/testing-your-rails-plugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2008/11/18/testing-your-rails-plugin/</feedburner:origLink></item>
		<item>
		<title>SimplySearchable plugin</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/JVdo339rWHk/</link>
		<comments>http://www.ridaalbarazi.com/blog/2008/11/05/simplysearchable-plugin/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 22:27:11 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/2008/11/04/simplysearchable-plugin/</guid>
		<description><![CDATA[Update 1:Associations support has been implemented.
Almost a year ago I released SimplySearchable plugin to help me implement the filtering options of restate.ae and during this year I&#8217;ve been updating it regularly until it become something completely different so I did a quick rewrite, moved all the logic to the model, moved the repository to github [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update 1:</strong>Associations support has been implemented.</p>
<p>Almost a year ago I released <strong>SimplySearchable</strong> plugin to help me implement the filtering options of <a href="http://restate.ae" title="restate.ae">restate.ae</a> and during this year I&#8217;ve been updating it regularly until it become something completely different so I did a quick rewrite, moved all the logic to the model, moved the repository to <a href="http://github.com">github</a> and here it is.</p>
<h3>SimplySearchable</h3>
<p>The main goal of <strong>SimplySearchable</strong> is to make it easy to do queries on your model by auto-magically creating some <em>named_scope</em> methods for common conditions.</p>
<p>This plugin adds a method to the model named <em>list</em> that will find and filter records smartly.</p>
<p>Please submit your bugs, requests and feedback at the project&#8217;s page on <a href="http://rbarazi.lighthouseapp.com/projects/19246/home">Lighthouse</a>. RDocs are available at <a href="http://ridaalbarazi.com/code/simply_searchable/">http://ridaalbarazi.com/code/simply_searchable/</a>.</p>
<h3>Installation</h3>
<pre>
  ./script/plugin install git://github.com/rbarazi/simply_searchable.git
</pre>
<p>And in your model:</p>
<pre>
  class Post < ActiveRecord::Base
    simply_searchable
  end
</pre>
<p>Then in your controller you can say:</p>
<pre>
  class PostsController < ApplicationController
    def index
    @posts = Post.list(params)
  end
</pre>
<h3>Example:</h3>
<p>If you have the following attributes in you posts table:</p>
<pre>
  Post
    id:integer
    title:string
    body:text
    category_id:integer
    created_at:datetime
    updated_at:datetime
</pre>
<p>And in your Model:</p>
<pre>
  class Post < ActiveRecord::Base
    has_many   :comments
    belongs_to :category
    simply_searchable
  end
</pre>
<p>This will create the following named scopes:</p>
<pre>
  named_scope where_id,         lambda {|value| { :conditions => ["id = ?", value] }}
  named_scope where_title,      lambda {|value| { :conditions => ["title like ?", "%#{value}%"] }}
  named_scope where_body,       lambda {|value| { :conditions => ["body like ?", "%#{value}%"] }}
  named_scope where_created_at, lambda {|value| { :conditions => ["created_at = ?", [*value]] }}
  named_scope where_updated_at, lambda {|value| { :conditions => ["updated_at = ?", [*value]] }}
  named_scope where_categories, lambda {|value| { :conditions => ["category_id in (?)", [*value]] }}
  named_scope where_comments,   lambda {|value| { :conditions => ["comments.ids in (?)", [*value]] }}
</pre>
<p>It will also create the method 'list' which you can use like:</p>
<pre>
  Post.list(:title => 'abc', :created_at => Date.today)
</pre>
<p>Which will return the posts that contain 'abc' in their title and created today.</p>
<p>By default SimplySearchable list will_paginate, you can still disable it:</p>
<pre>
  class Post < ActiveRecord::Base
    simply_searchable :will_paginate => false
  end
</pre>
<p>Or customize its settings:</p>
<pre>
  class Post < ActiveRecord::Base
    simply_searchable :per_page => 20
  end
</pre>
<p><del datetime="2008-11-10T11:07:14+00:00">In the new implementation there is no support for associations' filtering yet, it will come very soon though so stay tuned.</del> Association support has been implemented.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=JVdo339rWHk:FxWDgciuYRQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=JVdo339rWHk:FxWDgciuYRQ:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=JVdo339rWHk:FxWDgciuYRQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=JVdo339rWHk:FxWDgciuYRQ:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/JVdo339rWHk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2008/11/05/simplysearchable-plugin/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<media:content url="http://feedproxy.google.com/~r/RidaAlBarazi/~5/n1MaH0AumBg/" fileSize="738" type="application/xhtml+xml" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Update 1:Associations support has been implemented. Almost a year ago I released SimplySearchable plugin to help me implement the filtering options of restate.ae and during this year I&amp;#8217;ve been updating it regularly until it become something complete</itunes:subtitle><itunes:summary>Update 1:Associations support has been implemented. Almost a year ago I released SimplySearchable plugin to help me implement the filtering options of restate.ae and during this year I&amp;#8217;ve been updating it regularly until it become something completely different so I did a quick rewrite, moved all the logic to the model, moved the repository to github [...]</itunes:summary><itunes:keywords>Development, Plugins, Programming, Ruby on Rails</itunes:keywords><feedburner:origLink>http://www.ridaalbarazi.com/blog/2008/11/05/simplysearchable-plugin/</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/RidaAlBarazi/~5/n1MaH0AumBg/" length="738" type="application/xhtml+xml" /><feedburner:origEnclosureLink>http://ridaalbarazi.com/code/simply_searchable/</feedburner:origEnclosureLink></item>
		<item>
		<title>DemoCamp Dubai 3</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/TXf9r95f548/</link>
		<comments>http://www.ridaalbarazi.com/blog/2008/10/28/democamp-dubai-3/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 09:41:37 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/?p=153</guid>
		<description><![CDATA[
The third DemoCamp in Dubai, United Arab Emirates will take place at the Radisson SAS in Dubai Media City on October 28th at 7:30PM. We took a break after the second DemoCamp in Dubai for the slower summer months and for Ramandan; therefore, we are happy to announce that we were able to reserve the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://democampdubai.org/wp-content/themes/bluememories/images/logo.gif" alt="DemoCamp Dubai" class="rfloated"/></p>
<p>The third <a href="http://democampdubai.org">DemoCamp</a> in Dubai, United Arab Emirates will take place at the Radisson SAS in Dubai Media City on October 28th at 7:30PM. We took a break after the second DemoCamp in Dubai for the slower summer months and for Ramandan; therefore, we are happy to announce that we were able to reserve the same room as the last event and will keep the format the same. If you want to attend the event, feel free to come over and invite people you think might be interested in joining DemoCamp.</p>
<p>Here’s the list of the 4 demos for Dubai DemoCamp 3:</p>
<ul>
<li><a href="http://www.jawaker.com/">Jawaker</a> &#8211; is a multi-player online gaming site that is dedicated to card games from the Arab world. Jawaker, which means the plural of “joker” in Arabic, is built using Merb.
</li>
<li><a href="http://www.twffaha.com/">Twffaha</a> &#8211; is an endeavor to promote recruiting women in the region. It is a job portal for women only.
</li>
<li><a href="http://untiny.me/">Untiny.me</a> &#8211; is a new service that given shortened URL, expands it to retrieve the original web address behind it.
</li>
<li><a href="http://industrialsdirectory.com/">industrials Directory</a> &#8211; is an industrial search engine and locator that provides one source for finding the exact product, service, or supplier and locate them.</li>
</ul>
<p>The format will be the same as the first two events, the presenters will give a 10 minutes &#8211; with 5 minutes for Q&#038;A &#8211; presentation about their work, and will be available to answer any questions, receive feedback and share some thoughts after the event.</p>
<p>DemoCamp Dubai 3 is again organized by <a href="http://argaam.com">Argaam</a> and <a href="http://spinbits.com">SpinBits</a>. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=TXf9r95f548:zVgpec9Vg6w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=TXf9r95f548:zVgpec9Vg6w:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=TXf9r95f548:zVgpec9Vg6w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=TXf9r95f548:zVgpec9Vg6w:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/TXf9r95f548" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2008/10/28/democamp-dubai-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2008/10/28/democamp-dubai-3/</feedburner:origLink></item>
		<item>
		<title>ArabicHelper Plugin</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/-rYu1mUfdPM/</link>
		<comments>http://www.ridaalbarazi.com/blog/2008/10/12/arabic-helper-ruby-on-rails/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 14:57:01 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/?p=151</guid>
		<description><![CDATA[After working on several Ruby on Rails projects in Arabic lately I ended up repeating some functionality to support Arabic localization, specially on the Model and View levels so I decided to create a plugin for that, and I called it ArabicHelper.
I&#8217;ve been also following the updates in rails-I18n and did some work on the [...]]]></description>
			<content:encoded><![CDATA[<p>After working on several Ruby on Rails projects in Arabic lately I ended up repeating some functionality to support Arabic localization, specially on the Model and View levels so I decided to create a plugin for that, and I called it ArabicHelper.</p>
<p>I&#8217;ve been also following the updates in <a href="http://github.com/svenfuchs/rails-i18n/tree/master">rails-I18n</a> and did some work on the Arabic locale file, you can find it <a href="http://github.com/rbarazi/rails-i18n/tree/master">here</a>. You can simply use it if you are on Rails 2.2 or Rails Edge, or if you are not then use ArabicHelper.</p>
<h3>ArabicHelper</h3>
<p>A plugin to help you localize your Rails app to Arabic, this include few useful helpers and ActiveRecord localization</p>
<p>Arabic Helper consists of two parts, model extension and views helper methods. Model extension is to help you have Arabic error messages and attributes names in your model. Helper methods are made to support, pluralizing, country names and time distance in Arabic.</p>
<h4>Example</h4>
<p>Model extension:</p>
<pre>
  class Post
    has_arabic_attributes :body    => 'النص',
                          :user_id => 'الكاتب'
  end
</pre>
<p>View/Controller</p>
<pre>
  @post = Post.first
  @post.arabic_full_messages
</pre>
<p>Available helpers:</p>
<pre>
  arabic_country_options_for_select
  arabic_time_ago_in_words(from_time, include_seconds = false)
  arabic_distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
  arabic_pluralize(number, singular, double, plural, gender_class='male')
</pre>
<p>Install the plugin:</p>
<pre>
./script/plugin install git://github.com/rbarazi/arabic_helper.git
</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=-rYu1mUfdPM:0LiD5c4MF0E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=-rYu1mUfdPM:0LiD5c4MF0E:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=-rYu1mUfdPM:0LiD5c4MF0E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=-rYu1mUfdPM:0LiD5c4MF0E:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/-rYu1mUfdPM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2008/10/12/arabic-helper-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2008/10/12/arabic-helper-ruby-on-rails/</feedburner:origLink></item>
		<item>
		<title>Late updates</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/AyDdLy7hpQk/</link>
		<comments>http://www.ridaalbarazi.com/blog/2008/05/25/late-updates/#comments</comments>
		<pubDate>Sat, 24 May 2008 21:59:12 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/?p=149</guid>
		<description><![CDATA[Here are some late updates of things I&#8217;ve been up to in the past three months since my last blog post:

I released a Rails plugin named SimplySearchable, never got the chance to blog about it yet and still hoping to get the time to release a new version.
I had the chance this year to present [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some late updates of things I&#8217;ve been up to in the past three months since my last blog post:</p>
<ul>
<li>I released a Rails plugin named <a href="http://code.spinbits.com/simply_searchable.html">SimplySearchable</a>, never got the chance to blog about it yet and still hoping to get the time to release a new version.</li>
<li>I had the chance this year to present at <a href="http://rupy.eu">RuPy</a>, I did a 2 hours live hacking session demonstrating Rails agility in <strong>&#8220;Is Rails as agile as advertised?&#8221;</strong>.</li>
<li>In the same trip to RuPy I visited Berlin for one day and took 4 days vacation in Prague after the conference. I had great times and took <a href="http://www.flickr.com/photos/rida/sets/72157604634074009/">lots of photos</a> there.</li>
<li>Our startup <a href="http://www.spinbits.com">SpinBits</a> grew to be 6 people now, the team is becoming more complete with the join of great talented people.</li>
<li>A couple of weeks ago we started a web related podcast named <a href="http://www.spinbits.com/2008/5/15/the-spin-show-episode-1">SpinShow</a>, you can listen to the first episode <a href="http://odeo.com/show/19197853/">here</a>. The second episode will hopefully be up in the next couple of days.</li>
<li>In March we (in SpinBits) organized the first <a href="http://democampdubai.org/">DemoCamp Dubai</a>, one of the <a href="http://democampdubai.org/?p=7">great 4 demos</a> presented was an online video platform we built called SliceJar. The event was successful so we&#8217;re organizing <a href="http://democampdubai.org/?p=8">DemoCamp Dubai 2</a> now which will be on next Tuesday 29th of May, you are welcome to join us.</li>
<li>The same <a href="http://www.slicejar.com/">SliceJar</a> presented in DemoCamp Dubai 1 is now beta launched. <a href="http://www.slicejar.com/#tryout">Sign up</a> now for beta account if interested.</li>
<li>Currently I&#8217;m reading more on <a href="http://git.or.cz/">Git</a> and <a href="http://rspec.info/">RSpec</a> to use them in the projects I&#8217;m working on.</li>
</ul>
<p>That&#8217;s all for now and I hope the next post won&#8217;t be after another 3 months :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=AyDdLy7hpQk:xXVvpFkqbcE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=AyDdLy7hpQk:xXVvpFkqbcE:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=AyDdLy7hpQk:xXVvpFkqbcE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=AyDdLy7hpQk:xXVvpFkqbcE:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/AyDdLy7hpQk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2008/05/25/late-updates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2008/05/25/late-updates/</feedburner:origLink></item>
		<item>
		<title>restate.ae case study at EIG</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/1IAApzRw-QU/</link>
		<comments>http://www.ridaalbarazi.com/blog/2008/02/07/restateae-case-study-at-eig/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 08:25:09 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[SpinBits]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/2008/02/07/restateae-case-study-at-eig/</guid>
		<description><![CDATA[
Thanks to Abdullah Al Muheiri (aka serdal), I will have the chance to give a talk case studying restate.ae today at the Emirates Internet Group.
I know it&#8217;s a bit late to announce the talk, but my fault was in not announcing it unless restate.ae new design is up; well, the new design implementation took longer [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ridaalbarazi.com/blog/wp-content/uploads/2008/02/restate_new_design_normal.png" rel="lightbox" title="restate.ae new design"><img src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2008/02/restate_new_design_thumb.png" class="rfloated" width="186" height="200" alt="restate.ae new design" /></a></p>
<p>Thanks to <a href="http://serdal.com">Abdullah Al Muheiri</a> (aka serdal), I will have the chance to give a talk <strong>case studying <a href="http://restate.ae">restate.ae</a></strong> today at the <a href="http://www.isoc.ae">Emirates Internet Group</a>.</p>
<p>I know it&#8217;s a bit late to announce the talk, but my fault was in not announcing it unless <em>restate.ae new design is up</em>; well, the new design implementation took longer than anticipated and here I am announcing the talk on the same day. I should have avoided false dependencies, announced the talk a week ago and posted again announcing restate.ae new design today.</p>
<p><img class="rfloated" src="http://www.isoc.ae/style_images/10eig.jpg" alt="EIG" /></p>
<p>The talk will be in Arabic and it will take place in <a href="http://www.kv.ae/">Knowledge Village</a> in Dubai around 07:30PM, Conference Room 2. Abdulla will start with his talk <strong>5 ideas from Web2.0</strong> where he will share some of his ideas on how to get the most out of Web2.0 great web apps.</p>
<p>More about the event can be found on <a href="http://www.isoc.ae/news.php?show=1&#038;id=72">EIG website</a>, see you around..</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=1IAApzRw-QU:NIh38Ojfow0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=1IAApzRw-QU:NIh38Ojfow0:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=1IAApzRw-QU:NIh38Ojfow0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=1IAApzRw-QU:NIh38Ojfow0:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/1IAApzRw-QU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2008/02/07/restateae-case-study-at-eig/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2008/02/07/restateae-case-study-at-eig/</feedburner:origLink></item>
		<item>
		<title>Haml syntax highlighting in TextMate</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/gTWieQl9Svs/</link>
		<comments>http://www.ridaalbarazi.com/blog/2007/12/28/haml-syntax-highlighting-in-textmate/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 17:11:17 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/2007/12/28/haml-syntax-highlighting-in-textmate/</guid>
		<description><![CDATA[I&#8217;ve been using Haml in every project I&#8217;ve been working on in the last couple of months. I really encourage every Rails developer to start using it because it really makes your life easier and keep you away from the ugly erb code.
Of course if you are using Textmate, you will immediatly ask for a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://haml.hamptoncatlin.com/">Haml</a> in every project I&#8217;ve been working on in the last couple of months. I really encourage every Rails developer to start using it because it really makes your life easier and keep you away from the ugly erb code.</p>
<p>Of course if you are using <a href="http://macromates.com/">Textmate</a>, you will immediatly ask for a <a href="http://macromates.com/svn/Bundles/trunk/Bundles/Ruby%20Haml.tmbundle/">syntax highlighting bundle</a>. Here&#8217;s how we get it installed (Installing Textmate bundles is explained in more details in <a href="http://macromates.com/textmate/manual/bundles">Textmate manual</a>.</p>
<ul>
<li>Let&#8217;s create the textmate bundle directory in case it&#8217;s not already there:
<pre>mkdir -p /Library/Application\ Support/TextMate/Bundles</pre>
<p>Or you can create it in your own Library folder:</p>
<pre>mkdir -p ~/Library/Application\ Support/TextMate/Bundles</pre>
</li>
<li>Now <em>cd</em> to the previously created directoy
<pre>cd /Library/Application Support/TextMate/Bundles</pre>
</li>
<li>Checkout the code from the repository:
<pre>svn co http://macromates.com/svn/Bundles/trunk/Bundles/Ruby%20Haml.tmbundle/</pre>
</li>
<li>In case you have Textmate open, run the following the command to reload bundles:
<pre>osascript -e 'tell app "TextMate" to reload bundles'</pre>
</li>
</ul>
<p>Here are all the commands together:</p>
<pre class="bash">mkdir -p /Library/Application\\ Support/TextMate/Bundles
<span style="color: #000066;">cd</span> /Library/Application\\ Support/TextMate/Bundles
svn co http://macromates.com/svn/Bundles/trunk/Bundles/Ruby%20Haml.tmbundle/
osascript -e <span style="color: #ff0000;">'tell app &quot;TextMate&quot; to reload bundles'</span></pre>
<p>The bundle does not include any Snippet Syntax, Macros or Commands shortcuts, I think syntax highlighting is good enough for now :)</p>
<p>For more: </p>
<ul>
<li><a href="http://groups.google.com/group/haml/web/syntax-highlighting">Haml Syntax Highlighting page</a> in the <a href="http://groups.google.com/group/haml/">Haml google group</a>.</li>
<li><a href="http://sporkmonger.com/">Bob Aman</a> has also created another Textmate bundle, you can find it on <a href="http://sporkmonger.com/2007/12/24/sass-textmate-bundle">his blog</a>.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=gTWieQl9Svs:vnb9-QiiSvg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=gTWieQl9Svs:vnb9-QiiSvg:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=gTWieQl9Svs:vnb9-QiiSvg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=gTWieQl9Svs:vnb9-QiiSvg:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/gTWieQl9Svs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2007/12/28/haml-syntax-highlighting-in-textmate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2007/12/28/haml-syntax-highlighting-in-textmate/</feedburner:origLink></item>
		<item>
		<title>Beginning Rails</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/cIye_0qFSUE/</link>
		<comments>http://www.ridaalbarazi.com/blog/2007/07/28/beginning-rails/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 22:52:27 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/2007/07/28/beginning-rails/</guid>
		<description><![CDATA[Few days ago Cloves Carneiro Jr. my partner and co-founder in SpinBits got his first book out, . It’s a Rails book, published by Apress and co-authored with Jeffrey Allan Hardy, the man behind Quoted Printable, and Hampton Catlin the one behind HAML the famous templating engine for Rails..
If you follow Ruby and Rails blogs [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image140"  class="rfloated" src="http://www.ridaalbarazi.com/blog/wp-content/uploads/2007/07/beginning_rails.png" alt="Beginning Rails" />Few days ago <a href="http://ccjr.name" target="_blank" title="Link outside of this blog">Cloves Carneiro Jr.</a> my partner and co-founder in <a href="http://spinbits.com">SpinBits</a> got his first book out, . It’s a Rails book, published by <a href="http://apress.com" target="_blank" class="blines3" title="Link outside of this blog">Apress</a> and co-authored with Jeffrey Allan Hardy, the man behind <a href="http://quotedprintable.com" target="_blank" class="blines3" title="Link outside of this blog">Quoted Printable</a>, and Hampton Catlin the one behind <a href="http://haml.hamptoncatlin.com" target="_blank" class="blines3" title="Link outside of this blog">HAML</a> the famous templating engine for Rails..</p>
<p>If you follow Ruby and Rails blogs you may have heard about the little buzz around the book and <a  target="_blank" href="http://www.loudthinking.com/">David Heinemeier Hansson</a> &#8220;politly resisting&#8221; permission to use the logo on the book. You can find more about this on <a href="http://www.rubyinside.com/david-heinemeier-hansson-says-no-to-use-of-rails-logo-567.html">RubyInside</a> and <a  target="_blank" href="http://rethink.unspace.ca/2007/7/23/beginning-rails-from-novice-to-professional">Rethink</a>.</p>
<p>I&#8217;m waiting to receive my copy next week, I&#8217;m sure it&#8217;s going to be a good read specially seeing all the time and effort Cloves invested in authoring it. Don&#8217;t forget to <a  target="_blank" href="http://amazon.com/o/ASIN/1590596862/ref=s9_asin_title_1-1966_g1/103-6802509-9226255?pf_rd_m=ATVPDKIKX0DER&#038;pf_rd_s=center-1&#038;pf_rd_r=1SMFYK90NJDQS90XJAS2&#038;pf_rd_t=101&#038;pf_rd_p=278240701&#038;pf_rd_i=507846">get yours</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=cIye_0qFSUE:0ktC9jDiLDM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=cIye_0qFSUE:0ktC9jDiLDM:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=cIye_0qFSUE:0ktC9jDiLDM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=cIye_0qFSUE:0ktC9jDiLDM:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/cIye_0qFSUE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2007/07/28/beginning-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2007/07/28/beginning-rails/</feedburner:origLink></item>
		<item>
		<title>Ruby on Rails UAE Meetup in Dubai</title>
		<link>http://feedproxy.google.com/~r/RidaAlBarazi/~3/dMXyvm85D58/</link>
		<comments>http://www.ridaalbarazi.com/blog/2007/06/24/ruby-on-rails-uae-meetup-in-dubai/#comments</comments>
		<pubDate>Sun, 24 Jun 2007 16:54:32 +0000</pubDate>
		<dc:creator>Rida</dc:creator>
				<category><![CDATA[Dubai]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.ridaalbarazi.com/blog/2007/06/24/ruby-on-rails-uae-meetup-in-dubai/</guid>
		<description><![CDATA[
It is always exciting to see more of Ruby and Rails here in the Middle East and specifically in Dubai, UAE. Since our first (and only) RailsUAE meetup six months ago we didn&#8217;t have much activities, but now with the Google Group and its active members, we start having more discussions and what&#8217;s more important [...]]]></description>
			<content:encoded><![CDATA[<p><img class="rfloated" src="http://www.ridaalbarazi.com/images/ruby_on_rails.png" alt="Ruby on Rails Logo" /><br />
It is always exciting to see more of Ruby and Rails here in the Middle East and specifically in Dubai, UAE. Since our first (and only) <a href="http://spinbits.com/rails" title="Ruby on Rails UAE Group">RailsUAE meetup</a> six months ago we didn&#8217;t have much activities, but now with the <a href="http://groups.google.com/group/rails-uae/">Google Group</a> and its active members, we start having more discussions and what&#8217;s more important we&#8217;ll start meeting again.</p>
<p>Next Tuesday, June 26th 2007 we&#8217;ll meet at <a href="http://www.emaar.com/Developments/DubaiMarina/marina_towers/">Dubai Marina Towers</a> Walk, in Hakawati cafe starting at 8:00PM, so if you are a Rubyist, a Railer or just interested in Ruby or Rails, stop by and join us, the more we are, the more fun it&#8217;s going to be.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=dMXyvm85D58:Ne11arKw7T0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:I2FUP0JpNAM"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=dMXyvm85D58:Ne11arKw7T0:I2FUP0JpNAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?i=dMXyvm85D58:Ne11arKw7T0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RidaAlBarazi?a=dMXyvm85D58:Ne11arKw7T0:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/RidaAlBarazi?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RidaAlBarazi/~4/dMXyvm85D58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ridaalbarazi.com/blog/2007/06/24/ruby-on-rails-uae-meetup-in-dubai/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.ridaalbarazi.com/blog/2007/06/24/ruby-on-rails-uae-meetup-in-dubai/</feedburner:origLink></item>
	<media:rating>nonadult</media:rating></channel>
</rss>
