<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Nuclear-Powered Nutcracker</title>
	
	<link>http://danlucraft.com/blog</link>
	<description>daniel lucraft</description>
	<pubDate>Sun, 24 May 2009 16:00:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Nuclear-poweredNutcracker" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Learning about Redis through writing a Twitter clone</title>
		<link>http://danlucraft.com/blog/2009/05/learning-about-redis-through-writing-a-twitter-clone/</link>
		<comments>http://danlucraft.com/blog/2009/05/learning-about-redis-through-writing-a-twitter-clone/#comments</comments>
		<pubDate>Sun, 24 May 2009 15:30:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[redis]]></category>

		<category><![CDATA[retwis-rb]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://danlucraft.com/blog/?p=253</guid>
		<description><![CDATA[
Redis is a fast key-value database by Salvatore Sanfilippo with some new ideas. Sometimes it&#8217;s called a &#8216;data-structures database&#8217; because it supports sets and lists. I spent a few hours this morning writing a Twitter clone that uses Redis as its datastore, which is now online at http://retwisrb.danlucraft.com. The code is available on Github.
The lists [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://danlucraft.com/blog/wp-content/uploads/2009/05/logo.png" alt="redis-logo" title="redis-logo" width="74" height="55" class="alignright size-full wp-image-265" /><br />
<a href="http://code.google.com/p/redis/">Redis</a> is a fast key-value database by <a href="http://twitter.com/antirez">Salvatore Sanfilippo</a> with some new ideas. Sometimes it&#8217;s called a &#8216;data-structures database&#8217; because it supports sets and lists. I spent a few hours this morning writing a Twitter clone that uses Redis as its datastore, which is now online at <a href="http://retwisrb.danlucraft.com">http://retwisrb.danlucraft.com</a>. The code is available on <a href="http://github.com/danlucraft/retwis-rb/tree/master">Github</a>.</p>
<p>The lists feature of Redis meant that it was not necessary anywhere in the application to serialize a datastructure into a stored value. This is a tremendous win. I don&#8217;t have much experience of writing applications against key-value databases, but I worry that serialization would cause headaches.</p>
<p>I didn&#8217;t find a use for the Set structure, simply because I couldn&#8217;t see a set of data that I wouldn&#8217;t at some point want to page over. The list of a user&#8217;s followers was the closest I came. The downside of using a set is that in order to paginate the followers the entire set would have to be sorted first. The downside of using a list is that membership checking (is User A following User B?) requires list traversal by Redis. </p>
<p>There is a SORT command, so sorting sets can be done in the database layer, but I have no desire to sort this data (which could be massive) just to iterate over it in a consistent order. I went with a list for now, but you could use a set and a list to support both types of usage, at the cost of maybe twice the memory usage. I&#8217;d like to have an ordered Set structure available, if it could be done in a fast way.</p>
<p>I wonder if a Set and List is all we&#8217;ll get, or if Salvatore is planning more structures. Could you implement Trees in any kind of sensible way? Arrays? Would they be useful?</p>
<p>Anyway, I encourage you to try Redis out soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2009/05/learning-about-redis-through-writing-a-twitter-clone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New project: Gutkumber - Integration testing for Ruby-GNOME2</title>
		<link>http://danlucraft.com/blog/2009/05/new-project-gutkumber-integration-testing-for-ruby-gnome2/</link>
		<comments>http://danlucraft.com/blog/2009/05/new-project-gutkumber-integration-testing-for-ruby-gnome2/#comments</comments>
		<pubDate>Sun, 10 May 2009 08:31:50 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[gutkumber]]></category>

		<category><![CDATA[Redcar]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[ruby-gnome2]]></category>

		<guid isPermaLink="false">http://danlucraft.com/blog/?p=244</guid>
		<description><![CDATA[ Gutkumber is a small set of Ruby-GNOME2 automation helpers. It comes with Cucumber formatters and some steps for writing features. This allows you to test the full application stack, driving the real Gtk GUI with simulated keyboard events, and using assertions that can refer to contents of Gtk widgets.
http://github.com/danlucraft/gutkumber/tree/master
I&#8217;ve been using Gutkumber on the [...]]]></description>
			<content:encoded><![CDATA[<p> Gutkumber is a small set of Ruby-GNOME2 automation helpers. It comes with Cucumber formatters and some steps for writing features. This allows you to test the full application stack, driving the real Gtk GUI with simulated keyboard events, and using assertions that can refer to contents of Gtk widgets.</p>
<p><a href="http://github.com/danlucraft/gutkumber/tree/master">http://github.com/danlucraft/gutkumber/tree/master</a></p>
<p>I&#8217;ve been using Gutkumber on the Redcar editor project for a while now, and it seems to work well. Here is an example of the kind of features you can write with Gutkumber:</p>
<pre><code>
  Scenario: Kill line
    When I type "def foo"
    And I press "Left" then "Left"
    And I press "Ctrl+K"
    ... some Redcar specific assertions

  Scenario: Open a file
    When I press "Ctrl+O"
    And I set the "Open" dialog's filename to "plugins/edit_tab/features/fixtures/file1.rb"
    And I click the button "Open" in the dialog "Open"
    ... some Redcar specific assertions
</code>
</pre>
<p>This is still in early development (it&#8217;s probably the most rough and ready software I&#8217;ve ever released!). But I&#8217;m finding it useful and I thought it would be good to demonstrate that it is possible to thoroughly integration test your Ruby-GNOME2 applications. </p>
<p>I&#8217;m writing new steps and helpers as I go along, but they are quite specific to my application, so you will probably find you need to write more. It&#8217;d be great if we could build the set of helpers and steps to the point where it contains everything needed to test new Ruby-GNOME2 apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2009/05/new-project-gutkumber-integration-testing-for-ruby-gnome2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Songkick 2.0 in private beta!</title>
		<link>http://danlucraft.com/blog/2009/03/songkick-20-in-private-beta/</link>
		<comments>http://danlucraft.com/blog/2009/03/songkick-20-in-private-beta/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 15:05:21 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Songkick]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=231</guid>
		<description><![CDATA[You may have noticed that www.songkick.com hasn&#8217;t changed a bit in six months. But we&#8217;ve not been idle. Friends: email me for an invite code.

]]></description>
			<content:encoded><![CDATA[<p>You may have noticed that <a href="http://www.songkick.com">www.songkick.com</a> hasn&#8217;t changed a bit in six months. But we&#8217;ve not been idle. Friends: email me for an invite code.</p>
<p><a href="http://www.daniellucraft.com/blog/wp-content/uploads/2009/03/songkick_1237042919296.png"><img src="http://www.daniellucraft.com/blog/wp-content/uploads/2009/03/songkick_1237042919296.png" alt="songkick_1237042919296" title="songkick_1237042919296" width="630" height="45" class="aligncenter size-full wp-image-232" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2009/03/songkick-20-in-private-beta/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testing Ruby-GNOME2 applications with Cucumber</title>
		<link>http://danlucraft.com/blog/2009/03/testing-ruby-gnome2-with-cucumber/</link>
		<comments>http://danlucraft.com/blog/2009/03/testing-ruby-gnome2-with-cucumber/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 08:30:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Cucumber]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[ruby-gnome2]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=215</guid>
		<description><![CDATA[Testing Ruby-GNOME2 can be a tricky thing to get right. There have been all sorts of annoying issues regarding getting Test::Unit to work, and I know my own efforts with RSpec have not been entirely pain-free.
But getting Cucumber up and running to test Ruby-GNOME2 has been a joy. I think this is because unlike the [...]]]></description>
			<content:encoded><![CDATA[<p>Testing <a href="http://ruby-gnome2.sourceforge.jp">Ruby-GNOME2</a> can be a tricky thing to get right. There have been all sorts of annoying issues regarding getting Test::Unit to work, and I know my own efforts with RSpec have not been entirely pain-free.</p>
<p>But getting <a href="http://cukes.info">Cucumber</a> up and running to test Ruby-GNOME2 has been a joy. I think this is because unlike the other two, Cucumber doesn&#8217;t use Ruby&#8217;s <a href="http://apidock.com/ruby/Kernel/at_exit">at_exit</a> to determine when to run its tests, giving you more control over the environment.</p>
<p>So here&#8217;s how. The problem with testing Ruby-GNOME2 - and indeed any gui - is that they are event based. Once you decide to use Ruby-GNOME2, you hand over control of your application to the gui main-loop. But test frameworks rely on keeping that control so they can dispatch tests.</p>
<p>For instance, you could decide to have a button in your application that reads &#8220;Run Tests&#8221;. And that button, when pressed, would fire a gui event that sends off to Test::Unit or whatever to say &#8216;run all tests&#8217;, and Test::Unit would march through its test suite, and then the original event would return control to the gui.</p>
<p>But all your tests have been processed within the same gui event handler. So by definition, no other events can have been processed during that time. That means no keypresses or menu clicks or TreeView updates will work in your tests.</p>
<p>What we want is for the gui to process events as needed, but still keep the control with our tests. We do that by replacing the GTK main-loop with a loop that we control.</p>
<p>First you have to write your application to not start the main-loop if features are running, as we will process our events manually. So your code will need to contain a guard like:</p>
<pre><code class="ruby">
  unless $running_features
    Gtk.main
  end

</code></pre>
<p>Now in a Test::Unit testcase, you would need to write code like:</p>
<pre><code class="ruby">
  def test_click
    click_button
    process_all_gui_events
    check_dialog_visible
  end

</code></pre>
<p>But in Cucumber, we can write something more natural. Our feature will look like this:</p>
<pre><code>
Feature: User clicks on something

Scenario: Single click
  When I click on the button
  Then the dialog should be visible

</code></pre>
<p>Run this feature using this Gtk Cucumber formatter (requires Cucumber 0.2):</p>
<pre><code class="ruby">
module Cucumber
  module Formatter
    class GtkFormatter < Pretty

      def visit_step(step)
        super
        while Gtk.events_pending?
          Gtk.main_iteration
        end
      end
    end
  end
end

</code></pre>
<p>And gui events will automatically be processed between each Cucumber step. Of course this means steps can&#8217;t rely upon events being processed within the body of the step, but steps are supposed to be short and atomic anyway, so it should not be a problem.</p>
<p>I have just started using this technique in <a href="http://www.redcaride.com">Redcar</a>, and it has been working very well (<a href="http://github.com/danlucraft/redcar/blob/8858a414ed0a216a2f15666c90263dab7e1e9b12/plugins/project/features/project_tab.feature">example</a>). It&#8217;s much more comfortable than the RSpec version that I was using before. I&#8217;ll now use RSpec for unit testing in my application, with no gui interaction at all. This seems right because a test that requires the gui like this is an integration test, and Cucumber is our integration test framework!</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2009/03/testing-ruby-gnome2-with-cucumber/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sounds of the Server Room</title>
		<link>http://danlucraft.com/blog/2009/02/sounds-of-the-server-room/</link>
		<comments>http://danlucraft.com/blog/2009/02/sounds-of-the-server-room/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 17:09:07 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=209</guid>
		<description><![CDATA[Our CEO&#8217;s headphones sounded just like an old 56k modem dialing to the rest of us, so we wondered what he could possibly be listening to&#8230;..

(Picture: Gideon Bullock)
]]></description>
			<content:encoded><![CDATA[<p>Our <a href="http://twitter.com/soundboy">CEO</a>&#8217;s headphones sounded just like an old 56k modem dialing to the rest of us, so we wondered what he could possibly be listening to&#8230;..</p>
<p><a href="http://www.daniellucraft.com/blog/wp-content/uploads/2009/02/picture-4.png"><img src="http://www.daniellucraft.com/blog/wp-content/uploads/2009/02/picture-4.png" alt="picture-4" title="picture-4" width="343" height="350" class="aligncenter size-full wp-image-210" /></a><br />
(Picture: <a href="http://gid.tumblr.com/">Gideon Bullock</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2009/02/sounds-of-the-server-room/feed/</wfw:commentRss>
		</item>
		<item>
		<title>features_report</title>
		<link>http://danlucraft.com/blog/2009/01/features_report/</link>
		<comments>http://danlucraft.com/blog/2009/01/features_report/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 10:18:22 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Cucumber]]></category>

		<category><![CDATA[features_report]]></category>

		<category><![CDATA[Grit]]></category>

		<category><![CDATA[Prawn]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=192</guid>
		<description><![CDATA[SO your team has diligently been writing Cucumber Features in natural language English, so that non-devs can read and understand them. And you now have a large corpus of readable specs. But guess what, the features are locked in your version control system, and the non-devs either don&#8217;t know how to use it or just [...]]]></description>
			<content:encoded><![CDATA[<p>SO your team has diligently been writing <a href="http://cukes.info/">Cucumber</a> Features in natural language English, so that non-devs can read and understand them. And you now have a large corpus of readable specs. But guess what, the features are locked in your version control system, and the non-devs either don&#8217;t know how to use it or just don&#8217;t need to. So this fantastic resource, an always up-to-date executable spec of your website, is actually pretty useless.</p>
<p>So use <em>features_report</em> to unlock those specs and turn them into a lovely PDF. Here&#8217;s a <a href='http://www.daniellucraft.com/blog/wp-content/uploads/2009/01/features.pdf'>sample</a> of the output. Install and use like this:</p>
<pre><code class="ruby">
sudo gem install features_report
features_report features/*.feature

</code></pre>
<p>Features:</p>
<ul>
<li>Uses <a href="http://prawn.majesticseacreature.com/">Prawn</a> to generate the PDF.</li>
<li>Has a table of contents of all your features</li>
<li>Option to add a logo to the front page.</li>
<li>If you use git, it can add a &#8216;last changed date&#8217; to the table of contents, along with the name of the committer that last touched it. (Requires the gem &#8216;<a href="http://grit.rubyforge.org/">mojombo-grit</a>&#8216; to be installed from Github).</li>
</ul>
<p>Issues:</p>
<ul>
<li>The contents page is at the back. I don&#8217;t think Prawn has the capability to go back and add the contents page after the document has been generated, if I&#8217;m wrong please enlighten me.</li>
<li>FIT tables are not handled correctly. The Cucumber project is rewriting the parser at the moment, and it looks like adding this will be lots easier afterwards so we decided to wait.</li>
</ul>
<p>The source is available at <a href="http://github.com/danlucraft/features_reports/tree/master">Github</a> and features_report was written by Daniel Lucraft and Niko Felger. Features_report was sponsored by Songkick.com. Thanks to Bryan Helmkamp for some cribbed Cucumber parsing code from <a href="http://github.com/brynary/features2cards/tree/master">features2cards</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2009/01/features_report/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RubyConf2008 Videos for your Ipod</title>
		<link>http://danlucraft.com/blog/2008/12/rubyconf2008-videos-for-your-ipod/</link>
		<comments>http://danlucraft.com/blog/2008/12/rubyconf2008-videos-for-your-ipod/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 12:13:16 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[ffmpeg]]></category>

		<category><![CDATA[ipod]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=176</guid>
		<description><![CDATA[Despite the recent love I gave it, Handbrake has let me down. The latest version segfaults on every job I give it. So I&#8217;ve had to find a different way to get RubyConf2008 onto my Ipod. I decided to take another look at ffmpeg&#8217;s terrifying command line options. 
Confreaks have put the RubyConf 2008 videos [...]]]></description>
			<content:encoded><![CDATA[<p>Despite the <a href="http://www.daniellucraft.com/blog/2008/10/handbrake-love/">recent love</a> I gave it, <a href="http://handbrake.fr/">Handbrake</a> has let me down. The latest version segfaults on every job I give it. So I&#8217;ve had to find a different way to get RubyConf2008 onto my Ipod. I decided to take another look at <a href="http://ffmpeg.mplayerhq.hu/">ffmpeg</a>&#8217;s terrifying command line options. </p>
<p>Confreaks have put the RubyConf 2008 videos online <a href="http://rubyconf2008.confreaks.com/">here</a>. To convert the larger 960&#215;468 videos to a format playable on your Ipod using ffmpeg:</p>
<pre><code>
ffmpeg -i ruby-19-what-to-expect-large.mp4 -cropleft 480  \
-vcodec h264 -b 150k -bufsize 244 -maxrate 768k \
-s 480x368 -bf 0 -level 13 -f mp4 -acodec aac -ar 48000 \
-ab 64 ruby19.mp4 

</code></pre>
<p>Confreaks videos have two halves: the slides and the presenter. The cropleft option removes the left hand half of the video, in this case the presenter, leaving just the slides.</p>
<p>If you want to test out your options you can tell ffmpeg to only process a few frames:</p>
<pre><code>
-vframes 2000

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2008/12/rubyconf2008-videos-for-your-ipod/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to run an IRC channel for your free software project</title>
		<link>http://danlucraft.com/blog/2008/12/how-to-run-an-irc-channel-for-your-free-software-project/</link>
		<comments>http://danlucraft.com/blog/2008/12/how-to-run-an-irc-channel-for-your-free-software-project/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 14:12:41 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[irc]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=159</guid>
		<description><![CDATA[I recently needed to set up an IRC channel for Redcar (#redcar at freenode.net), and the tutorials I found online were next to useless. I created my channel on freenode.net. Freenode provides free IRC servers for open source projects. Lots of projects I follow (#rubinius, #rspec) are on Freenode, and Freenode has all the services [...]]]></description>
			<content:encoded><![CDATA[<p>I recently needed to set up an IRC channel for Redcar (#redcar at freenode.net), and the tutorials I found online were next to useless. I created my channel on freenode.net. Freenode provides free IRC servers for open source projects. Lots of projects I follow (#rubinius, #rspec) are on Freenode, and Freenode has all the services you need to run your channel easily. You don&#8217;t have to worry about channel wars or any of that nonsense if you register your channel with them.</p>
<p><strong>Connection</strong></p>
<p>Choose your IRC chat client. I used to use <a href="http://www.pidgin.im/home.php">Pidgin</a>, but now I use <a href="http://www.irssi.org/">Irssi</a>. A terminal based client was my choice because it means I can leave it open on my server and connect to it from wherever I am, work or home. That means the client is never closed, so logging can happen continuously and I do not need to disconnect and reconnect periodically. Disconnecting and reconnecting is accomplished using <a href="http://www.gnu.org/software/screen/">GNU Screen</a>. This is a good <a href="http://quadpoint.org/articles/irssi">tutorial</a> on using Screen and Irssi together.</p>
<p>You do not need to use Irssi, or to have a permanently open connection to run an IRC chat. Having said that, ChanServ has some impenetrable help text about channel successors or somesuch, so may want to test this stuff out.</p>
<p><strong>Register your nickname</strong></p>
<p>Before you can register a channel, you have to have a registered nickname. Send a message to the NickServ bot to register the nickname you are currently using. You can send the message from any channel (though be careful with your typing otherwise you will be broadcasting your password).</p>
<pre><code>
/msg nickserv identify mypassword

</code></pre>
<p><strong>Create your channel</strong></p>
<p>You create a channel by joining it. So type:</p>
<pre><code>
/join #mychannel

</code></pre>
<p><strong>Register your channel</strong></p>
<p>Registering a channel secures it from being taken over by unscrupulous types. Freenode runs the ChanServ bot for this purpose. To register your channel send a message to ChanServ</p>
<pre><code>
/msg chanserv register #mychannel

</code></pre>
<p>You can now use ChanServ to grant yourself admin privileges when you need them, and to make sure that no one else has admin rights. To give yourself admin rights to your channel (called &#8216;ops&#8217;) type:</p>
<pre><code>
/msg chanserv op #mychannel

</code></pre>
<p>To remove admin rights type this:</p>
<pre><code>
/msg chanserv deop #mychannel

</code></pre>
<p>According to my sources, admin rights are like <em>sudo</em>, you should grant them to yourself when you need them but otherwise have them turned off.</p>
<p>You can get help about all of ChanServ&#8217;s commands:</p>
<pre><code>
/msg chanserv help

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2008/12/how-to-run-an-irc-channel-for-your-free-software-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maximum Awesome</title>
		<link>http://danlucraft.com/blog/2008/12/maximum-awesome/</link>
		<comments>http://danlucraft.com/blog/2008/12/maximum-awesome/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 11:29:22 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Songkick]]></category>

		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=135</guid>
		<description><![CDATA[I just took a look at our website, and I thought I would check off all the aspects of the design that are at all web2.0:

Stripes: check.
Reflection: check.
Beta: check.
Rounded corners: check.
Gradients: check.


Gosh. If only there was a new design in the pipeline I could look forward to.
]]></description>
			<content:encoded><![CDATA[<p>I just took a look at our <a href="http://www.songkick.com">website</a>, and I thought I would check off all the aspects of the design that are at all web2.0:</p>
<ul>
<li>Stripes: check.</li>
<li>Reflection: check.</li>
<li>Beta: check.</li>
<li>Rounded corners: check.</li>
<li>Gradients: check.</li>
</ul>
<p><img src="http://www.daniellucraft.com/blog/wp-content/uploads/2008/12/web2-max.png" alt="web2-max" title="web2-max" width="251" height="141" class="alignnone size-full wp-image-136" /></p>
<p>Gosh. If only there was a new design in the pipeline I could look forward to.</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2008/12/maximum-awesome/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vala Textmate Bundle</title>
		<link>http://danlucraft.com/blog/2008/12/vala-textmate-bundle/</link>
		<comments>http://danlucraft.com/blog/2008/12/vala-textmate-bundle/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 21:19:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Redcar]]></category>

		<category><![CDATA[Textmate]]></category>

		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://www.daniellucraft.com/blog/?p=127</guid>
		<description><![CDATA[I started working on a Textmate bundle for Vala. It&#8217;s almost identical to the C# bundle, as you&#8217;d expect. Of course, this is so I can edit my Vala code in Redcar :). Download here.
]]></description>
			<content:encoded><![CDATA[<p>I started working on a <a href="http://macromates.com/">Textmate</a> bundle for <a href="http://live.gnome.org/Vala">Vala</a>. It&#8217;s almost identical to the C# bundle, as you&#8217;d expect. Of course, this is so I can edit my Vala code in <a href="http://www.redcaride.com">Redcar</a> :). Download <a href="http://www.daniellucraft.com/Vala.tmbundle.tar.gz">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danlucraft.com/blog/2008/12/vala-textmate-bundle/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
