<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-23855943</atom:id><lastBuildDate>Sat, 27 Feb 2010 02:51:01 +0000</lastBuildDate><title>Fayland and Perl Programming</title><description>Perl is not the whole part of life. I know!</description><link>http://www.fayland.org/blog/</link><managingEditor>noreply@blogger.com (Fayland)</managingEditor><generator>Blogger</generator><openSearch:totalResults>235</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-8395484348800973463</guid><pubDate>Sat, 02 Jan 2010 11:32:00 +0000</pubDate><atom:updated>2010-01-02T19:32:20.991+08:00</atom:updated><title>WWW::Google::Contacts</title><description>this one is my first module of 2010 - &lt;A href='http://search.cpan.org/perldoc?WWW::Google::Contacts'&gt;WWW::Google::Contacts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;it's nothing big but implement the &lt;a href='http://code.google.com/apis/contacts/docs/3.0/developers_guide_protocol.html'&gt;Google Contacts Data API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;so Enjoy!&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-8395484348800973463?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2010/01/wwwgooglecontacts.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-7946816193188171761</guid><pubDate>Fri, 25 Dec 2009 13:52:00 +0000</pubDate><atom:updated>2009-12-25T21:52:37.484+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>advent</category><title>The End of 2009 CN Perl Advent Calendar</title><description>I'm really very happy that we &lt;a href='http://perlchina.org/advent/'&gt;get it done&lt;/a&gt; today. the last article is &lt;a href='http://perlchina.org/advent/2009/perlthanks.html'&gt;perlthanks&lt;/a&gt; from I. and we didn't miss one day. 25 tips 25 days.&lt;br /&gt;&lt;br /&gt;I have totally 18 articles published, really Wow! they include ack, autodie, dzil, local::lib, Devel::NYTProf, Padre, pip, Plack, REPL, perlthanks and more.&lt;br /&gt;check them if you missed. :)&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-7946816193188171761?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/12/end-of-2009-cn-perl-advent-calendar.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-2172039223095072804</guid><pubDate>Tue, 01 Dec 2009 08:39:00 +0000</pubDate><atom:updated>2009-12-01T16:39:29.005+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>advent</category><title>2009 CN Perl Advent Calendar</title><description>we just have the first article for our first advent calendar, from I. :)&lt;br /&gt;&lt;br /&gt;&lt;a href='http://perlchina.org/advent/'&gt;http://perlchina.org/advent/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;besides:&lt;br /&gt;&lt;a href="http://www.catalystframework.org/calendar/"&gt;http://www.catalystframework.org/calendar/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://advent.rjbs.manxome.org/"&gt;http://advent.rjbs.manxome.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy! Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-2172039223095072804?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/12/2009-cn-perl-advent-calendar.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-6180430452408594440</guid><pubDate>Fri, 23 Oct 2009 14:24:00 +0000</pubDate><atom:updated>2009-10-24T18:38:10.255+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Plack</category><title>PSGI and Plack</title><description>The most exciting thing in Perl world today is &lt;a href="http://search.cpan.org/perldoc?PSGI::FAQ"&gt;PSGI&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The homepage is &lt;a href='http://plackperl.org/'&gt;http://plackperl.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I tried that today. there are some tips for Win32 user.&lt;br /&gt;* Don't try to run under Standalone server, the alarm is not supported in Win32&lt;br /&gt;* after install &lt;a href="http://search.cpan.org/dist/Plack/"&gt;Plack&lt;/a&gt; (maybe notest install Plack), try install &lt;a href="http://search.cpan.org/perldoc?Plack::Server::AnyEvent"&gt;Plack::Server::AnyEvent&lt;/a&gt; or &lt;a href="http://search.cpan.org/perldoc?Plack::Server::ServerSimple"&gt;Plack::Server::ServerSimple&lt;/a&gt;&lt;br /&gt;* at last, to know a bit of the Plack, cd the cpan build dir or download the tar.gz&lt;br /&gt;&lt;pre&gt;&lt;code&gt;C:\strawberry\cpan\build\Plack-0.9006-ZEaDbK\eg\dot-psgi&gt;plackup -a Hello.psgi -s AnyEvent&lt;br /&gt;Accepting requests at http://0.0.0.0:5000/&lt;/code&gt;&lt;/pre&gt;OR&lt;pre&gt;&lt;code&gt;C:\strawberry\cpan\build\Plack-0.9006-ZEaDbK\eg\dot-psgi&gt;plackup -a Hello.psgi -s ServerSimple&lt;br /&gt;Plack::Server::ServerSimple: You can connect to your server at http://localhost:5000/&lt;br /&gt;127.0.0.1 - - [23/十月/2009 22:19:15] "GET / HTTP/1.1" 200 11 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5"&lt;br /&gt;127.0.0.1 - - [23/十月/2009 22:19:15] "GET /favicon.ico HTTP/1.1" 200 11 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5"&lt;/code&gt;&lt;/pre&gt;try visit http://127.0.0.1:5000/ then you'll get the access_log like above.&lt;br /&gt;&lt;br /&gt;well, I think the &lt;a href="http://search.cpan.org/perldoc?Plack::Middleware::AccessLog"&gt;Plack::Middleware::AccessLog&lt;/a&gt; should use &amp;POSIX::setlocale(&amp;POSIX::LC_ALL); on qw( .ISO8859-1 .ISO_8859-15 .US-ASCII .UTF-8 ) to avoid 十月 the Chinese.&lt;br /&gt;&lt;br /&gt;you can try more with the all the .psgi files under eg/dot-psgi, and you might have some ideas to write a Middleware. :)&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;(Updates on Oct 24th)&lt;br /&gt;&lt;a href='http://search.cpan.org/~miyagawa/'&gt;miyagawa&lt;/a&gt; applied the &lt;a href='http://github.com/miyagawa/Plack/commit/202aba6c850f802e834ac18ab3927285e745e667'&gt;patch&lt;/a&gt; with &lt;a href='http://github.com/miyagawa/Plack/commit/9b64c5b52766706b48f09d2c268fc9315535f7b0'&gt;some changes&lt;/a&gt; and it works pretty well now. &lt;br /&gt;Thanks very much. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-6180430452408594440?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/10/psgi-and-plack.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-3180769121959423368</guid><pubDate>Fri, 23 Oct 2009 01:49:00 +0000</pubDate><atom:updated>2009-10-23T09:49:31.921+08:00</atom:updated><title>《Perl 语言入门（第五版）》</title><description>&lt;a href="http://www.china-pub.com/48392"&gt;《Perl 语言入门（第五版）》&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Translated by &lt;a href="http://chunzi.me/post/759"&gt;chunzi&lt;/a&gt;, joe.jiang and cnhackTNT&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-3180769121959423368?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/10/perl.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-1080336693214665409</guid><pubDate>Sat, 26 Sep 2009 06:47:00 +0000</pubDate><atom:updated>2009-09-26T14:47:32.345+08:00</atom:updated><title>Canon IXUS 95 IS</title><description>I bought a digit camera today: &lt;a href="http://www.newegg.com.cn/Product/90-c01-980.htm"&gt;Canon IXUS 95 IS&lt;/a&gt; (Chinese).&lt;br /&gt;&lt;br /&gt;not so bad. :)&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/jD10Y7tb2Wl_maQVIOwEXw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_HcKjmb1GDks/Sr24MOoc0wI/AAAAAAAAAkM/JTTYJg8Z0iM/s144/IMG_0026.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-1080336693214665409?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/09/canon-ixus-95-is.html</link><author>noreply@blogger.com (Fayland)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_HcKjmb1GDks/Sr24MOoc0wI/AAAAAAAAAkM/JTTYJg8Z0iM/s72-c/IMG_0026.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-1763065965876657676</guid><pubDate>Thu, 17 Sep 2009 08:51:00 +0000</pubDate><atom:updated>2009-09-17T16:51:53.946+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Shindig</category><category domain='http://www.blogger.com/atom/ns#'>CPAN</category><category domain='http://www.blogger.com/atom/ns#'>OpenSocial</category><title>OpenSocialX::Shindig::Crypter long story</title><description>The long story is&lt;br /&gt;&lt;br /&gt;we (&lt;a href='http://www.zorpia.cn'&gt;Zorpia&lt;/a&gt;) were developing &lt;a href="http://wiki.opensocial.org/"&gt;OpenSocial&lt;/a&gt; in last days. The first choice to build a opensocial container is &lt;a href="http://incubator.apache.org/shindig/"&gt;Shindig&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;unlucky, it ONLY has PHP and Java version. yeah, I do all my code in Perl, I know nothing about PHP or Java. (well, I know a little PHP now because I was writing Service package with PHP in last days, and I must say, PHP sucks.)&lt;br /&gt;&lt;br /&gt;lucky, the Shindig author points me to an URL: &lt;a href="http://www.chabotc.com/generic/using-shindig-in-a-non-php-or-java-envirionment/"&gt;Using Shindig in a non PHP or Java environment&lt;/a&gt;&lt;br /&gt;that I can write the 'Application' section in Perl. It IS great, really very great.&lt;br /&gt;&lt;br /&gt;so at last, I google around and wrote my last solution: &lt;a href="http://search.cpan.org/dist/OpenSocialX-Shindig-Crypter/lib/OpenSocialX/Shindig/Crypter.pm"&gt;OpenSocialX::Shindig::Crypter&lt;/a&gt; and the php lib &lt;a href="http://github.com/fayland/opensocialx-shindig-crypter/raw/master/php/BasicBlobCrypter.php"&gt;BasicBlobCrypter.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and now I'm happy to share it with your guys. if you have the same situation with me, you can try that module and tell me your feeling. :)&lt;br /&gt;&lt;br /&gt;Thanks. (OK, it's not so long.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-1763065965876657676?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/09/opensocialxshindigcrypter-long-story.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-5549909248115848615</guid><pubDate>Thu, 17 Sep 2009 02:07:00 +0000</pubDate><atom:updated>2009-09-17T16:53:13.447+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Shindig</category><category domain='http://www.blogger.com/atom/ns#'>CPAN</category><category domain='http://www.blogger.com/atom/ns#'>OpenSocial</category><title>OpenSocialX::Shindig::Crypter short story</title><description>the short story is that I released the &lt;a href="http://search.cpan.org/dist/OpenSocialX-Shindig-Crypter/"&gt;OpenSocialX::Shindig::Crypter&lt;/a&gt; yesterday.&lt;br /&gt;&lt;br /&gt;the short story is if you want to find a way that encrypt data by Perl and decrypt the encrypted data by PHP, you come to the right place.&lt;br /&gt;&lt;br /&gt;Perl: &lt;a href="http://github.com/fayland/opensocialx-shindig-crypter/raw/master/sample/crypt.pl"&gt;crypt.pl&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;my $str = 'o=1&amp;v=3&amp;p=5';&lt;br /&gt;my $cipher = Crypt::CBC-&gt;new( {&lt;br /&gt;    'key' =&gt; 'length16length16',&lt;br /&gt;    'cipher'=&gt; 'Rijndael',&lt;br /&gt;    'iv' =&gt; '1234567890abcdef',&lt;br /&gt;    'literal_key' =&gt; 1,&lt;br /&gt;    'padding' =&gt; 'null',&lt;br /&gt;    'header' =&gt; 'none',&lt;br /&gt;    keysize =&gt; 128/8&lt;br /&gt;} );&lt;br /&gt;my $encrypted = $cipher-&gt;encrypt($str);&lt;br /&gt;print "encrypted: ".encode_base64($encrypted)."\n";&lt;br /&gt;print "decrypted: ".$cipher-&gt;decrypt($encrypted)."\n";&lt;br /&gt;&lt;br /&gt;my $hmac = Digest::SHA::hmac_sha1($encrypted, 'hmackey');&lt;br /&gt;print "hmac: " . encode_base64($hmac) . "\n";&lt;br /&gt;print "total: " . encode_base64($encrypted . $hmac) . "\n";&lt;/code&gt;&lt;/pre&gt;PHP: &lt;a href="http://github.com/fayland/opensocialx-shindig-crypter/raw/master/sample/crypt.php"&gt;crypt.php&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;$str = 'o=1&amp;v=3&amp;p=5';&lt;br /&gt;$encrypted = mcrypt_cbc(MCRYPT_RIJNDAEL_128, 'length16length16', $str, MCRYPT_ENCRYPT, '1234567890abcdef');&lt;br /&gt;$decrypted = mcrypt_cbc(MCRYPT_RIJNDAEL_128, 'length16length16', $encrypted, MCRYPT_DECRYPT, '1234567890abcdef');&lt;br /&gt;echo "encrypted: ".base64_encode($encrypted)."\n"; &lt;br /&gt;echo "decrypted: ".$decrypted."\n"; &lt;br /&gt;&lt;br /&gt;$blabla = hash_hmac('sha1', $encrypted, 'hmackey', 1);&lt;br /&gt;echo "hmac: " . base64_encode($blabla) . "\n";&lt;br /&gt;echo "total: " . base64_encode($encrypted . $blabla) . "\n";&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;both of them show the same output:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;# perl crypt.pl&lt;br /&gt;encrypted: rgPZe6swWb3t3yIoIZFQaQ==&lt;br /&gt;decrypted: o=1&amp;v=3&amp;p=5&lt;br /&gt;hmac: WLTGeyesYTUhwg6fjVqDudrKRz0=&lt;br /&gt;total: rgPZe6swWb3t3yIoIZFQaVi0xnsnrGE1IcIOn41ag7naykc9&lt;br /&gt;# php crypt.php&lt;br /&gt;encrypted: rgPZe6swWb3t3yIoIZFQaQ==&lt;br /&gt;decrypted: o=1&amp;v=3&amp;p=5&lt;br /&gt;hmac: WLTGeyesYTUhwg6fjVqDudrKRz0=&lt;br /&gt;total: rgPZe6swWb3t3yIoIZFQaVi0xnsnrGE1IcIOn41ag7naykc9&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;I'll post a &lt;a href="http://www.fayland.org/blog/2009/09/opensocialxshindigcrypter-long-story.html"&gt;long story&lt;/a&gt; later today.&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-5549909248115848615?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/09/opensocialxshindigcrypter-short-story.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-7085298536032723412</guid><pubDate>Thu, 03 Sep 2009 09:38:00 +0000</pubDate><atom:updated>2009-09-03T18:03:11.907+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Moose</category><title>use Moose; or no Moose;</title><description>recently "Moose or no Moose" is spreading to the Perl world.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://perlhacks.com/2009/09/moose-or-no-moose.php"&gt;Moose or No Moose&lt;/a&gt;&lt;br /&gt;&lt;a href="http://chris.prather.org/perl/command-line-moose-or-knowing-what-you-dont-know/"&gt;Command Line Moose or Knowing what You Don't know.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stevan-little.blogspot.com/2009/09/re-moose-or-no-moose.html"&gt;Re: Moose Or No Moose&lt;/a&gt;&lt;br /&gt;&lt;a href="http://chris.prather.org/perl/take-arms-against-a-sea-of-troubles/"&gt;Take arms against a sea of troubles&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stevan-little.blogspot.com/2009/09/re-re-moose-or-no-moose.html"&gt;Re: Re: Moose Or No Moose&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stevan-little.blogspot.com/2009/09/moose-startup-time-over-time_02.html"&gt;Moose Startup Time over Time&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;basically I agree with &lt;a href="http://rt.cpan.org/Public/Bug/Display.html?id=49270"&gt;Adam Kennedy&lt;/a&gt; that Array::Compare shouldn't based on Moose. Test::Warn is a popular module and Array::Compare without Moose can totally ease the install of the Test::Warn.&lt;br /&gt;&lt;br /&gt;in the meantime, I would agree with Stevan Little that we shouldn't hold the usage of the Moose. it's a great module with great idea and great contributors. I use it in my daily life and it works great. once more and more people/module use Moose, the problem wouldn't become a problem.&lt;br /&gt;&lt;br /&gt;I think Padre should use Moose, I know &lt;A href="http://use.perl.org/~alias/journal"&gt;Adam&lt;/a&gt; would reject that, but I insist on that Padre will benefit from Moose even Class::XSAccessor is the fastest accessor module now. Padre will be in a better structure and much more easy to read if it's coded with Moose. Plugin/Document/Highlighter would be easily written and plugged.&lt;br /&gt;&lt;br /&gt;another thing is that I met the problem before. Long time ago &lt;a href="http://cpanratings.perl.org/dist/WWW-Contact"&gt;people rate down&lt;/a&gt; WWW::Contact because it uses Moose. but I think it's not true. Moose helps me to build the module.&lt;br /&gt;&lt;br /&gt;at last and in short, I think simple module (like only use the accessor of Moose) shouldn't use Moose but large software/module like Padre should use Moose.&lt;br /&gt;&lt;br /&gt;Thanks. just personal thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-7085298536032723412?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/09/use-moose-or-no-moose.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-5953119454967460932</guid><pubDate>Mon, 24 Aug 2009 11:06:00 +0000</pubDate><atom:updated>2009-08-24T19:12:17.798+08:00</atom:updated><title>life updates</title><description>I'm sick these days. 1 day fever, 4 days cough, 3 injections. very bad.&lt;br /&gt;&lt;br /&gt;my modem got broken yesterday. it's not bad. I updated my book a little when there is no internet access. have a check if you haven't. :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://search.cpan.org/dist/Book-Chinese-MasterPerlToday/"&gt;http://search.cpan.org/dist/Book-Chinese-MasterPerlToday/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope everything is fine tomorrow. God bless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-5953119454967460932?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/08/life-updates.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-6580240592185879650</guid><pubDate>Fri, 07 Aug 2009 02:24:00 +0000</pubDate><atom:updated>2009-08-07T10:27:34.939+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>MasterPerlToday</category><category domain='http://www.blogger.com/atom/ns#'>book</category><title>Book::Chinese::MasterPerlToday</title><description>&lt;a href="http://chunzi.me/archives/612"&gt;some of you&lt;/a&gt; may be &lt;a href="http://www.newsmth.net/bbstcon.php?board=Perl&amp;gid=51263"&gt;noticed&lt;/a&gt; that I'm writing a &lt;a href="http://github.com/fayland/chinese-perl-book/tree/master"&gt;free perl book&lt;/a&gt; in Chinese.&lt;br /&gt;&lt;br /&gt;yeah, I released it as a CPAN module yesterday: &lt;a href='http://search.cpan.org/~fayland/Book-Chinese-MasterPerlToday/'&gt;Book::Chinese::MasterPerlToday&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;it's not finished yet but I promise I will. so have fun and stay tuned.&lt;br /&gt;&lt;br /&gt;patches or suggestions are welcome. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-6580240592185879650?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/08/bookchinesemasterperltoday.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-4054177884049335445</guid><pubDate>Sun, 26 Jul 2009 15:21:00 +0000</pubDate><atom:updated>2009-07-26T23:26:14.482+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Catalyst</category><category domain='http://www.blogger.com/atom/ns#'>book</category><title>The Definitive Guide to Catalyst</title><description>&lt;a href="http://www.amazon.com/Definitive-Guide-Catalyst-Maintainable-Applications/dp/1430223650/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1247118476&amp;sr=8-2"&gt;The Definitive Guide to Catalyst: Writing Extensible, Scalable and Maintainable Perl–Based Web Applications&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My boss (Jeffrey Ng) just brought this book for me (thanks to my college Calvin getting it for me from USA).&lt;br /&gt;&lt;br /&gt;I haven't read it yet, but I will. it's a good book. I'll post a review once I read it through.&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-4054177884049335445?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/07/definitive-guide-to-catalyst.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-2336523193459213120</guid><pubDate>Wed, 22 Jul 2009 04:08:00 +0000</pubDate><atom:updated>2009-07-22T12:10:12.676+08:00</atom:updated><title>Beijing Perl Workshop - Sep 19, 2009</title><description>&lt;a href="http://conference.perlchina.org/bjpw2009/"&gt;http://conference.perlchina.org/bjpw2009/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm afraid I will not go there, but it's still recommended to attend. :)&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-2336523193459213120?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/07/beijing-perl-workshop-sep-19-2009.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-6243287755627034946</guid><pubDate>Sat, 11 Jul 2009 06:21:00 +0000</pubDate><atom:updated>2009-07-11T14:24:58.951+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>CPAN</category><title>a module started with O</title><description>&lt;a href="http://search.cpan.org/dist/ORDB-Unihan/"&gt;ORDB::Unihan&lt;/a&gt; - An ORM for the published Unihan database&lt;br /&gt;&lt;br /&gt;a mixin of ORLite and Unihan database. the original unihan database is txt based, and this one is sqlite.&lt;br /&gt;even if you don't want to use ORLite, you still can use the Unihan.sqlite by ORDB::Unihan-&gt;sqlite_path();&lt;br /&gt;&lt;br /&gt;bla bla, not sure how useful it is. just for fun.&lt;br /&gt;&lt;br /&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-6243287755627034946?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/07/module-started-with-o.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-2857239919257342557</guid><pubDate>Wed, 17 Jun 2009 05:12:00 +0000</pubDate><atom:updated>2009-06-17T13:17:14.868+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Catalyst</category><category domain='http://www.blogger.com/atom/ns#'>DBIx-Class</category><category domain='http://www.blogger.com/atom/ns#'>CPAN</category><title>QueryLog support for Catalyst::Model::DBIC::Schema</title><description>well, I wrote &lt;a href="http://search.cpan.org/perldoc?Catalyst::Model::DBIC::Schema::QueryLog"&gt;Catalyst::Model::DBIC::Schema::QueryLog &lt;/a&gt; before. it's fine. it works.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://search.cpan.org/~mstrout/'&gt;mst&lt;/a&gt; released the new &lt;a href="http://search.cpan.org/~mstrout/Catalyst-Model-DBIC-Schema-0.24/"&gt;Catalyst::Model::DBIC::Schema&lt;/a&gt; today. built on top of Moose, with two traits: Caching and Replicated.&lt;br /&gt;It reminds me to write &lt;a href="http://search.cpan.org/perldoc?Catalyst::TraitFor::Model::DBIC::Schema::QueryLog"&gt;Catalyst::TraitFor::Model::DBIC::Schema::QueryLog&lt;/a&gt;&lt;br /&gt;trait is great. easy to read, configurable and sane.&lt;br /&gt;&lt;br /&gt;Enjoy. Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-2857239919257342557?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/06/querylog-support-for.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-4043743372925876399</guid><pubDate>Wed, 27 May 2009 03:08:00 +0000</pubDate><atom:updated>2009-05-27T11:11:07.663+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Zorpia</category><category domain='http://www.blogger.com/atom/ns#'>talk</category><title>DBIx-Class talk</title><description>I just gave a DBIx-Class talk on the annual meeting of &lt;a href="http://www.zorpia.com/"&gt;Zorpia&lt;/a&gt; 1 hour ago. it's not a success one, but I still want to share with you. check:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.fayland.org/talks/2009_Zorpia_DBIx_Class/dbix-class.xul"&gt;http://www.fayland.org/talks/2009_Zorpia_DBIx_Class/dbix-class.xul&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy, Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-4043743372925876399?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/dbix-class-talk.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-1506373796620222825</guid><pubDate>Sat, 23 May 2009 23:48:00 +0000</pubDate><atom:updated>2009-05-24T07:57:13.743+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Padre</category><title>manage Task::Padre::Plugins with ORDB::CPANTS</title><description>To update a Task:: module is not so hard but trivial. you need find out the new version of existing modules, and those haven't added yet.&lt;br /&gt;well, do it manually is not so Perl-ish. we have Perl, we should do it automatically by running a script.&lt;br /&gt;&lt;br /&gt;it's pretty good we have &lt;a href="http://search.cpan.org/perldoc?ORDB::CPANTS"&gt;ORDB::CPANTS&lt;/a&gt; from &lt;a href="http://ali.as/"&gt;Alias&lt;/a&gt;.&lt;br /&gt;1, we get all plugins by ORDB::CPANTS through used_by&lt;br /&gt;2, split them into requires and feature.&lt;br /&gt;3, get the META info through YAML::LoadURI&lt;br /&gt;4, generate the main part of Makefile.PL and Plugins.pm&lt;br /&gt;&lt;br /&gt;you can find the code here: &lt;a href="http://svn.perlide.org/padre/trunk/Task-Padre-Plugins/auto_generate.pl"&gt;http://svn.perlide.org/padre/trunk/Task-Padre-Plugins/auto_generate.pl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I know I can generate Makefile.PL and Plugins.pm directly, but it's good enough for now.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-1506373796620222825?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/manage-taskpadreplugins-with-ordbcpants.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-7726197058749325084</guid><pubDate>Fri, 22 May 2009 10:07:00 +0000</pubDate><atom:updated>2009-05-22T18:10:34.270+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>trip</category><title>Xi'an trip next week</title><description>We (&lt;a href="http://www.zorpia.cn/"&gt;Zorpia&lt;/a&gt; people) will hold an annual meeting next week in Xi'an.&lt;br /&gt;It would be a lot of fan that I'll play basketball during the trip. 24 people from 4 different countries/regions.&lt;br /&gt;&lt;br /&gt;if you're nearby, please drop by if you like it.&lt;br /&gt;&lt;br /&gt;Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-7726197058749325084?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/xian-trip-next-week.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-1618587962221084600</guid><pubDate>Tue, 19 May 2009 03:42:00 +0000</pubDate><atom:updated>2009-05-19T11:52:47.314+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>github</category><title>github instead of google code</title><description>yes. I do love &lt;a href="http://github.com/fayland"&gt;github&lt;/a&gt; more than &lt;a href="http://code.google.com/u/fayland/"&gt;google code&lt;/a&gt;. it's not the problem of git or svn. svn is fine.&lt;br /&gt;&lt;br /&gt;the point is participation.&lt;br /&gt;In google code, it's very hard to contribute some code to one project if you're not the author. it disappoints me a lot.&lt;br /&gt;The "fork" button in github is very helpful. people forked my repos then pull requests to ask me to merge (like perl-net-github, dist-zilla-plugin-repository). I forked someone's repos then pull back (like theschwartz-moosified, dist-zilla, git-pureperl etc).&lt;br /&gt;&lt;br /&gt;it's awesome. go start using github right now. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-1618587962221084600?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/github-instead-of-google-code.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-2287501186145763045</guid><pubDate>Tue, 19 May 2009 01:53:00 +0000</pubDate><atom:updated>2009-05-19T09:54:43.840+08:00</atom:updated><title>SuperCollider Programming</title><description>what the hell is &lt;a href="http://use.perl.org/~Alias/journal/38991"&gt;SuperCollider Programming&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;I'm glad that my blog is "Fayland and Perl Programming".&lt;br /&gt;&lt;br /&gt;also I hate that blogger.com is blocked in China again. STUPID.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-2287501186145763045?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/supercollider-programming.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-3046972906993221885</guid><pubDate>Mon, 11 May 2009 22:28:00 +0000</pubDate><atom:updated>2009-05-12T06:35:11.565+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>DBIx-Class</category><category domain='http://www.blogger.com/atom/ns#'>CPAN</category><category domain='http://www.blogger.com/atom/ns#'>TheSchwartz</category><title>DBIx::Class::ResultSet::Void and TheSchwartz::Moosified</title><description>Big thanks to &lt;a href="http://search.cpan.org/~ribasushi/"&gt;ribasushi&lt;/a&gt;, the new &lt;a href="http://search.cpan.org/perldoc?DBIx::Class::ResultSet::Void"&gt;DBIx::Class::ResultSet::Void 0.04&lt;/a&gt; is using&lt;br /&gt;    # SELECT 1 FROM item me WHERE ( me.id = ? ) LIMIT 1: '1'&lt;br /&gt;    # INSERT INTO item ( id, name) VALUES ( ?, ? ): '1', 'A'&lt;br /&gt;instead of COUNT(*). it's much faster now.&lt;br /&gt;&lt;br /&gt;Another big thanks to &lt;a href="http://search.cpan.org/~stash/"&gt;stash&lt;/a&gt; from &lt;a href="http://www.socialtext.com/"&gt;socialtext&lt;/a&gt;, &lt;a href="http://search.cpan.org/~stash/TheSchwartz-Moosified-0.04/"&gt;TheSchwartz::Moosified&lt;/a&gt; 0.04 with PostgreSQL support and bug fixes.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-3046972906993221885?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/dbixclassresultsetvoid-and.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-3900129859369442839</guid><pubDate>Sun, 10 May 2009 12:13:00 +0000</pubDate><atom:updated>2009-05-10T20:18:02.428+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>DBIx-Class</category><category domain='http://www.blogger.com/atom/ns#'>CPAN</category><title>DBIx::Class::ResultSet::Void</title><description>some time I'm really feeling sick when I use update_or_create or find_or_create, the default DBIx::Class::ResultSet return DBIx::Class::Row object by using &lt;b&gt;find&lt;/b&gt;.&lt;br /&gt;it's useful when I need the $row object, but it's dummy if I don't care.&lt;br /&gt;&lt;br /&gt;I wrote &lt;a href="http://search.cpan.org/perldoc?DBIx::Class::ResultSet::Void"&gt;DBIx::Class::ResultSet::Void&lt;/a&gt; today. It would use &lt;b&gt;count&lt;/b&gt; instead of find if not defined wantarray. it means when I call&lt;br /&gt;    $rs-&gt;find_or_create( { id =&gt; 1, name =&gt; 'A' } );&lt;br /&gt;instead of&lt;br /&gt;    my $row = $rs-&gt;find_or_create( { id =&gt; 1, name =&gt; 'A' } );&lt;br /&gt;it would generate SQLs like:&lt;br /&gt;    # SELECT COUNT( * ) FROM item me WHERE ( me.id = ? ): '1'&lt;br /&gt;    # INSERT INTO item ( id, name) VALUES ( ?, ? ): '1', 'A'&lt;br /&gt;it's a little better I think.&lt;br /&gt;&lt;br /&gt;read more on the &lt;a href="http://search.cpan.org/perldoc?DBIx::Class::ResultSet::Void"&gt;POD&lt;/a&gt; and Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-3900129859369442839?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/dbixclassresultsetvoid.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-4769297606020138147</guid><pubDate>Thu, 07 May 2009 11:45:00 +0000</pubDate><atom:updated>2009-05-07T19:50:29.033+08:00</atom:updated><title>what am I looking forward today</title><description>&lt;a href="http://www.apress.com/book/view/1430223650"&gt;The Definitive Guide to Catalyst: Writing Extendable, Scalable and Maintainable Perl–Based Web Applications&lt;/a&gt; by Kieren Diment and Matt Trout.&lt;br /&gt;&lt;br /&gt;I don't know which month will it be released, but I'm really looking forward to it. :)&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-4769297606020138147?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/whats-looking-forward-today.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-198792509844545070</guid><pubDate>Tue, 05 May 2009 11:48:00 +0000</pubDate><atom:updated>2009-05-05T19:53:09.182+08:00</atom:updated><title>irc log</title><description>I didn't know that keep a public irc log is wrong until mst pointed it to me today.&lt;br /&gt;Sorry for any trouble caused and it's private now.&lt;br /&gt;&lt;br /&gt;Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-198792509844545070?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/05/irc-log.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-23855943.post-6761233685586695064</guid><pubDate>Tue, 28 Apr 2009 22:34:00 +0000</pubDate><atom:updated>2009-04-29T06:39:42.673+08:00</atom:updated><title>new DayDayUp</title><description>inspired by jrock's &lt;a href="http://blog.jrock.us/articles/Multimethods.pod"&gt;Multimethods&lt;/a&gt; and &lt;a href="http://blog.jrock.us/articles/Unshortening%20URLs%20with%20Modern%20Perl.pod"&gt;Unshortening URLs with Modern Perl&lt;/a&gt;, I decided to rewrite my &lt;a href="http://search.cpan.org/dist/DayDayUp/"&gt;DayDayUp&lt;/a&gt; CPAN module.&lt;br /&gt;&lt;br /&gt;it's really very cool to write code with &lt;a href="http://search.cpan.org/dist/KiokuDB/"&gt;KiokuDB&lt;/a&gt; and &lt;a href="http://search.cpan.org/dist/MooseX-Declare/"&gt;MooseX::Declare&lt;/a&gt;. less code. more focus on real.&lt;br /&gt;I'm planing to write more, but it's for now.&lt;br /&gt;&lt;br /&gt;even it fails on Win32, it's still worth to try. :)&lt;br /&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23855943-6761233685586695064?l=www.fayland.org%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.fayland.org/blog/2009/04/new-daydayup.html</link><author>noreply@blogger.com (Fayland)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item></channel></rss>