<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4589307405090131665</id><updated>2010-03-09T20:20:50.426Z</updated><title type='text'>Sivarg</title><subtitle type='html'>You know what really grinds my gears ?</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.sivarg.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sivarg</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-4780057026374408254</id><published>2009-07-31T23:10:00.002+01:00</published><updated>2009-07-31T23:18:18.654+01:00</updated><title type='text'>Services avaible on Woopets.com</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1t_XTQl7t8w/SnNtosgGJRI/AAAAAAAADm4/0jltmZP977c/s1600-h/woopets-services.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 243px;" src="http://2.bp.blogspot.com/_1t_XTQl7t8w/SnNtosgGJRI/AAAAAAAADm4/0jltmZP977c/s320/woopets-services.png" alt="" id="BLOGGER_PHOTO_ID_5364752127036368146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Please feel free to find and add &lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;veterinarians, associations, clubs and more on http://www.woopets.com/services&lt;br /&gt;&lt;br /&gt;Services are using mostly google &lt;a href="http://geokit.rubyforge.org/"&gt;geokit&lt;/a&gt; to manage proximity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-4780057026374408254?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/4780057026374408254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=4780057026374408254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4780057026374408254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4780057026374408254'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/07/services-avaible-on-woopetscom.html' title='Services avaible on Woopets.com'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1t_XTQl7t8w/SnNtosgGJRI/AAAAAAAADm4/0jltmZP977c/s72-c/woopets-services.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-7450569640983767060</id><published>2009-07-30T14:32:00.002+01:00</published><updated>2009-07-30T14:37:46.867+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='raid'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='mpt-status'/><title type='text'>Disable mpt-status "detected non-optimal RAID status" log messages</title><content type='html'>I'm using mpt-statusd on a debian lenny server to monitor raid Status.&lt;br /&gt;However the status of raid is OPTIMAL :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;$ sudo mpt-status -i 4&lt;br /&gt;ioc0 vol_id 4 type IM, 2 phy, 698 GB, state OPTIMAL, flags ENABLED&lt;br /&gt;ioc0 phy 1 scsi_id 6 ATA      Hitachi HDS72107 AB0A, 698 GB, state ONLINE, flags NONE&lt;br /&gt;ioc0 phy 0 scsi_id 5 ATA      Hitachi HDS72107 AB0A, 698 GB, state ONLINE, flags NONE&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;I keep having messages in syslog &lt;span style="font-style: italic;"&gt;"detected non-optimal RAID status" &lt;/span&gt;(and sent by mail by logcheck...).&lt;br /&gt;&lt;br /&gt;Here's a patch to fix /etc/init.d/mpt-statusd (has been submitted to Debian tracker already) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;--- mpt-statusd    2009-07-30 11:35:21.000000000 +0200&lt;br /&gt;+++ /etc/init.d/mpt-statusd    2009-07-30 11:14:09.000000000 +0200&lt;br /&gt;@@ -55,11 +55,12 @@&lt;br /&gt;         # Check ever $PERIOD seconds, send email on every status&lt;br /&gt;         # change and repeat ever $REMIND seconds if the raid is still&lt;br /&gt;         # bad.&lt;br /&gt;-        if (mpt-status -i $ID) |grep -q 'state OPTIMAL' ; then&lt;br /&gt;+        if (/usr/sbin/mpt-status -i $ID) |grep -q 'state OPTIMAL' ; then&lt;br /&gt;             BADRAID=false&lt;br /&gt;         else&lt;br /&gt;             BADRAID=true&lt;br /&gt;-            logger -t mpt-statusd "detected non-optimal RAID status"&lt;br /&gt;+        OUTPUT=$(/usr/sbin/mpt-status -i $ID)&lt;br /&gt;+            logger -t mpt-statusd "detected non-optimal RAID status ($OUTPUT)"&lt;br /&gt;         fi&lt;br /&gt;         STATUSCHANGE=false&lt;br /&gt;         if [ true = "$BADRAID" ] ; then&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Restart the service, and remember to create&lt;span style="font-style: italic;"&gt; /etc/default/mtp-statusd&lt;/span&gt; to specify your SCSI ID if needed (mine has &lt;span style="font-weight: bold;"&gt;ID=4&lt;/span&gt; setted)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-7450569640983767060?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/7450569640983767060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=7450569640983767060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/7450569640983767060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/7450569640983767060'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/07/disable-mpt-status-detected-non-optimal.html' title='Disable mpt-status &quot;detected non-optimal RAID status&quot; log messages'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-818142297173393602</id><published>2009-07-30T14:06:00.005+01:00</published><updated>2009-08-05T15:26:53.359+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cucumber'/><category scheme='http://www.blogger.com/atom/ns#' term='authlogic'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><title type='text'>Using Authlogic with Cucumber</title><content type='html'>[UPDATE] : Unfortunately, I have really odd results with this method. I'll post the right method when I find it ! Sorry !&lt;br /&gt;&lt;br /&gt;Recently, I decided to give a chance to &lt;a href="http://rdoc.info/projects/binarylogic/authlogic"&gt;Authlogic&lt;/a&gt;. Authlogic is a very powerful auth framework. I must admin I miss the simplicity of &lt;a href="http://github.com/thoughtbot/clearance/tree/master"&gt;Clearance&lt;/a&gt;, but nevermind.&lt;br /&gt;&lt;br /&gt;Authlogic has a lot of doc, including for testing. Anyway, the testing doc is only about Test::Unit, and I mostly use cucumber + shoulda currently.&lt;br /&gt;&lt;br /&gt;If you want to test authlogic with cucumber, just add to your step file (&lt;span style="font-style: italic;"&gt;features/steps/authentication_steps.rb &lt;/span&gt;in my case) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;Before do&lt;br /&gt;include Authlogic::TestCase&lt;br /&gt;activate_authlogic&lt;br /&gt;end   &lt;/span&gt;&lt;/blockquote&gt;And that's all !&lt;br /&gt;&lt;br /&gt;Now, you can write a step like :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;Given /^I am a signed in user$/ do&lt;br /&gt;@user = Factory(:user) # or use fixtures, mocks, whatever !&lt;br /&gt;assert @user_session = UserSession.create(@user)&lt;br /&gt;assert_equal controller.session["user_credentials"], @user.persistence_token&lt;br /&gt;end&lt;/span&gt;&lt;/blockquote&gt;and that's ALL. Don't require anything, config.gem is already loading everything for you.&lt;br /&gt;&lt;br /&gt;Can't understand why this simple wasn't on the net before :)&lt;br /&gt;&lt;br /&gt;Happy testing !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-818142297173393602?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/818142297173393602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=818142297173393602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/818142297173393602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/818142297173393602'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/07/using-authlogic-with-cucumber.html' title='Using Authlogic with Cucumber'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-8587397757255256592</id><published>2009-05-13T15:13:00.002+01:00</published><updated>2009-05-13T15:17:30.327+01:00</updated><title type='text'>Display RAILS_ENV in rails console</title><content type='html'>This post is related to this&lt;a href="https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/2641-display-rails_env-in-scriptconsole"&gt; lighthouse ticket&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you want to have some clue about the current RAILS_ENV (because you need some sleep, or like me you have several terminal instances, with severals rails consoles), just add this to your &lt;span style="font-style: italic;"&gt;~/.irbrc&lt;/span&gt; file :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;# Prompts&lt;br /&gt;IRB.conf[:PROMPT][:CUSTOM] = {&lt;br /&gt; :PROMPT_N =&gt; "[#{ENV["RAILS_ENV"].capitalize}]&gt;&gt; ",&lt;br /&gt; :PROMPT_I =&gt; "[#{ENV["RAILS_ENV"].capitalize}]&gt;&gt; ",&lt;br /&gt; :PROMPT_S =&gt; nil,&lt;br /&gt; :PROMPT_C =&gt; "?&gt; ",&lt;br /&gt; :RETURN =&gt; "=&gt; %s\n"&lt;br /&gt;}  &lt;br /&gt;&lt;br /&gt;# Set default prompt&lt;br /&gt;IRB.conf[:PROMPT_MODE] = :CUSTOM&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;You will end with a console like mine :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;[Development]&gt;&gt; 1+1&lt;br /&gt;=&gt; 2&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Enjoy !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-8587397757255256592?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/8587397757255256592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=8587397757255256592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/8587397757255256592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/8587397757255256592'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/05/display-railsenv-in-rails-console.html' title='Display RAILS_ENV in rails console'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-3919448824097151869</id><published>2009-03-05T10:22:00.004Z</published><updated>2009-03-05T10:44:46.317Z</updated><title type='text'>Shoulda 2.10.0 and should_respond_to_xml</title><content type='html'>Yesterday, after upgrading Shoulda to 2.10.0, I had the bad surprise of having undefined methods for my tests. Especially, should_respond_to_xml has purely disappear from the macros.&lt;br /&gt;&lt;br /&gt;If, like me, you don't want to change your tests (because they make sense, of course), simple create a file in RAILS_ROOT/test/shoulda_macros and put this gist into it : &lt;a href="http://gist.github.com/74287"&gt;http://gist.github.com/74287&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-3919448824097151869?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/3919448824097151869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=3919448824097151869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/3919448824097151869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/3919448824097151869'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/03/shoulda-2100-and-shouldrespondtoxml.html' title='Shoulda 2.10.0 and should_respond_to_xml'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-1375276818700298098</id><published>2009-03-04T19:59:00.003Z</published><updated>2009-03-04T20:04:55.598Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='color'/><title type='text'>Let's color Git</title><content type='html'>A must-have if you're using git, and especially through command line, put this in your &lt;span style="font-style: italic;"&gt;~/.gitconfig :&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;[color]&lt;br /&gt;   diff = auto&lt;br /&gt;   status = auto&lt;br /&gt;   branch = auto&lt;br /&gt;&lt;/pre&gt;This will put some (very) useful colors in diffs, status, and branches.&lt;br /&gt;This is particulary useful when using &lt;span style="font-weight: bold;"&gt;git status&lt;/span&gt;,&lt;span style="font-weight: bold;"&gt; git log -p&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;git diff&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-1375276818700298098?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/1375276818700298098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=1375276818700298098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/1375276818700298098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/1375276818700298098'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/03/lets-color-git.html' title='Let&apos;s color Git'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-6920859139087088797</id><published>2009-01-22T10:52:00.002Z</published><updated>2009-01-22T10:55:24.601Z</updated><title type='text'>Upgrading clearance to 0.4.X</title><content type='html'>If you were using clearance 0.3.X and want to upgrade to 0.4.X, the generator should help a little. Nevertheless, you should use this migration instead :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class CreateOrUpdateUsersWithClearanceColumns &lt; ActiveRecord::Migration&lt;br /&gt;  def self.up&lt;br /&gt;    change_table(:users) do |t|&lt;br /&gt;      t.rename :crypted_password, :encrypted_password&lt;br /&gt;      t.rename :confirmed, :email_confirmed&lt;br /&gt;    end&lt;br /&gt;    remove_index :users, :name =&gt; "index_users_on_email_and_crypted_password"&lt;br /&gt;    add_index :users, [:email, :encrypted_password], :name =&gt; "index_users_on_email_and_encrypted_password"&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def self.down&lt;br /&gt;    change_table(:users) do |t|&lt;br /&gt;      t.rename :encrypted_password, :crypted_password&lt;br /&gt;      t.rename :email_confirmed, :confirmed&lt;br /&gt;    end&lt;br /&gt;    remove_index :users, :name =&gt; "index_users_on_email_and_encrypted_password"&lt;br /&gt;    add_index :users, [:email, :crypted_password], :name =&gt; "index_users_on_email_and_crypted_password"&lt;br /&gt;&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Be sure to rename all your &lt;i&gt;login*&lt;/i&gt; methods to the new &lt;i&gt;sign*&lt;/i&gt; naming convention.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-6920859139087088797?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/6920859139087088797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=6920859139087088797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/6920859139087088797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/6920859139087088797'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/01/upgrading-clearance-to-04x.html' title='Upgrading clearance to 0.4.X'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-5031435661067799007</id><published>2009-01-11T22:45:00.002Z</published><updated>2009-01-11T22:53:13.202Z</updated><title type='text'>Variable affectations in ruby</title><content type='html'>Something I would share today, since I've spend some time yesterday dealing with variables copies and references.&lt;br /&gt;&lt;br /&gt;Sounds pretty logical afterward, but it might save you some time :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt; a = {}&lt;br /&gt;=&gt; {}&lt;br /&gt;&gt;&gt; a["my_key"] = "value"&lt;br /&gt;=&gt; "value"&lt;br /&gt;&gt;&gt; a&lt;br /&gt;=&gt; {"my_key"=&gt;"value"}&lt;br /&gt;&gt;&gt; b = a&lt;br /&gt;=&gt; {"my_key"=&gt;"value"}&lt;br /&gt;&gt;&gt; b["my_key"] = "new_value"&lt;br /&gt;=&gt; "new_value"&lt;br /&gt;&gt;&gt; b&lt;br /&gt;=&gt; {"my_key"=&gt;"new_value"}&lt;br /&gt;&gt;&gt; a&lt;br /&gt;=&gt; {"my_key"=&gt;"new_value"}&lt;br /&gt;&gt;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This simple example demonstrates that affecting an existing Hash to a new variable will send the reference of the Hash, not a copy.&lt;br /&gt;Now, let's try the same with a basic float object :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt; a = 1.0&lt;br /&gt;=&gt; 1.0&lt;br /&gt;&gt;&gt; b = a&lt;br /&gt;=&gt; 1.0&lt;br /&gt;&gt;&gt; b= 2.0&lt;br /&gt;=&gt; 2.0&lt;br /&gt;&gt;&gt; a&lt;br /&gt;=&gt; 1.0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Logical, indeed. But if you're using Hashes and floats in a structure, like in the rails session object, do not forget this example !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-5031435661067799007?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/5031435661067799007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=5031435661067799007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/5031435661067799007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/5031435661067799007'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/01/variable-affectations-in-ruby.html' title='Variable affectations in ruby'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-7128971892083874854</id><published>2009-01-06T12:13:00.002Z</published><updated>2009-01-06T12:19:42.062Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='clearance'/><title type='text'>Clearance : coming from where your were</title><content type='html'>Clearance will save your current location if you try to access a restricted area, and will forward you to the same place after authentication. Nevertheless, if you put a "Login" link in your pages, your users will be redirected to "/", which is not always what we want. To avoid this, we will use a param to return where we want (this is usually in your app layout) :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;link_to t(:login), new_session_url(:return_to =&gt; request.request_uri)&lt;br /&gt;&lt;/pre&gt;Now we have a :return_to param with the correct URI, let's handle this in our session controller :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;before_filter :set_return_to, :only =&gt; :new&lt;br /&gt; &lt;br /&gt;  def set_return_to&lt;br /&gt;    session[:return_to] = params[:return_to] if params[:return_to]&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Clearance is using this session var to handle the returning URI.&lt;br /&gt;&lt;br /&gt;Now, if you're not on the home page, click on "login", enter your email / password, you will be redirected to the previous page, being identified.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-7128971892083874854?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/7128971892083874854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=7128971892083874854' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/7128971892083874854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/7128971892083874854'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/01/clearance-coming-from-where-your-were.html' title='Clearance : coming from where your were'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-497147959904189026</id><published>2009-01-06T12:02:00.004Z</published><updated>2009-01-06T12:13:21.801Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='clearance'/><title type='text'>Rails Authentication : Clearance</title><content type='html'>Some weeks ago, I was looking for a simple authentication system for rails, with minimal generators (so unlike &lt;a href="http://github.com/technoweenie/restful-authentication/tree/master"&gt;restful-authentication&lt;/a&gt;). I was just experiencing some new testing techniques, and was starting using &lt;a href="http://www.thoughtbot.com/projects/shoulda/"&gt;Shoulda&lt;/a&gt; and &lt;a href="http://www.thoughtbot.com/projects/factory_girl"&gt;Factory Girl&lt;/a&gt;. Thoughtbot did an amazing job there.&lt;br /&gt;Then, I was browsing github for some new auth system, and my eyes were attracted by "shoulda" and "factory girl" in the page. &lt;a href="http://www.thoughtbot.com/"&gt;Thoughtbot&lt;/a&gt; has released a (very) simple authentication system, with testing based on shoulda and factory girl. After some gem issues, the new 0.3.7 version is ready to be used. With authentication based on stategies (let's say a simple email/password strategy, or facebook connect), this could be the new killer feature for rails.&lt;br /&gt;&lt;br /&gt;I'll try to post some usage examples here, to help getting full advantage of the package.&lt;br /&gt;&lt;br /&gt;First, let's install the necessary package :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ sudo gem install thoughtbot-clearance -s http://gems.github.com&lt;br /&gt;&lt;/pre&gt;Then, you can simply follow instructions here :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/thoughtbot/clearance/tree/master"&gt;http://github.com/thoughtbot/clearance/tree/master&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-497147959904189026?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/497147959904189026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=497147959904189026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/497147959904189026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/497147959904189026'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2009/01/rails-authentication-clearance.html' title='Rails Authentication : Clearance'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-5244018278047243265</id><published>2008-09-17T09:15:00.003+01:00</published><updated>2009-07-09T08:41:33.077+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etch'/><category scheme='http://www.blogger.com/atom/ns#' term='logcheck'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='backup-manager'/><title type='text'>Logcheck regexp for backup-manager (debian etch)</title><content type='html'>If, like me, you're a big fan of logcheck, and you are using backup-manager to backup and upload your data on a distant server, you may have noticed that logcheck will warn you everyday about Info statements in the log files :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To remove info-level alerts regarding backup-manager, you can create a file &lt;blockquote&gt;/etc/logcheck/ignore.d.server/backup-manager &lt;/blockquote&gt;contening :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;^\w{3} [ :0-9]{11} [._[:alnum:]-]+ backup-manager(-purge|-upload)?\[[0-9]+\]: info[[:blank:]]*\*.*$&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This will filter all info-level output. If you want to filter also the warn entries (not recommended) :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;^\w{3} [ :0-9]{11} [._[:alnum:]-]+ backup-manager(-purge|-upload)?\[[0-9]+\]: (info|warn)[[:blank:]]*\*.*$&lt;/blockquote&gt;UPDATE FOR DEBIAN LENNY :&lt;br /&gt;&lt;br /&gt;Sounds like default loglevel is set to DEBUG, and I don't know where to change that, so let's ignore the line in logcheck :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;^\w{3} [ :0-9]{11} [._[:alnum:]-]+ backup-manager(-purge|-upload)?\[[0-9]+\]: (info|debug)[[:blank:]]*\*.*$&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Note : I prefer to remove alerts on these lines to remove the lines from the logs. In case of problem, I can check system.log for debug information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-5244018278047243265?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/5244018278047243265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=5244018278047243265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/5244018278047243265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/5244018278047243265'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2008/09/logcheck-regexp-for-backup-manager.html' title='Logcheck regexp for backup-manager (debian etch)'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-6014249387477744533</id><published>2008-03-26T09:13:00.002Z</published><updated>2008-03-26T09:19:05.581Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='jiwa'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Jiwa, good surprise</title><content type='html'>This morning I have discovered &lt;a href="http://www.jiwa.fm"&gt;Jiwa&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;"Jiwa.fm is an online music social network offering free unlimited and high quality music streaming. Users can listen to the music they like, create and share playlists, make recommendations and discuss between them." &lt;span style="font-style: italic;"&gt;(Jiwa website)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;They propose a very large range of bands and artists (from Mika to Bob Marley, and from Crystal Method to Rage Against the Machine). The sound is very clear and all songs are encoded in high quality (since songs are NOT provided by users). Especially, I appreciate the Jazz &lt;a href="http://www.jiwa.fm/en#p=radio"&gt;"Radio"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What a good competitor to &lt;a href="http://www.deezer.com"&gt;Deezer&lt;/a&gt; !&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-6014249387477744533?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/6014249387477744533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=6014249387477744533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/6014249387477744533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/6014249387477744533'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2008/03/jiwa-good-surprise.html' title='Jiwa, good surprise'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-4390925963937831013</id><published>2008-03-21T12:32:00.003Z</published><updated>2008-03-21T12:48:21.063Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel'/><category scheme='http://www.blogger.com/atom/ns#' term='modrails'/><title type='text'>What's missing in ruby on rails</title><content type='html'>I was thinking of this post since a few days, and I discover something today I'd like to share.&lt;br /&gt;&lt;br /&gt;I've started to use Ruby on Rails since a few months, and really love the language / framework. I can set up a working website a very few lines, without spending my time configuring and mapping . Nevertheless, when it comes to production websites, rails is very deceptive. Let me explain a standard installation (there are a &lt;a href="http://www.pragprog.com/titles/fr_deploy"&gt;lot of ways&lt;/a&gt; to do that) :&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;you put your files on the server, and &lt;a href="http://www.capify.org/"&gt;Capistrano&lt;/a&gt; is wonderful for that, and not only.&lt;/li&gt;&lt;li&gt;Install and configure some mongrel_cluster instances (yes, for good performances, you'll have to do that)&lt;/li&gt;&lt;li&gt;Install and configure a webserver such as nginx or apache2&lt;/li&gt;&lt;li&gt;Proxify all your mongrel instances using your webserver.&lt;/li&gt;&lt;/ol&gt;Sounds pretty simple ! It is, actually, once you already have done that before.&lt;br /&gt;&lt;br /&gt;My problem is more for hosting several sites on one server. Mongrel is eating a lot of memory, and you'll need to create at least as many instances as the number of sites. That means, if you have a single page site, just for info, you'll need to setup mongrel, and have an instance running and eating your memory. This is mainly because ruby / rails is not thread safe, and one Mongrel instance will handle one request at a time. What a shame.&lt;br /&gt;That also means you need to reserve memory for your site, even if you don't have visitor !&lt;br /&gt;&lt;br /&gt;Today I have discovered a new hope in my rails quest : &lt;a href="http://modrails.com/"&gt;http://modrails.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Modrails is a new module for apache2, acting like mod_php or mod_perl. That means =&gt; EXIT MONGREL ! Now you can host a lot a mini rails websites, just by running a single apache2.&lt;br /&gt;If this module goes out in stable version soon, this will allow (at last !) hosters to provide some performant and scalable mutualized environments for customers.&lt;br /&gt;&lt;br /&gt;As far as I know, the module is slightly more performant than mongrel, but I more care about memory usage. I'll try to post a performance comparison post soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-4390925963937831013?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/4390925963937831013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=4390925963937831013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4390925963937831013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4390925963937831013'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2008/03/whats-missing-in-ruby-on-rails.html' title='What&apos;s missing in ruby on rails'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-2417613625088088589</id><published>2008-02-19T08:40:00.003Z</published><updated>2008-02-19T08:44:18.591Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mail.app'/><title type='text'>Mail.app is driving me crazy !</title><content type='html'>I've been using Mail.app for more than 3 years now. I've always considered the product as "correct", and since it's the only decent mail client to use Addressbook (and therefore .mac), I don't have much choice.&lt;div&gt;Nevertheless, since my upgrade to leopard, this damn client has become more than instable, crashing several times per day (in a professional usage). So sad, Microsoft outlook is crapy, but don't crash that often. &lt;/div&gt;&lt;div&gt;I have no plugin or bundle installed in mail.app, I'm just using the vanilla version. I must also mention I have 4 mail accounts, one is more than 3GB (I like to keep my last 2 years mails).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Can't wait for thunderbird 3, which is supposed to handle the addressbook.app integration.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-2417613625088088589?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/2417613625088088589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=2417613625088088589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/2417613625088088589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/2417613625088088589'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2008/02/mailapp-is-driving-me-crazy.html' title='Mail.app is driving me crazy !'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-5044281450301578198</id><published>2007-05-25T03:33:00.001+01:00</published><updated>2007-05-26T18:32:14.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mighy mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Mighty Mouse dead</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://images.apple.com/fr/mightymouse/images/indexmousebacklarge20060726.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://images.apple.com/fr/mightymouse/images/indexmousebacklarge20060726.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Here it comes again, my mighty mouse is dying slowly. Again and again, the scrollwheel refuses to scroll down or up. I've found a simple solution, using some kind of "Mr Clean" &lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;, and a  dry tissue.&lt;br /&gt;Unfortunately, I  have not wait enough, and the scrollwheel won't work at all now. The mouse is doing a stange noice, and sometimes even some buttons are not working.&lt;br /&gt;&lt;br /&gt;This mouse is great, and especially the idea of the ball scrollwheel. Anyway, Apple should have designed a bigger ball, and more important, a cleaning system. At least something to open easily the mouse is necessary, since it's almost impossible with the current without breaking something.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Idea of the day :&lt;/span&gt; Easy opening system to be able to clean the ball.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-5044281450301578198?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/5044281450301578198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=5044281450301578198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/5044281450301578198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/5044281450301578198'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2007/05/mighty-mouse-dead.html' title='Mighty Mouse dead'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-4643815289128451180</id><published>2007-05-17T22:49:00.000+01:00</published><updated>2007-05-17T23:20:29.917+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='transcoding'/><category scheme='http://www.blogger.com/atom/ns#' term='3gp'/><category scheme='http://www.blogger.com/atom/ns#' term='quicktime'/><category scheme='http://www.blogger.com/atom/ns#' term='qt_tools'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Hinted 3GP files with Quicktime</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;A lot of tools exist over the Internet to transcode &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;video files. A few of them are usable using a CLI (&lt;span style="font-style: italic;"&gt;Command Line Interface&lt;/span&gt;), and fewer are available for free. I've tested the most common ones, like &lt;a href="http://ffmpeg.mplayerhq.hu/"&gt;ffmpeg&lt;/a&gt;, &lt;a href="http://www.videolan.org/"&gt;VLC&lt;/a&gt; (using again ffmpeg for encoding), or &lt;a href="http://www.mplayerhq.hu/design7/news.html"&gt;mencoder&lt;/a&gt;.&lt;br /&gt;Those (free) (and opensource) tools, are a little hard to use for beginners, and they don't provide any hinting feature, necessary for streaming using &lt;a href="http://www.apple.com/quicktime/streamingserver/"&gt;QTSS&lt;/a&gt; or &lt;a href="http://developer.apple.com/opensource/server/streaming/index.html"&gt;DSS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Install qt_tools :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;qt_tools is a set of perl scripts available for free. Those tools let access to quicktime functionalities, even those available only with QT pro, without having the licence.&lt;br /&gt;&lt;br /&gt;qt_tools can be found &lt;a href="http://www.omino.com/sw/qt_tools/"&gt;here&lt;/a&gt;. I've installed the tools into the default location : /usr/local&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Transcode video files :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is an example of the usage of qt_tools. We are using the tool qt_export to transcode the file into a 3gp format:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ /usr/local/bin/qt_export --video=mp4v,12.5,80,16 --audio=samr,8000,8,1 --datarate=18 --exporter=3gpp --replacefile original-movie.mov new-movie.amr.mpg4.3gp&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Please refer to the manual of qt_export for more information.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;Hinting :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The hinting part can be done using several (opensource again) tools, like MP4Box (from the &lt;a href="http://gpac.sourceforge.net/"&gt;GPAC&lt;/a&gt; project), or mp4creator (from the &lt;a href="http://mpeg4ip.sourceforge.net/docs/"&gt;MPEG4IP&lt;/a&gt; project). Again those tools must be compiled most of the time by hand, meaning hard maintenance and upgrades.&lt;br /&gt;&lt;br /&gt;Let's use some tools available with Mac OS X server (only !) : qtref and qtmedia :&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ qtref -t new-movie new-movie.amr.mpg4.3gp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have now a .qtl file :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cat new-movie.qtl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;embed src="new-movie.amr.mpg4.3gp"&gt;&lt;/embed&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now let's use qtmedia to hint the file :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$/usr/bin/qtmedia -h new-movie.qtl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;kCGErrorRangeCheck : Window Server communications from outside of session allowed for root and console user only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;-File- "/Library/QuickTimeStreaming/Movies/new-movie.qtl"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;-Processing-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        -Hinting movie...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        +Hinting completed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;-Info-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        Hinted: Yes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        Ref Movie: No&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        Size: 176.00 x 144.00&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        Duration: 119.00 seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        DataRate: 22893.74 bytes/secs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        BitRate: 171916 bits/secs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;        No user data.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't worry about the warning, it's just a warning, and will go if you run the command as root...&lt;br /&gt;&lt;br /&gt;Now you can test the movie using quicktime or your mobile by putting the new file into QTSS folder :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ mv new-movie.qtl /Library/QuicktimeStreaming/Movies/new-movie.3gp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(note that the qtl file is now the hinted movie !)&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Of course, the purpose of all of this is to be able to automate the process using a shell script, or Automator.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-4643815289128451180?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/4643815289128451180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=4643815289128451180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4643815289128451180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4643815289128451180'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2007/05/hinted-3gp-files-with-quicktime.html' title='Hinted 3GP files with Quicktime'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-1475420164531812098</id><published>2007-05-16T19:59:00.000+01:00</published><updated>2008-12-09T23:35:15.457Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xserve'/><category scheme='http://www.blogger.com/atom/ns#' term='hdd'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>xserve HDD</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_1t_XTQl7t8w/RktmcDHlpLI/AAAAAAAAAFA/juXy_pwgI1g/s1600-h/Xserve_SASdrive_s.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_1t_XTQl7t8w/RktmcDHlpLI/AAAAAAAAAFA/juXy_pwgI1g/s200/Xserve_SASdrive_s.jpg" alt="" id="BLOGGER_PHOTO_ID_5065254837967758514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I think it's time for Apple to renew its server product range.&lt;br /&gt;I've installed some HP server (&lt;a href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF05a/15351-15351-3328412-241644-241475-3186080.html"&gt;Proliant DL 365&lt;/a&gt;), and was quite impressed by the quality of the servers. They are using 2,5" HDD instead of the current 3,5" on the xserve. The difference is important, because the HP server can embark 6 HDD versus 3 for the xserve, and also in &lt;a href="http://en.wikipedia.org/wiki/Rack_unit"&gt;1U&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[update] : I just forgot to mention that the harddrives in the HP server are SCSI versus SATA in the xserve.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-1475420164531812098?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/1475420164531812098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=1475420164531812098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/1475420164531812098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/1475420164531812098'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2007/05/xserve-hdd.html' title='xserve HDD'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1t_XTQl7t8w/RktmcDHlpLI/AAAAAAAAAFA/juXy_pwgI1g/s72-c/Xserve_SASdrive_s.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-6764396205217625664</id><published>2007-05-16T19:29:00.000+01:00</published><updated>2008-12-09T23:35:15.606Z</updated><title type='text'>Racking the xserve</title><content type='html'>&lt;a style="font-family: trebuchet ms;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_1t_XTQl7t8w/RktNyDHlpKI/AAAAAAAAAE4/ixxek6IOQT8/s1600-h/XServe_34Rack_s.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_1t_XTQl7t8w/RktNyDHlpKI/AAAAAAAAAE4/ixxek6IOQT8/s200/XServe_34Rack_s.jpg" alt="" id="BLOGGER_PHOTO_ID_5065227728134186146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;The rack we are using is generally xserve allergic. Our Xserve G5 are just dropped on rack shelves, since the rails don't fit our rack. Hopefully, Apple has corrected this issue today, and I was able to rack the server in less than 30 minutes (power + network installed). Moreover the protection on the power supply to avoid unwanted unplug of the power cable has been corrected. It took us 15 minutes on the G5 to install, and just a few seconds on the new one.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;I just had a few network issues (forgot to remove a proxy configuration). I hope apple will do someday a configuration utility based on ncurse or such. There are a few tools to configure everything including &lt;/span&gt;&lt;span style="font-style: italic; font-family: trebuchet ms;"&gt;serversetup&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic; font-family: trebuchet ms;"&gt;networksetup&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic; font-family: trebuchet ms;"&gt;changeip&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;, ...&lt;br /&gt;&lt;br /&gt;I didn't manage to make to &lt;span style="font-style: italic;"&gt;Lights Out Management&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;LOM&lt;/span&gt;) work (Remote monitoring), I have to work on this.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-6764396205217625664?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/6764396205217625664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=6764396205217625664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/6764396205217625664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/6764396205217625664'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2007/05/racking-xserve.html' title='Racking the xserve'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1t_XTQl7t8w/RktNyDHlpKI/AAAAAAAAAE4/ixxek6IOQT8/s72-c/XServe_34Rack_s.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-4729606913280449731</id><published>2007-05-16T08:10:00.000+01:00</published><updated>2007-05-16T19:46:19.900+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xserve'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Just received our new Apple xserve</title><content type='html'>&lt;a style="font-family: trebuchet ms;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://store.apple.com/Catalog/es/Images/xserve-hero.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://store.apple.com/Catalog/es/Images/xserve-hero.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Yesterday was a day of excitement : we just received our new mail server. We've bought a new Apple Xserve Intel, with 1GB RAM and one 80GB HDD. In order to have a robust configuration (the server might be used for other purposes than mail), I added 2x512MB Memory slots and 2 80 HDD.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: trebuchet ms;"&gt;Memory and disk upgrades&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Upgrading the xserve was extremly simple. Once the server opened (2 screws at the back, removable by hand), there's a large access to the memory slots. Apple had the good idea of letting some space between the slots. More information on upgrading memory : &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://manuals.info.apple.com/en/Xserve_Intel_DIY_FB-DIMM_Memory.pdf"&gt;http://manuals.info.apple.com/en/Xserve_Intel_DIY_FB-DIMM_Memory.pdf&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;The HDD were also easy to plug, I just had to push on the panel, remove the empty rack, and put the new one. More info :&lt;/span&gt;&lt;br /&gt;&lt;a style="font-family: trebuchet ms;" href="http://manuals.info.apple.com/en/Xserve_Intel_DIY_HardDrive.pdf"&gt;http://manuals.info.apple.com/en/Xserve_Intel_DIY_HardDrive.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: trebuchet ms;"&gt;Installation &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Lucky me, I had a keyboard/mouse and TFT screen to install the server. Way simpler than having to do it remotely (ssh or VNC). After booting on the installation DVD using the "C" key at boot, it was time to create a raid Array for our server.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;The &lt;/span&gt;&lt;span style="font-style: italic; font-family: trebuchet ms;"&gt;Disk Utility&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt; was there, and I discovered that it was impossible to create a software RAID 5 array. I decided to go with a RAID 1 with one HDD spare. Using this configuration, I just benefit of 75 GB of available space, but if a disk fails, I will have some time to change it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Once the raid array created, I followed the installation procedure, and every thing went OK. A bad point : you can't install Mac OS X without a mouse ! Using tab won't put the focus on "Next" buttons. Too bad.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: trebuchet ms;"&gt;Comparison to G5 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Compared to our G5 servers, the new xserve seems to be a lot faster. The back of the server changed a little, but the modifications are very basic. It's a good idea to propose by default the video card. Configuring a headless server is sometimes painful.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;There's also a little plastic card on the back of the server, on which you can retrieve the serial number (that's the default root password before you install !), and the NICs mac addresses.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-4729606913280449731?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/4729606913280449731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=4729606913280449731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4729606913280449731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4729606913280449731'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2007/05/just-received-our-new-apple-xserve.html' title='Just received our new Apple xserve'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4589307405090131665.post-4268784783199095318</id><published>2007-05-07T17:39:00.000+01:00</published><updated>2007-05-07T17:51:58.389+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><title type='text'>First Post Test</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;This is my first post. More to come soon !&lt;br /&gt;&lt;br /&gt;Enjoy !&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4589307405090131665-4268784783199095318?l=www.sivarg.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sivarg.com/feeds/4268784783199095318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4589307405090131665&amp;postID=4268784783199095318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4268784783199095318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4589307405090131665/posts/default/4268784783199095318'/><link rel='alternate' type='text/html' href='http://www.sivarg.com/2007/05/first-post-test.html' title='First Post Test'/><author><name>sivarg</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10626117746740721477'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>