<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Planet Botfu</title>
	<link>http://planet.botfu.org/</link>
	<language>en</language>
	<description>Planet Botfu - http://planet.botfu.org/</description>

<item>
	<title>Alberto Sim&otilde;es: Victory - 1981</title>
	<guid>tag:null.perl-hackers.net,2008://1.667</guid>
	<link>http://null.perl-hackers.net/2008/11/victory_-_1981.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;a href=&quot;http://null.perl-hackers.net/2008/11/02/victory.png&quot;&gt;&lt;img alt=&quot;victory.png&quot; src=&quot;http://null.perl-hackers.net/assets_c/2008/11/victory-thumb-100x163.png&quot; class=&quot;mt-image-right&quot; height=&quot;163&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0083284/&quot;&gt;Victory&lt;/a&gt; is an old movie about the second World War, and War prisoners that play Soccer. Nazi prepare a game against these prisoners in the occupied France (Paris). But the game gets complicated, with referee helping the German team. The Allied team had great players from all the occupied countries, and specially Pelé (well, and Sylvester Stallone). Everything ends well when the team escapes.&lt;br /&gt;&lt;br /&gt;Now, is this movie good? I think there are few but good jokes, and some of the actors are good. Then, you can watch a movie and a soccer game all in one. So, you can't really complain.&lt;br /&gt;&lt;br /&gt;I just would like to know how much of the game was prepared, and how much went naturally by the players in the field.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 02 Nov 2008 18:10:04 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Live Free or Die Hard</title>
	<guid>tag:null.perl-hackers.net,2008://1.666</guid>
	<link>http://null.perl-hackers.net/2008/11/live_free_or_die_hard.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTEwOTE1NzUzODNeQTJeQWpwZ15BbWU3MDczODQ3NDE@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/11/01/MV5BMTEwOTE1NzUzODNeQTJeQWpwZ15BbWU3MDczODQ3NDE%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;A lot of time since the last movie I got the time and state of mind to watch a movie. I was not needing any comedy or drama. Horror wasn't a choice as well. Thus, action woult it be. And &lt;a href=&quot;http://www.imdb.com/title/tt0337978/&quot;&gt;Live Free or Die Hard&lt;/a&gt; was a good choice.&lt;br /&gt;&lt;br /&gt;You know, knowing from the beginning this was a Hollywood like movie was a good thing. This way I know that the hero was not dying. Thus, I could concentrate on the action, laughing to the jokes, laughing of the stupidity of the technology shown (specially when showing local IPs, that are quite strange when dealing with the whole network), and wondering how Bruce Willis would get out of the situations.&lt;br /&gt;&lt;br /&gt;Now, a final question arises... can that fight plane flight like that? Is that real? That's real cool!&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 01 Nov 2008 20:02:18 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Using Markov Chains to provide English language seed data for your Rails application</title>
	<guid>http://log.openmonkey.com/post/55783578</guid>
	<link>http://log.openmonkey.com/post/55783578</link>
	<description>&lt;p&gt;I spent a portion of last weekend’s Rails Rumble preparing a script that would seed our application’s database with test data. Among other things, having a well populated database is useful to fully test all the parts of the application’s interface that might not come into play when using a smaller data set. It also gives you the ability to get a true sense of how your app will look and feel after the real users start to pour in content (hopefully!).&lt;/p&gt;

&lt;p&gt;For the Rumble project, I used the &lt;a href=&quot;http://faker.rubyforge.org/&quot;&gt;faker&lt;/a&gt; Ruby gem, which provides methods for generating realistic names, domains and email addresses. It also provides a text generator that pulls random strings from Lorem Ipsum. However, while the app may feel have felt fully populated, seeing the Latin everywhere didn’t make it feel &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So for the next project, I will generate random English language strings for the seed data. Rather than pulling words ad hoc from a dictionary or something, we can use &lt;a href=&quot;http://en.wikipedia.org/wiki/Markov_chain&quot;&gt;Markov Chains&lt;/a&gt; to generate reasonably realistically structured text for us. A bit of searching revealed a &lt;a href=&quot;http://rubyquiz.com/quiz74.html&quot;&gt;Ruby Quiz page&lt;/a&gt; with an implementation of a text generator using Markov Chains. It explains that the generator:&lt;/p&gt;

&lt;blockquote&gt;read[s] some text document(s), making note of which characters commonly follow which characters or which words commonly follow other words (it works for either scale). Then, when generating text, you just select a character or word to output, based on the characters or words that came before it.&lt;/blockquote&gt;
  
&lt;p&gt;I took implementation provided on this page, and added a couple of convenience methods to easily fetch sequences of words or whole sentences:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Courtesy of &lt;a href=&quot;http://rubyquiz.com/quiz74.html&quot;&gt;http://rubyquiz.com/quiz74.html&lt;/a&gt;

class MarkovChain
  def initialize(text)
    @words = Hash.new
    wordlist = text.split
    wordlist.each_with_index do |word, index|
    add(word, wordlist[index + 1]) if index = random
    end.first
    next_word
  end
  
  # Convenience methods to easily access words and sentences
  
  def random_word 
    @words.keys.rand
  end
  
  def words(count = 1, start_word = nil)
    sentence  = ''
    word      = start_word || random_word
    count.times do
      sentence  word  ' '
      word = get(word)
    end
    sentence.strip.gsub(/[^A-Za-z\s]/, '')
  end
  
  def sentences(count = 1, start_word = nil)
    word      = start_word || random_word
    sentences = ''
    until sentences.count('.') == count
      sentences  word  ' '
      word = get(word)
    end
    sentences
  end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then, in my seed data script, I prime a MarkovChain instance with some good literature (I chose Sir Arthur Conan Doyle’s &lt;em&gt;&lt;a href=&quot;http://gutenberg.org/etext/139&quot;&gt;The Lost World&lt;/a&gt;&lt;/em&gt; from Project Gutenburg), and then use it to populate my records:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mc = MarkovChain.new(File.read(&quot;#{RAILS_ROOT}/db/populate_source.txt&quot;))

# create_or_update method taken from &lt;a href=&quot;http://railspikes.com/2008/2/1/loading-seed-data&quot;&gt;http://railspikes.com/2008/2/1/loading-seed-data&lt;/a&gt;

1.upto(100) do |comment_id|
  Comment.create_or_update(
    :id =&gt; comment_id,
    :title =&gt; mc.words(3).titleize,
    :body =&gt; mc.sentences(3)
  )
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Done! While the text isn’t the kind of fluent prose you’d expect from the real-life internet commenters, it does look much more realistic than Lorem Ipsum, and often provides cause for a bit of a chuckle. An example of the kind of stuff you’ll get from The Lost World is below. Feel free to choose your favourite text as the source :)&lt;/p&gt;

&lt;blockquote&gt;Luxurious voyage I had a solemnity as one would no sneer would have just after two surviving Indians in a precipice, and were accompanying to his thumb over his shoulders, the effort.&lt;/blockquote&gt;

&lt;p&gt;For some background on how to load seed data into your Rails app, see &lt;a href=&quot;http://railspikes.com/2008/2/1/loading-seed-data&quot;&gt;this page&lt;/a&gt; on the Rail Spikes blog for a good introduction.&lt;/p&gt;</description>
	<pubDate>Wed, 22 Oct 2008 13:41:00 +0000</pubDate>
</item>
<item>
	<title>Tim Riley: For the win!</title>
	<guid>http://log.openmonkey.com/post/55414413</guid>
	<link>http://log.openmonkey.com/post/55414413</link>
	<description>&lt;p&gt;In the last 48 hours, two friends and colleagues and I laboured over a brand new web app, for our entry in this year’s &lt;a title=&quot;Rails Rumble&quot; href=&quot;http://railsrumble.com/&quot;&gt;Rails Rumble&lt;/a&gt;. The result is something we’re proud to share with you: &lt;b&gt;&lt;a title=&quot;Ideas FTW&quot; href=&quot;http://ideasftw.com/&quot;&gt;Ideas FTW!&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ideasftw.com/&quot; title=&quot;Ideas FTW!&quot;&gt;&lt;img height=&quot;313&quot; width=&quot;500&quot; alt=&quot;Screenshot of Ideas FTW&quot; src=&quot;http://farm4.static.flickr.com/3285/2957233487_26d7d58e90.jpg&quot; align=&quot;middle&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We all have plenty of ideas, most of which we never have the opportunity to act on. Ideas FTW is an idea &lt;i&gt;incubator&lt;/i&gt; that allows you to see your ideas come to life. You can vote on ideas, post your own, take up an idea and start an effort to achieve it on your own or in a group.&lt;/p&gt;
