<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Željko Filipin&#039;s Blog on Software and Testing &#187; Software</title>
	<atom:link href="http://zeljkofilipin.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://zeljkofilipin.com</link>
	<description>Test like you do not need the money.</description>
	<lastBuildDate>Tue, 09 Feb 2010 16:14:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Alan Baird and Jari Bakken on watir-webdriver</title>
		<link>http://zeljkofilipin.com/2010/02/03/alan-baird-and-jari-bakken-on-watir-webdriver/</link>
		<comments>http://zeljkofilipin.com/2010/02/03/alan-baird-and-jari-bakken-on-watir-webdriver/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 10:25:09 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=1039</guid>
		<description><![CDATA[On January 28, 2010, Alan Baird (&#60;alan_baird&#62;) and Jari Bakken (&#60;jarib&#62;) had a chat about watir-webdriver on #watir IRC channel at freenode.net. Published with permission.

[14:29] &#60;alan_baird&#62; jarib: if you are still around I have a follow up webdriver question for you
[14:36] &#60;jarib&#62; alan_baird: shoot
[14:36] &#60;alan_baird&#62; ok
[14:36] &#60;alan_baird&#62; so, in the podcast, Simon says that Webdriver [...]]]></description>
			<content:encoded><![CDATA[<p>On January 28, 2010, <a href="http://twitter.com/bluegrasscoder">Alan Baird</a> (<em>&lt;alan_baird&gt;</em>) and <a href="http://github.com/jarib">Jari</a> <a href="http://twitter.com/jarib">Bakken</a> (<strong>&lt;jarib&gt;</strong>) had a chat about <a href="http://zeljkofilipin.com/2010/01/12/watir-on-webdriver/">watir-webdriver</a> on <a href="http://wiki.openqa.org/display/WTR/The+IRC+Channel">#watir IRC channel at freenode.net</a>. Published with permission.</p>
<blockquote><p>
[14:29] <em>&lt;alan_baird&gt;</em> jarib: if you are still around I have a follow up webdriver question for you<br />
[14:36] <strong>&lt;jarib&gt;</strong> alan_baird: shoot<br />
[14:36] <em>&lt;alan_baird&gt;</em> ok<br />
[14:36] <em>&lt;alan_baird&gt;</em> so, in the podcast, Simon says that Webdriver is built on top of html unit<br />
[14:37] <em>&lt;alan_baird&gt;</em> is that correct?<br />
[14:38] <strong>&lt;jarib&gt;</strong> it has several backends<br />
[14:39] <strong>&lt;jarib&gt;</strong> htmlunit being one of them<br />
[14:39] <strong>&lt;jarib&gt;</strong> in addition it drives IE, Firefox, Chrome, with support for Opera, iPhone and Android on the way<br />
[14:39] <em>&lt;alan_baird&gt;</em> ok<br />
[14:40] <strong>&lt;jarib&gt;</strong> was the podcast that confusing? ouch :/<br />
[14:40] <em>&lt;alan_baird&gt;</em> so, it seems kind of analagous to what a JVM does for different operating systems?<br />
[14:40] <strong>&lt;jarib&gt;</strong> i guess we ended up talking too much about HtmlUnit<br />
[14:40] <em>&lt;alan_baird&gt;</em> well, I don&#8217;t know that it was all that confusing<br />
[14:40] <strong>&lt;jarib&gt;</strong> you might say that<br />
[14:40] <em>&lt;alan_baird&gt;</em> but, in trying to type up the show notes I&#8217;ve come up with my own questions<br />
[14:41] <strong>&lt;jarib&gt;</strong> it gives you a common interface to the various browsers<br />
[14:41] <em>&lt;alan_baird&gt;</em> ok<br />
[14:41] <em>&lt;alan_baird&gt;</em> so, that common interface is written in Java right?<br />
[14:41] <strong>&lt;jarib&gt;</strong> not really &#8211; there&#8217;s bindings in java, ruby, c# and python<br />
[14:42] <strong>&lt;jarib&gt;</strong> the java and ruby bindings are the most complete<br />
[14:42] <em>&lt;alan_baird&gt;</em> ok<br />
[14:42] <em>&lt;alan_baird&gt;</em> i guess I&#8217;m not real familiar with the bindings concept, but I guess I can get the gist of it<br />
[14:43] <em>&lt;alan_baird&gt;</em> but basically there is this thing at the core (webdriver) which can talk to the browsers natively<br />
[14:43] <strong>&lt;jarib&gt;</strong> alan_baird: these slides may be helpful: <a href="http://docs.google.com/present/view?id=dgpzbjs_33cxsxd9dd">http://docs.google.com/present/view?id=dgpzbjs_33cxsxd9dd</a><br />
[14:43] <strong>&lt;jarib&gt;</strong> check slide 11+<br />
[14:44] <em>&lt;alan_baird&gt;</em> k<br />
[14:44] <em>&lt;alan_baird&gt;</em> looking&#8230;<br />
[14:44] <strong>&lt;jarib&gt;</strong> also slide 27 is telling <img src='http://zeljkofilipin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[14:44] <strong>&lt;jarib&gt;</strong> although the c# side is mostly complete as well now<br />
[14:45] <strong>&lt;jarib&gt;</strong> alan_baird: there&#8217;s not really a &#8220;core&#8221; &#8211; webdriver speaks to each browser through the mechanism that fits that particular browser the best<br />
[14:45] <strong>&lt;jarib&gt;</strong> so for firefox and chrome it&#8217;s through their extension system<br />
[14:45] <strong>&lt;jarib&gt;</strong> for IE it&#8217;s C++<br />
[14:46] <strong>&lt;jarib&gt;</strong> for opera (when it&#8217;s released) it&#8217;s using their scope protocol (which is also used by their built-in JS debugger)<br />
[14:46] <strong>&lt;jarib&gt;</strong> etc.<br />
[14:48] <em>&lt;alan_baird&gt;</em> seems like this webdriver.h is kind of at the core of all of this?<br />
[14:48] <strong>&lt;jarib&gt;</strong> only for IE<br />
[14:48] <em>&lt;alan_baird&gt;</em> ok<br />
[14:49] <strong>&lt;jarib&gt;</strong> for FF, there&#8217;s a firefox extension, for example<br />
[14:49] <em>&lt;alan_baird&gt;</em> so, when you wrote selenium-webdriver, you didn&#8217;t have to worry about all of the different browsers though did you?<br />
[14:49] <em>&lt;alan_baird&gt;</em> (cause, that&#8217;s what webdriver&#8217;s supposed to do right?)<br />
[14:50] <strong>&lt;jarib&gt;</strong> alan_baird: nope, i had to worry about them<br />
[14:51] <em>&lt;alan_baird&gt;</em> hmm<br />
[14:51] <em>&lt;alan_baird&gt;</em> well, how did having webdriver make things easier?<br />
[14:52] <strong>&lt;jarib&gt;</strong> before i started, they had code that would bridge java-&gt;firefox extension, java-&gt;C++ IE driver, java-&gt;chrome extension etc.<br />
[14:52] <em>&lt;alan_baird&gt;</em> (btw &#8211; I&#8217;m typing this in the middle of an ice storm, so if I suddenly disappear and don&#8217;t come back it&#8217;s probably cause the power went out)<br />
[14:52] <strong>&lt;jarib&gt;</strong> so i basically ported the java parts to ruby<br />
[14:52] <strong>&lt;jarib&gt;</strong> so now you also have ruby-&gt;firefox extension, ruby-&gt;C++ etc<br />
[14:53] <em>&lt;alan_baird&gt;</em> ic<br />
[14:53] <em>&lt;alan_baird&gt;</em> and that&#8217;s what selenium-webdriver is right?<br />
[14:53] <strong>&lt;jarib&gt;</strong> it made it easier since i could reuse those browser-specific parts<br />
[14:53] <strong>&lt;jarib&gt;</strong> yes<br />
[14:54] <em>&lt;alan_baird&gt;</em> so, i looked at some of the examples in selenium-webdriver, would it be correct to say that that gem&#8217;s api follows selenium&#8217;s existing api?<br />
[14:54] <strong>&lt;jarib&gt;</strong> how the &#8220;language bindings&#8221; talk to the browser still differs somewhat from browser to browser<br />
[14:54] <strong>&lt;jarib&gt;</strong> alan_baird: it&#8217;s more correct to say the webdriver API<br />
[14:54] <em>&lt;alan_baird&gt;</em> ok<br />
[14:54] <strong>&lt;jarib&gt;</strong> although &#8220;webdriver API&#8221; =~ &#8220;selenium 2 api&#8221;<br />
[14:54] <em>&lt;alan_baird&gt;</em> got it<br />
[14:55] <strong>&lt;jarib&gt;</strong> however &#8220;webdriver API&#8221; != &#8220;selenium 1 api&#8221;<br />
[14:55] <strong>&lt;jarib&gt;</strong> most people associate &#8220;selenium&#8221; with the selenium 1 api<br />
[14:55] <em>&lt;alan_baird&gt;</em> cool&#8230;ok now how does webdriver remote come into the picture<br />
[14:55] <em>&lt;alan_baird&gt;</em> is it required?<br />
[14:55] <em>&lt;alan_baird&gt;</em> why would you use it?<br />
[14:56] <strong>&lt;jarib&gt;</strong> the remote is basically two parts: a java web server, and a client driver<br />
[14:57] <strong>&lt;jarib&gt;</strong> the server will accept commands like &#8220;click&#8221;, &#8220;findElement&#8221; (using a REST-like JSON-over-HTTP interface)<br />
[14:57] <strong>&lt;jarib&gt;</strong> before they had java client-&gt;java server<br />
[14:57] <strong>&lt;jarib&gt;</strong> now we also have a ruby client for that server, so ruby client-&gt;java server<br />
[14:57] <strong>&lt;jarib&gt;</strong> does that make sense?<br />
[14:58] <strong>&lt;jarib&gt;</strong> it&#8217;s not required, but it&#8217;s useful if you want to run your tests launch the browser on another machine<br />
[14:58] <em>&lt;alan_baird&gt;</em> is that kind of the replacement for Selenium Grid?<br />
[14:59] <strong>&lt;jarib&gt;</strong> say, if you&#8217;re developing on linux, you could easily run your tests on IE on windows, firefox on mac etc. using the remote driver<br />
[14:59] <strong>&lt;jarib&gt;</strong> no, Selenium Grid is more than that<br />
[14:59] <em>&lt;alan_baird&gt;</em> ok<br />
[14:59] <strong>&lt;jarib&gt;</strong> but the webdriver remote stuff could be used to build a similar system<br />
[14:59] <em>&lt;alan_baird&gt;</em> well, right now, I think I kind of have the same thign<br />
[14:59] <em>&lt;alan_baird&gt;</em> i have a bunch of VMs that I execute tests on<br />
[14:59] <em>&lt;alan_baird&gt;</em> and a system that tells the vms when to run the tests<br />
[15:00] <em>&lt;alan_baird&gt;</em> but, it seems like the remote would be one computer telling the other computers what to do<br />
[15:00] <em>&lt;alan_baird&gt;</em> as opposed to having it be independent the way I do it now<br />
[15:00] <strong>&lt;jarib&gt;</strong> right &#8211; with the remote, you wouldn&#8217;t need to distribute your test scripts &#8211; each command to the browser would go over the network<br />
[15:00] <strong>&lt;jarib&gt;</strong> so it&#8217;s a long-running server process<br />
[15:01] <em>&lt;alan_baird&gt;</em> thats pretty nifty<br />
[15:01] <em>&lt;alan_baird&gt;</em> is that the main way people would use that kind of feature for?<br />
[15:02] <strong>&lt;jarib&gt;</strong> yeah &#8211; also makes it easier to test on various combinations of browsers/platforms<br />
[15:03] <em>&lt;alan_baird&gt;</em> i&#8217;m just noticing the slide that says Webdriver has a &#8220;lovely API&#8221;, but apparently we didn&#8217;t consider it lovely enough so we made watir-webdriver<br />
[15:03] <em>&lt;alan_baird&gt;</em> <img src='http://zeljkofilipin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[15:03] <strong>&lt;jarib&gt;</strong> haha<br />
[15:04] <strong>&lt;jarib&gt;</strong> well, compare it to the selenium api<br />
[15:04] <em>&lt;alan_baird&gt;</em> i guess that&#8217;s mainly so people could backport their watir tests without a major rewrite<br />
[15:04] <strong>&lt;jarib&gt;</strong> yeah, for my part it&#8217;s mainly because we have a lot invested in the watir api<br />
[15:04] <em>&lt;alan_baird&gt;</em> right<br />
[15:04] <em>&lt;alan_baird&gt;</em> same here<br />
[15:04] <em>&lt;alan_baird&gt;</em> <img src='http://zeljkofilipin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[15:05] <em>&lt;alan_baird&gt;</em> ok, well thank you very much for letting me bug you<br />
[15:05] <strong>&lt;jarib&gt;</strong> if i were starting from scratch with experienced developers, i&#8217;d probably use the webdriver api directly<br />
[15:05] <strong>&lt;jarib&gt;</strong> no problem<br />
[15:05] <em>&lt;alan_baird&gt;</em> i&#8217;m going to forward this conversation to zeljko<br />
[15:05] <strong>&lt;jarib&gt;</strong> yep<br />
[15:05] <strong>&lt;jarib&gt;</strong> do that<br />
[15:05] <em>&lt;alan_baird&gt;</em> maybe we might do a little follow up
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2010/02/03/alan-baird-and-jari-bakken-on-watir-webdriver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Watir on WebDriver</title>
		<link>http://zeljkofilipin.com/2010/01/12/watir-on-webdriver/</link>
		<comments>http://zeljkofilipin.com/2010/01/12/watir-on-webdriver/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 16:03:06 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=1019</guid>
		<description><![CDATA[Jari Bakken just released Watir on WebDriver.
On Windows, install it with

gem install selenium-webdriver
gem install watir-webdriver --pre

and use it with

require &#34;rubygems&#34; # optional
require &#34;watir-webdriver&#34;
browser = Watir::Browser.new(:firefox)

Supported browsers are Internet Explorer (:ie, :internet_explorer), Firefox (:ff, :firefox), Chrome (:chrome) and RemoteWebDriver Server (:remote). 
Update 1: as Steve suggested, I have tried it on RubyInstaller.
Install RubyInstaller, DevKit and all [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/jarib">Jari Bakken</a> just <a href="http://rubyforge.org/pipermail/wtr-development/2010-January/001457.html">released</a> <a href="http://github.com/jarib/watir-webdriver">Watir on WebDriver</a>.</p>
<p>On Windows, install it with</p>
<pre class="brush: bash;">
gem install selenium-webdriver
gem install watir-webdriver --pre
</pre>
<p>and use it with</p>
<pre class="brush: ruby;">
require &quot;rubygems&quot; # optional
require &quot;watir-webdriver&quot;
browser = Watir::Browser.new(:firefox)
</pre>
<p><a href="http://code.google.com/p/selenium/source/browse/trunk/common/src/rb/lib/selenium/webdriver/driver.rb">Supported browsers</a> are Internet Explorer (<code>:ie</code>, <code>:internet_explorer</code>), Firefox (<code>:ff</code>, <code>:firefox</code>), Chrome (<code>:chrome</code>) and <a href="http://code.google.com/p/selenium/wiki/RemoteWebDriverServer">RemoteWebDriver Server</a> (<code>:remote</code>). </p>
<p><strong>Update 1: as Steve suggested, I have tried it on RubyInstaller.</strong></p>
<p>Install <a href="http://rubyinstaller.org/">RubyInstaller</a>, <a href="http://rubyinstaller.org/addons.html">DevKit</a> and all required gems and it just works!</p>
<pre class="brush: bash;">
gem install selenium-webdriver
gem install watir-webdriver --pre
gem install win32-process
</pre>
<p><strong>Update 2: It works on Mac.</strong></p>
<p>My Mac came with Ruby and RubyGems installed, so it was just:</p>
<pre class="brush: bash;">
sudo gem install selenium-webdriver
sudo gem install watir-webdriver --pre
</pre>
<p><strong>Update 3: It works on Ubuntu Linux.</strong></p>
<p>My Ubuntu did not have Ruby and RubyGems installed.</p>
<p>Install Ruby with:</p>
<pre class="brush: bash;">
sudo apt-get install ruby-full
</pre>
<p>You can install RubyGems with:</p>
<pre class="brush: bash;">
sudo apt-get install rubygems
</pre>
<p>but Jari said it would be better to install it from source. <a href="http://rubyforge.org/frs/?group_id=126">Downland the latest RubyGems</a> tgz or zip file (rubygems-1.3.5.tgz and rubygems-1.3.5.zip at the moment), extract it, open Terminal in extracted folder and run:</p>
<pre class="brush: bash;">
sudo ruby setup.rb
</pre>
<p>Install watir-webdriver:</p>
<pre class="brush: bash;">
sudo gem1.8 install selenium-webdriver
sudo gem1.8 install watir-webdriver --pre
</pre>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2010/01/12/watir-on-webdriver/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Ruby Mail and benchmark.rb on CRuby, JRuby, IronRuby and RubyInstaller</title>
		<link>http://zeljkofilipin.com/2010/01/05/ruby-mail-and-benchmark-rb-on-cruby-jruby-ironruby-and-rubyinstaller/</link>
		<comments>http://zeljkofilipin.com/2010/01/05/ruby-mail-and-benchmark-rb-on-cruby-jruby-ironruby-and-rubyinstaller/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 17:15:42 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=981</guid>
		<description><![CDATA[Update: Steve suggested I should try the script also with RubyInstaller, and I did it.
This blog post is update of my recent Ruby Mail on CRuby, JRuby and IronRuby post. Mikel and Jimmy have commented on the post saying I did a poor job, and I would agree. I decided to do a better job [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: Steve suggested I should try the script also with <a href="http://rubyinstaller.org/">RubyInstaller</a>, and I did it.</strong></p>
<p>This blog post is update of my recent <a href="http://zeljkofilipin.com/2009/12/24/ruby-mail-on-cruby-jruby-and-ironruby/">Ruby Mail on CRuby, JRuby and IronRuby</a> post. Mikel and Jimmy have commented on the post saying I did a poor job, and I would agree. I decided to do a better job this time. Please let me know if measurements can be further improved.</p>
<p>So, I have an e-mail file called <code>1.eml</code>:</p>
<pre class="brush: plain;">
Date: Thu, 24 Dec 2009 14:37:34 Central European Standard Time
From: from@test.com
To: to@test.com
Message-ID: &lt;4b336e9e762a0_a1014263a4689d3@2003-ie7.mail&gt;
Subject: This is a test email
Mime-Version: 1.0
Content-Type: text/plain;
	charset=&quot;US-ASCII&quot;;
Content-Transfer-Encoding: 7bit

Some text for mail body
</pre>
<h2>The First Try</h2>
<p>This is the test from the first post. (RubyInstaller was not included in the first post.) It is included here so all code and numbers are at the same page, I guess it is easier to compare that way. Read the file, display subject and total time elapsed (in seconds).</p>
<pre class="brush: ruby;">
time = Time.now
require &quot;rubygems&quot;
require &quot;mail&quot;
mail = Mail.read(&quot;1.eml&quot;)
puts mail.subject.to_s
puts Time.now - time
</pre>
<p>Executed the script three times for each Ruby implementation. RubyInstaller the fastest, CRuby and JRuby were similar in speed, IronRuby was way slower.</p>
<table border="1">
<tbody>
<tr>
<th>Test Run</th>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<tr>
<th>CRuby</th>
<td>2.594</td>
<td>2.109</td>
<td>2.11</td>
</tr>
<tr>
<th>JRuby</th>
<td>3.0</td>
<td>2.016</td>
<td>2.0</td>
</tr>
<tr>
<th>IronRuby</th>
<td>9.8125</td>
<td>7.796875</td>
<td>7.6875</td>
</tr>
<tr>
<th>RubyInstaller</th>
<td>1.21875</td>
<td>1.203125</td>
<td>1.203125</td>
</tr>
</tbody>
</table>
<table>
<h2>The Second Try</h2>
<p>Since both Mikel and Jimmy said <code>require</code> could take the majority of the time, and I was not really interested in measuring that, I excluded it from the measurement. </p>
<pre class="brush: ruby;">
require &quot;rubygems&quot;
require &quot;mail&quot;

time = Time.now
mail = Mail.read(&quot;1.eml&quot;)
puts mail.subject.to_s
puts Time.now - time
</pre>
<p>Times were way shorter. RubyInstaller the fastest (can not get much faster that 0.0 seconds), CRuby and JRuby in the same order of magnitude, IronRuby order of magnitude slower. JRuby has surprisingly the same numbers every time.</p>
<table border="1">
<tbody>
<tr>
<th>Test Run</th>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<tr>
<th>CRuby</th>
<td>0.015</td>
<td>0.016</td>
<td>0.0</td>
</tr>
<tr>
<th>JRuby</th>
<td>0.047</td>
<td>0.047</td>
<td>0.047</td>
</tr>
<tr>
<th>IronRuby</th>
<td>0.5</td>
<td>0.46875</td>
<td>0.484375</td>
</tr>
<tr>
<th>RubyInstaller</th>
<td>0.0</td>
<td>0.0</td>
<td>0.0</td>
</tr>
</tbody>
</table>
<table>
<h2>Benchmark</h2>
<p>Mikel and Jimmy have suggested that I should use <a href="http://ruby-doc.org/stdlib/libdoc/benchmark/rdoc/index.html">benchmark.rb</a>, so I took a look. I have slightly modified the script. This time the file was read 1000 times.</p>
<pre class="brush: ruby;">
require &quot;rubygems&quot;
require &quot;mail&quot;
require &quot;benchmark&quot;

Benchmark.bm do |x|
  x.report { 1000.times do; puts Mail.read(&quot;1.eml&quot;).subject.to_s; end }
end
</pre>
<p>This measurement said JRuby was the fastest, followed closely by RubyInstaller and CRuby, IronRuby again order of magnitude slower.</p>
<table border="1">
<tbody>
<tr>
<th>Test Run</th>
<th>user</th>
<th>system</th>
<th>total</th>
<th>real</th>
</tr>
<tr>
<th>CRuby</th>
<td>11.000000</td>
<td>0.657000</td>
<td>11.657000</td>
<td>13.485000</td>
</tr>
<tr>
<th>JRuby</th>
<td>6.187000</td>
<td>0.000000</td>
<td>6.187000</td>
<td>6.187000</td>
</tr>
<tr>
<th>IronRuby</th>
<td>69.984375</td>
<td>7.140625</td>
<td>77.125000</td>
<td>60.656250</td>
</tr>
<tr>
<th>RubyInstaller</th>
<td>7.297000</td>
<td>0.766000</td>
<td>8.063000</td>
<td>9.953125</td>
</tr>
</tbody>
</table>
<h2>Environment</h2>
<p>Tests were run in VMware Fusion 2.0.6 virtual machine, 512 MB RAM, Microsoft Windows Sever 2003 R2 (Standard Edition, Service pack 2).<br />
Host machine is MacBook Pro, 2.4 GHz Intel Core 2 Duo, Mac OS X 10.6.2, 4 GB RAM.</p>
<pre class="brush: bash;">
&gt;ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

&gt;jruby -v
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]

&gt;ir -v
IronRuby 0.9.3.0 on .NET 2.0.0.0

&gt;ruby -v
ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]
</pre>
<p>Mail version 1.3.4 on all platforms.</p>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2010/01/05/ruby-mail-and-benchmark-rb-on-cruby-jruby-ironruby-and-rubyinstaller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Webalizer on Mac OS X</title>
		<link>http://zeljkofilipin.com/2010/01/05/webalizer-on-mac-os-x/</link>
		<comments>http://zeljkofilipin.com/2010/01/05/webalizer-on-mac-os-x/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 09:51:41 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=968</guid>
		<description><![CDATA[Yesterday I spend a few hours trying to install Webalizer on Mac OS X 10.6 (Show Leopard), with no luck. After some browsing, I found instructions how to migrate MacPorts, but I got stuck with Error: Checksum (md5) mismatch for jpegsrc.v7.tar.gz. Looks like it is fixed, and Webalizer installed with no problems today with just:
sudo [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I spend a few hours trying to install <a href="http://webalizer.darwinports.com/">Webalizer on Mac OS X</a> 10.6 (Show Leopard), with no luck. After some browsing, I found instructions <a href="http://trac.macports.org/wiki/Migration">how to migrate MacPorts</a>, but I got stuck with <a href="http://trac.macports.org/ticket/23127">Error: Checksum (md5) mismatch for jpegsrc.v7.tar.gz</a>. Looks like it is fixed, and Webalizer installed with no problems today with just:</p>
<p><code>sudo port install webalizer</code></p>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2010/01/05/webalizer-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Mail on CRuby, JRuby and IronRuby</title>
		<link>http://zeljkofilipin.com/2009/12/24/ruby-mail-on-cruby-jruby-and-ironruby/</link>
		<comments>http://zeljkofilipin.com/2009/12/24/ruby-mail-on-cruby-jruby-and-ironruby/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 15:01:41 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[E-mail]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=887</guid>
		<description><![CDATA[Today I tried Mikel Lindsaar&#8217;s Mail gem on CRuby, JRuby and IronRuby.
Installation of each Ruby version and Mail gem was really easy so I will not describe it here. What interested me was how fast was Mail on each Ruby implementation.
I have created a simple mail and saved it as 1.eml.

Date: Thu, 24 Dec 2009 [...]]]></description>
			<content:encoded><![CDATA[<p>Today I tried Mikel Lindsaar&#8217;s <a href="http://github.com/mikel/mail">Mail</a> gem on <a href="http://www.ruby-lang.org/en/">CRuby</a>, <a href="http://jruby.org/">JRuby</a> and <a href="http://www.ironruby.net/">IronRuby</a>.</p>
<p>Installation of each Ruby version and Mail gem was really easy so I will not describe it here. What interested me was how fast was Mail on each Ruby implementation.</p>
<p>I have created a simple mail and saved it as <code>1.eml</code>.</p>
<pre class="brush: plain;">
Date: Thu, 24 Dec 2009 14:37:34 Central European Standard Time
From: from@test.com
To: to@test.com
Message-ID: &lt;4b336e9e762a0_a1014263a4689d3@2003-ie7.mail&gt;
Subject: This is a test email
Mime-Version: 1.0
Content-Type: text/plain;
	charset=&quot;US-ASCII&quot;;
Content-Transfer-Encoding: 7bit

Some text for mail body
</pre>
<p>This script will read the file, display subject and time elapsed (in seconds).</p>
<pre class="brush: ruby;">
time = Time.now
require &quot;rubygems&quot;
require &quot;mail&quot;
mail = Mail.read(&quot;1.eml&quot;)
puts mail.subject.to_s
puts Time.now - time
</pre>
<p>I have executed the script three times for each Ruby implementation. It looks to me that CRuby and JRuby are similar in speed, and IronRuby is way slower.</p>
<table border="1">
<tbody>
<tr>
<th>Test Run</th>
<th>CRuby</th>
<th>JRuby</th>
<th>IronRuby</th>
</tr>
<tr>
<td>1</td>
<td>2.594</td>
<td>3.0</td>
<td>9.8125</td>
</tr>
<tr>
<td>2</td>
<td>2.109</td>
<td>2.016</td>
<td>7.796875</td>
</tr>
<tr>
<td>3</td>
<td>2.11</td>
<td>2.0</td>
<td>7.6875</td>
</tr>
</tbody>
</table>
<table>
<h2>Environment</h2>
<p>Tests were run in VMware Fusion 2.0.6 virtual machine, 512 MB RAM, Microsoft Windows Sever 2003 R2 (Standard Edition, Service pack 2).<br />
Host machine is MacBook Pro, 2.4 GHz Intel Core 2 Duo, Mac OS X 10.6.2, 4 GB RAM.</p>
<pre class="brush: bash;">
&gt;ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

&gt;jruby -v
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]

&gt;ir -v
IronRuby 0.9.3.0 on .NET 2.0.0.0
</pre>
<p>Mail version 1.3.4 on all platforms.</table>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2009/12/24/ruby-mail-on-cruby-jruby-and-ironruby/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Watir Support Sheriffs</title>
		<link>http://zeljkofilipin.com/2009/12/16/watir-support-sheriffs/</link>
		<comments>http://zeljkofilipin.com/2009/12/16/watir-support-sheriffs/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 22:52:00 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=877</guid>
		<description><![CDATA[Recently I became Watir community manager.
Watir team had a little chat and we decided it would be a good idea to grow. So, one of the first duties I had as community manager was to promote two community members to support sheriffs.
I am glad I can announce that Tiffany Fodor and Wesley Chen have accepted [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I became <a href="http://watir.com/team/">Watir community manager</a>.</p>
<p>Watir team had a little chat and we decided it would be a good idea to grow. So, one of the first duties I had as community manager was to promote two community members to support sheriffs.</p>
<p>I am glad I can announce that <a href="http://tcfodor.wordpress.com/">Tiffany Fodor</a> and <a href="http://www.google.com/profiles/cjq.999">Wesley Chen</a> have accepted to be added to Watir community team with title of support sheriff.</p>

<a href='http://zeljkofilipin.com/2009/12/16/watir-support-sheriffs/tiffany/' title='Tiffany Fodor'><img width="73" height="73" src="http://zeljkofilipin.com/wp-content/uploads/2009/12/tiffany.jpg" class="attachment-thumbnail" alt="Tiffany Fodor" title="Tiffany Fodor" /></a>
<a href='http://zeljkofilipin.com/2009/12/16/watir-support-sheriffs/wesley/' title='Wesley Chen'><img width="73" height="73" src="http://zeljkofilipin.com/wp-content/uploads/2009/12/wesley.jpg" class="attachment-thumbnail" alt="Wesley Chen" title="Wesley Chen" /></a>

<p>Tiffany answers a lot of questions and Wesley is helping us moderate the group. I hope both of them will continue with business as usual.</p>
<p>If you have a nice word for them, <a href="http://groups.google.com/group/watir-general/browse_thread/thread/b15a5a6a253735f9">now is the time</a>. <img src='http://zeljkofilipin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2009/12/16/watir-support-sheriffs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Test Like You Do Not Need the Money</title>
		<link>http://zeljkofilipin.com/2009/09/16/test-like-you-do-not-need-the-money/</link>
		<comments>http://zeljkofilipin.com/2009/09/16/test-like-you-do-not-need-the-money/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 22:30:43 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=623</guid>
		<description><![CDATA[
A few days ago it was exactly 5 years since I started working as a software tester. I planned to publish this on the very date, but life happened.
What happened in the last five years? Am I smarter? Or just older? Let&#8217;s find out.
Personal

In the last five years I have upgraded LifeOS™ from 26.0 to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/21518596@N00/2295547909"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/09/5.jpg" alt="5" title="5"  /></a></p>
<p><a href="http://twitter.com/zeljkofilipin/status/3685550585">A few days ago</a> it was exactly 5 years since I started working as a software tester. I planned to publish this on the very date, but life happened.</p>
<p>What happened in the last five years? Am I smarter? Or just older? Let&#8217;s find out.</p>
<p><strong>Personal</strong></p>
<p><img src="/wp-content/uploads/2009/09/snorkel.JPG" alt="snorkel" title="snorkel" /></p>
<p>In the last five years I have upgraded LifeOS™ from 26.0 to 31.0, upgraded Girlfriend 5.0 application to Wife 4.0 and installed Son 1.5. I do not use DistanceRunning application so much any more, but I do my best. Drums 1.0 are lost somewhere and Guitar 1.0 is mainly collecting digital dust. No so sure about smarter, but definitely older.</p>
<blockquote><p>Smarter vs. Older &#8211; 0:1</p></blockquote>
<p><strong>Professional</strong></p>
<p><img src="/wp-content/uploads/2009/09/zoo.jpg" alt="zoo" title="zoo" /></p>
<p>Five years ago I had a job I did not like. I thought software (programming to be precise) is so cool, and I wished I could develop it for a living. No luck back then.</p>
<p><img src="/wp-content/uploads/2009/09/bear.jpg" alt="bear" title="bear" /></p>
<p>I still think software is lots of fun, and I live in code as much as I can. But, now I think <a href="http://en.wikipedia.org/wiki/Software_testing">software testing</a> is even cooler, and I know I was born to be a tester. Not only do I have a job I would do even if I did not have to work, but I get to work from home. A dream I had since I was just a little kid.</p>
<blockquote><p>Smarter vs. Older &#8211; 1:1</p></blockquote>
<p><strong>Programming Languages</strong></p>
<p><img src="/wp-content/uploads/2009/09/fire.jpg" alt="fire" title="fire" /></p>
<p>My <a href="http://en.wikipedia.org/wiki/BASIC">BASIC</a>, <a href="http://en.wikipedia.org/wiki/Fortran">FORTRAN</a> and <a href="http://en.wikipedia.org/wiki/PHP">PHP</a> skills declined a bit in the last five years, but I am sure I would be up and running in minutes if I ever needed them. (Looks like I had a thing for UPPERCASE languages back then.)<br />
I have picked up some <a href="http://www.ruby-lang.org/en/">Ruby</a> and <a href="http://watir.com/">Watir</a> in the last few years, and I even made it to the <a href="http://watir.com/community/">Watir core team</a>! Not bad for a simple tester from Croatia, right?! <img src='http://zeljkofilipin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>Smarter vs. Older &#8211; 2:1</p></blockquote>
<p><strong>Web</strong></p>
<p><img src="/wp-content/uploads/2009/09/web.JPG" alt="web" title="web" /></p>
<p>Five years ago, I had a <a href="http://web.archive.org/web/20050205073212/web.vip.hr/zeljko.filipin.vip/">crappy site</a> with a crappy URL. (In Croatian only. Some stuff is missing because it is archive.org snapshot, but it did not look much better anyway.)<br />
Today, I am all over the place. (I even have a place where I try to <a href="http://friendfeed.com/zeljkofilipin">aggregate</a> my web presence.) I have a <a href="http://zeljkofilipin.com/">great site</a> with great URL. Five years ago <a href="http://en.wikipedia.org/wiki/Podcast">podcasts</a> just started to appear, now I have <a href="http://watirpodcast.com/">one</a>.</p>
<blockquote><p>Smarter vs. Older &#8211; 3:1</p></blockquote>
<p><strong>Watir</strong></p>
<p><img src="/wp-content/uploads/2009/09/sea.jpg" alt="sea" title="sea" /></p>
<p>I already mentioned <a href="http://watir.com/">Watir</a>, a tool that I use almost every day, and it makes my life much easier. <a href="http://zeljkofilipin.com/category/software/watir/">Big portion</a> of this site is dedicated to it. I like it so much I talk about <a href="http://zeljkofilipin.com/2007/11/26/smoke-on-the-watir/">it</a> <a href="http://zeljkofilipin.com/2008/05/12/ruby-on-beers-2/">to</a> <a href="http://zeljkofilipin.com/2009/01/27/barcamp-zagreb-2009/">anybody</a> <a href="http://zeljkofilipin.com/2009/03/08/spletne-urice-106/">that</a> <a href="http://zeljkofilipin.com/2009/03/14/webindustrija-2009/">would</a> <a href="http://zeljkofilipin.com/2009/05/11/dorscluc-2009/">listen</a>. I even <a href="http://zeljkofilipin.com/2009/01/17/awta-2009/">flew across the ocean</a> to meet with people that like Watir.</p>
<p><strong>Conclusion</strong></p>
<p>It really takes a lot of time to write a blog post. No wonder I do not write so much.</p>
<p>Let&#8217;s take a look at the final score:</p>
<blockquote><p>Smarter vs. Older &#8211; 3:1</p></blockquote>
<p>Looks like Smarter won. Maybe another jury would vote differently.</p>
<p>If you remember only one thing from this post, I hope it will be the title:</p>
<blockquote><p>Test like you do not need the money.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2009/09/16/test-like-you-do-not-need-the-money/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Git and Github on Mac</title>
		<link>http://zeljkofilipin.com/2009/03/28/git-and-github-on-mac/</link>
		<comments>http://zeljkofilipin.com/2009/03/28/git-and-github-on-mac/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 12:01:39 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=469</guid>
		<description><![CDATA[Once upon a time, there was a tester. He knew his way around Ruby, Watir, SVN, Terminal and stuff like that. He heard people talk about Git, and he decided to try it. But Git was strange. He was playing with it a bit, but did not have much luck with setting it up, so [...]]]></description>
			<content:encoded><![CDATA[<p>Once upon a time, there was a tester. He knew his way around <a href="http://www.ruby-lang.org/en/">Ruby</a>, <a href="http://watir.com/">Watir</a>, <a href="http://subversion.tigris.org/">SVN</a>, <a href="http://en.wikipedia.org/wiki/Apple_Terminal">Terminal</a> and stuff like that. He heard people talk about <a href="http://git-scm.com/">Git</a>, and he decided to try it. But Git was strange. He was playing with it a bit, but did not have much luck with setting it up, so he decided to leave it for later.</p>
<p>One day he decided to run his existing Watir tests on Internet Explorer 8 (IE8). He was already running them on IE6 and IE7, so he thought that it would be a piece of cake. He fired up one of his Windows virtual machines, installed IE8 and started the tests.</p>
<p>One of the first things he noticed is that file uploads were not working. File upload pop up would appear, but Watir was not populating it with path to the file that should be uploaded. He thought:</p>
<blockquote><p>I think I know what is the problem. I have already heard that file uploads are not working if user has Windows language set to anything than English. It was something about the title of the pop up window.</p></blockquote>
<p>And really, IE6 and IE7 had <code>Choose file</code> and IE8 had <code>Choose File to Upload</code> as pop up title.</p>
<p>IE6<br />
<a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/ie6.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/ie6-300x256.jpg" alt="ie6" title="ie6"/></a></p>
<p>IE7<br />
<a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/ie7.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/ie7-300x263.jpg" alt="ie7" title="ie7"/></a></p>
<p>IE8<br />
<a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/ie8.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/ie8-299x261.jpg" alt="ie8" title="ie8"/></a></p>
<p>He added <code>C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2</code> folder (that is where Watir lived on his Windows machine) to his Watir project in <a href="http://www.netbeans.org/">NetBeans</a>, and made a search for <code>Choose file</code>. The search found 12 matches in 2 files. Both files were in <code>watir-1.6.2\lib\watir</code> folder. Files were <code>input_elements.rb</code> and <code>winClicker.rb</code>. He said (to himself):</p>
<blockquote><p>I will try <code>input_elements.rb</code> first.</p></blockquote>
<p>There he found an ugly long line that contained <code>Choose file</code> three times:</p>
<pre class="brush: ruby;">
system(&quot;rubyw -e \&quot;require 'win32ole'; @autoit=WIN32OLE.new('AutoItX3.Control'); waitresult=@autoit.WinWait 'Choose file', '', 15; sleep 1; if waitresult == 1\&quot; -e \&quot;@autoit.ControlSetText 'Choose file', '', 'Edit1', '#{setPath}'; @autoit.ControlSend 'Choose file', '', 'Button2', '{ENTER}';\&quot; -e \&quot;end\&quot;&quot;)
</pre>
<p>He replaced all three occurrences of <code>Choose file</code> with <code>Choose File to Upload</code>.</p>
<pre class="brush: ruby;">
system(&quot;rubyw -e \&quot;require 'win32ole'; @autoit=WIN32OLE.new('AutoItX3.Control'); waitresult=@autoit.WinWait 'Choose File to Upload', '', 15; sleep 1; if waitresult == 1\&quot; -e \&quot;@autoit.ControlSetText 'Choose File to Upload', '', 'Edit1', '#{setPath}'; @autoit.ControlSend 'Choose File to Upload', '', 'Button2', '{ENTER}';\&quot; -e \&quot;end\&quot;&quot;)
</pre>
<p>He tried file upload with Watir, and it worked! He was so proud, that he decided to share it with the world! Since Watir code recently moved from SVN to Git, it was also a perfect chance to try Git again. Watir code is hosted on <a href="http://github.com/">Github</a>, so he opened an account there.</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/pricing-github.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/pricing-github-300x145.jpg" alt="pricing-github" title="pricing-github" /></a></p>
<p>He thought:</p>
<blockquote><p>I will need to download the latest Watir code, make the change there and contribute back.</p></blockquote>
<p>He found <a href="http://github.com/bret/watir/tree/master">Watir repository</a> and forked it. (It is polite to fork a repository on Github.)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/fork1.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/fork1-300x228.jpg" alt="fork1" title="fork1" /></a></p>
<p>He already had Git installed on his Mac. (Recently he became one of those cool people that use Macs.) He probably installed it a while ago when he tried Git for the first time.</p>
<p>He likes to have the newest versions of any software, so he <a href="http://code.google.com/p/git-osx-installer/">updated Git</a>.</p>
<p>Then he decided the time is right to download (or <a href="http://git-scm.com/">clone</a>, as Git calls it) his fork of Watir. Do not make the same mistake he did! He cloned the repository using <code>public clone URL</code> (<code>git://github.com/zeljkofilipin/watir.git</code>). No, no and NO! You should use <code>your clone URL</code> (<code>git@github.com:zeljkofilipin/watir.git</code>) (He wants to say thanks to <a href="http://pettichord.com/">Bret Pettichord</a> for teaching him that valuable lesson.) He found those links at Github after logging in and forking the Watir repository.</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/your-dashboard-github.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/your-dashboard-github-300x169.jpg" alt="your-dashboard-github" title="your-dashboard-github" width="300" height="169" class="alignnone size-medium wp-image-494" /></a></p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/zeljkofilipin_s-watir-at-master-github.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/zeljkofilipin_s-watir-at-master-github-300x85.jpg" alt="zeljkofilipin_s-watir-at-master-github" title="zeljkofilipin_s-watir-at-master-github" /></a></p>
<p>But, before cloning he had to create SSH keys. He found the instructions at <a href="https://github.com/account">Github account</a> page. There was a link with a friendly name: <a href="http://github.com/guides/providing-your-ssh-key">Need help with public keys?</a>. Oh, he needed help!</p>
<p>He followed the instructions.  Do not name your files <code>github</code> and <code>github.pub</code>, like he did. Leave default file names, otherwise it will not work. You do not need a passphrase for now. Leave it blank. (He wants to say thanks to <a href="http://github.com/mislav">Mislav Marohnić</a> for teaching him all that SSH stuff.)</p>
<p><code><br />
$ cd .ssh<br />
$ ssh-keygen<br />
Generating public/private rsa key pair.<br />
Enter file in which to save the key (/Users/zeljko/.ssh/id_rsa):<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /Users/zeljko/.ssh/id_rsa.<br />
Your public key has been saved in /Users/zeljko/.ssh/id_rsa.pub.<br />
</code></p>
<p>Now he had <code>id_rsa</code> and <code>id_rsa.pub</code> files. He gave contents of <code>id_rsa.pub</code> to <a href="https://github.com/account">Github</a>. (You should keep your <code>id_rsa</code> as a secret. Never show it to anybody. Not even your best friend. Seriously.)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/your-account-github.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/your-account-github-300x86.jpg" alt="your-account-github" title="your-account-github" /></a></p>
<p>Now that chain of trust was made, he got the repository to his machine.</p>
<p><code>git clone git@github.com:zeljkofilipin/watir.git</code></p>
<p>He saw something like this:</p>
<p><code>$ git clone git@github.com:zeljkofilipin/watir.git<br />
Initialized empty Git repository in /Users/zeljko/Documents/github/watir/.git/<br />
The authenticity of host 'github.com (65.74.177.129)' can't be established.<br />
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.<br />
Are you sure you want to continue connecting (yes/no)? yes<br />
Warning: Permanently added 'github.com,65.74.177.129' (RSA) to the list of known hosts.<br />
remote: Counting objects: 13296, done.<br />
remote: Compressing objects: 100% (4837/4837), done.<br />
remote: Total 13296 (delta 8584), reused 11936 (delta 8216)<br />
Receiving objects: 100% (13296/13296), 7.50 MiB | 549 KiB/s, done.<br />
Resolving deltas: 100% (8584/8584), done.</code></p>
<p>He made the changes to the code with NetBeans. That was not such a good idea. But, I will talk about that later.</p>
<p>Then he committed the change to the local repository.</p>
<p><code>$ cd watir/<br />
$ git add watir/lib/watir/input_elements.rb<br />
$ git commit -m 'Fixed file uploads for IE8'</code></p>
<p>Finally, he pushed the change back to Github:</p>
<p><code>git push</code></p>
<p>He saw something like this:</p>
<p><code>$ git push<br />
Counting objects: 11, done.<br />
Compressing objects: 100% (6/6), done.<br />
Writing objects: 100% (6/6), 530 bytes, done.<br />
Total 6 (delta 5), reused 0 (delta 0)<br />
To git@github.com:zeljkofilipin/watir.git<br />
   2a244f9..038e96b  master -> master</code></p>
<p>In a blink of eye, he was already at Github looking proudly at <a href="http://github.com/zeljkofilipin/watir/commit/038e96b52200a5d86b477654ef166c9a995ab9a7">his commit</a>.</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-300x168.jpg" alt="commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github" title="commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github" /></a></p>
<p>But, he made one last mistake. (This is the last mistake. I promise. No more mistakes in this story. Enough is enough.) He did not know how to do a diff with Git, and NetBeans messed the whitespace, so his commit was a whitespace mess. Of course, he did not know how to undo. So, he just deleted his local and Github repositories and started over. (He had to wait a bit until he saw <code>fork</code> button again on Bret&#8217;s Watir repository.)</p>
<p>This time, he did everything right. After he pushed the change, he was so proud, that he decided to ask <a href="http://github.com/bret">Bret Pettichord</a>, the owner of the original Watir repository to merge his change with the original repository. That is called <code>pull request</code>.</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-2.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-2-300x82.jpg" alt="commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-2" title="commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-2" /></a></p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-1-1.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-1-1-273x300.jpg" alt="commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-1-1" title="commit-038e96b52200a5d86b477654ef166c9a995ab9a7-to-zeljkofilipin_s-watir-github-1-1" /></a></p>
<p>Don&#8217;t just love happy ends?! <img src='http://zeljkofilipin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Update:</strong> Bret Pettichord <a href="http://groups.google.com/group/watir-general/browse_thread/thread/89dfd45bdca2d305">points out</a> that instead of deleting local and Github repositories after messing up the whitespace, our hero could undo the change with this:</p>
<p><code>git reset HEAD~<br />
git push</code></p>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2009/03/28/git-and-github-on-mac/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Recording a Podcast with Skype on Mac Using Only Free Software</title>
		<link>http://zeljkofilipin.com/2009/03/17/recording-a-podcast-with-skype-on-mac-using-only-free-software/</link>
		<comments>http://zeljkofilipin.com/2009/03/17/recording-a-podcast-with-skype-on-mac-using-only-free-software/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 21:33:24 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Free]]></category>
		<category><![CDATA[Podcasts]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=421</guid>
		<description><![CDATA[I have a small podcast on Watir called Watir Podcast.
When I was recording podcasts on Windows XP machine, it was easy to do it using all open source or free software. All you had to do is install Skype (free, voice over Internet), Audacity (open source, audio recording and editing) and play a bit with [...]]]></description>
			<content:encoded><![CDATA[<p>I have a small podcast on <a href="http://wtr.rubyforge.org/">Watir</a> called <a href="http://watirpodcast.com/">Watir Podcast</a>.</p>
<p>When I was recording podcasts on Windows XP machine, it was easy to do it using all open source or free software. All you had to do is install <a href="http://www.skype.com/">Skype</a> (free, voice over Internet), <a href="http://audacity.sourceforge.net/">Audacity</a> (open source, audio recording and editing) and play a bit with Windows XP audio settings. To be true, it took me a few podcasts to figure out how to set audio just right, as you will surely notice if you listen to the first few of my podcasts.</p>
<p>A few months ago I got a Mac and I thought it would be as easy to record podcasts there. I was wrong. I have been trying and trying and only a few days ago I was able to record a Skype conversation on Mac.</p>
<p>What was the problem? I installed Skype and Audacity (both have Mac versions) and, to my great surprise, there was no option in Audacity to record both audio from Skype and from my microphone, as there is on Windows XP. I browsed around, tried a bunch of software and could not find anything that would work. At the moment, I think it is the limitation of sound card, but I could be wrong. (I used Boot Camp to install Windows XP on Mac, and could not record all audio even then.)</p>
<p>Then I found a great article, <a href="http://www.360east.com/?p=133">Recording Skype calls on GarageBand with LineIn and SoundFlower (Mac)</a>. It showed me that there is a way to record Skype on Mac using only free software. But it got me only 90% of the way. I was able to record both Skype and my audio, but I did not hear Skype audio. Asking a question and not being able to hear the answer is usually a problem in an interview. In the end, I found the solution in article&#8217;s comments, but it took me a while (and some luck) to figure out how to fix the problem.</p>
<p>So, how to record a Skype conversation?</p>
<p>Install <a href="http://www.cycling74.com/products/soundflower">Soundflower</a> (open source), <a href="http://www.rogueamoeba.com/freebies/">LineIn</a> (free) and <a href="http://www.skype.com/">Skype</a> (free).</p>
<p>To record and edit audio, you can use <a href="http://www.apple.com/ilife/garageband/">GarageBand</a> (free, I got GarageBand &#8216;08 with Mac OS X, but you have to pay for GarageBand &#8216;09) or <a href="http://audacity.sourceforge.net/">Audacity</a> (open source).</p>
<p><strong>System Preferences</strong> > Sound<br />
 &#8211; Output: Headphones &#8211; Built-in Audio (always use headphones when recording so your microphone does not catch sound from the speakers)<br />
 &#8211; Input: Internal microphone &#8211; Built-in (check &#8216;Use ambient noise reduction&#8217; and move microphone input volume slider to the right)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/sound.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/sound-300x219.jpg" alt="sound" title="sound" width="300" height="219" class="alignnone size-medium wp-image-429" /></a></p>
<p><strong>Skype</strong> > Preferences > Audio<br />
- Audio output: Soundflower (2ch)<br />
- Audio input: Soundflower (2ch)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/audio.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/audio-300x107.jpg" alt="audio" title="audio" width="300" height="107" class="alignnone size-medium wp-image-448" /></a></p>
<p>While configuring Skype for the first use, you should uncheck option that Skype automatically adjusts microphone volume and move the slider to the right, but I can not find that configuration wizard, even after reinstalling.</p>
<p><strong>LineIn</strong><br />
Input from: Build-in Microphone: Internal microphone<br />
Output to: Soundflower (2ch)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/linein.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/linein-300x106.jpg" alt="linein" title="linein" width="300" height="106" class="alignnone size-medium wp-image-451" /></a></p>
<p><strong>GarageBand</strong><br />
Audio output: Built-in Output<br />
Audio Input: Soundflower (2ch)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/audio_midi.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/audio_midi-300x94.jpg" alt="audio_midi" title="audio_midi" width="300" height="94" class="alignnone size-medium wp-image-453" /></a></p>
<p>Create New Podcast Episode > Male/Female Voice > Monitor: On<br />
Make sure you turn monitor &#8220;On&#8221;, or you will not hear the other person speaking. I heard my voice with about one second delay, so the next time I will try &#8220;On with Feedback Protection&#8221; instead of &#8220;On&#8221; setting.</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/1band.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/1band-300x195.jpg" alt="1band" title="1band" width="300" height="195" class="alignnone size-medium wp-image-426" /></a></p>
<p><strong>Audacity</strong><br />
Output: Core Audio: Built-in Output<br />
Input: Core Audio: Soundflower (2ch)</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/audacity.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/audacity-300x96.jpg" alt="audacity" title="audacity" width="300" height="96" class="alignnone size-medium wp-image-428" /></a></p>
<p>Preferences > Audio I/O > Playthrough > Hardware Playthrough: Play new track while recording it > check<br />
With software playthrough I heard my voice with about one second delay, but it was fine with hardware playthrough.</p>
<p><a href="http://zeljkofilipin.com/wp-content/uploads/2009/03/audacity-preferences.jpg"><img src="http://zeljkofilipin.com/wp-content/uploads/2009/03/audacity-preferences-300x169.jpg" alt="audacity-preferences" title="audacity-preferences" width="300" height="169" class="alignnone size-medium wp-image-427" /></a></p>
<p>Start Skype conversation and when you want to record, click ‘Pass Thru’ button in LineIn and click record button in GarageBand or Audacity.</p>
<p>Software versions I used:<br />
Mac OS X 10.5.6.<br />
Soundflower 1.4.3<br />
LineIn 2.0.3<br />
GarageBand &#8216;08 4.1.2 (248.7)<br />
Audacity 1.3.7<br />
Skype 2.8.0.324</p>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2009/03/17/recording-a-podcast-with-skype-on-mac-using-only-free-software/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AWTA 2009 Notes</title>
		<link>http://zeljkofilipin.com/2009/01/24/awta-2009-notes/</link>
		<comments>http://zeljkofilipin.com/2009/01/24/awta-2009-notes/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 15:17:04 +0000</pubDate>
		<dc:creator>Željko Filipin</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://zeljkofilipin.com/?p=362</guid>
		<description><![CDATA[




AWTA 2009 Saturday


AWTA 2009 was a lot of fun. At Notes from AWTA 2009 you can find a lot of images, notes, podcasts, blog posts, presentations, twitter feed&#8230;
It was great to finally meet in person a lot of people I knew on-line for years. I have learned a lot how other people test. Also, Austin [...]]]></description>
			<content:encoded><![CDATA[<table style="width:194px;">
<tr>
<td align="center" style="height:194px;background:url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat left"><a href="http://picasaweb.google.com/zeljko.filipin/AWTA2009Saturday?feat=embedwebsite"><img src="http://lh4.ggpht.com/_LyAkOKdWBgc/SXH32tXJXhE/AAAAAAAADug/xFTH0ecKNkQ/s160-c/AWTA2009Saturday.jpg" width="160" height="160" style="margin:1px 0 0 4px;"></a></td>
</tr>
<tr>
<td style="text-align:center;font-family:arial,sans-serif;font-size:11px"><a href="http://picasaweb.google.com/zeljko.filipin/AWTA2009Saturday?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;">AWTA 2009 Saturday</a></td>
</tr>
</table>
<p><a href="http://awta.wikispaces.com/AWTA+2009">AWTA 2009</a> was a lot of fun. At <a href="http://awta.wikispaces.com/Notes+from+AWTA+2009">Notes from AWTA 2009</a> you can find a lot of images, notes, podcasts, blog posts, presentations, twitter feed&#8230;</p>
<p>It was great to finally meet in person a lot of people I knew on-line for years. I have learned a lot how other people test. Also, Austin and Texas were very interesting to explore. I think all is already said about AWTA 2009. I just hope I will be there the next year too.</p>
<table style="width:194px;">
<tr>
<td align="center" style="height:194px;background:url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat left"><a href="http://picasaweb.google.com/zeljko.filipin/AWTA2009Sunday?feat=embedwebsite"><img src="http://lh5.ggpht.com/_LyAkOKdWBgc/SXNrZcJNZ6E/AAAAAAAAENY/9Fng8zZ4fMo/s160-c/AWTA2009Sunday.jpg" width="160" height="160" style="margin:1px 0 0 4px;"></a></td>
</tr>
<tr>
<td style="text-align:center;font-family:arial,sans-serif;font-size:11px"><a href="http://picasaweb.google.com/zeljko.filipin/AWTA2009Sunday?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;">AWTA 2009 Sunday</a></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://zeljkofilipin.com/2009/01/24/awta-2009-notes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
