<?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>casperfabricius.com &#187; mac</title>
	<atom:link href="http://casperfabricius.com/site/category/mac/feed/" rel="self" type="application/rss+xml" />
	<link>http://casperfabricius.com/site</link>
	<description>expert ruby on rails development</description>
	<lastBuildDate>Sun, 06 Jun 2010 08:43:31 +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>Community Day 2009 in Copenhagen</title>
		<link>http://casperfabricius.com/site/2009/05/31/community-day-2009-in-copenhagen/</link>
		<comments>http://casperfabricius.com/site/2009/05/31/community-day-2009-in-copenhagen/#comments</comments>
		<pubDate>Sun, 31 May 2009 13:36:36 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
		<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/cfp/casperfabricius.com/site/wp-content/plugins/autometa/autometa.php</b> on line <b>324</b><br />
		<category><![CDATA[mac]]></category>
		<category><![CDATA[rails]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/site/?p=225</guid>
		<description><![CDATA[It has been a while since I had a good technical post on this blog, and this is will not be one either. Instead, just a few brief words on a very successful event for geeks in Copenhagen that took place last Thursday. Sponsored by Microsoft and co-presented by the Danish development community, Community Day [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a while since I had a good technical post on this blog, and this is will not be one either. Instead, just a few brief words on a very successful event for geeks in Copenhagen that took place last Thursday. Sponsored by <a href="http://www.microsoft.com/da/dk/default.aspx">Microsoft</a> and co-presented by the <a href="http://eksperten.dk/">Danish</a> <a href="http://udvikleren.dk/">development</a> <a href="http://activedeveloper.dk/">community</a>, <a href="http://communityday.in/copenhagen/">Community Day 2009 Copenhagen</a> delivered what it had promised: A day with free beer and food, interesting presentations and lots of networking across the usual technical boundaries. While the event, previously exclusively with a focus on Microsoft technology, was dominated by seasoned .NET developers, we, the Ruby crowd, was well represented as was the PHP programmers.</p>
<p>Daniel Mellgaard Frost, Developer Evangelist with Microsoft Denmark, had put together <a href="http://communityday.in/copenhagen/Home/Agenda">a diverse program</a> where only two talks was devoted entirely to Microsoft technologies (<a href="http://www.microsoft.com/silverlight/">Silverlight</a> and <a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx">LINQ</a>), but six out of eight talks was about web development in some form. I did a talk on <a href="http://ar.rubyonrails.org/files/README.html">ActiveRecord</a>, the O/RM of <a href="http://rubyonrails.org/">Ruby on Rails</a>, and according to the many happy comment I got afterwards, it went pretty well.</p>
<p><span id="more-225"></span></p>
<p>One really great thing about <a href="http://www.ruby-lang.org/">Ruby</a> is that you can start writing code in front a crowd that have never seen the language before, and they will understand everything you are doing &#8211; provided, of course, that they know another object-oriented programming language. Ruby is such a beautiful language that it instantly appeals to most coders, and that makes it a pure joy to do a presentation mostly based on live code examples such as I did.</p>
<p>It also helps that ActiveRecord has an impressive number of features to show off, and even though I don&#8217;t how much it really mattered, I think I made a good tactical choice in demonstrating the O/RM running against a Microsoft SQL Server instance. <a href="http://toolmantim.com/articles/getting_rails_talking_to_sqlserver_on_osx_via_odbc">This post</a>, by the way, is what helped me to get my Mac to talk to SQL Server, but bear in mind, that if you run an older Ruby version and/or use the installation that comes with Leopard, that tutorial will upgrade you to Ruby 1.8.7 running via Macports.</p>
<p>Here is the <a href="/site/wp-content/uploads/2009/05/activerecord.pdf">presentation slides</a> from the talk (in Danish), and here is the very limited quantity of <a href="/site/wp-content/uploads/2009/05/ar_code.zip">code</a> I wrote.</p>
<p>I also lead an open space meeting on <a href="http://jquery.com/">jQuery</a> &#8211; the presentation on the topic was unfortunately canceled in the last minute &#8211; and although I am still learning the many aspects of this great Javascript framework, I think every web developer owe it to his or hers own productivity to take a look at it. Doing Javascript development with jQuery and <a href="http://getfirebug.com/">Firebug</a> is immensely effective, not least because of the literally <a href="http://plugins.jquery.com/">thousands of open source plugins </a>that have been written for the framework by the community.</p>
<p>Thanks for Daniel, Microsoft and the community sites for sponsoring and organizing this fun and inspiring event &#8211; I look forward to next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2009/05/31/community-day-2009-in-copenhagen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notes and impressions from RailsConf 2009</title>
		<link>http://casperfabricius.com/site/2009/05/08/notes-and-impressions-from-railsconf-2009/</link>
		<comments>http://casperfabricius.com/site/2009/05/08/notes-and-impressions-from-railsconf-2009/#comments</comments>
		<pubDate>Fri, 08 May 2009 19:49:24 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
		<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/cfp/casperfabricius.com/site/wp-content/plugins/autometa/autometa.php</b> on line <b>324</b><br />
		<category><![CDATA[agile]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[railsconf]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/site/?p=217</guid>
		<description><![CDATA[I&#8217;d never have guessed that the first time I&#8217;d visit Las Vegas, the gambling and the drinking, the shows and the shopping would be a minor thing, something that I&#8217;d squeeze in between what really mattered. But RailsConf 2009 had such a comprehensive and interesting program that this ended up being the case. From the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d never have guessed that the first time I&#8217;d visit Las Vegas, the gambling and the drinking, the shows and the shopping would be a minor thing, something that I&#8217;d squeeze in between what really mattered. But RailsConf 2009 had such a comprehensive and interesting program that this ended up being the case. From the casual networking at breakfast and lunch over packed keynotes and high-quality talks to late-night Birds Of a Feather sessions, RailsConf did give the attendants any reason to step out if the air-conditioned Hilton and into the sun and lights of the Strip.</p>
<p>We did that anyway, obviously, but mostly we were learning, tweeting, chatting, coding, emailing and taking notes at a conference where the wifi actually worked and power strips were easily available. I&#8217;m not going to reference all the talks that I went to here, but I have uploaded my notes <a href="http://casperfabricius.com/site/wp-content/uploads/2009/05/">here</a>. Also, I&#8217;ve written a detailed summery of David Heinemeier Hansson&#8217;s keynote and a few select talks that I attended for <a href="http://railsmagazine.com/issues/2">RailsMagazine</a>, <strike>but the free PDF-edition won&#8217;t be available for another two weeks</strike> now freely available for download &#8230; slides from all the presentations can be found <a href="http://www.scribd.com/group/74983-railsconf-2009">here</a>.</p>
<p><span id="more-217"></span></p>
<p>So what did I take away from RailsConf from the top of my head? The first that springs to mind, is that I got to try <a href="http://www.jetbrains.com/ruby/index.html">RubyMine</a>, a new IDE for Ruby on Rails. At first glance this might look like another Aptana or Netbeans, but the <a href="http://railsenvy.com/">Rails Envy</a> guys gave a stunning demonstration of the power of this new IDE: From TextMate keymapping and navigation, over code completion and refactoring that actually works, to automatic diagramming of models and their relationships, this product looks like a real productivity booster. I&#8217;m going to try it out the minute I get home.</p>
<p><i>Rack</i> kept popping up everywhere. Lots of talks on Rack and Rails Metal (which is really just a wrapper for a &#8220;raw&#8221; Rack handler), and now Rack suddenly doesn&#8217;t feel so scary anymore. It just a way to do cool things on a raw request and/or response without the (full) overhead of the Rails stack. <i>JRuby</i> was another popular topic, as well as <i>clouds</i> &#8211; how to deploy to server environment that will seamlessly scale with your needs.</p>
<p>I have been following IronRuby with great interest since the project was started 2-3 years ago, and I was a bit disappointed to hear that the .NET implementation of Ruby is still nowhere near completed. I asked Jimmy Schementi from the Microsoft IronRuby team what took them so long (to be honest, I was a bit rude, sorry Jimmy), and asked that things simply took time. He said that JRuby had been 6 years underway. The positive news, however, was that the IronRuby team is still very committed to making their implementation fully Ruby 1.8 compliant, and that are using Rails to measure their success against.</p>
<p>I&#8217;d love to tell you more, but my plane is leaving soon, so you will have to make do with <a href="http://casperfabricius.com/site/wp-content/uploads/2009/05/">my notes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2009/05/08/notes-and-impressions-from-railsconf-2009/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>IE on Mac without Parallels/VMWare</title>
		<link>http://casperfabricius.com/site/2007/10/28/ie-on-mac/</link>
		<comments>http://casperfabricius.com/site/2007/10/28/ie-on-mac/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 15:18:24 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[tutorial]]></category>

	<!-- AutoMeta Start -->
	<category>copenhagenrb</category>
	<category>ies4linux</category>
	<category>x11</category>
	<category>ie6</category>
	<category>macports</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/blog/2007/10/28/ie-on-mac/</guid>
		<description><![CDATA[
Benjamin Quorning gave a great tip at the Copenhagen Ruby Brigade mailing list the other day: How to run (Windows) Internet Explorer on your (Intel-based) Mac without having to boot up Parallels, VMWare, or any other kind of time-consuming PC-emulation software. This is made possible by the IEs 4 Linux project (no, that&#8217;s no IE [...]]]></description>
			<content:encoded><![CDATA[<div class="photo right"><img src="/blog/wp-content/uploads/2007/10/ie6screen.png" alt="IE6 on Mac" /></div>
<p><a href="http://www.linkedin.com/in/benjaminquorning">Benjamin Quorning</a> gave a great tip at the <a href="http://copenhagenrb.dk/">Copenhagen Ruby Brigade</a> mailing list the other day: How to run (Windows) Internet Explorer on your (Intel-based) Mac without having to boot up Parallels, VMWare, or any other kind of time-consuming PC-emulation software. This is made possible by the <a href="http://www.tatanka.com.br/ies4linux/">IEs 4 Linux</a> project (no, that&#8217;s no IE 4 on Linux, it&#8217;s IEs <i>for</i> Linux, and IE 4 is not supported, just 6, 5.5 and 5) which provides a simple way to run IE on Linux and, as it turns out, <a href="http://www.tatanka.com.br/ies4linux/page/Does_IEs_4_Linux_Work_with_Mac_OSX">OS X on Intel-based Macs</a>.</p>
<p>While the <a href="http://www.tatanka.com.br/ies4linux/page/Does_IEs_4_Linux_Work_with_Mac_OSX">article</a> on the IEs 4 Linux provides one method for getting this up and running, I tend to like Benjamin&#8217;s more as it uses <a href="http://www.macports.org/">MacPorts</a>, so I&#8217;m going to repeat it here for reference. A prerequisite for the tutorial is to have <a href="http://www.apple.com/macosx/features/x11">X11</a> installed, which is part of the optional developer tools that comes with OS X, and you also need <a href="http://www.macports.org/">MacPorts</a>, which seems to be the best package system for Darwin at the moment.</p>
<p>To install IEs4Linux and its dependencies, execute these commands in your terminal of choice:</p>
<pre>
sudo port install cabextract wget wine
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux
</pre>
<p>The first line installs several components required to run IEs4Linux, most importantly <a href="http://www.winehq.org/">Wine</a>, a framework allowing <a href="http://appdb.winehq.org/">many Windows applications</a> to run on Unix-based systems, including OS X. The other lines download and start the impressively user-friendly installation of IEs4Linux. After completing the installation, Benjamin explains that to run Internet Explorer, you must startup the X11 console (<code>/Applications/Utilities/X11.app</code>) and execute these commands:</p>
<pre>
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
~/bin/ie6
</pre>
<p>That&#8217;s a bit too inconvenient for my taste, since want to be able to place a link to IE directly in my Dock, or run it by executing a simple command in <a href="http://quicksilver.blacktree.com/">Quicksilver</a>. So I have created a shell script in my home directory (you could also place it in the <code>Applications</code> directory if you like that better) called <code>ie6</code> with the following contents:</p>
<pre>
#!/bin/sh
open-x11 .ies4linux/bin/ie6
</pre>
<p>I also need to make it executable by running <code>chmod +x ie6</code> in the terminal. Now this gives me the ability to execute the shell script from terminal, to call it from Quicksilver (by writing <code>ie6</code>), and to drag it to the right/lower part of the Dock (the part with the trash can in it) with an ugly generic document icon. I want it in my Dock with a nice high quality Internet Explorer icon so I can start just like any other application, and for that purpose I wrapped the shell script as an application:</p>
<p><a href="/blog/wp-content/uploads/2007/10/IE6.zip">Download IE6 application</a></p>
<ul>
<li>Requires IEs4Win to be installed in the default location (~/.ies4win)</li>
<li>Must be dragged to the <code>Applications</code> directory <i>in your home directory</i> (create one if you don&#8217;t have one), not to the general <code>Applications</code> directory (this is due to my limited shell scripting / X11 abilities, <code>~</code> didn&#8217;t seem to work as a reference to the home directory in X11).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2007/10/28/ie-on-mac/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RailsConf: The DHH keynote &#8211; Rails 2.0 update</title>
		<link>http://casperfabricius.com/site/2007/09/18/railsconf2007-dhh/</link>
		<comments>http://casperfabricius.com/site/2007/09/18/railsconf2007-dhh/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 15:35:25 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
				<category><![CDATA[deployment]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[railsconf]]></category>

	<!-- AutoMeta Start -->
	<category>iphone</category>
	<category>iphone</category>
	<category>patch</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/blog/2007/09/18/railsconf2007-dhh/</guid>
		<description><![CDATA[This article summarizes some important points from David Heinemeier Hansson’s keynote at RailsConf Europe 2007 in Berlin. Last year, DHH brought us the whole REST way of thinking which I immediately named normalization, but that term didn&#8217;t really catch on.

&#169; 2007 Pinar Ozger

This year, DHH noted that he up until now had started all his [...]]]></description>
			<content:encoded><![CDATA[<p>This article summarizes some important points from David Heinemeier Hansson’s keynote at RailsConf Europe 2007 in Berlin. Last year, DHH brought us the whole <a href="/blog/2006/06/25/railsconf-dhh/">REST way of thinking</a> which I immediately named <i>normalization</i>, but that term didn&#8217;t really catch on.</p>
<div class="photo left"><a href="http://flickr.com/photos/pinarozger/1401290307/"><img src="http://farm2.static.flickr.com/1140/1401290307_f8e971781c_m_d.jpg" alt="David Heinemeier Hansson" /></a>
<div class="caption">&copy; 2007 <a href="http://flickr.com/photos/pinarozger/">Pinar Ozger</a></div>
</div>
<p>This year, DHH noted that he up until now had started all his previous keynotes about Rails celebrating how &#8220;freakin&#8217; fantastic we are&#8221;. For this keynote, he thought &#8211; with Rails being well within in its third year in existence &#8211; that it was time to perhaps be happy with what we have.</p>
<p>He explained that new things tend to go through certain phases: First they ignore you, then they laugh at you, then they fight you, and then you win &#8211; &#8230; and then what? &#8220;Ruby on Rails went through these phases way too fast&#8221;, DHH said, &#8220;I was having a lot of fun going through these phases; I&#8217;m kind of sad it is over.&#8221;</p>
<p>For the last couple of years, David and the Rails community has pushing new concepts; Convention over configuration, AJAX and REST, but these focal points were adopted very fast, so there is no big cause to fight for right now. That leaves Rails 2.0 in a really weird spot, since it won&#8217;t have any groundbreaking new concepts.</p>
<p>This is not a bad thing, though, DHH stressed. &#8220;Even though [the lack of a great cause] is an off-switch for me, it&#8217;s not about me anymore&#8221;, he said. &#8220;Rails are moving from big revolutions to tiny evolutions&#8221; &#8211; a statement that was underlined when David went on to demonstrate new features in Rails; features that were definitely more tiny evolutions than big revolutions.</p>
<p>But before we get to the Rails 2.0 code examples of the keynote, let me just mention something that was news to me: The new policy for <a href="http://trac.rubyonrails.org/2007/9/15/how-to-get-a-patch-into-rails">how to get a patch into Rails</a>, also known as <i>Report #12</i>. The idea is basically that you, once you have written a patch and submitted it to the Rails trac, should get three other Rails developers to check out your patch, verify that your tests run, and then add a &#8220;+1&#8243; in a comment in trac. Once you have your three &#8220;+1&#8243;&#8217;s, you tag your patch with the keyword &#8220;verified&#8221;, and the patch will appear in <a href="http://dev.rubyonrails.org/report/12">Report #12: Verified Patches</a>. The core team should then &#8211; theoretically &#8211; be able to very fast to accept the patch into Rails.</p>
<p>Moving on to the, in my opinion, most interesting part of the presentation: What&#8217;s new in Rails 2.0 &#8211; show me the code! Migrations has been updated to support a new syntax known as &#8220;sexy migrations&#8221;, which basically allows even shorter and more readable migrations by grouping fields of the same type:</p>
<pre>
create_table :blogs do |t|
	t.string :title, :subtitle
	t.text :body, :description
	t.integer :category_id
	t.timestamps # Adds created_at and updated_at fields
end
</pre>
<p>Notice how another evolutionary improvement has been sneaked in: Tired of always adding <code>created_at</code> and <code>updated_at</code> timestamps to most tables, a <code>timestamps</code> method has been added as a shortcut. Also this new syntax, including the timestamps, is now standard in the <code>model</code> and <code>scaffold</code> generators.</p>
<p>A small, but to me significant improvement has also found its way to Rails 2.0: You can now create the needed databases with a rake command. By running this command, all referenced databases in your <code>database.yml</code> will be created:</p>
<pre>
rake db:create:all
</pre>
<p>Another interesting, and perhaps generally quite invisible improvement, is that session data are now stored in a encrypted cookie instead on each server, which makes it easy to partition applications across multiple servers without having to put session data in the database. This requires, of course, the session data to be quite compact (storing id&#8217;s, not entire objects), as a cookie can contain 4 KB of data the most.</p>
<p>My favourite point of DHH&#8217;s keynote was his solution to the common pattern of a resource, which you both need to display to the common user (usually <code>index</code> and <code>show</code>) and to the admin user (usually <code>index</code>, <code>new</code>, <code>create</code>, <code>edit</code>, <code>update</code> and <code>destroy</code>). The normal RESTful solution to this leaves with a problem, because we are only allowed one <code>index</code> action, and we need two; one for the common user and one for the admin user. Also, the admin actions will usually have a different layout than the common user actions, and they require some kind of authorization.</p>
<p>The solution is to used RESTful <i>namespaced</i> routes, referring to <i>two different</i> controllers with the same name, but in different namespaces. To use DHH&#8217;s eternal blog example:</p>
<pre>
./script/generate controller posts # => /controllers/posts_controller.rb
./script/generate controller admin::posts # => /controllers/admin/posts_controller.rb
</pre>
<p>Now we have two different controllers working in the same model; <code>Post</code>, but offering different actions, layouts, authorization and so on. This nice thing about this solution, is that it is very easy to understand and fits well into the Rails structure. The catch is that we have two controllers with the same name, so we need to explicitly express the namespace when referring to the admin controller:</p>
<pre>
form_for([:admin, post]) do |f|
	...
end
</pre>
<p>DHH also pointed out that HTTP authentication is a perfect way of doing authentication for administration pages (which <a href="/blog/2007/08/19/three-rails-plugins/">I&#8217;d already realized</a>). You don&#8217;t really need nice-looking form-authentication and <i>remember me</i> checkboxes for that, and it is so very easy to implement with Rails 2.0:</p>
<pre>
# In a controller or module shared between admin controllers
before_filter :ensure_administrator
def ensure_administrator
	authenticate_or_request_with_http_basic('Blog admin') do |username, password|
		username == 'dhh' &#038;&#038; password == '123'
	end
end
</pre>
<p>A very visible change in Rails 2.0 is the naming of views. The <code>.rhtml</code>, <code>.rxml</code> etc. file endings has been discarded to replaced by the form <code>[name].[mime-type].[renderer]</code>. This leaves the road open for file names such as:</p>
<ul>
<li>index.html.erb</li>
<li>index.xml.builder</li>
<li>index.html.liquid</li>
<li>index.iphone.erb</li>
</ul>
<p>The last example needs a little additional configuration, since <code>iphone</code> is not a &#8220;real&#8221; mime-type, but we can easily make Rails treat it like such:</p>
<pre>
# In mime_types.rb:
Mime::Type.register "application/x-iphone"

# In application.rb:
before_filter :adjust_format_for_iphone
def adjust_format_for_iphone
	if request.env["HTTP_USER:AGENT"] ~= /iPhone/
		request.format = :iphone
	end
end

# In specific controllers
respond_to do |format|
	...
	format.iphone do
		render :text => 'Hello iPhone', :content_type => Mime::Html
	end
end
</pre>
<p>Notice how <code>content_type</code> must manually be set to <code>Mime::Html</code>, as the iPhone browser &#8211; as well as any other browser &#8211; doesn&#8217;t recognize our fake <code>x-iphone</code> mime-type, and Rails will always default to respond with the request mime-type.</p>
<p>My second favourite point was about the &#8220;new&#8221; debugging support in Rails 2.0. As I understood it, the well-known ruby-debugger library has been baked into Rails 2.0, so that we write <code>debugger</code> instead of <code>breakpoint</code>, and need to start the server with a <code>--debugger</code> prefix (<code>./script/server --debugger</code>) to enable these breakpoints. This debugger also support more advanced commands such as &#8220;cont&#8221; (continue), &#8220;list&#8221; (view current code) and &#8220;up&#8221; (step out).</p>
<p>David Heinemeier Hansson rounded off his keynote by announcing the release of a <i>Rails 2.0 Preview Release</i> (how Microsoft-ish does <i>that</i> sound?) either during or shortly after the conference.</p>
<p>You can download my full notes from the keynote <a href="/blog/wp-content/uploads/2007/09/keynote-dhh.txt">here</a>.</p>
<p>UPDATE: My other notes from RailsConf Europe 2007 <a href="/blog/2007/09/20/railsconf2007-notes">are now available</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2007/09/18/railsconf2007-dhh/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Juggling with Jaiku</title>
		<link>http://casperfabricius.com/site/2007/06/03/juggling-with-jaiku/</link>
		<comments>http://casperfabricius.com/site/2007/06/03/juggling-with-jaiku/#comments</comments>
		<pubDate>Sun, 03 Jun 2007 19:05:58 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[other]]></category>

	<!-- AutoMeta Start -->
	<category>jaiku</category>
	<category>jaikus</category>
	<category>reboot</category>
	<category>wordpress</category>
	<category>twitter</category>
	<category>quicksilver</category>
	<category>jaikufans</category>
	<category>json</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/blog/2007/06/03/juggling-with-jaiku/</guid>
		<description><![CDATA[Reboot just finished. Great speakers, nice people, clever geeks &#8211; as usual. I wasn&#8217;t disappointed, Mygdal and his crew did a terrific job once again. While I hope to find the find time write a longer article referencing some of my favorite talks, this post is about something else I learned of at Reboot: Jaiku.
Some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://reboot.dk">Reboot</a> just finished. Great speakers, nice people, clever geeks &#8211; as usual. I wasn&#8217;t disappointed, Mygdal and his crew did a terrific job once again. While I hope to find the find time write a longer article referencing some of my favorite talks, this post is about something else I learned of at Reboot: <a href="http://jaiku.com">Jaiku</a>.</p>
<p>Some might say Jaiku is another Web 2.0 fling. Others might call it a <a href="http://www.twitter.com">Twitter</a> clone. To me, Jaiku is a new way of expressing yourself on the internet. Jaiku let&#8217;s you do two things:</p>
<ul>
<li>Write short messages (max. 140 characters) that gets published in your <i>stream</i> immediately</li>
<li>Aggregate all the stuff you publish on the internet; blogs, photos, bookmarks, music, etc.</li>
</ul>
<p>For instance; at <a href="http://fabricius.jaiku.com/">my Jaiku page</a> you can see my latest presence-messages (or micro blog posts or just <i>jaikus</i>), but you&#8217;ll also see new blog posts, Flickr photos and del.icio.us books posted by me using those services. Jaiku does this by polling RSS-feeds specified by me in my settings.</p>
<p>While all this is nice, I still consider <a href="http://casperfabricius.com">casperfabricius.com</a> my primary homepage and &#8220;me-place&#8221;, so I wanted to be able to display my latest jaikus here on my blog. I could do this by using the <a href="http://www.douglaskarr.com/projects/jaiku-plugin/">Jaiku Wordpress plugin</a>, but that makes a server-side call to Jaiku on each page request, slowing my site down. For this reason, I opted to use Jaikus brilliant <a href="http://devku.org/docs#json">JSON API</a> in order to let the magic happen client-side.</p>
<p>I wrote <a href="/js/myjaikus.js">this javascript</a>, and added the following HTML to my main index and page templates:</p>
<pre>
&lt;!-- In the &lt;head&gt; section --&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/myjaikus.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://[Insert your Jaiku username here].jaiku.com/feed/json?callback=MyJaikus.storeJaikus&quot;&gt;&lt;/script&gt;

&lt;!-- In the menu, where I wanted the Jaikus to appear --&gt;
&lt;ul id=&quot;jaikus&quot;&gt;
&lt;/ul&gt;
</pre>
<p>This javascript will, if you remember to put in your own user name and add an empty unordered list with the id <code>jaikus</code>, insert the three newest of your jaikus. Neat, eh?</p>
<p><b>Jaiku ressources</b><br/></p>
<ul>
<li><a href="http://jaikufans.com/">JaikuFans.com</a></li>
<li><a href="http://blog.tijs.org/archives/2007/03/14/quicksilver-plugin-for-jaiku-using-plazes/">Very cool Jaiku Quicksilver plugin</a> (I use it all the time)</a>
<li><a href="http://www.douglaskarr.com/projects/jaiku-plugin/">Wordpress plugin</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2007/06/03/juggling-with-jaiku/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Your own Mac OS XP with Parallels</title>
		<link>http://casperfabricius.com/site/2007/01/07/your-own-mac-os-xp-with-parallels/</link>
		<comments>http://casperfabricius.com/site/2007/01/07/your-own-mac-os-xp-with-parallels/#comments</comments>
		<pubDate>Sun, 07 Jan 2007 18:21:13 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
				<category><![CDATA[mac]]></category>

	<!-- AutoMeta Start -->
	<category>simple</category>
	<category>mac</category>
	<category>enlarge</category>
	<category>screenshot</category>
	<category>complicated</category>
	<category>answer</category>
	<category>running</category>
	<category>question</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/blog/2007/01/07/your-own-mac-os-xp-with-parallels/</guid>
		<description><![CDATA[
Simple question: Am I running Mac OS X or Windows XP in the screenshot above? (Click to enlarge).
Simple answer: I&#8217;m running both.
Complicated answer
I&#8217;m really running Parallels with the coherence feature enabled. Parallels is an application that utilizes the Intel processors in newer Macs, allowing Windows XP to run in a virtual machine, but without the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://casperfabricius.com/blog/gfx/mac_xp_large.png"><img src="http://casperfabricius.com/blog/gfx/mac_xp_small.png" alt="Mac OS XP" /></a></p>
<p><b>Simple question:</b> Am I running Mac OS X or Windows XP in the screenshot above? (Click to enlarge).</p>
<p><strong>Simple answer</strong>: I&#8217;m running both.</p>
<p><b>Complicated answer</b><br />
I&#8217;m really running <a href="http://www.parallels.com/en/products/workstation/mac/">Parallels</a> with the <i>coherence</i> feature enabled. Parallels is an application that utilizes the Intel processors in newer Macs, allowing Windows XP to run in a virtual machine, but without the whole hassle of emulation. Without emulation, speed is greatly increased.</p>
<p>Coherence means that the Parallels makes the Windows desktop transparent while running the virtual machine full screen. This allows Mac and Windows applications to run side by side, without the hassle of having to switch to the virtual machine, and then selecting the Windows application you want to use. This way; Windows application really feel like any other applications on Mac.</p>
<p>This is cool, but it&#8217;s old news. Now, I&#8217;m using boot camp to dual-boot on my Macbook Pro. I use Windows for .NET development at work and for gaming. I use Mac OS X for everyting else. The great thing about this new <a href="http://www.parallels.com/products/desktop/beta_testing/">beta</a> of Parallels I&#8217;m running, is that I don&#8217;t have to create a new virtual machine and install Windows, Office, Visual Studio and so on. <i>I can just boot my existing Windows partition directly in Parallels</i>. How cool is that?<br />
If you are dual-booting between OS X and Windows, I can only recommend that you try out the free 30 day trial of Parallels. It is unbelievably easy to get up and running; you just go through a wizard, select Boot Camp, and &#8211; BAM! &#8211; you have your well known Windows desktop right there next to your Dock, Mail, Safari, and so on. If you try this setup, I have one tip for you: Don&#8217;t attempt to click on anything when you boot in Parallels and Windows detects new hardware. Parallels will take care of <i>everything</i>, so just sit back and wait until the virtual machine is not working anymore.</p>
<p>And by the way: Running your Windows partition in Parallels doesn&#8217;t in any way change or harm the partition. You can always boot into Windows as usual, which is still necessary if you want to play a 3D game.</p>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2007/01/07/your-own-mac-os-xp-with-parallels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake-style slide-down terminal on Mac</title>
		<link>http://casperfabricius.com/site/2006/08/25/slide-down-terminal/</link>
		<comments>http://casperfabricius.com/site/2006/08/25/slide-down-terminal/#comments</comments>
		<pubDate>Fri, 25 Aug 2006 16:48:21 +0000</pubDate>
		<dc:creator>Casper Fabricius</dc:creator>
				<category><![CDATA[mac]]></category>

	<!-- AutoMeta Start -->
	<category>shift</category>
	<category>mac</category>
	<category>enjoying</category>
	<category>words</category>
	<category>trial</category>
	<category>figured</category>
	<category>paragraph</category>
	<category>discovery</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://casperfabricius.com/blog/2006/08/25/slide-down-terminal/</guid>
		<description><![CDATA[It&#8217;s official. I&#8217;ve bought a Mac. I have never used a Mac before, and I am actually enjoying the discovery process I have to go through to get up to speed on this new platform. (Example: While writing this first paragraph, I figured out &#8211; by trial and error &#8211; that you select words in [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s official. I&#8217;ve bought a <a href="http://www.apple.com/macbookpro/">Mac</a>. I have never used a Mac before, and I am actually enjoying the discovery process I have to go through to get up to speed on this new platform. (Example: While writing this first paragraph, I figured out &#8211; by trial and error &#8211; that you select words in chunks with Shift+Option, not Shift+Ctrl like on Windows.)</p>
<p>I&#8217;ve already had several small victories in the process of customizing OS X to my needs, and since Google Analytics reports that one third of you readers are on a Mac, I&#8217;d like to share a quick tip with you. One of my main reasons to switch to Mac is the availability of the terminal; which unleashes the power of the Darwin system behind the fancy GUI. I had half expected the visual aspects of this terminal to be highly configurable, and while some options exists, it wasn&#8217;t immediately possible to get the terminal to slide down in a cool Quake-style console way like I had dreamed of for a while.</p>
<p>So I set out to find a way to do this, and through <a href="http://episteme.arstechnica.com/eve/forums/a/tpc/f/8300945231/m/332004739731/p/1">this</a> forum thread I found out that I was not the only Mac user with this strange need. Some of the clever geeks taking part in the thread has been so nice as to actually write a small application that enables the terminal to slide down; called <a href="http://docs.blacktree.com/visor/visor">Visor</a>. I&#8217;m quite impressed with OS X being flexible enough to provide this kind of extensibility.</p>
<p>The installation is quite easy &#8211; just follow the instructions and make sure you have OS 10.4 &#8211; but one thing caught me, being a complete Mac newbie, as a small frustration: I didn&#8217;t know to look for the Visor icon (which is a small black terminal) next to the clock in the upper right corner. You must configure Visor using this menu (which will appear when you (re)start Terminal after following the instructions) before the terminal is able to slide down using your selected hot key.</p>
<p>As a final touch I&#8217;ve also opted to make the terminal semi-transparent and added some eye candy as a background image. You do this by opening a normal shell window in Terminal, make your settings in Window Settings > Colors and restarting Terminal. Visor also supports animated backgrounds, but I haven&#8217;t tried that out.</p>
<p><img id="image20" src="http://casperfabricius.com/site/wp-content/uploads/2006/08/visor.png" alt="Visor" /></p>
<p>While I&#8217;m quite happy with Visor, I still have my doubts about whether Microsoft Entourage is the right email application for me (as a heavy Outlook user through many years it seemed an obvious choice) and whether <a href="http://fire.sourceforge.net/">Fire</a> is the right instant messenger. One thing that really annoys me, and that I haven&#8217;t been able to solve so far, is that OS X automatically puts the computer to sleep when I close the lid. I am aware that various heating issues can occur if it didn&#8217;t, but I&#8217;m just used to close the lid while the computer is shutting down &#8211; this will put it to sleep during the shutdown. If anyone knows of a good solution for this, I&#8217;d be happy to hear from you.</p>
]]></content:encoded>
			<wfw:commentRss>http://casperfabricius.com/site/2006/08/25/slide-down-terminal/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