&lt;p&gt;The site is simple and colourful, and will only become more fun to use as more ideas get added. So, please do sign up with your &lt;a title=&quot;OpenID&quot; href=&quot;http://openid.net/&quot;&gt;OpenID&lt;/a&gt; and empty your overflowing brains! I’m looking forward to seeing some interesting ideas fill the site.&lt;/p&gt;
&lt;p&gt;Of course, the app is far from perfect yet. A few bugs slipped through and there are certainly a couple more key features we would like to add. If you have any suggestions for improving Ideas FTW, please feel free to &lt;a title=&quot;Ideas FTW effort page&quot; href=&quot;http://ideasftw.com/efforts/1&quot;&gt;leave a comment on our effort page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Hugh Evans&quot; href=&quot;http://hughevans.net/&quot;&gt;Hugh&lt;/a&gt;, &lt;a title=&quot;Michael MacDonald&quot; href=&quot;http://starclass.com.au/&quot;&gt;Michael&lt;/a&gt; and I all had a great time working together to create this site. We learnt a great many new things over the weekend and I am sure that I can speak for the others to say the lack of sleep was worth it. If you enjoy the site, please feel free to &lt;a title=&quot;Rails Rumble team page&quot; href=&quot;http://railsrumble.com/teams/all-caps&quot;&gt;vote for us&lt;/a&gt; when the tallies open in a couple of days.&lt;/p&gt;</description>
	<pubDate>Mon, 20 Oct 2008 09:51:00 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: God bless Yahoo</title>
	<guid>tag:null.perl-hackers.net,2008://1.665</guid>
	<link>http://null.perl-hackers.net/2008/10/god_bless_yahoo.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;y3.gif&quot; src=&quot;http://null.perl-hackers.net/2008/10/18/y3.gif&quot; class=&quot;mt-image-right&quot; height=&quot;44&quot; width=&quot;232&quot; /&gt;&lt;/span&gt; &lt;div&gt;Google started a nice service that provided a remote API to perform queries. You need to register for a key, and each key was limited to 1000 queries a day. Unfortunately that ended, and now you can query using Google if you are writing a web application and want to access Google using some AJAX.&lt;br /&gt;&lt;br /&gt;Fortunately, Yahoo! still exists. And Yahoo! has a remote API. And has some examples in Perl. And you do not need to register and get a private key (although you are encouraged to). And you really do not have any kind of limit on the number of queries.&lt;br /&gt;&lt;br /&gt;You know, there is smoething more out of the web.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 18 Oct 2008 21:31:50 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Miss Conception</title>
	<guid>tag:null.perl-hackers.net,2008://1.664</guid>
	<link>http://null.perl-hackers.net/2008/10/miss_conception.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTU3MTcwNDc0Nl5BMl5BanBnXkFtZTcwNTk1MjA3MQ@@._V1._SX95_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/10/04/MV5BMTU3MTcwNDc0Nl5BMl5BanBnXkFtZTcwNTk1MjA3MQ%40%40._V1._SX95_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;140&quot; width=&quot;95&quot; /&gt;&lt;/span&gt; &lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0985593/&quot;&gt;Miss conception&lt;/a&gt; is just another comic movie with romance and some relations to sex and sex jokes. The 4.8 rating in IMDB might be a little harsh, but I wouldn't give it much more than 6.&lt;br /&gt;&lt;br /&gt;There are jokes. There are nice girls. While &lt;a href=&quot;http://www.imdb.com/name/nm0001287/&quot;&gt;Heather Graham&lt;/a&gt; has nice eyes and is blond, let me tell you that I feel &lt;a href=&quot;http://www.imdb.com/name/nm0000477/&quot;&gt;Mia Kirshner&lt;/a&gt; a lot more attractive. Yes, the first is taller and thinner. But probably this has something to do with the Portuguese proverb: &lt;i&gt;A mulher quer-se pequenina como a sardinha&lt;/i&gt;. Probably that is my point of view ;)&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 04 Oct 2008 19:42:29 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: MagSafe Sucks</title>
	<guid>tag:null.perl-hackers.net,2008://1.663</guid>
	<link>http://null.perl-hackers.net/2008/09/magsafe_sucks.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;800px-Apple_magsafe_tight.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/28/800px-Apple_magsafe_tight.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;150&quot; width=&quot;200&quot; /&gt;&lt;/span&gt; &lt;div&gt;Do you know MagSafe? The powerconnector that is magnetic, so that if children push the cable, the laptop doesn't follow it?&lt;br /&gt;&lt;br /&gt;Yeah, that one.&lt;br /&gt;&lt;br /&gt;Now, do you know why it sucks? Mainly because Apple support sucks in Portugal, and to exchange a battery I needed to ship mine, and use the laptop more than a week without battery.&lt;br /&gt;&lt;br /&gt;Did you got why MagSafe sucks? Not yet? Because when you are without battery you DO NOT WANT MagSafe to be so... erm... safe? :(&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 28 Sep 2008 16:54:33 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Gothika</title>
	<guid>tag:null.perl-hackers.net,2008://1.662</guid>
	<link>http://null.perl-hackers.net/2008/09/gothika.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTkwOTE4MTAyMl5BMl5BanBnXkFtZTcwMzIyMTYyMQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/27/MV5BMTkwOTE4MTAyMl5BMl5BanBnXkFtZTcwMzIyMTYyMQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt;This afternoon was &lt;a href=&quot;http://www.imdb.com/title/tt0348836/&quot;&gt;Gothika&lt;/a&gt; time. What can I say about this movie?&lt;br /&gt;&lt;br /&gt;The story is well written. During the whole movie I was looking to the wrong suspect. Almost at the end, I was still looking to the wrong suspect.Yeah, but I discover it before it was too clear.&lt;br /&gt;&lt;br /&gt;The movie includes a big amount of paranormal. So, you must accept that paranormal exists to the story make any sense.&lt;br /&gt;&lt;br /&gt;Halle Berry is just phenomenal as Dr. Grey. She performs beautifully, and she is beautiful.&lt;br /&gt;&lt;br /&gt;Voted 9 in 10!! &lt;br /&gt;</description>
	<pubDate>Sat, 27 Sep 2008 19:07:33 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Global Warming</title>
	<guid>tag:null.perl-hackers.net,2008://1.661</guid>
	<link>http://null.perl-hackers.net/2008/09/global_warming.html</link>
	<description>&lt;p&gt;I know that the conclusion is in Portuguese. But trust me, you will understand the message of this video, from Quercus (kind of Green Peace).&lt;/p&gt;
 &lt;center&gt;&lt;/center&gt;</description>
	<pubDate>Wed, 24 Sep 2008 12:33:32 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: The Evolution of a Haskell Programmer</title>
	<guid>tag:null.perl-hackers.net,2008://1.660</guid>
	<link>http://null.perl-hackers.net/2008/09/the_evolution_of_a_haskell_pro.html</link>
	<description>&lt;p&gt;I found this link about &lt;a href=&quot;http://www.willamette.edu/%7Efruehr/haskell/evolution.html&quot;&gt;The Evolution of a Haskell Programmer&lt;/a&gt; quite interesting. It shows a bunch of different approaches to write the well known factorial function in different ways using Haskell. It ranges from the simple pattern-oriented implementation, to confusing implementations with more than 30 lines of Haskell code. And always, always with a brilliant sense of humor.&lt;/p&gt;&lt;p&gt;Let me show you a little of that article:&lt;/p&gt;&lt;blockquote&gt;&lt;h3&gt;Senior Haskell programmer&lt;/h3&gt;&lt;div class=&quot;cmt&quot;&gt;
	(voted for &amp;nbsp; &lt;strike&gt;Nixon&lt;/strike&gt; &amp;nbsp; 
	&lt;strike&gt;Buchanan&lt;/strike&gt; &amp;nbsp; Bush -- &quot;leans right&quot;)
&lt;/div&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;fac n = foldr (*) 1 [1..n]&lt;br /&gt;&lt;/pre&gt;&lt;a href=&quot;http://null.perl-hackers.net/mt-static/html/editor-content.html?cs=utf-8&quot; name=&quot;senior-left&quot;&gt;&lt;/a&gt;
&amp;nbsp;
&lt;h3&gt;Another senior Haskell programmer&lt;/h3&gt;&lt;div class=&quot;cmt&quot;&gt;
	(voted for &amp;nbsp; &lt;strike&gt;McGovern&lt;/strike&gt; &amp;nbsp; 
	&lt;strike&gt;Biafra&lt;/strike&gt; &amp;nbsp; Nader -- &quot;leans left&quot;)
&lt;/div&gt;&lt;code&gt;&lt;/code&gt;fac n = foldl (*) 1 [1..n]&lt;br /&gt;&lt;/blockquote&gt;





&lt;!----------------------------------------&gt;





&lt;pre&gt;Brilliant ;)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;</description>
	<pubDate>Mon, 22 Sep 2008 20:28:54 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Movable Type upgraded to 4.21</title>
	<guid>tag:null.perl-hackers.net,2008://1.659</guid>
	<link>http://null.perl-hackers.net/2008/09/movable_type_upgraded_to_421.html</link>
	<description>Upgraded Movable Type. Hope everything is working alright. Testing.. 1. 2. 3...</description>
	<pubDate>Sun, 21 Sep 2008 17:10:10 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Doomsday</title>
	<guid>tag:null.perl-hackers.net,2008://1.658</guid>
	<link>http://null.perl-hackers.net/2008/09/doomsday.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTUwODU2NzE2OF5BMl5BanBnXkFtZTcwMTAwMDA2MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/21/MV5BMTUwODU2NzE2OF5BMl5BanBnXkFtZTcwMTAwMDA2MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;I am not really sure why this movie is called &lt;a href=&quot;http://www.imdb.com/title/tt0483607/&quot;&gt;Doomsday&lt;/a&gt;. It doesn't have much to do with it. I would prefer to call it &quot;Rolling Heads&quot;. I can count more than five or six people whose head was cut-off.&lt;br /&gt;&lt;br /&gt;Now, on to the movie: the story is kind of standard. Something like Resident Evil. But this time, people die with the virus (that's a good thing, you know!). So, if people die, where is the action? The problem is that after the virus kill all the people, there are survivors. Two clans. One of Punks, another of Lancelots (not sure about what to call it, probably lack of English vocabulary). And they are on fight. While this is a good idea, I think it is the only new idea on the movie.&lt;br /&gt;&lt;br /&gt;About the actors, or actresses (you're not expecting me talking about boys, was you?), Rhona Mitra (Major) is quite good on her role. But I miss Nora-Jane Noone (Read). Why a nice looking blond have to die right in the beginning of the movie? In any case, you can get a beautiful pair of girl asses in the middle of the movie. Trust me :)&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 21 Sep 2008 16:50:06 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Solio Charger</title>
	<guid>tag:null.perl-hackers.net,2008://1.657</guid>
	<link>http://null.perl-hackers.net/2008/09/solio_charger.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;solio.png&quot; src=&quot;http://null.perl-hackers.net/2008/09/18/solio.png&quot; class=&quot;mt-image-right&quot; height=&quot;234&quot; width=&quot;304&quot; /&gt;&lt;/span&gt; Not properly advertising this product, specially because I never used it, and I do not have a clue if it works properly.&lt;br /&gt;&lt;br /&gt;But the &lt;a href=&quot;http://www.solio.com/charger/&quot;&gt;Solio Charger&lt;/a&gt; is very cute. I had one in the hand two days ago and I found it quite attractive. Small, light and wonderful. It is a shame that we can't connect it to a laptop. You know, charging my MacBook Pro in the beach would be just radical. But for that I think I need about ten Solio Chargers (hehehe).&lt;br /&gt;&lt;br /&gt;I love these ideas, and these cool widgets.&lt;br /&gt;</description>
	<pubDate>Thu, 18 Sep 2008 21:26:26 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: The Reaping</title>
	<guid>tag:null.perl-hackers.net,2008://1.656</guid>
	<link>http://null.perl-hackers.net/2008/09/the_reaping.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTkwODE2NTYzMV5BMl5BanBnXkFtZTcwOTIxMjI0MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/17/MV5BMTkwODE2NTYzMV5BMl5BanBnXkFtZTcwOTIxMjI0MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0444682/&quot;&gt;The Reaping&lt;/a&gt; is just freaky. Completely. With nice special effects, good enough actors, a brilliant child actress, and a different story, The Reaping is a strange movie.&lt;br /&gt;&lt;br /&gt;Sometimes it is difficult to follow (to understand when people are dreaming, when things are going on), but for an Horror movie we can't expect for everything to be clear, or things wouldn't be so freaky strange.&lt;br /&gt;&lt;br /&gt;I can't understand how this movie is so bad rated in IMDB (5.6 in 10). I would vote for about 7.5 or 8. I confess that I do not watch much horror movies, but this seemed good enough.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 17 Sep 2008 20:01:15 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: The Bourne Supremacy</title>
	<guid>tag:null.perl-hackers.net,2008://1.655</guid>
	<link>http://null.perl-hackers.net/2008/09/the_bourne_supremacy.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMjExNzY3MjU0Ml5BMl5BanBnXkFtZTcwODMxNjcyMQ@@._V1._SX98_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/17/MV5BMjExNzY3MjU0Ml5BMl5BanBnXkFtZTcwODMxNjcyMQ%40%40._V1._SX98_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;140&quot; width=&quot;98&quot; /&gt;&lt;/span&gt; &lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0372183/&quot;&gt;The Bourne Supremacy&lt;/a&gt; is the second of a trilogy. From this trilogy, I've seen the third (check a post some days ago), and now I've seen the second. Well, this is not the more natural order to see the movies. But things sometime are not ordered as we expect...&lt;br /&gt;&lt;br /&gt;It is normal to say that the second, or third movies, get worst. For instance, look to Shrek. The first was brilliant, the second was OK, and I didn't see the third yet, but people say bad things about it.&lt;br /&gt;&lt;br /&gt;In this case, I would say that the third movie is quite better than this one. No, this is not a bad movie. But I enjoyed a lot more the third. Now, this raises me a question: do we enjoy the first movies because they are the first and directors are with fresh ideas, or do we enjoy the first movie we watch because our brain works some more to remember the identity of characters, and to glue a story? No, I am not a psychologist, but this question just got through my mind.&lt;br /&gt;&lt;br /&gt;Back to the movie, go watch it :P&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 17 Sep 2008 19:54:50 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Marco Wessel: iPhone on Vodafone NL</title>
	<guid>http://www.cyberhq.nl/?p=94</guid>
	<link>http://www.cyberhq.nl/2008/09/13/iphone-on-vodafone-nl.html</link>
	<description>&lt;p&gt;I knew pretty soon after it was released that I wanted an iPhone. Shiny and new, so it must be made mine. It had a few show-stopper problems, however:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I detest SIM-locked phones.&lt;/li&gt;
