<?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>Extra Thimian &#187; Ruby</title>
	<atom:link href="http://blog.thimian.com/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thimian.com</link>
	<description>Suddenly Fiction</description>
	<lastBuildDate>Sun, 14 Feb 2010 04:03:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Status update on Ruby Zen (Ruby Appliance, remember?)</title>
		<link>http://blog.thimian.com/2010/01/03/status-update-on-ruby-zen-ruby-appliance-remember/</link>
		<comments>http://blog.thimian.com/2010/01/03/status-update-on-ruby-zen-ruby-appliance-remember/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 10:24:30 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Virtual machine]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/?p=398</guid>
		<description><![CDATA[



Image via Wikipedia



A few days before New Years, I posted how neat it&#8217;d be if we had a Ruby Appliance. This, and the mail to the ruby-talk mailing list has resulted in a couple of results already.
For one, we found a name: Ruby Zen, which fits quite well, and is appropriately Web 2.0 without being [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 208px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:Ruby_logo.svg"><img title="Official Ruby logo" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Ruby_logo.svg/198px-Ruby_logo.svg.png" alt="Official Ruby logo" width="140" height="140" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:Ruby_logo.svg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>A few days before New Years, I posted how neat it&#8217;d be if we had a <a class="zem_slink" title="Ruby (programming language)" rel="homepage" href="http://www.ruby-lang.org/">Ruby</a> Appliance. This, and the mail to the <a title="Ruby Forum gateway to Ruby Talk" href="http://www.ruby-forum.com/forum/4">ruby-talk mailing list</a> has resulted in a couple of results already.</p>
<p>For one, we found a name: Ruby Zen, which fits quite well, and is appropriately Web 2.0 without being unintelligible. <img src='http://blog.thimian.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>For another: rubyzen.org has been registered, and we are feverishly working on getting the website up and some content, too.</p>
<p>We are also working on evaluating Linux distros, with <a class="zem_slink" title="Gentoo Linux" rel="homepage" href="http://www.gentoo.org">Gentoo</a>, <a class="zem_slink" title="TurnKey Linux Virtual Appliance Library" rel="homepage" href="http://www.turnkeylinux.org/">Turnkey</a> Linux, and <a class="zem_slink" title="Ubuntu (operating system)" rel="homepage" href="http://www.ubuntu.com/">Ubuntu</a> being hot candidates for the appliance&#8217;s operating system.</p>
<p>We&#8217;ve also decided to focus on Ruby 1.9.1.</p>
<p>The guys over at <a title="GemCutter" href="http://gemcutter.org">gemcutter.org</a> were so kind to provide me with a quick dump of the top 100 hottest gems, so we can pick some great gems to start with.</p>
<p>Unfortunately, this is happening behind closed doors of sorts, since, at the moment, we are using <a class="zem_slink" title="Google Wave" rel="homepage" href="http://wave.google.com/">Google Wave</a> which is still closed to the general public. However, if you leave me a comment here, we can organize a handful Wave invites for certain! (I still got 5 or 6 left from the first batch alone.)</p>
<p>So, what else?</p>
<p>Future plans!</p>
<p>In the short term:</p>
<ul>
<li>Get a website up for easy contribution (and to move the development process in the public, where it belongs, it&#8217;s done by the community for the community, after all)</li>
<li>Have a prototype VM ready in a couple of days</li>
<li>Get more contributors. You can help if: You can test a virtual machine, read proposals and comment on them (provide a reality check! Always good!), write a tutorial (maybe for your favorite gem, or Ruby feature)</li>
<li>Got TikiWiki experience? I&#8217;d be glad to hear from you, if you could lend a hand in implementing features (like an issue tracker, or user wiki page).</li>
</ul>
<p>So, yeah, the<a title="Thimian Blog: A Ruby Appliance" href="http://blog.thimian.com/2009/12/29/a-ruby-appliance/"> Ruby Appliance</a> isn&#8217;t forgotten. Considering that this was between the years we did get quite a bit done yet. Thanks to every one (here or on Ruby Talk) who contributed already. <img src='http://blog.thimian.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/b4df5a75-dec1-4bcb-afdf-6544f8200a96/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=b4df5a75-dec1-4bcb-afdf-6544f8200a96" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2010/01/03/status-update-on-ruby-zen-ruby-appliance-remember/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adopt A Library: ClothRed</title>
		<link>http://blog.thimian.com/2009/12/31/adopt-a-library-clothred/</link>
		<comments>http://blog.thimian.com/2009/12/31/adopt-a-library-clothred/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 12:13:36 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Adopt A Library]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[[R|T]DD]]></category>
		<category><![CDATA[Markup Languages]]></category>
		<category><![CDATA[RubyGems]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/?p=384</guid>
		<description><![CDATA[Right. I want to, but I really can&#8217;t get to it.
ClothRed is in dire need of help. Your help.
I simply don&#8217;t have the time, or will–truth be told–to begin work on ClothRed again. The code&#8217;s become foreign to me, way too foreign, and I have to get back into the thick of things, to write [...]]]></description>
			<content:encoded><![CDATA[<p>Right. I want to, but I really can&#8217;t get to it.</p>
<p>ClothRed is in dire need of help. Your help.</p>
<p>I simply don&#8217;t have the time, or will–truth be told–to begin work on ClothRed again. The code&#8217;s become foreign to me, way too foreign, and I have to get back into the thick of things, to write any useful developments for ClothRed.</p>
<p>So, what is ClothRed? In theory, it&#8217;s an HTML to Textile parser, for example to filter user input, so it goes well with RedCloth (see what I did there? Boy, did I think I was clever).</p>
<p>However, the architecture of this thing is rather stupid, if not braindead, working off of hardcoded Arrays of HTML tags and entities, and #gsub&#8217;ing those tags. Embarassing, really.</p>
<p>However, it has a complete set of tests from my TDD (it even passes them, except the one I left off, natch). Still kinda proud of this, since ClothRed was my first project to make use of TDD, and the Unit::Test framework).</p>
<p>If you don&#8217;t know where to start: I&#8217;d get a rewrite off the ground, using Nokogiri, it seems simple enough (and allows to extract innerHTML, and attributes, and all kinds of neat stuff. Would&#8217;ve been nice to have that available when I worked on ClothRed).</p>
<p>The Rakefile needs clean up, too.</p>
<p>So, head on over to <a title="ClothRed on GitHub" href="http://github.com/CynicalRyan/ClothRed">http://github.com/CynicalRyan/ClothRed</a><a title="ClothRed on GitHub" href="http://cynicalryan.github.com/ClothRed"></a>, and take a look if you&#8217;d be willing to take up the work from there.</p>
<p>Update: Fixed link.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/a5a5ecaf-97ed-4c88-8d96-9a3773fb997f/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=a5a5ecaf-97ed-4c88-8d96-9a3773fb997f" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2009/12/31/adopt-a-library-clothred/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Ruby Appliance</title>
		<link>http://blog.thimian.com/2009/12/29/a-ruby-appliance/</link>
		<comments>http://blog.thimian.com/2009/12/29/a-ruby-appliance/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 01:40:38 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Operating system]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RubyGems]]></category>
		<category><![CDATA[Virtual machine]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/?p=372</guid>
		<description><![CDATA[What is an &#8220;Appliance&#8221;?
In this context, an appliance is a ready-to-run virtual machine. No set up to speak of required.
 But why? Isn’t it easy to install Ruby wherever you like?
That is very true.
However, the Ruby ecosystem is very *NIX centric. Not everyone has the luxury, or time or ability, to setup and maintain a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is an &#8220;Appliance&#8221;?</strong></p>
<p>In this context, an appliance is a ready-to-run virtual machine. No set up to speak of required.</p>
<p><strong> But why? Isn’t it easy to install Ruby wherever you like?</strong></p>
<p>That is very true.</p>
<p>However, the Ruby ecosystem is very *NIX centric. Not everyone has the luxury, or time or ability, to setup and maintain a UNIX-like operating system.</p>
<p>Virtualization and thus appliances turn operating systems into just another kind of program. They reduce the risk of using a different operating system. Further, not everyone using Ruby wants to, or can, dig through C extensions to make them work on their operating system of choice. The hurdles as a Windows user are too high in most cases.</p>
<p>An appliance makes it easier to setup test environments, so they are great for seasoned developers, as well!</p>
<p>You can start with a clean slate, only Ruby, RubyGems, and a compiler tool chain are installed, and you can easily revert to this blank slate at the push of a button. With the different networking tools in today’s VM tools, you can even test network deployment of Rails applications.</p>
<p>So here is my proposal:</p>
<p>To create the best possible Ruby appliance and experience, I want to know which Gems and tools the Ruby community sees as essential to make life as a Rubyist easier.</p>
<p><strong>Submit your ideas, and the Ruby Appliance will benefit and with that, all of the Ruby community.</strong></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/2f52bc3c-e4f2-408a-b8fe-cde0df8e11b3/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=2f52bc3c-e4f2-408a-b8fe-cde0df8e11b3" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2009/12/29/a-ruby-appliance/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Ruby + vim on Windows</title>
		<link>http://blog.thimian.com/2009/12/28/ruby-vim-on-windows/</link>
		<comments>http://blog.thimian.com/2009/12/28/ruby-vim-on-windows/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 03:31:50 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/?p=366</guid>
		<description><![CDATA[I&#8217;m used to being shafted as a Ruby and Windows user. The Ruby community is quite *NIX centric.
Speaking of which: Praising &#8220;open&#8221; and using Macs, makes a hypocrite at best, and an idiot at worst. Use OpenSolaris, *BSD, or Linux if you want to be open in spirit. Or, like me, stop bothering, and use [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m used to being shafted as a <a class="zem_slink" title="Ruby (programming language)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Ruby_%28programming_language%29">Ruby</a> and <a class="zem_slink" title="Microsoft Windows" rel="wikipedia" href="http://en.wikipedia.org/wiki/Microsoft_Windows">Windows</a> user. The Ruby community is quite *NIX centric.</p>
<p>Speaking of which: Praising &#8220;open&#8221; and using Macs, makes a hypocrite at best, and an idiot at worst. Use <a class="zem_slink" title="OpenSolaris" rel="wikipedia" href="http://en.wikipedia.org/wiki/OpenSolaris">OpenSolaris</a>, <a title="Wikipedia: BSD descendants" href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution#Significant_BSD_descendants">*BSD</a>, or <a class="zem_slink" title="Linux" rel="wikipedia" href="http://en.wikipedia.org/wiki/Linux">Linux</a> if you want to be open in spirit. Or, like me, stop bothering, and use what you are comfortable with, and stop pretending you use it for any other reason than that you are comfortable with it.</p>
<p>Anyway. <a class="zem_slink" title="Vim (text editor)" rel="homepage" href="http://www.vim.org/">vim</a>.</p>
<p>After <code>nano</code>, vim is the best editor in the world (once you get used to its idiosyncrasies), making editing code, or plain ol&#8217; text a breeze, and its distinction between editing and normal mode is quite sweet.</p>
<p>But, while using the official (well, as official as open source gets) gVim 7.2 distribution from vim.org, I noticed that it is compiled with <code>-ruby</code> (and <code>-perl</code>, or <code>-python</code>). Neither <code>:ruby</code> nor <code>:rubyf</code> work. Which makes the hack, test, hack, test cycle not smooth at all, since <code>:rubyf %</code> doesn&#8217;t work.</p>
<p>Fortunately, fixing this is easy, once you know how:</p>
<p>Install the official gVim 7.2 distribution, and get <a title="Wu Yongwei's Programming Page" href="http://wyw.dcweb.cn/#download">Wu Yongwei&#8217;s gVim build</a>. replace the binariesof  your vim installation with the ones in his gVim 7.2 distribution. Done. This works even with the MinGW Ruby distribution from <a title="RubyInstaller downloads" href="http://rubyinstaller.org/download.html">RubyInstaller.org</a>.</p>
<p>Happy Vimming. <img src='http://blog.thimian.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/e73a2977-63f5-426f-a64a-d3a158f1ddb9/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=e73a2977-63f5-426f-a64a-d3a158f1ddb9" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2009/12/28/ruby-vim-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Edginess, Community, and How That Reflects on You</title>
		<link>http://blog.thimian.com/2009/05/02/on-edginess-community-and-how-that-reflects-on-you/</link>
		<comments>http://blog.thimian.com/2009/05/02/on-edginess-community-and-how-that-reflects-on-you/#comments</comments>
		<pubDate>Fri, 01 May 2009 23:25:31 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Rantings]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Society & Culture]]></category>
		<category><![CDATA[What were they thinking?]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/?p=105</guid>
		<description><![CDATA[This article has two parts: One is a bit analytical, the other is highly opinionated (so, probably more fun to read).
A bit of exposition first: Somebody did a technical presentation at a technical conference. Unfortunately, a few members took offence at the presentation. Not its contents, mind you, but the way the presentation was done. [...]]]></description>
			<content:encoded><![CDATA[<p>This article has two parts: One is a bit analytical, the other is highly opinionated (so, probably more fun to read).</p>
<p>A bit of exposition first: Somebody did a technical presentation at a technical conference. Unfortunately, a few members took offence at the presentation. Not its contents, mind you, but the way the presentation was done. It contained imagery that, to my refined European tastes, is soft-core pornography. Apparently (and I can&#8217;t really tell, since I wasn&#8217;t there),the publicly availabel slides of the presentation don&#8217;t even contain all the oh-so-edgy material, but word has it that the technical oriented part of the presentation contained soft-core pornography, too. To mix things up, apparently. The Rails community is on the cutting edge, after all.</p>
<p>The presentation is a great example of how not to be edgy and how to waste an opportunity in marketing.</p>
<p>But let me define &#8220;edgy&#8221; first, so that we are on the same page.</p>
<p>Looking at the <a title="Urban Dictionary Definition: edgy" href="http://www.urbandictionary.com/define.php?term=edgy" target="_self">Urban Dictionary</a>, the term has various meaning. The second one seems to fit the most:</p>
<blockquote>
<table id="entries" border="0">
<tbody>
<tr>
<td class="text" colspan="2">
<div class="definition">1-pushing the envelope<br />
2- to be way out there</div>
<div class="example"><em>to be on the cutting edge or to be edgy </em></div>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p><a title="Dictionary.com Definition: edgy" href="http://dictionary.reference.com/browse/edgy" target="_self">Dictionary.com</a> seems to agree:</p>
<blockquote><p>3. daringly innovative; on the cutting edge.</p></blockquote>
<p>So, how was the presentation not edgy?</p>
<p>Well, &#8220;<a class="zem_slink" title="Sex in advertising" rel="wikipedia" href="http://en.wikipedia.org/wiki/Sex_in_advertising">sex sells</a>&#8221; is a truism. From car ads, to shampoo ads, to razor blade ads, to chewing gum. The advertisement industry thrives on that. you can find it in movies, too. Who doesn&#8217;t remember Dr. Manhattan&#8217;s schlong from the <a class="zem_slink" title="Watchmen (film)" rel="imdb" href="http://www.imdb.com/title/tt0409459/">Watchmen</a> movie? Or the trite sex scene of 90% of non-comedy, non-family values Hollywood movies?</p>
<p>So, tehre we have it: A community that sees itself as edgy, innovative, rule-breaking and &#8220;eschewing the rules&#8221; is using the most base, most commercially exploited, and least creative technique to gain attention there is. That isn&#8217;t edgy. That&#8217;s playing it safe. It&#8217;s relying on instincts of a (predominantly) male audience: &#8220;Look, tits. It must be awesome/cool/mine!&#8221; or &#8220;It gets me the chicks. I shall have it and get the chicks myself.&#8221;</p>
<p>Now, you can certainly play this instinct for irony. The Axe (Lynx in the UK) commercials do that. An old Toyota ad did that. The Rails community didn&#8217;t.</p>
<p>So, how is this a marketing failure as well?</p>
<p>This is two fold. For one, nobody is talking about what the technical presentation contained that was technological. Instead, it <a title="Post by Sarah Allen" href="http://www.ultrasaurus.com/sarahblog/2009/04/gender-and-sex-at-gogaruco/" target="_self">back-fired</a> <a title="Mike Gunderloy's announcement to leave the Rails team" href="http://afreshcup.com/2009/04/28/a-painful-decision/" target="_self">to the extreme</a>. <a title="Sarah Mei's post on the matter" href="http://www.sarahmei.com/blog/?p=46" target="_self">And deservedly</a>, if I may say. If you play with fire, you can get burned.</p>
<p>Second, all the porn is actually distracting from the content. It  might have worked as a hook (since a lot of people saw the presentation, it actually did). But it doesn&#8217;t work as a theme for a whole presentation. Certainly not for me. <a title="Herding Tigers - Software Development and the Art of War" href="http://mwrc2009.confreaks.com/14-mar-2009-10-30-herding-tigers-software-development-and-the-art-of-war-daniel-philpott.html" target="_self">A presentation themed around the Art of War</a> was tedious for me, too (give it a try, though). And military history is something I have an interest in.</p>
<p>In short: The presentation is a failure. It is a disgrace to my gender, it is a disgrace to its topic (CouchDB seems to get a lot of buzz, but I doubt I&#8217;ll look at it any time soon, since it doesn&#8217;t fit my current requirements, and I want to wait until the storm has calmed down at least a bit. Which&#8217;ll take a while, I guess), and it is a disgrace to the edgy crowd.</p>
<p>Now, my personal opinion on this, and be warned, I won&#8217;t be looking for excuses for the behavior of people (like :</p>
<p>What was the author thinking? I have no idea. He thought it was a good idea, apparently, and ran with it. Unfortunately, he ran the thing to the ground. It&#8217;s obvious that we software developers need to work on our people skills. And it seems that Matt took a step back from the whole mess. He believed to be on the safe side, too. He ran it past the obvious candidates to check his presentation. <a title="Matt Aimonetti: On Engendering Strong Reactions" href="http://merbist.com/2009/04/28/on-engendering-strong-reactions/" target="_self">Lesson learned</a>, I hope, and this shouldn&#8217;t repeat itself. If it does, I&#8217;d take a long hard look at my life choices and values. Because then <strong>the problem is with me, not my audience</strong>.</p>
<p>So, I won&#8217;t dwell on this, especially if the author&#8217;s of the links I&#8217;ve posted said it better than I ever could.</p>
<p><a title="_why's A Selection Of Thoughts From Actual Women" href="http://hackety.org/2009/04/29/aSelectionOfThoughtsFromActualWomen.html">_why, the lucky stiff, compiled a post with reactions by actual women</a>. It is more than worth your time.</p>
<p>That being said:</p>
<p>What pisses me off most royal, is the attitude some people show (note, this is the general &#8220;you&#8221;, not the personal one. I have no beef with DHH himself, just with the attitude he and others have).</p>
<p><a title="DHH: I'm an R rated individual" href="http://www.loudthinking.com/posts/39-im-an-r-rated-individual" target="_self">Quote David Heinemeier Hansson</a>:</p>
<blockquote><p>You&#8217;re bound to upset, offend, or annoy people when you&#8217;re not adding heavy layers of social sugarcoating.</p></blockquote>
<p>Quoth he furthermore:</p>
<blockquote><p>[Not adding heavy layers of social sugarcoating,I think. - The author] means that it leaks out that I love listening to Howard Stern, that Pulp Fiction is one of my favorite movies, that I laugh out loud at Louis CK&#8217;s Bag of Dicks joke, that I whole-fully accept my instinctual attraction to the female body, that I think drugs should be legal, that I really like the word fuck and other gems of profanity, and on and on.</p></blockquote>
<p>I like Pulp Fiction, too. One of those days, I&#8217;ll even see it completely and in one sitting. I like to watch women on the streets as any other male sharing my taste in partners, I curse (sometimes heavily, especially if I am agitated or (feel that) I have been wronged). That doesn&#8217;t excuse me from being a human being. From showing respect, and seriousness.</p>
<p>That I curse has an impact on my language and use of language, but that doesn&#8217;t mean that I use the word &#8220;fuck&#8221;, &#8220;shit&#8221;, &#8220;goddamn&#8221; as filler.</p>
<p>The very point where you claim to be superior for being an asshole,</p>
<p>I won&#8217;t stand there, and say &#8220;You are a unique and beautiful snowflake. You have every right to be an ass.&#8221; No, sir. I won&#8217;t try to be apologetic for your behavior.</p>
<p>If you want to be taken serious, act like an adult.</p>
<p>It&#8217;s completely and utterly any one individual&#8217;s responsibility to make sure that they get along with a community and society at large. It&#8217;s not my problem if I get offended by what you do. It is your problem not to offend me. That doesn&#8217;t mean that you should make absolutely sure that what you say and do isn&#8217;t controversial. Far from it. But it does mean that you have to show others the respect you want them to show you.</p>
<p>Having invented a technology only goes so far. You gotta work if you want to keep it.</p>
<p>Communication and life are two-way streets.</p>
<p>The rails community some-what values that it is non-professional. That it is anti-enterprise. That&#8217;s fine. That shouldn&#8217;t mean that offending just for the sake of offending, and then not having the balls to apologize, are condoned, nay encouraged.</p>
<p>Me, I&#8217;ll draw my consequences out of this mess. Personal (Do I want to be involved in a community like this? Note, that I am <strong>not</strong> talking about the Ruby community!), and professional (Do I want to use a technology that the community doesn&#8217;t know how to sell except with tits?).</p>
<p>Until then, I stand up and be counted:</p>
<blockquote><p><em>I want the Ruby, Rails, open source, and web development communities to be a dignified, respectful, inclusive, and welcoming place. Acts like putting questionable imagery in a conference talk are regrettable and harmful to those aims. We’ve all been witnesses to off-color jokes, misogynistic back channel chatter and unnecessary, trolling comments. I pledge to do better to stand up and call this behavior out when I see it in conferences, online and other public settings. I don’t expect it to go away but I’m not going to tacitly condone it any longer.</em></p></blockquote>
<p>Without any shame <a title="Nick Sieger: Stand and Be Counted" href="http://blog.nicksieger.com/articles/2009/04/30/stand-and-be-counted">stolen from Nick Sieger&#8217;s blog</a>.</p>
<p>I&#8217;ll just add the following:</p>
<ul>
<li>This holds true for any community I am part of.</li>
<li>This holds true for any offense I am witness to.</li>
<li>Someday, I&#8217;ll have the backbone to speak up face to face, too.</li>
<li>I&#8217;ll actively work towards this day.</li>
<li>Respect, fairness, and openess are requirements to be successful.</li>
<li>I&#8217;ll make mistakes. I want to be called on them.</li>
</ul>
<p>Thanks for reading.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/0660c966-a1a6-4e8d-9f23-243a9378d4f2/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=0660c966-a1a6-4e8d-9f23-243a9378d4f2" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2009/05/02/on-edginess-community-and-how-that-reflects-on-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s not plain text, okay?</title>
		<link>http://blog.thimian.com/2009/02/21/its-not-plain-text-okay/</link>
		<comments>http://blog.thimian.com/2009/02/21/its-not-plain-text-okay/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 00:26:54 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Rantings]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User story]]></category>
		<category><![CDATA[[R|T]DD]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/?p=82</guid>
		<description><![CDATA[I just read an article about a testing framework called &#8220;Cucumber&#8221; (In moments like this I hate the creativity of the Ruby community. Explain this to your boss, sometime..), on the Giant Robots Smashing into Giant Robots blog.
The article, which is un-surprising good in the technical aspect, claimed that the testing framework is able to [...]]]></description>
			<content:encoded><![CDATA[<p>I just read an article about a testing framework called &#8220;<a title="Cucumber website" href="http://cukes.info/">Cucumber</a>&#8221; (In moments like this I hate the creativity of the <a class="zem_slink" title="Ruby (programming language)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Ruby_%28programming_language%29">Ruby</a> community. Explain this to your boss, sometime..), on the <a title="Mixing Cucumber with Test::Unit/Shoulda" href="http://giantrobots.thoughtbot.com/2009/2/20/mixing-cucumber-with-test-unit" target="_self">Giant Robots Smashing into Giant Robots</a> blog.</p>
<p>The article, which is un-surprising good in the technical aspect, claimed that the testing framework is able to process your testing scenario in plain text, from the user&#8217;s perspective. Without having looked at Cucumber: This is wrong.</p>
<p>&#8220;But wait,&#8221; you say, &#8220;you haven&#8217;t looked at Cucumber.&#8221; True. However, I bet you dollars to donoughts, that, just as with <a class="zem_slink" title="RSpec" rel="wikipedia" href="http://en.wikipedia.org/wiki/RSpec">RSpec</a>, Shoulda, and any other testing frame work, you&#8217;ll have to learn a vocabulary to express your thoughts, so that the tool understands what you want. Just because computers can&#8217;t do natural language processing. Yet, anyway.</p>
<p>Let&#8217;s stop misleading ourselves, in implying that &#8220;plain text&#8221; means &#8220;natural and intuitive&#8221;. It isn&#8217;t. If I wouldn&#8217;t know that Cucumber is doing <a class="zem_slink" title="Behavior Driven Development" rel="wikipedia" href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">Behavior Driven Development</a>, I&#8217;d have no idea what &#8220;Given a&#8230;&#8221; meant in this context.</p>
<p>For us humans, text needs context, and that has to be provided somehow. This is even worse with computers: We can derive context from content, computers are too stupid to do that. Accordingly, Cucumber needs you to write the test parser (judging by the most curious look I gave it. It&#8217;s probably just fine tuning the actual testing and mock ups). Using Regular Expressions, too (just to add insult to injury <img src='http://blog.thimian.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>How about we call &#8220;plain text&#8221; and similar things &#8220;understandable&#8221;, instead? After all, while these tools don&#8217;t live up to what is implied, they are able to make a key point of (agile) development accessible to the most important stakeholder: The customer, while giving us, the developers, a basic template for sanity checks. This is more than important, it is an absolute necessity for our survival as business entities, and in part even as hobbyists! Cucumber&#8217;s BDD tests probably don&#8217;t need an understanding of the programming language you happen to use, but abstract this away, since it is, in general, not needed at this stage.</p>
<p>Just remember <a title="Joel on Software: The Law of Leaky Abstractions" href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html" target="_self">The Law of Leaky Abstractions</a></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/0d3a9796-7bcc-4240-91b6-d26207e8eed6/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=0d3a9796-7bcc-4240-91b6-d26207e8eed6" alt="Reblog this post [with Zemanta]" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2009/02/21/its-not-plain-text-okay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I am lazy. That&#8217;s why I like J2EE</title>
		<link>http://blog.thimian.com/2008/05/07/i-am-lazy-thats-why-i-like-j2ee/</link>
		<comments>http://blog.thimian.com/2008/05/07/i-am-lazy-thats-why-i-like-j2ee/#comments</comments>
		<pubDate>Wed, 07 May 2008 18:52:00 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/2008/05/07/i-am-lazy-thats-why-i-like-j2ee/</guid>
		<description><![CDATA[No, really. Without J2EE, I wouldn&#8217;t have access to Glassfish, with its wonderful autodeploy directory to, well, autmatically delpoy applications on it.
Without Java, I wouldn&#8217;t be able to use JRuby.
And neither would I be able to use Warbler to create .war-files for drag and drop deployment.
In the span of 30 minutes (half of which is [...]]]></description>
			<content:encoded><![CDATA[<p>No, really. Without J2EE, I wouldn&#8217;t have access to <a class="zem_slink" title="GlassFish" rel="homepage" href="http://glassfish.java.net/" target="_blank">Glassfish</a>, with its wonderful autodeploy directory to, well, autmatically delpoy applications on it.</p>
<p>Without Java, I wouldn&#8217;t be able to use <a class="zem_slink" title="JRuby" rel="homepage" href="http://jruby.codehaus.org/" target="_blank">JRuby</a>.</p>
<p>And neither would I be able to use Warbler to create<span style="font-family: courier new;"> .war</span>-files for drag and drop deployment.</p>
<p>In the span of 30 minutes (half of which is related to my underspec&#8217;d development environment), I was able to deploy a Rails application.</p>
<p>First, you need to setup your Rails application for use with JDBC. In Rails 2.0 it is as easy as this <span style="font-family: courier new;">database.yml</span>:</p>
<blockquote style="font-family: courier new;"><p>development:<br />
host: localhost<br />
adapter: jdbc<br />
driver: com.mysql.jdbc.Driver<br />
url: jdbc:mysql://localhost:3306/application_db<br />
username:<br />
password:</p></blockquote>
<p>With the Warbler gem, you can easily create a <a class="zem_slink" title="Sun WAR (file format)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Sun_WAR_%28file_format%29" target="_blank">war file</a>:</p>
<blockquote style="font-family: courier new;"><p>jruby -S warble war</p></blockquote>
<p>To fine-tune your configuration (if Warble&#8217;s defaults aren&#8217;t as good for you as they could), just run</p>
<blockquote style="font-family: courier new;"><p>jruby -S warble config</p></blockquote>
<p>You can edit the resulting <span style="font-family: courier new;">config\warble.rb</span> for some fine tuning (I&#8217;ll have to look into it, for example how to tell it to use a specific JRuby version).</p>
<p>Once you are ready to create your <span style="font-family: courier new;">.war</span>-file:</p>
<blockquote style="font-family: courier new;"><p>jruby -S rake war:standalone:create</p></blockquote>
<p>Thsi creates a war file inculding the JRuby runtime. Drop into your domain&#8217;s autodeploy folder, and wait until Glassfish is done deploying it. Done. You have a working, deployed, and automagically scaling Rails application. No need to herd a pack of Mongrels, futy with mod_proxy, or anything else. Wonderful.</p>
<p>BUT there is one issue you migth have (whcih is unrelated to Ruby, JRuby, or Glassfish):</p>
<p>It is possible that your Rails app throws the following exception:</p>
<blockquote style="font-family: courier new;"><p>No :secret given to the #protect_from_forgery call. Set that or use a session store capable of generating its own keys (Cookie Session Store).</p></blockquote>
<p>Don&#8217;t fret. Either use the correct security, or change your <span style="font-family: courier new;">app/controllers/application.rb</span> so it looks like this:</p>
<blockquote style="font-family: courier new;"><p>protect_from_forgery :secret =&gt; &#8216;a_really_long_pseudo_random_hash_thing&#8217;</p></blockquote>
<p>Simply remove the comment in front of the <span style="font-family: courier new;">:secret</span>. Done. Enjoy the bonus you just ensured for yourself, since you avoided at least a day of additional deployment and configuration, and/or learning capistrano.</p>
<p>P.S.: Still working on the comparison of OpenID and CAS for Ruby, so this is a bit of filler content.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2008/05/07/i-am-lazy-thats-why-i-like-j2ee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wide OpenID. SSO for the user.</title>
		<link>http://blog.thimian.com/2008/05/06/wide-openid-sso-for-the-user/</link>
		<comments>http://blog.thimian.com/2008/05/06/wide-openid-sso-for-the-user/#comments</comments>
		<pubDate>Tue, 06 May 2008 11:28:00 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Single sign-on]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/2008/05/06/wide-openid-sso-for-the-user/</guid>
		<description><![CDATA[OpenID. Doesn&#8217;t that sound wonderful? It is open. Right there in the name it says that it is! And it is about IDs, too! Er, wait. What is it?
OpenID is an open standard that is not vendor controlled. That is, neither Google, nor Microsoft, nor Apple could change the nature of the standard and &#8216;neglect&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>OpenID. Doesn&#8217;t that sound wonderful? It is open. Right there in the name it says that it is! And it is about IDs, too! Er, wait. What is it?</p>
<p>OpenID is an open standard that is not vendor controlled. That is, neither Google, nor Microsoft, nor Apple could change the nature of the standard and &#8216;neglect&#8217; to tell everybody about it.</p>
<p>The aim of OpenID is to provide users with a means to log in at websites without creating an account with a specific site (if you run your own OpenID server, you don&#8217;t have to tell anybody your username/password).</p>
<p>After this little overview of OpenID, let&#8217;s get into Ruby-OpenID:</p>
<p>Like Ruby-CAS, this package comes in two flavors: A server component, and a client component.</p>
<p><span style="font-weight: bold;">My own OpenID server? Anyone? Bueller? Bueller?</span></p>
<p>However, compared to Ruby-CAS, the server component is limited. The OpenID server (based on Rails) is an example only, and doesn&#8217;t even come with tests to take a look at how it works. A shame, really. So, without this, you&#8217;ll have to roll your own solution to this. Since this is a Ruby gem, you can easily create a  server and roll with it, using any storage solution you chose. However, the investment on your part is much higher than with Ruby-CAS&#8217; server, which provides a turn-key solution, unless you need something that is very uncommon (like me <img src='http://blog.thimian.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p><span style="font-weight: bold;">My client has OpenID. He showed me the URL.</span></p>
<p>The client side is a bit more complex. For login, users have to provide an OpenID enabled URL, from one of the many OpenID providers. Chances are, that you already have an OpenID URL, without knowing it (off the top of my head, Blogger, Yahoo!, LiveJournal, and AOL provide OpenID URLs already)!</p>
<p>With this URL, a web application can authenticate a user. You get redirected to the provider (discovered via the Yadis protocol, to standardize the data protocol. Isn&#8217;t interoperability fun?), and have to provide your credentials there, and <span style="font-style: italic;">then</span> you have to approve the application (just once, or permanently), too. Or rather, the application&#8217;s URL. And you have to repeat this process for every single account you create someplace else. After approving the URL, you get redirected back to the site that requested your authentication, and you are being logged into the app (or an account is created for you, and then you are logged in, or however this is handled).</p>
<p>This solution is ideal for the internet (where services rarely know about each other), but not so good for an intranet (where services and people know about each other).</p>
<p><span style="font-weight: bold;">Ceterum censeo Carthaginem esse delendam</span></p>
<p>If you want to create trust, without forcing people to create accounts and maintain yet another set of username/passwords/mock-two-factor-authentication-security-question, OpenID is certainly the way to go. Even to create accounts for your web service&#8217;s users.</p>
<p>The big downside is, that proxy-authentication (like with CAS) isn&#8217;t possible, or you have to roll your own, somehow.</p>
<p>Also, since OpenID is pretty much roll your own on the server side, other solutions are probably better for you if you want to have SSO for an intranet.</p>
<p>If you want to read more about Ruby-CAS, I <a href="http://justarubyist.blogspot.com/2008/05/case-for-cas.html">wrote an entry about that, too</a>.</p>
<p>Coming soon: Oh my God, what did I get myself into <span style="font-weight: bold;">this</span> time? Or: Comparing Ruby-CAS and Ruby-OpenID.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2008/05/06/wide-openid-sso-for-the-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A case for CAS</title>
		<link>http://blog.thimian.com/2008/05/04/a-case-for-cas/</link>
		<comments>http://blog.thimian.com/2008/05/04/a-case-for-cas/#comments</comments>
		<pubDate>Sun, 04 May 2008 12:16:00 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RubyCAS]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[Single sign-on]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/2008/05/04/a-case-for-cas/</guid>
		<description><![CDATA[A couple of days ago, I talked about the limited options of SSO on the Ruby side of things. This turned out to be a bit of a mistake. In fact, the two viable SSO solutions are viable, and feature rich, providing what you need on the authentication server’s side, as well as the client’s [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago, <a href="http://justarubyist.blogspot.com/2008/04/why-have-thee-forsaken-me-oh-sso.html">I talked about the limited options of SSO</a> on the Ruby side of things. This turned out to be a bit of a mistake. In fact, the two viable <a class="zem_slink" title="Enterprise single sign-on" rel="wikipedia" href="http://en.wikipedia.org/wiki/Enterprise_single_sign-on" target="_blank">SSO</a> solutions are viable, and feature rich, providing what you need on the <a class="zem_slink" title="Authentication server" rel="wikipedia" href="http://en.wikipedia.org/wiki/Authentication_server" target="_blank">authentication server</a>’s side, as well as the client’s side.</p>
<p>The issue was more that there are only these two options in the first place.</p>
<p>However, I’m going to take a deeper look at these two options. I’ll do this in three articles, focusing on RubyCAS client and server first, <a class="zem_slink" title="OpenID" rel="wikipedia" href="http://en.wikipedia.org/wiki/OpenID" target="_blank">OpenID</a> client and server second, and comparing these against each other in the last episode.</p>
<p>Now, without further ado, a look into <a class="zem_slink" title="Central Authentication Service" rel="wikipedia" href="http://en.wikipedia.org/wiki/Central_Authentication_Service" target="_blank">CAS</a>.</p>
<p>CAS is Yale’s solution to the SSO problem. It provides a client/server architecture, allowing each application to authenticate users against a single server.</p>
<p>Matt Zukowski (his <a href="http://rubyforge.org/users/gunark/">RubyForge profile</a>) implemented the Ruby variants of the <a href="http://www.ja-sig.org/products/cas/overview/protocol/index.html">Central Authentication Service Protocol</a> (short CAS), both on the server side (<a href="http://code.google.com/p/rubycas-server/">RubyCAS server</a>), and the client side (<a href="http://code.google.com/p/rubycas-client/">RubyCAS client</a>).</p>
<p><span style="font-weight: bold;">Clientèle dealings</span></p>
<p>The client simply enables to authenticate against a server implementing the CAS protocol. That’s it. Well, not quite.</p>
<p>Actually, a CAS enabled website hands authentication off to the CAS server login page, which checks the user’s credentials, and redirects back to the requested webpage on successful authentication. The web application verifies that the user has, indeed, logged in, and works as expected.</p>
<p>The benefit of CAS for web-based SSO is, that any CAS-enabled application can use the ticket issued by the CAS server for authentication, as long as the server can read the cookie placed (so, it has to be the same URI that reads the cookie, not necessarily the same server).</p>
<p><span style="font-weight: bold;">Serving the greater good</span></p>
<p>The server works a bit different, and necessarily so. It takes the user’s credentials, authenticates the user against the configured form of storage, and redirects back to the application requesting the authentication of the user.</p>
<p>For authentication, RubyCAS server brings three pre-configured Authenticators:</p>
<ul>
<li><span style="font-style: italic;">CASServer::Authenticators::LDAP</span> to authenticate against an LDAP directory service, and LDAP’s cousin <a class="zem_slink" title="Active Directory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Active_Directory" target="_blank">Active Directory</a> gets its own Authenticator, called.</li>
<li>Additionally, there is an SQL authenticator <span class="link" style="font-style: italic;">CASServer::Authenticators::SQL</span>, which can use any SQL database that <a href="http://ar.rubyonrails.com/">ActiveRecord</a> can talk to.</li>
<li>If none of these fit the bill, you can apparently use <span class="link" style="font-style: italic;">CASServer::Authenticators::Base</span> to roll your own authenticator (the RDoc documentation is rather silent on the issue, and I haven’t dug into the source code yet).</li>
</ul>
<p><span style="font-weight: bold;">Concluding the obvious</span></p>
<p>As long as you use Ruby, you should be able to use RubyCAS client (you’ll probably have to do some source code hacking if you don’t use ActiveRecord for the RubyCAS server, though).</p>
<p>This should be of a great boon in any organization using the CAS system already. And the <a href="http://www.ja-sig.org/wiki/display/CASC/Home">wealth of client options provided by the CAS ecosystem</a> should make CAS an easy sell if you are looking for an SSO solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2008/05/04/a-case-for-cas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kicking off the blog (and the project, too)</title>
		<link>http://blog.thimian.com/2008/04/29/kicking-off-the-blog-and-the-project-too/</link>
		<comments>http://blog.thimian.com/2008/04/29/kicking-off-the-blog-and-the-project-too/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 07:22:00 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Document management system]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/2008/04/29/kicking-off-the-blog-and-the-project-too/</guid>
		<description><![CDATA[I promised myself, that I&#8217;d chronicle my efforts in developing a project from start to finish.
Well, this won&#8217;t quite work out, since I already have the contract in hand.  
However, I&#8217;ll write up what I am going to do, what I am doing, and the milestones reached. Well, a software development blog.
So, what&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p>I promised myself, that I&#8217;d chronicle my efforts in developing a project from start to finish.</p>
<p>Well, this won&#8217;t quite work out, since I already have the contract in hand. <img src='http://blog.thimian.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>However, I&#8217;ll write up what I am going to do, what I am doing, and the milestones reached. Well, a software development blog.</p>
<p><span style="font-weight: bold;">So, what&#8217;s the project about?</span></p>
<p>I have to build a web-based <a href="http://en.wikipedia.org/wiki/Document_Management">Document management system</a>.</p>
<p>Requested Features:
<ul>
<li>Single Sign On</li>
<li>Import documents from a network share</li>
<li>Storage of metadata (an odd one in this case is, that physical locations have to be recorded, too, in case the government agency sending it cannot deal with electronic documents. Legal requirements are fun like that)</li>
<li>Fortunately, no detailed tracking for SOX or other such regulations.</li>
</ul>
<p><span style="font-weight: bold;">What&#8217;s coming up</span></p>
<p>At first, I&#8217;ll post progress about gathering requirements, proposals and recommendations of solutions for these requirements that go out to the client (after I&#8217;ve sent them, though).</p>
<p>After that, I&#8217;ll report my progress with the application: What I did, why I did it, and what the challenges were.</p>
<p>And last but not least, I&#8217;ll talk about the deployment of the application, and its maintenance.</p>
<p><span style="font-weight: bold;">So, what are you using?</span></p>
<p>The web application framework is going to be <a href="http://rubyonrails.org/">Ruby on Rails</a>, the database back-end <a href="http://www.mysql.com/">MySQL</a>, the webserver will be Apache of some sort. What&#8217;ll serve the Rails pages I don&#8217;t know yet. Maybe <a href="https://glassfish.dev.java.net/">Glassfish</a> with <a href="http://www.jruby.org/">JRuby</a>, maybe <a href="http://www.modrails.com/">mod_rails</a>, possibly the classic Apache + Pack of <a href="http://mongrel.rubyforge.org/">Mongrels</a> solution. We&#8217;ll see when I get there.</p>
<p>My development OS will be Windows XP together with a <a href="http://debian.org/">Debian</a> <a href="http://virtualbox.org/">VM</a> and a <a href="http://www.ubuntu.com/products/WhatIsUbuntu/kubuntu">Kubuntu 8.04</a> installation as primary development OS.</p>
<p>The deployment will be on<a href="http://www.freebsd.org"> FreeBSD</a> 5.4 (I know, I can&#8217;t influence that, and neither can my client).</p>
<p>The approach I&#8217;ll be using, even though I&#8217;m just one person, is a simple variant of <a href="http://www.blogger.com/en.wikipedia.org/wiki/Agile_software_development">Agile Development</a>: Sprints, and loads of tests before I write the actual code.
<div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"><a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"><img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=6bf52df3-d0a8-4c65-a257-e4f4c52a89b3" style="border: medium none ; float: right;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2008/04/29/kicking-off-the-blog-and-the-project-too/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.669 seconds -->