&lt;li&gt;A two-year contract is even worse.&lt;/li&gt;
&lt;li&gt;T-Mobile is shit.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Luckily, all these problems could be solved thanks to the nice people just south of us. Except they&amp;#8217;re completely out of stock. Italy to the rescue: Telecom Italia Mobile (TIM) has shitlots of them and are willing to sell you just the phone, without SIM-locks and without a contract. Excellent. Off we are. (In reality it&amp;#8217;s just coincidence that I happened to be going there, but let&amp;#8217;s pretend we&amp;#8217;re decadent.)&lt;/p&gt;
&lt;p&gt;In Italy, all was fine. I bought the phone, stuck my SIM-card in and activated it. It took a few seconds to recognise it wasn&amp;#8217;t anywhere near my home network so it looked for other interesting ones. Vodafone happens to also have an Italian presence, so of course my SIM instructs the phone to use that network. &amp;#8216;Voda IT&amp;#8217;. Good. We&amp;#8217;re all set.&lt;/p&gt;
&lt;p&gt;And then we got back to the Netherlands. Vodafone doesn&amp;#8217;t sell iPhones here, so my phone has no idea of this network, unlike in Italy. The carrier name here, therefore, is &amp;#8216;Voda&amp;#8230;&amp;#8217; most of the time. That I can live with, but due to the phone not having any settings for this network it would also pop up a notice every time I initiated a call: &amp;#8220;Call-forwarding activated&amp;#8221;. &lt;/p&gt;
&lt;p&gt;This is because Vodafone will redirect any callers to Voicemail for you if they call while you&amp;#8217;re on the phone. Even if you don&amp;#8217;t have voicemail: in that case, they&amp;#8217;ll get a recording saying you&amp;#8217;re unavailable. Fine, but the popup is annoying.&lt;/p&gt;
&lt;p&gt;There is only One Way to fix this: Carrier Bundles.&lt;/p&gt;
&lt;p&gt;iPhone uses Carrier bundles to set carrier-specific information, such as the APNs for data services, whether or not to use the network for Time info, if you can edit the APNs, the carrier logos, etc., and among those settings is a &amp;#8216;Display Call Forwarding&amp;#8217; setting. This we need to turn off. There are two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit the &amp;#8216;Unknown Carrier&amp;#8217; bundle, which will apply the settings to all unknown networks, or&lt;/li&gt;
&lt;li&gt;Create a &amp;#8216;Vodafone NL&amp;#8217; bundle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The former will always fix the popup, but will also apply to other SIMs inserted into your phone which you may not want. And if you edit a logo here, it&amp;#8217;ll always show up even if you&amp;#8217;re on another country&amp;#8217;s unknown network. Bad.&lt;/p&gt;
&lt;p&gt;So instead I made a Vodafone NL bundle that contains logos in the same style as the other Vodafone carrier bundles (so it says &amp;#8216;Voda NL&amp;#8217;) and with the right internet settings and such.&lt;/p&gt;
&lt;p&gt;I feel this may be useful to more people than just me, so here it is:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.cyberhq.nl/~marco/Vodafone_nl.bundle.zip&quot;&gt;Download Vodafone NL carrier bundle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Currently, you need a jailbroken phone and some SSH skills to get it installed. The process is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy the bundle (it&amp;#8217;s a directory, technically) to your phone&amp;#8217;s &amp;#8220;/System/Library/Carrier Bundles&amp;#8221; directory. This can be done using scp -r or some other tool that is capable of transferring entire directories.&lt;/li&gt;
&lt;li&gt;Create a Symlink in the same directory, pointing to the bundle, called &amp;#8220;20404&amp;#8243;. This is the network identification number (204 for The Netherlands, 04 for Vodafone Libertel N.V.) This you can do by cd&amp;#8217;ing into the directory and typing &amp;#8220;ln -s Vodafone_nl.bundle 20404&amp;#8243;).&lt;/li&gt;
&lt;li&gt;Reboot the phone. Killing Springboard does not appear to suffice.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As of now, you should have &amp;#8216;Voda NL&amp;#8217; in your status bar, and not be bothered by the Call Forwarding popup.&lt;/p&gt;</description>
	<pubDate>Sat, 13 Sep 2008 15:57:35 +0000</pubDate>
	<dc:creator>Marco</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Hancock</title>
	<guid>tag:null.perl-hackers.net,2008://1.654</guid>
	<link>http://null.perl-hackers.net/2008/09/hancock.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTIzNzc5MDk3OV5BMl5BanBnXkFtZTcwMzc3Mjc1MQ@@._V1._SX94_SY139_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/11/MV5BMTIzNzc5MDk3OV5BMl5BanBnXkFtZTcwMzc3Mjc1MQ%40%40._V1._SX94_SY139_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;There are many super-hero movies. There are many super-heros. But there is just one &lt;a href=&quot;http://www.imdb.com/title/tt0448157/&quot;&gt;Hancock&lt;/a&gt;. The real super-hero shouldn't be perfect. Should have fun! OK, there is no need to drink so much alchool. But to have fun with the bad guys is a must.&lt;br /&gt;&lt;br /&gt;The movie is interesting, with nice special effects, nice jokes, and a nice Charlize Theron. I think these are all enough reasons to see the movie if you didn't. If not, I remember that the movie is with Will Smith.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 11 Sep 2008 19:28:50 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Iron Man</title>
	<guid>tag:null.perl-hackers.net,2008://1.653</guid>
	<link>http://null.perl-hackers.net/2008/09/iron_man.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTcxMzU4OTg4Nl5BMl5BanBnXkFtZTcwODM2NDI2MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/09/11/MV5BMTcxMzU4OTg4Nl5BMl5BanBnXkFtZTcwODM2NDI2MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;140&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0371746/&quot;&gt;Iron Man&lt;/a&gt; is not just another action/adventure movie with a MARVEL character. Iron Man is one of the best incarnations of a MARVEL hero in an Holywood movie. &lt;br /&gt;&lt;br /&gt;I really love the special effects, and some of the interfaces designed to interact with software. While most are common Holywood crap, some other are just fantastic, like the interface used to manipulate the 3D rendering of the armor. That usability would be impressive.&lt;br /&gt;&lt;br /&gt;Oh, and there are nice girls.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 11 Sep 2008 12:36:45 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Configuring god to monitor Sphinx's searchd</title>
	<guid>http://log.openmonkey.com/post/49556051</guid>
	<link>http://log.openmonkey.com/post/49556051</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://god.rubyforge.org/&quot;&gt;God&lt;/a&gt; is a server monitoring tool helpful for starting your server processes and keeping them running, all the while making sure they don’t misbehave. In the Rails world, it appears to be used most commonly with packs of mongrels or thins. However, this is not to say it can’t be used to monitor other software. For one of my recent work projects, we’ve been using God to monitor the searchd process that &lt;a href=&quot;http://sphinxsearch.com/&quot;&gt;Sphinx&lt;/a&gt; uses to serve results to search queries.&lt;/p&gt;

&lt;p&gt;The configuration required for this can be based mostly on what you see around the place for thins or mongrels:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
require 'yaml'

app_config = YAML.load(File.open(File.dirname(__FILE__) + &quot;/config.yml&quot;))['production']

God.watch do |w|
  w.group = &quot;#{app_config['app_name']}-sphinx&quot;
  w.name  = w.group + &quot;-1&quot;
  
  w.interval = 30.seconds
  
  w.uid = app_config['user']
  w.gid = app_config['group']
  
  w.start         = &quot;searchd --config #{app_config['app_root']}/config/sphinx.conf&quot;
  w.start_grace   = 10.seconds  
  w.stop          = &quot;searchd --config #{app_config['app_root']}/config/sphinx.conf --stop&quot;
  w.stop_grace    = 10.seconds  
  w.restart       = w.stop + &quot; &amp;amp;&amp;amp; &quot; + w.start
  w.restart_grace = 15.seconds
  
  w.pid_file = File.join(app_config['app_root'], &quot;tmp/pids/sphinx.pid&quot;)
  
  w.behavior(:clean_pid_file)
  
  w.start_if do |start|
    start.condition(:process_running) do |c|
      c.interval  = 5.seconds
      c.running   = false
    end
  end
  
  w.restart_if do |restart|
    restart.condition(:memory_usage) do |c|
      c.above = 100.megabytes
      c.times = [3, 5] # 3 out of 5 intervals
    end
  end
  
  w.lifecycle do |on|
    on.condition(:flapping) do |c|
      c.to_state      = [:start, :restart]
      c.times         = 5
      c.within        = 5.minutes
      c.transition    = :unmonitored
      c.retry_in      = 10.minutes
      c.retry_times   = 5
      c.retry_within  = 2.hours
    end
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There are a number of other changes required for this configuration to work properly. Firstly, you will require a config/config.yml file, containing something like the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
development: &amp;amp;production_settings
  app_name: myapp
  user: deployer
  group: deployer
  app_root: &quot;/home/deployer/deployments/myapp.amc.org.au/current&quot;
test:
  : *production_settings
production:
  : *production_settings
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This config file sets the app’s short name, the user and group to run the searchd process, and the path to the rails application root. We keep these settings in a yaml file because they are also used in a number of other places besides here. If you don’t have this requirement, you can put all of these settings directly into your god config file.&lt;/p&gt;

&lt;p&gt;The other requirement is that we make Sphinx use a configuration file that has a predictable name. The default Sphinx config file, when using &lt;a href=&quot;http://freelancing-gods.com/&quot;&gt;Pat Allen’s&lt;/a&gt; awesome &lt;a href=&quot;http://ts.freelancing-gods.com/&quot;&gt;Thinking Sphinx&lt;/a&gt; plugin, has a file name contains the name of the current Rails environment. God can’t use this to launch searchd, because it is does not run within the context of the Rails environment. To set location and name of the sphinx configuration file, set up a config/sphinx.yml file that contains something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
development: &amp;amp;production_settings
  config_file: /home/deployer/deployments/myapp.amc.org.au/current/config/sphinx.conf
  pid_file: /home/deployer/deployments/myapp.amc.org.au/current/tmp/pids/sphinx.pid
test:
  : *production_settings
production:
  : *production_settings
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Thinking Sphinx respects these settings and uses them when it generates the Sphinx config file.&lt;/p&gt;

&lt;p&gt;So that’s about it. Make sure you’ve run `rake thinking_sphinx:index` at least once in your Rails app, to generate the Sphinx configuration and indexes, and then you are ready to start god and have your searchd automatically started and monitored!&lt;/p&gt;</description>
	<pubDate>Wed, 10 Sep 2008 13:27:00 +0000</pubDate>
</item>
<item>
	<title>Tim Riley: Lessons learnt the hard way: Don't use script/console --sandbox on production apps</title>
	<guid>http://log.openmonkey.com/post/49496179</guid>
	<link>http://log.openmonkey.com/post/49496179</link>
	<description>&lt;p&gt;Don’t use &lt;i&gt;script/console -s&lt;/i&gt; or &lt;i&gt;script/console —sandbox&lt;/i&gt; on your live, running Rails application. The built-in transactions that roll back on exit are nifty, but if your database’s transactions use any kind of locking, then you will get locks on the tables for any models that you use in the console. This will most likely stop your application from working.&lt;/p&gt;
&lt;p&gt;Moral of the story? If you need to use the console on a live application, just be careful. You’re smart, you’re cautious, you don’t need the sandbox. It will only cause more trouble than it is worth.&lt;/p&gt;</description>
	<pubDate>Wed, 10 Sep 2008 02:33:00 +0000</pubDate>
</item>
<item>
	<title>Tim Riley: "It’s one of the biggest challenges in the digital age: When you can bombard people with everything,..."</title>
	<guid>http://log.openmonkey.com/post/48969212</guid>
	<link>http://log.openmonkey.com/post/48969212</link>
	<description>“It’s one of the biggest challenges in the digital age: When you can bombard people with everything, it’s tempting to do so. That’s why taste, restraint, and editing are so important. Sometimes it’s about throwing out the 35 bad shots and revelling in the one great shot.”&lt;br /&gt;&lt;br /&gt; - &lt;em&gt;Capture attention with only the &lt;a href=&quot;http://www.37signals.com/svn/posts/1228-a-361-ratio-is-actually-pretty-good&quot;&gt;cream of your crop&lt;/a&gt;.&lt;/em&gt;</description>
	<pubDate>Sat, 06 Sep 2008 06:47:06 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Before the Devil Knows You are Dead</title>
	<guid>tag:null.perl-hackers.net,2008://1.652</guid>
	<link>http://null.perl-hackers.net/2008/08/before_the_devil_knows_you_are.html</link>
	<description>&lt;p&gt;
&lt;p&gt;&lt;img class=&quot;mt-image-right&quot; height=&quot;139&quot; alt=&quot;MV5BMTQ1NzM2ODQxNF5BMl5BanBnXkFtZTcwMDczMDU1MQ@@__V1__SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/08/27/MV5BMTQ1NzM2ODQxNF5BMl5BanBnXkFtZTcwMDczMDU1MQ%40%40__V1__SX94_SY140_.jpg&quot; width=&quot;94&quot; /&gt;I am now sure why I chose this movie to see. I know that the title is funny, but &lt;a href=&quot;http://www.imdb.com/title/tt0292963/&quot;&gt;Before the Devil Knows You are Dead&lt;/a&gt; is a strange movie that do not resemble much of the title. The story is explained in an interesting fashion, showing portions of the live of different people, that we start combining in a story.&lt;/p&gt;
&lt;p&gt;The only thing about the title is the preambule, shown before the movie title: a guy making sex. Accordingly with the movie director that is like heaven, at least for that specific guy. And, accordingly with the full plot, that guy will go directly to hell, no doubt. Thus, those are the moments before the devil knows you are dead.&lt;/p&gt;
&lt;p&gt;The rest of the movie, is just a crime/drama story. The criminals are shown right at the beginning, who dies is shown right away, as well. The only things that are kept to discover is how people will behave when they find out whose fault is the crime.&lt;/p&gt;
&lt;p&gt;I won't give more than 7 to the movie, although the classification is higher in IMDB at the moment.&lt;/p&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 17:32:07 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: The Bourne Ultimatum</title>
	<guid>tag:null.perl-hackers.net,2008://1.651</guid>
	<link>http://null.perl-hackers.net/2008/08/the_bourne_ultimatum.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTQ0NDYxNzI0Ml5BMl5BanBnXkFtZTcwMjU0MjU1MQ@@._V1._SX98_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/08/26/MV5BMTQ0NDYxNzI0Ml5BMl5BanBnXkFtZTcwMjU0MjU1MQ%40%40._V1._SX98_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;140&quot; width=&quot;98&quot; /&gt;&lt;/span&gt; &lt;div&gt;After seeing a bad movie (Orgazmo) this time I got a nice one. &lt;a href=&quot;http://www.imdb.com/title/tt0440963/&quot;&gt;The Bourne Ultimatum&lt;/a&gt; is a standard Holywood movie, but with lots of action. I can't remember any point on the movie without action. Things always changing, characters changing sides, understanding the real story during the movie.&lt;br /&gt;&lt;br /&gt;I can't remember if I saw any of the previous ones. If something on me says I did, some other things say I didn't. So, probably I'll watch them again, in any case.&lt;br /&gt;&lt;br /&gt;The movie is quite well rated in IMDB (8.2/10) and I'll probably vote 8 in 10.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 26 Aug 2008 13:13:29 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: I made tea.</title>
	<guid>http://log.openmonkey.com/post/47424515</guid>
	<link>http://log.openmonkey.com/post/47424515</link>
	<description>&lt;a href=&quot;http://www.telescopictext.com/&quot;&gt;I made tea.&lt;/a&gt;: Fascinating, infuriating, and addictive. Great concept. Via &lt;a href=&quot;http://log.morrisonfilm.com/post/46601006&quot;&gt;MorrisonFilm&lt;/a&gt;.</description>
	<pubDate>Tue, 26 Aug 2008 07:04:12 +0000</pubDate>
</item>
<item>
	<title>Tim Riley: "The most important file, as we all know, is application_helper.rb, because this is where code goes..."</title>
	<guid>http://log.openmonkey.com/post/47287046</guid>
	<link>http://log.openmonkey.com/post/47287046</link>
	<description>“The most important file, as we all know, is application_helper.rb, because this is where code goes to die. It’s often a few hundred lines of randomly added, unrelated methods. This is a confusing, scary place for methods to be.”&lt;br /&gt;&lt;br /&gt; - &lt;em&gt;Eric Chapweske on &lt;a href=&quot;http://railspikes.com/2008/8/22/how-to-fix-your-rails-helpers&quot;&gt;how to fix your rails helpers&lt;/a&gt;.&lt;/em&gt;</description>
	<pubDate>Mon, 25 Aug 2008 07:31:25 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Orgazmo - 1997</title>
	<guid>tag:null.perl-hackers.net,2008://1.650</guid>
	<link>http://null.perl-hackers.net/2008/08/orgazmo_-_1997.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMjE1NjcyNTAyMV5BMl5BanBnXkFtZTcwNDY5NTkxMQ@@._V1._SX100_SY139_.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/08/24/MV5BMjE1NjcyNTAyMV5BMl5BanBnXkFtZTcwNDY5NTkxMQ%40%40._V1._SX100_SY139_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;100&quot; /&gt;&lt;/span&gt; &lt;div&gt;No, not that. 1997 wasn't the year of my latest orgasm. 1997 is the year on which this stupid movie (&lt;a href=&quot;http://www.imdb.com/title/tt0124819/&quot;&gt;Orgazmo&lt;/a&gt;) was produced. Let me tell you again, this is a very stupid movie.&lt;br /&gt;&lt;br /&gt;So, in this moment you should be asking: why to see a movie with that name, and just 5.9 in 10 of classification in IMDB? Well, you know. Sometimes there is something strange that gets through your mind, and you do strange things.&lt;br /&gt;&lt;br /&gt;Now that I wasted 95 minutes of my life watching it, let me say something about it. A guy, is a Mormon, going from door to door evangelizing. It knocks in the wrong door, where a pornographic movie is being recorded, and is convinced to do the main character in that movie. That character is a super hero, that helps girls.. basically fucking them. The story grows from there to little more.&lt;br /&gt;&lt;br /&gt;So, the movie is not erotic or pornographic. Just stupid. I remember to see erotic and almost considered pornographic movies with more history than this one...&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 24 Aug 2008 17:20:47 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Beijing Olympic medal tally for our Campfire bot</title>
	<guid>http://log.openmonkey.com/post/45395898</guid>
	<link>http://log.openmonkey.com/post/45395898</link>
	<description>&lt;p&gt;I’ve recently been working on a bot framework for 37signals’ &lt;a href=&quot;http://campfirenow.com/&quot;&gt;Campfire&lt;/a&gt; web chat system. We use Campfire at work and it’s been great for having fun together and  increasing team cohesiveness.&lt;/p&gt;

&lt;p&gt;Having a bot in the room is also good for random quotes, Chuck Norris facts and comic strips. We also plan to add a few useful work-related things, such as git &amp;amp; subversion commit messages and server monitoring alerts.&lt;/p&gt;

&lt;p&gt;The bot is plugin-oriented and easy to extend. Check out the &lt;a href=&quot;http://github.com/timriley/campfire-bot/tree/master&quot;&gt;code on github&lt;/a&gt;. It’s still in flux and I would love to hear any feedback.&lt;/p&gt;

&lt;p&gt;This afternoon I hacked together a little plugin to report the Beijing olympics medal tally, thanks to an idea of Sean’s. The code is highly specific, but it shows how easy (and fun!) it is to add a command to the bot and scrape data off the web using hpricot.&lt;/p&gt;

&lt;p&gt;Here it is:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require 'open-uri'
require 'hpricot'

class BeijingTally  PluginBase
  
  on_command 'tally', :tally
  
  def tally(msg)
    output    = &quot;#{'Pos.'.rjust(6)} - #{'Country'.ljust(25)} -   G -   S -   B - Total\n&quot;
    rows      = ((Hpricot(open('http://results.beijing2008.cn/WRM/ENG/INF/GL/95A/GL0000000.shtml'))/'//table')[1]/'tr')[2..-1]
    rows.each_with_index do |row, i|
      cells   = row/'td'
      output += &quot;#{strip_tags_or_zero(cells[0].inner_html).rjust(6)} - &quot; # position
      output += &quot;#{((i == rows.length - 1) ? '' : strip_tags_or_zero(cells[1].inner_html)).ljust(25)} - &quot; # country
      output += &quot;#{strip_tags_or_zero(cells[-5].inner_html).rjust(3)} - &quot; # gold
      output += &quot;#{strip_tags_or_zero(cells[-4].inner_html).rjust(3)} - &quot; # silver
      output += &quot;#{strip_tags_or_zero(cells[-3].inner_html).rjust(3)} - &quot; # bronze
      output += &quot;#{strip_tags_or_zero(cells[-2].inner_html).rjust(3)}\n&quot;  # total
    end
    
    paste(output)
  end
  
  private
  
  # Take away the HTML tags from the string and insert a '0' if it is empty
  def strip_tags_or_zero(str)
    (out = str.gsub(/]*&gt;/, &quot;&quot;).strip).blank? ? '0' : out
  end
end&lt;/code&gt;&lt;/pre&gt;</description>
	<pubDate>Sun, 10 Aug 2008 08:28:00 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: A Chill Out tribute to Queen</title>
	<guid>tag:null.perl-hackers.net,2008://1.649</guid>
	<link>http://null.perl-hackers.net/2008/08/a_chill_out_tribute_to_queen.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;chilloutqueen.jpg&quot; src=&quot;http://null.perl-hackers.net/2008/08/06/chilloutqueen.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;250&quot; width=&quot;250&quot; /&gt;&lt;/span&gt; &lt;div&gt;Today I was walking in a shopping and found this CD box: &lt;i&gt;a Chill Out tribute to Queen&lt;/i&gt;. I like Queen. Well, I really love some Queen songs. I also like some albuns from the Royal Philharmonic Orchestra playing a Classic-like style of Queen. So, why not to listen to a Chill Out version of Queen music?&lt;br /&gt;&lt;br /&gt;Well, &lt;i&gt;do not follow my instinct&lt;/i&gt;! &lt;b&gt;Do not buy this!&lt;/b&gt; This is a total assassination of Queen music. While the instrumental portion is reasonable, the voice is a total disaster.&lt;br /&gt;&lt;br /&gt;I am not sure if I will listen to this album again!&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 06 Aug 2008 21:21:03 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: brian guide to solve almost anything in Perl</title>
	<guid>tag:null.perl-hackers.net,2008://1.648</guid>
	<link>http://null.perl-hackers.net/2008/08/brian_guide_to_solve_almost_an.html</link>
	<description>brian d foy wrote a guide about how to solve almost anything in Perl. A lot of people started translating it, and thus, I offered myself to get an European Portuguese version (yes, it was available a Brazilian version). Unfortunately I can't agree these are the same languages, and I really get angry when reading technical text in Brazilian Portuguese.&lt;br /&gt;&lt;br /&gt;For those interested in the Portuguese version of brian's guide, please visit &lt;a href=&quot;http://www252.pair.com/comdog/brians_guide_pt_PT.pod&quot;&gt;http://www252.pair.com/comdog/brians_guide_pt_PT.pod&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;</description>
	<pubDate>Mon, 04 Aug 2008 18:22:11 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Acer Aspire One does not like Slackware 12.1</title>
	<guid>tag:null.perl-hackers.net,2008://1.647</guid>
	<link>http://null.perl-hackers.net/2008/07/acer_aspire_one_does_not_like.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;slackware02.gif&quot; src=&quot;http://null.perl-hackers.net/slackware02.gif&quot; class=&quot;mt-image-right&quot; height=&quot;150&quot; width=&quot;115&quot; /&gt;&lt;/span&gt; &lt;div&gt;From an older post, you know that I bought an Acer Aspire One. I tried to install a slackware. Yeah, I am a slackware geek. Unfortunately it didn't work. Well, at least it didn't work at first, and I restored Acer linux.&lt;br /&gt;&lt;br /&gt;Now, what happened with Slackware? It boots correctly, but it fails when I try to load any kernel module. For instance, I needed the r8169 module for the ethernet card, and modprobe just crashes with a segmentation fault.&lt;br /&gt;&lt;br /&gt;What can I do? Well, I can try to do a custom boot disk, with that module linked into the kernel, or then another kernel version that might work. But I lack the time, patience and knowledge to do that.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 27 Jul 2008 15:21:32 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: RV</title>
	<guid>tag:null.perl-hackers.net,2008://1.646</guid>
	<link>http://null.perl-hackers.net/2008/07/rv.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BNDgxNDE2NDU3MV5BMl5BanBnXkFtZTcwMzA2ODQzMQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BNDgxNDE2NDU3MV5BMl5BanBnXkFtZTcwMzA2ODQzMQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;140&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;This weekend I took &lt;a href=&quot;http://www.imdb.com/title/tt0449089/&quot;&gt;RV&lt;/a&gt; to see. It is a funny movie. Not a completelly fascinant movie, but worth to give a look and run for some time. In fact, I give a few loud laughs when seeing the movie.&lt;br /&gt;&lt;br /&gt;It is the usual family movie, where fathers and children are not that communicative, and gain confidence during the movie. But that is just the story. And the best on the movie is not the story, but some details, some scenes of humor.&lt;br /&gt;&lt;br /&gt;And let me say, that Joanna JoJo Levesque is quite nice on this movie.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 27 Jul 2008 15:05:56 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Evan Almighty</title>
	<guid>tag:null.perl-hackers.net,2008://1.645</guid>
	<link>http://null.perl-hackers.net/2008/07/evan_almighty.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTUxMTEzODYxMV5BMl5BanBnXkFtZTcwNzQ4ODU0MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BMTUxMTEzODYxMV5BMl5BanBnXkFtZTcwNzQ4ODU0MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;And today's movie was... &lt;a href=&quot;http://www.imdb.com/title/tt0413099/&quot;&gt;Evan Almighty&lt;/a&gt;. Yeah, I know I need to stop watching movies and doing more interesting work. I promise I'll try.&lt;br /&gt;&lt;br /&gt;Now, on the movie details: the story is simple. Evan is a congressman. God tells him to build an Ark. He builds the Ark. There is a flood. Happy? I am just not sure why building an Ark on XX century is done using traditional tools.&lt;br /&gt;&lt;br /&gt;A final comment: Lauren Graham is really nice on this movie. She is 40 and very attractive, and sexy.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 23 Jul 2008 16:28:20 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: "Few things are better than spending time in a creative haze, consumed by ideas, watching your work..."</title>
	<guid>http://log.openmonkey.com/post/43184139</guid>
	<link>http://log.openmonkey.com/post/43184139</link>
	<description>“Few things are better than spending time in a creative haze, consumed by ideas, watching your work come to life, going to bed eager to wake up quickly and go try things out. I am not suggesting that excessive hours are needed or even advisable; a sane schedule is a must except for occasional binges. The point is that programming is an intense creative pleasure, a perfect mixture of puzzles, writing, and craftsmanship.”&lt;br /&gt;&lt;br /&gt; - &lt;em&gt;Lucky to be a programmer indeed. From &lt;a href=&quot;http://duartes.org/gustavo/blog/post/lucky-to-be-a-programmer&quot;&gt;Gustavo Duarte&lt;/a&gt;, via &lt;a href=&quot;http://gusmueller.com/blog/archives/2008/07/lucky_to_be_a_programmer.html&quot;&gt;Gus Mueller&lt;/a&gt;.&lt;/em&gt;</description>
	<pubDate>Tue, 22 Jul 2008 23:34:00 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Young People Fucking</title>
	<guid>tag:null.perl-hackers.net,2008://1.644</guid>
	<link>http://null.perl-hackers.net/2008/07/young_people_fucking.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTI1MDA2MzY2NV5BMl5BanBnXkFtZTcwODkxMTA3MQ@@._V1._SX96_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BMTI1MDA2MzY2NV5BMl5BanBnXkFtZTcwODkxMTA3MQ%40%40._V1._SX96_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;96&quot; /&gt;&lt;/span&gt; &lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0913445/&quot;&gt;Young People Fucking&lt;/a&gt; is the name of a strange movie. While classified as a comedy, on some situations it feels like an erotic movie. Not that you see too much of the fucking. In fact you don't, and that might be the reason about it.&lt;br /&gt;&lt;br /&gt;In any case, the movie is about a set of couples, and how they react to a sex night, in different situations. For instance, one couple that lost the interest, a couple that are apart for some time, a couple of best friends that never saw each other as a possible mate, and so on.&lt;br /&gt;&lt;br /&gt;I think the movie is interesting and can give some clues on all problems that a relationship can raise.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 22 Jul 2008 17:01:35 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Acer Aspire One</title>
	<guid>tag:null.perl-hackers.net,2008://1.643</guid>
	<link>http://null.perl-hackers.net/2008/07/acer_aspire_one.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;aspireone.jpg&quot; src=&quot;http://null.perl-hackers.net/aspireone.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;140&quot; width=&quot;150&quot; /&gt;&lt;/span&gt; &lt;div&gt;I just bought an Acer Aspire One. This is a small and cheap laptop with an Atom based processor, 512MB of RAM, 8GB of flash disk, card readers, USB slots. A small webcam (but interesting quality), sound, et al. It runs a fedora 8 based distro, but I'll probably install another linux on the next days.&lt;br /&gt;&lt;br /&gt;At the moment, my only complain is that my big hands have some trouble using that small keyboard. But that will go with time. Oh, and I feel it to be unacceptable to ship a linux distro without an ssh client.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 22 Jul 2008 11:49:32 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Bee Movie</title>
	<guid>tag:null.perl-hackers.net,2008://1.642</guid>
	<link>http://null.perl-hackers.net/2008/07/bee_movie.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTc0NzQzOTU4MV5BMl5BanBnXkFtZTcwOTc4MDU1MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BMTc0NzQzOTU4MV5BMl5BanBnXkFtZTcwOTc4MDU1MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;This time I got an Animation movie: &lt;a href=&quot;http://www.imdb.com/title/tt0389790/&quot;&gt;Bee Movie&lt;/a&gt;. I was tired of zombies, and the movie of yesterday was too much a drama to me. So, a comedy and animation movie was the choice.&lt;br /&gt;&lt;br /&gt;Now, what can I say about Bee Movie? The animation is excellent as we are used to, when the movie comes from Dreamworks or Pixar. The voices are good as well. Although one of the main advertisers for this movie was the voice from Jerry Seinfeld, I really didn't found it to be any special.&lt;br /&gt;&lt;br /&gt;The story on Bee Movie is the usual: showing that the nature is something to respect, and that animals have feelings as well. In fact I am really convinced that flowers, vegetable plants and fruit trees, all have feelings. That is why I do not get vegetarian. If we need to eat life forms, why to distinguish them? (lol).&lt;br /&gt;&lt;br /&gt;A good movie. 7/10.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 20 Jul 2008 15:20:42 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Children of Men</title>
	<guid>tag:null.perl-hackers.net,2008://1.641</guid>
	<link>http://null.perl-hackers.net/2008/07/children_of_men.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BNjkxMzU4ODU2NV5BMl5BanBnXkFtZTcwMDU1MDQ0MQ@@._V1._SX98_SY139_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BNjkxMzU4ODU2NV5BMl5BanBnXkFtZTcwMDU1MDQ0MQ%40%40._V1._SX98_SY139_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;98&quot; /&gt;&lt;/span&gt; &lt;div&gt;Taking the time of vacations to see some more movies, next one was &lt;a href=&quot;http://www.imdb.com/title/tt0206634/&quot;&gt;Children of Men&lt;/a&gt;. I should confess I was expecting a completely different movie. Why? Well, I heard about the story: future, nobody procreates anymore, a baby appears. What I wasn't expecting, then? The key work is &quot;future&quot;. The movie seems anything, but to be held in the future.&lt;br /&gt;&lt;br /&gt;OK, but on to the movie: the story is good enough (nothing really new, but good enough for a good movie), the main actor pretty good as well. The soundtrack was also very well chosen, and there are some moments that almost make me cry... &lt;br /&gt;&lt;br /&gt;And again, like the movie watched yesterday, this one makes us think. And that is good!&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 19 Jul 2008 15:59:38 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: I am legend</title>
	<guid>tag:null.perl-hackers.net,2008://1.640</guid>
	<link>http://null.perl-hackers.net/2008/07/i_am_legend.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTU5MDc1MjgyMF5BMl5BanBnXkFtZTcwNTAyMTU1MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BMTU5MDc1MjgyMF5BMl5BanBnXkFtZTcwNTAyMTU1MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;For some time that I didn't see a movie of zombies... well, kidding. Not sure why I am seeing so many zombie movies, but &quot;&lt;a href=&quot;http://www.imdb.com/title/tt0480249/&quot;&gt;I am legend&lt;/a&gt;&quot; is not yet another zombie movie. While having zombies and guns, there are some interesting details that are not similar to other movies like Resident Evil. &lt;br /&gt;&lt;br /&gt;On &lt;i&gt;I am legend&lt;/i&gt;, Will Smith has a nive acting. Almost the full movie is with him, and him, and his dog. There are some thrilling portions of the movie, but lots of time are quiet, with no action, but showing us the desolation of cities without people.&lt;br /&gt;&lt;br /&gt;Also, unlike common American movies, the main character dies at the end of movie. OK, true that he becomes a legend. But, do we want to be a legend? Will it make us happier?&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 18 Jul 2008 16:52:22 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Resident Evil: Extinction</title>
	<guid>tag:null.perl-hackers.net,2008://1.639</guid>
	<link>http://null.perl-hackers.net/2008/07/resident_evil_extinction.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;residentevilextinction.jpg&quot; src=&quot;http://null.perl-hackers.net/residentevilextinction.jpg&quot; class=&quot;mt-image-right&quot; width=&quot;93&quot; height=&quot;140&quot; /&gt;&lt;/span&gt; &lt;div&gt;Today was movie day. I was needing some action. So, I chose &lt;a href=&quot;http://www.imdb.com/title/tt0432021/&quot;&gt;Resident Evil: Extinction&lt;/a&gt;. So, lots and lots of blood, nice girls, action, guns, and some technology. I can't recall if I saw the previous two movies. In any case there isn't much to tell about the history. I was kind of lost in the beginning about names and faces, but it was fast to know who was the nice girl (Alice).&lt;br /&gt;&lt;br /&gt;There are some flaws in the movie. But, that is usual. And when you join zombies, technology and girls, it is normal that the producer gets his eyes just in one of the area. No, I will not say which.&lt;br /&gt;&lt;br /&gt;Well, needing to rate the movie, I probably would go for 7 in 10.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 06 Jul 2008 16:43:36 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: tuneage:


Lilofee - “Lock and Key”

We don’t know much about...</title>
	<guid>http://log.openmonkey.com/post/41153896</guid>
	<link>http://log.openmonkey.com/post/41153896</link>
	<description>&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://tuneage.tumblr.com/post/40960802/lilofee-lock-and-key-we-dont-know-much&quot;&gt;tuneage&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://myspace.com/lilofeeband&quot;&gt;Lilofee&lt;/a&gt; - “Lock and Key”&lt;/p&gt;

&lt;p&gt;We don’t know much about Lilofee, except that they make excellent electro pop, listing their influences as 60s girl bands, 80s dark pop, and 90s industrial.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don’t just check out this sweet tune from lilofree, but also head over to &lt;a href=&quot;http://tuneage.tumblr.com/&quot;&gt;tuneage&lt;/a&gt; for regular doses of new, interesting music!&lt;/p&gt;</description>
	<pubDate>Sun, 06 Jul 2008 06:28:23 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Adium and ICQ</title>
	<guid>tag:null.perl-hackers.net,2008://1.638</guid>
	<link>http://null.perl-hackers.net/2008/07/adium_and_icq.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;adium.png&quot; src=&quot;http://null.perl-hackers.net/adium.png&quot; class=&quot;mt-image-right&quot; height=&quot;128&quot; width=&quot;128&quot; /&gt;&lt;/span&gt; &lt;div&gt;To make me contactable I use Adium on my Mac. Adium is nice because it supports lots of instant messaging protocols, ranging from MSN, to ICQ or Gtalk. It is based on an open-source library, named libpurple, and a similar software for linux, named Pidgin.&lt;br /&gt;&lt;br /&gt;Today, Adium is refusing to connect my ICQ account. It says something like my version of pidgin (quite strange that is says pidgin and not Adium) is too old, and that I need to upgrade it. Well, I upgraded to latest Adium beta release (1.3b) and I still can't connect my ICQ account.&lt;br /&gt;&lt;br /&gt;Is anybody with a similar problem?&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 01 Jul 2008 18:56:10 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Diablo III</title>
	<guid>tag:null.perl-hackers.net,2008://1.637</guid>
	<link>http://null.perl-hackers.net/2008/06/diablo_iii.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;diablo3.gif&quot; src=&quot;http://null.perl-hackers.net/diablo3.gif&quot; class=&quot;mt-image-right&quot; height=&quot;162&quot; width=&quot;324&quot; /&gt;&lt;/span&gt; &lt;div&gt;I am a Diablo addict. Well, at least I was so, regading Diablo 1 and Diablo 2 (and Lord of Destruction).&lt;br /&gt;&lt;br /&gt;Interesting enough, and I am not sure how, I found out that today Blizzard revealed the first details about Diablo III. And I just got.. erm... what is the right word? Oh, yes, I drool a lot. I think I am still drooling.&lt;br /&gt;&lt;br /&gt;Accordingly with the movies, it seems quite similar with previous ones in genre (that is good, they did not kill the game already), with new and enhanced special effects. Probably I'll need to buy a few mouses to play Diablo III until the end. But that should not be a problem.&lt;br /&gt;&lt;br /&gt;Now, let just hope it works under MacOS.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 28 Jun 2008 20:15:47 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Mum's Savoury Mince Pockets</title>
	<guid>http://log.openmonkey.com/post/40136464</guid>
	<link>http://log.openmonkey.com/post/40136464</link>
	<description>&lt;p&gt;These guys are easy to make and taste excellent, and are also good cold or reheated the next day! Thanks, Mum.&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;1 kg good (beef) mince&lt;/li&gt;
&lt;li&gt;2 carrots, peeled and diced&lt;/li&gt;
&lt;li&gt;1 onion, diced
&lt;/li&gt;
&lt;li&gt;1 tsp garlic&lt;/li&gt;
&lt;li&gt;2 tsp curry powder&lt;/li&gt;
&lt;li&gt;1 cup frozen peas and corn&lt;/li&gt;
&lt;li&gt;Tomato sauce&lt;/li&gt;
&lt;li&gt;Sweet chilli sauce&lt;/li&gt;
&lt;li&gt;2 cups cooked rice&lt;/li&gt;
&lt;li&gt;Lebanese bread, around 3-4 pieces&lt;/li&gt;
&lt;ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Fry the mince with the garlic and curry powder.&lt;/li&gt;
&lt;li&gt;Once the mince is getting close to done, add the peas and corn.&lt;/li&gt;
&lt;li&gt;Add tomato sauce and sweet chilli sauce to taste.&lt;/li&gt;
&lt;li&gt;Add the cooked rice and mix it all up.&lt;/li&gt;
&lt;li&gt;Cut the lebanese bread in half to form pockets and fill with the mince and rice mixture.&lt;/li&gt;
&lt;li&gt;Put the filled pockets in an oven at 180°C for 5-10 minutes, or until crisp.&lt;/li&gt;
&lt;/ol&gt;</description>
	<pubDate>Sat, 28 Jun 2008 04:29:23 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: This Summer in Perl</title>
	<guid>tag:null.perl-hackers.net,2008://1.636</guid>
	<link>http://null.perl-hackers.net/2008/06/this_summer_in_perl.html</link>
	<description>&lt;div&gt;				&lt;br /&gt;&lt;div align=&quot;center&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 27 Jun 2008 18:41:27 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Displaying both local and HTTP remote images in Prince XML generated PDFs</title>
	<guid>http://log.openmonkey.com/post/40010879</guid>
	<link>http://log.openmonkey.com/post/40010879</link>
	<description>&lt;p&gt;In our Rails apps, we use the awesome &lt;a href=&quot;http://princexml.com/&quot;&gt;Prince XML&lt;/a&gt; to generate PDFs. We interact with the prince command line application using the &lt;a href=&quot;http://sublog.subimage.com/articles/2007/05/29/html-css-to-pdf-using-ruby-on-rails&quot;&gt;Ruby library and Rails helper&lt;/a&gt; from the guys over at subimage interactive.&lt;/p&gt;

&lt;p&gt;When using their helper to generate a PDF from a Rails template, all image tags have the src attribute altered so they point to paths that are relative to the local filesystem, not just the root of your application.&lt;/p&gt;

&lt;p&gt;However, this breaks any images that you are loading from remote locations over HTTP. For us, this ended up breaking the &lt;a href=&quot;http://code.google.com/apis/maps/documentation/staticmaps/&quot;&gt;static Google Maps&lt;/a&gt; that we were generating.&lt;/p&gt;

&lt;p&gt;So here’s an updated make_pdf helper that only modifies the image paths if they are local. This lets us use both local and HTTP-hosted images on the same PDF!&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# We use this chunk of controller code all over to generate PDF files.
#
# To stay DRY we placed it here instead of repeating it all over the place.
#
module PdfHelper
  require 'prince'

  private
    # Makes a pdf, returns it as data...
    def make_pdf(template_path, pdf_name, landscape=false)
      prince = Prince.new()
      # Sets style sheets on PDF renderer.
      prince.add_style_sheets(
        &quot;#{RAILS_ROOT}/public/stylesheets/application.css&quot;,
        &quot;#{RAILS_ROOT}/public/stylesheets/print.css&quot;,
        &quot;#{RAILS_ROOT}/public/stylesheets/prince.css&quot;
      )
      prince.add_style_sheets(&quot;#{RAILS_ROOT}/public/stylesheets/prince_landscape.css&quot;) if landscape
      # Render the estimate to a big html string.
      # Set RAILS_ASSET_ID to blank string or rails appends some time after
      # to prevent file caching, and messing up local-disk requests.
      ENV[&quot;RAILS_ASSET_ID&quot;] = ''
      html_string = render_to_string(:template =&gt; template_path, :layout =&gt; 'document')
      # Make all paths relative to the file systemm, but only if they don't have http(s):// at the start.
      html_string.gsub!(%r{(src=&quot;)([^h][^t][^t][^p][^s]?[^:][^/]*)}, &quot;src=\&quot;#{RAILS_ROOT}/public\\2&quot;)
      # Send the generated PDF file from our html string.
      return prince.pdf_from_string(html_string)
    end

    # Makes and sends a pdf to the browser
    #
    def make_and_send_pdf(template_path, pdf_name, landscape=false)
      send_data(
        make_pdf(template_path, pdf_name, landscape),
        :filename =&gt; pdf_name,
        :type =&gt; 'application/pdf'
      ) 
    end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And just to be precise, here is the diff between the helpers:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;--- pdf_helper.rb	2008-06-27 15:05:44.000000000 +1000
+++ new_pdf_helper.rb	2008-06-27 15:05:54.000000000 +1000
@@ -18,11 +18,11 @@
       prince.add_style_sheets(&quot;#{RAILS_ROOT}/public/stylesheets/prince_landscape.css&quot;) if landscape
       # Render the estimate to a big html string.
       # Set RAILS_ASSET_ID to blank string or rails appends some time after
-      # to prevent file caching, fucking up local - disk requests.
+      # to prevent file caching, and messing up local-disk requests.
       ENV[&quot;RAILS_ASSET_ID&quot;] = ''
       html_string = render_to_string(:template =&gt; template_path, :layout =&gt; 'document')
-      # Make all paths relative, on disk paths...
-      html_string.gsub!(&quot;src=\&quot;&quot;, &quot;src=\&quot;#{RAILS_ROOT}/public&quot;)
+      # Make all paths relative to the file systemm, but only if they don't have http(s):// at the start.
+      html_string.gsub!(%r{(src=&quot;)([^h][^t][^t][^p][^s]?[^:][^/]*)}, &quot;src=\&quot;#{RAILS_ROOT}/public\\2&quot;)
       # Send the generated PDF file from our html string.
       return prince.pdf_from_string(html_string)
     end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I’d also love it if you could propose a better way to handle the regular expression inside the gsub! call. Leave a comment!&lt;/p&gt;</description>
	<pubDate>Fri, 27 Jun 2008 05:01:00 +0000</pubDate>
</item>
<item>
	<title>Tim Riley: Very excited about my second trip to China that will come later...</title>
	<guid>http://log.openmonkey.com/post/39921110</guid>
	<link>http://log.openmonkey.com/post/39921110</link>
	<description>&lt;img src=&quot;http://data.tumblr.com/qDLJTkQC9aoyczcgExqvDF9T_500.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Very excited about my second trip to China that will come later this year.</description>
	<pubDate>Thu, 26 Jun 2008 13:40:00 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Asus Eee</title>
	<guid>tag:null.perl-hackers.net,2008://1.635</guid>
	<link>http://null.perl-hackers.net/2008/06/asus_eee.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;subbanner-eeepc.jpg&quot; src=&quot;http://null.perl-hackers.net/subbanner-eeepc.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;110&quot; width=&quot;260&quot; /&gt;&lt;/span&gt; &lt;div&gt;In the last days Portugal was drown by advertising for Eee PC. I am not sure if this is all an ASUS marketing issue or if all these sellers are happy to see a laptop for about 300 euros.&lt;br /&gt;&lt;br /&gt;The truth is that it all started last week with RadioPopular (a known electronic shop in Portugal) saying they will have Eee PC in exclusive. Some hours later I received a similar advertisement from MediaMarkt (also exclusive). Later I knew that FNAC already had one in exposition. Yesterday, another computer store sent me an SMS with an advertisement. Thus, at least four stores with Eee PC and making a lot of advertising.&lt;br /&gt;&lt;br /&gt;Now, regarding the laptop itself, it has a resolution interesting enough (although I would like to see a panoramic monitor), is has three USB ports (shame to MacBook Air), ethernet card (shame to MacBook Air again), a full standard VGA connector (erm, should I refer MacBook Air?), WiFi, a small trackpad with two buttons, a full Portuguese keyboard. The operating system is based on Linux (I know, there is one windows based as well), and runs mainly OpenOffice 2, Thunderbird, Firefox, some KDE games and educational applications. There are direct links to web applications like Wikipedia, Google docs and other. It all run fast enough.&lt;br /&gt;&lt;br /&gt;OK, now the complaints: I got a shell! I used disk-free in this 4GB machine. The partition had 1.5GB, 150 MB used, 1.2GB free. I wonder where is the remaining 2.5GB. Unfortunatey I couldn't use fdisk to check this more throught. Oh, and I forgot to check if there was a Perl version.&lt;br /&gt;&lt;br /&gt;Now, anybody wants to buy one, so I can analyse it better?&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 25 Jun 2008 20:29:15 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: WWW Trauma</title>
	<guid>tag:null.perl-hackers.net,2008://1.633</guid>
	<link>http://null.perl-hackers.net/2008/06/www_trauma.html</link>
	<description>One of the things I can't understand is why people continue to define hosts and webpages with the www preffix. You know, www.host.com, www.host.org, and so on. I wouldn't mind if the same host, without the www work. For instance, why not host.com working instead of just www.host.com? I can understand that people can forget to do that. I can't understand why contacted webmasters (yeah, I contacted a few) answer that host.com and www.host.com are different things (when host.com returns an error on no website configured for that domain).&lt;br /&gt;&lt;br /&gt;Oh well, probably I am getting too old...&lt;br /&gt;</description>
	<pubDate>Tue, 24 Jun 2008 19:56:47 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Superhero Movie</title>
	<guid>tag:null.perl-hackers.net,2008://1.632</guid>
	<link>http://null.perl-hackers.net/2008/06/superhero_movie.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;MV5BMTc0Njc1MTU5Nl5BMl5BanBnXkFtZTcwMjA4NDE2MQ@@._V1._SX94_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BMTc0Njc1MTU5Nl5BMl5BanBnXkFtZTcwMjA4NDE2MQ%40%40._V1._SX94_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;94&quot; /&gt;&lt;/span&gt; &lt;div&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0426592/&quot;&gt;Superhero movie&lt;/a&gt; appears in the continuation of the good old Scary Movie series. Unfortunately Scary Movie serie got a real loss of quality with each new sequel, and this movie, being in continuation of that kind of movie, is also of very low quality.&lt;br /&gt;&lt;br /&gt;The main problem to me is the similarity with the Spider Man movie. All of Superhero movie story follows as the Spidar Man one. There are some small parts of the story where other movies are used, as X-Men or Fantastic Four. But in any case, they appear for a small period of time, and the story continues with Spider Man.&lt;br /&gt;&lt;br /&gt;Fortunately there is Sara Paxton, and her eyes, that make us distract a little. Of course there is also Pamela Anderson, but she appears for a too small period of time. &lt;br /&gt;&lt;br /&gt;I would not rate the movie as 4/10, as it is currently on IMDB, but not much higher. Something like 6/10 would be enough.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 22 Jun 2008 15:04:15 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Firefox 3: first thoughts</title>
	<guid>tag:null.perl-hackers.net,2008://1.631</guid>
	<link>http://null.perl-hackers.net/2008/06/firefox_3_first_thoughts.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;feature-logo.png&quot; src=&quot;http://null.perl-hackers.net/feature-logo.png&quot; class=&quot;mt-image-center&quot; height=&quot;102&quot; width=&quot;351&quot; /&gt;&lt;/span&gt; &lt;div&gt;OK, Firefox 3 is installed for two days, download day ended, mozilla website is back online. This means that it is not possible to browse through the add-onds and themes. It is also a good timing to tell you what I think about Firefox 3.&lt;br /&gt;&lt;br /&gt;First of all, I do not like its design under MacOS. I think that the design under Windows is very good, but the colors under Mac are too dark. If you put two windows side by side you will notice that Firefox 3 is just too dark. I've tried some other themes but none is good enough at the moment. Note that most of the themes do not work yet with Firefox 3 and those which work require or a Windows installation, or that you register in the addons website. And I am not in that mood yet. Yet on design, I am not happy with the widgets design as well. I know it is more Aquacious, but I do not like it. That was one reason I did not use Safari. Searched on the configuration database for some key to turn off those buttons but couldn't find it.&lt;br /&gt;&lt;br /&gt;The two most advertised features are speed and memory. Unfortunately running firefox 3 under a Mac with 4GB of RAM doesn't help to compare with the memory usage of firefox 2, or its speed. But under vmware it seems a little faster. Probably I can get some more about this with some more usage.&lt;br /&gt;&lt;br /&gt;Regarding plugins, I do not like this new Del.icio.us plugin. This is not new for Firefox 3, and is not mozilla fault. But I do not like it. I was quite happy with the clear distinction between a web 2.0 website and a browser. Now, things are quite mungled together.&lt;br /&gt;&lt;br /&gt;I did not install yet Firebug. That plugin will help me to discover how fixed are the memory holes. With Firefox 2 and Firebug it took me about 10 seconds to open a tab. Hope that gets better now.&lt;br /&gt;&lt;br /&gt;Also, I am missing the SwitchProxy plugin, but probably that gets back someday.&lt;br /&gt;&lt;br /&gt;To finish, let me advertise myself. You can find my name in the about from the spell checker for the Portuguese (European) language.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 19 Jun 2008 18:03:03 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Loading the ActiveRecord SQL Server adapter in a Rails 2.1 app</title>
	<guid>http://log.openmonkey.com/post/38836256</guid>
	<link>http://log.openmonkey.com/post/38836256</link>
	<description>It’s pretty simple. In your config/environment.rb:

&lt;pre&gt;&lt;code&gt;  config.gem 'activerecord-sqlserver-adapter', :source =&gt; 'http://gems.rubyonrails.org', :lib =&gt; 'active_record/connection_adapters/sqlserver_adapter'&lt;/code&gt;&lt;/pre&gt;

Then run rake gems:install and away you go.

Hugh has &lt;a href=&quot;http://hughevans.net/2008/05/25/rails-ubuntu-odbc&quot;&gt;some more tips&lt;/a&gt; about the packages and configuration required to connect to an SQL Server from a Linux platform.</description>
	<pubDate>Wed, 18 Jun 2008 04:01:00 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Firefox... 2... is back?</title>
	<guid>tag:null.perl-hackers.net,2008://1.630</guid>
	<link>http://null.perl-hackers.net/2008/06/firefox_2_is_back.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;firefox-title.png&quot; src=&quot;http://null.perl-hackers.net/firefox-title.png&quot; class=&quot;mt-image-center&quot; height=&quot;55&quot; width=&quot;252&quot; /&gt;&lt;/span&gt; &lt;div&gt;Yes, I downloaded Firefox 3. Yes, I am running now Firefox 3 in my Mac. Yes, when I access mozilla.com, firefox.com or other similar URLs, I get a link to download Firefox 2. Yes, I tried to refresh. Yes, I tried to remove the cache. Yes, I tried to use lynx from a remote server. Yes, Firefox 2 link remained there. Yes, this is very weird. And, finally, yes, that explains why there are so few downloads at the present moment.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 17 Jun 2008 20:50:06 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Firefox... 3?</title>
	<guid>tag:null.perl-hackers.net,2008://1.629</guid>
	<link>http://null.perl-hackers.net/2008/06/firefox_3.html</link>
	<description>Well, Mozilla wants to get a world record on the number of downloads on the first day for Firefox 3 release. Unfortunately things are not as expected...&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;ff3.png&quot; src=&quot;http://null.perl-hackers.net/ff3.png&quot; class=&quot;mt-image-center&quot; height=&quot;166&quot; width=&quot;422&quot; /&gt;&lt;/span&gt;&lt;br /&gt; &lt;div&gt;Now, the question is: this link leads to the Firefox 3 download, or to the 2.0.0.14 download for Mac OS X?&lt;br /&gt;&lt;br /&gt;Well, unfortunately it currently links to Firefox 2.0.0.14.&lt;br /&gt;&lt;br /&gt;Probably I should wait some more minutes.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 17 Jun 2008 18:43:43 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: Storing your mobile phone...</title>
	<guid>tag:null.perl-hackers.net,2008://1.628</guid>
	<link>http://null.perl-hackers.net/2008/06/storing_your_mobile_phone.html</link>
	<description>&lt;div align=&quot;center&quot;&gt;&lt;font&gt;&lt;b&gt;This is a good place to store your mobile phone, and have it handy...&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;1.jpg&quot; src=&quot;http://null.perl-hackers.net/1.jpg&quot; class=&quot;mt-image-center&quot; height=&quot;989&quot; width=&quot;599&quot; /&gt;&lt;/span&gt;&lt;br /&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 14 Jun 2008 11:59:49 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Enabling a non-interactive install of Blackdown's j2re1.4 on Ubuntu or Debian</title>
	<guid>http://log.openmonkey.com/post/38097969</guid>
	<link>http://log.openmonkey.com/post/38097969</link>
	<description>&lt;p&gt;When you `apt-get install` the j2re1.4 Java package in Debian or Ubuntu, it displays a few ncurses-style dialogs to configure the software and to require your acceptance of the license agreement. Working with these dialogs is fine if you are installing the software with apt-get in a typical interactive shell session. If you are installing without this capacity to interact (like in a script), you will run into problems. Here’s how to fix it.&lt;/p&gt;

&lt;p&gt;If you install the package with the noninteractive frontend for dpkg, then you’ll get an error like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get --yes --force-yes install j2re1.4


Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  mozilla-browser mozilla-firefox galeon ttf-kochi-gothic ttf-kochi-mincho
Recommended packages:
  gsfonts-x11 libx11-6 libxext6 libxi6
The following NEW packages will be installed:
  j2re1.4
0 upgraded, 1 newly installed, 0 to remove and 23 not upgraded.
Need to get 0B/22.5MB of archives.
After unpacking 60.3MB of additional disk space will be used.
Preconfiguring packages ...
j2re1.4 failed to preconfigure, with exit status 10
Selecting previously deselected package j2re1.4.
(Reading database ... 26639 files and directories currently installed.)
Unpacking j2re1.4 (from .../j2re1.4_1.4.2.02-1ubuntu3_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/j2re1.4_1.4.2.02-1ubuntu3_i386.deb (--unpack):
 subprocess pre-installation script returned error exit status 10
Errors were encountered while processing:
 /var/cache/apt/archives/j2re1.4_1.4.2.02-1ubuntu3_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The package fails to install because it requires the acceptance of the licence agreement, which it will only allow in an interactive installation.&lt;/p&gt;

&lt;p&gt;The typical way to fix this is to pre-seed the debconf database (using `debconf-set-selections`) with the answers to the questions that the j2re1.4 package requires. However, this doesn’t seem to satisfy j2re1.4, and the package still displays the dialog or fails in non-interactive mode. Why is it java that always gives me these hairy problems?&lt;/p&gt;

&lt;p&gt;Anyway, here is the way to fix it. If you manually append the values &lt;i&gt;directly&lt;/i&gt; to the debconf database file, it will work:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cp /var/cache/debconf/config.dat /var/cache/debconf/config.dat-old

cat  E_O_DEBCONF &gt;&gt; /var/cache/debconf/config.dat


Name: j2re1.4/jcepolicy
Template: j2re1.4/jcepolicy
Value:
Owners: j2re1.4
Flags: seen


Name: j2re1.4/license
Template: j2re1.4/license
Value: true
Owners: j2re1.4
Flags: seen


Name: j2re1.4/stopthread
Template: j2re1.4/stopthread
Value: true
Owners: j2re1.4
Flags: seen


E_O_DEBCONF&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;i&gt;(For reference, I found these values by making a copy of the config.dat file, running `dpkg-preconfigure` on the j2re1.4 package, and then running a diff between the updated config.dat file and my copy.)&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Now you’ll be able to successfully install the package in noninteractive mode. This means, for us, one step closer to fully automating our Xen builds!&lt;/p&gt;</description>
	<pubDate>Thu, 12 Jun 2008 06:16:00 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: 2 Fast 2 Furious</title>
	<guid>tag:null.perl-hackers.net,2008://1.627</guid>
	<link>http://null.perl-hackers.net/2008/06/2_fast_2_furious.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0322259/&quot;&gt;&lt;img alt=&quot;MV5BMjAyOTA0OTc5N15BMl5BanBnXkFtZTcwOTg3MDYyMQ@@._V1._SX95_SY140_.jpg&quot; src=&quot;http://null.perl-hackers.net/MV5BMjAyOTA0OTc5N15BMl5BanBnXkFtZTcwOTg3MDYyMQ%40%40._V1._SX95_SY140_.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;139&quot; width=&quot;95&quot; /&gt;&lt;/a&gt;&lt;/span&gt; &lt;div&gt;For a long time that I did not see a movie. Today it is an official holidays in Portugal. So, I took the day to see a movie: 2 Fast 2 Furious. I've seen the previous one, and the next one (Tokyo Drift) and was taking too long to watch this one. But today I was in the mood to see girls and cars. Nice girls, by the way.&lt;br /&gt;&lt;br /&gt;The movie story is quite straightforward. Not too much to say about it. Cars, speed, some violence, some fun. I have a good time watching it.&lt;br /&gt;&lt;br /&gt;And it wasn't that difficult, as there is Eva Mendes... and what Eva Mendes.&amp;nbsp;&lt;a href=&quot;http://www.imdb.com/name/nm1226817/&quot;&gt;&lt;/a&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 10 Jun 2008 15:52:13 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Alberto Sim&otilde;es: The Restaurant at the End of the Universe</title>
	<guid>tag:null.perl-hackers.net,2008://1.626</guid>
	<link>http://null.perl-hackers.net/2008/06/the_restaurant_at_the_end_of_t.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;hitchhickers.jpg&quot; src=&quot;http://null.perl-hackers.net/hitchhickers.jpg&quot; class=&quot;mt-image-right&quot; height=&quot;238&quot; width=&quot;145&quot; /&gt;&lt;/span&gt; &lt;div&gt;I am reading the second volume from the &lt;i&gt;Hitchhiker's Guide to the Galaxy&lt;/i&gt;, by &lt;i&gt;Douglas Adams&lt;/i&gt;, known as &lt;i&gt;The Restaurant at the End of the Universe&lt;/i&gt;. Do not read below as it might contain spoilers.&lt;br /&gt;&lt;br /&gt;I didn't read much yet. I am in the middle of the book. It continues to be quite strange as the first volume, and quite difficult to read in English by a non native speaker. This, mainly because Douglas Adams makes some jokes with words that are not easy to understand.&lt;br /&gt;&lt;br /&gt;The interesting part about this book is its name. When I've read the title I thought of a restaurant in a corner of the universe... you know, imagine the universe to be a flat square, or a 3D cube: there are edges, so, probable ends of the Universe.&lt;br /&gt;&lt;br /&gt;But the truth is that the restaurant is AT the end of the Universe, that means, the restaurant from which one can see the Universe ending.&lt;br /&gt;&lt;br /&gt;Is this difference subtle for English speakers as well, or just for me?&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 09 Jun 2008 20:33:13 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>
<item>
	<title>Tim Riley: Automatic Saving Of Invalid Resources in Rails While Maintaining a Clean RESTful Interface</title>
	<guid>http://log.openmonkey.com/post/37730793</guid>
	<link>http://log.openmonkey.com/post/37730793</link>
	<description>&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;How To Change Your World In One Line Of Code&lt;/p&gt;

&lt;p&gt;One of the cool things that we’re doing at the AMC is building a large collection of loosely coupled Rails applications that communicate using REST. This is slightly unusual, as rails is predominantly used to build single apps that operate in isolation. In our experiences, we’ve picked up a number of tricks that we’d like to share. Here’s the first, on how a single this single line of code has saved us weeks of time and effort. Here’s the line in question:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;if @bank_transaction.save &amp;amp;&amp;amp; @bank_transaction.valid?&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Read on to find out how this helps!&lt;/p&gt;

&lt;h3&gt;RESTful Resources&lt;/h3&gt;

&lt;p&gt;This line is part of a new Rails app we’re developing to centrally handle all online payments for our software systems at the AMC. In this payments application, we expose two key resources over REST: (1) line items, which the other apps create with the details of the items to purchase, and (2) bank transactions, which are passed line item IDs and credit card details for the purchase.&lt;/p&gt;

&lt;p&gt;Naturally, the models behind these resources have a bunch of validation rules that ensure certain conditions are met before they can be saved successfully. If any of these requirements are not met, then the model fails to save and the error hash is returned to the client app.&lt;/p&gt;

&lt;p&gt;For most resources, these error hashes are returned in the usual Rails-like way. Let’s look at how LineItemsController does it:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;class LineItemsController  ApplicationController
  # POST /line_items.xml
  def create
    @line_item = LineItem.new params[:line_item]
    respond_to do |format|
      if @line_item.save
        format.xml  { render :xml =&gt; @line_item, :status =&gt; :created, :location =&gt; @line_item }
      else
        format.xml  { render :xml =&gt; @line_item.errors, :status =&gt; :unprocessable_entity }
      end
    end
  end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To paraphrase: if the items save successfully, return success and the line item in XML, otherwise return the error hash. Nice and predictable, nothing exciting here.&lt;/p&gt;

&lt;h3&gt;Saving Invalid Resources&lt;/h3&gt;

&lt;p&gt;One of the resources in the payments app is different. These are the BankTransactions, which are about as “mission critical” as we get. Let’s talk about the successful case first: during the creation of the BankTransaction model, if all the validations have passed, a before_create callback is triggered that will talk to the bank (using ActiveMerchant, of course) and ask to make the transaction there. If this succeeds, the model is saved to the database and an XML representation of the saved model is passed back to the client application with a success code.&lt;/p&gt;

&lt;p&gt;However, if the transaction with the bank fails, this is still information we care about. A failed transaction could be an indication of a larger problem, and also needs to be recorded for customer service purposes. It makes sense to save every failed transaction as well as every successful one. To this end, the callback that communicates with the bank always returns true, which allows the save continue, and records for both successful and unsuccessful transactions to be kept in the database.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;(Another approach to this problem would be to create a separate “TransactionLog” model to store the transaction data, but this approach requires extra work. Having the BankTransactions save every time is essentially free. Excellent.)&lt;/i&gt;&lt;/p&gt;

&lt;h3&gt;Keeping the REST API Simple&lt;/h3&gt;

&lt;p&gt;While the payments app is saving unsuccessful transactions, the client apps do not want to keep these records around: all they care about is if a transaction is successful or not. The easiest way to make it simple for the clients is to make the creation of a bank transaction resource behave the same way as creating any other resource over REST in rails. This means that if a transaction with the bank fails, then it should *appear* to the clients as if the save also failed.&lt;/p&gt;

&lt;p&gt;This will require the controller to generate an errors hash if the transaction fails. This means that the model should be invalid at this point. Given that we save to the database even for failed transactions, the model should therefore be invalid after the save:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;class BankTransaction  ActiveRecord::Base  
  validate :must_be_successful_if_saved
  before_create :transact
  
  private
  
  def transact
    # talk to the bank here, and set self.success to true or false pending the results
    # return true to make sure a save always occurs
    true
  end
  
  def must_be_successful_if_saved
    errors.add_to_base(&quot;failed to transact successfully with the bank&quot;) if !new_record? &amp;amp;&amp;amp; !success?
  end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And then, in the BankTransactionsController, that one magic line:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;class BankTransactionsController  ApplicationController
  # POST /bank_transactions.xml
  def create
    @bank_transaction = BankTransaction.new params[:bank_transaction]
    respond_to do |format|            
      if @bank_transaction.save &amp;amp;&amp;amp; @bank_transaction.valid?
        format.xml  { render :xml =&gt; @bank_transaction, :status =&gt; :created, :location =&gt; @bank_transaction }
      else
        format.xml  { render :xml =&gt; @bank_transaction.errors, :status =&gt; :unprocessable_entity }
      end
    end
  end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Unlike the standard behaviour shown in the LineItemsController above, we only return a successfully created model if the save is successful AND it is still valid afterwards. A saved model for a failed transaction with the bank will be invalid at this point, so it will return the errors hash. To the client app, this looks like the same resource it tried to create initially, and so it can proceed as usual to display the errors, ask for corrections if necessary, and try to save again. In the background, the payments app has saved every failed transaction for safe keeping.&lt;/p&gt;</description>
	<pubDate>Mon, 09 Jun 2008 14:04:00 +0000</pubDate>
</item>
<item>
	<title>Tim Riley: "FYI: the plumber used the tea towels in the kitchen to mop up the floor, use at your own risk."</title>
	<guid>http://log.openmonkey.com/post/36841385</guid>
	<link>http://log.openmonkey.com/post/36841385</link>
	<description>“FYI: the plumber used the tea towels in the kitchen to mop up the floor, use at your own risk.”&lt;br /&gt;&lt;br /&gt; - &lt;em&gt;This is why I bring my own cutlery to work.&lt;/em&gt;</description>
	<pubDate>Mon, 02 Jun 2008 03:46:32 +0000</pubDate>
</item>
<item>
	<title>Alberto Sim&otilde;es: Lego Bat-Mobile</title>
	<guid>tag:null.perl-hackers.net,2008://1.625</guid>
	<link>http://null.perl-hackers.net/2008/06/lego_batmobile.html</link>
	<description>&lt;span class=&quot;mt-enclosure mt-enclosure-image&quot;&gt;&lt;img alt=&quot;uploadC19805AC-3136-4D0B-81C8-EE07C5105BBF.jpg&quot; src=&quot;http://null.perl-hackers.net/uploadC19805AC-3136-4D0B-81C8-EE07C5105BBF.jpg&quot; class=&quot;mt-image-center&quot; height=&quot;218&quot; width=&quot;440&quot; /&gt;&lt;/span&gt; &lt;div&gt;This was the gift some friends gave me for my PhD. No, it is not that strange that a 30 years old boy likes to play Lego. And this set is quite good (took me 8 hours to build), but has some major flaws:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;it is easy to notice that at first the author would like to make the steering wheel to rotate the wheels, but unfortunately that part of the build is incomplete;&lt;/li&gt;&lt;li&gt;although at the end the car is quite robust, it is quite hard to build the front without breaking it some times. In any case, that cat head in the front, although very nice, is not robust. The articulation is done by a small axis, which makes it quite unstable when open.&lt;/li&gt;&lt;li&gt;in the box there are some arrows to the two wings, as they would move. In fact, when building, you will notice two rotula in the wings architecture. But then, the car chassis prevents them to move.&lt;/li&gt;&lt;/ul&gt;If you ask where I had more fun, it was with the driver seat (neat!) and the rear chassis.&lt;br /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 01 Jun 2008 20:56:06 +0000</pubDate>
	<dc:creator>null</dc:creator>
</item>

</channel>
</rss>
