<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet Perlchina</title>
	
	<link href="http://planet.perlchina.org/" />
	<id>http://planet.perlchina.org/atom.xml</id>
	<updated>2013-06-20T02:30:24+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/CNPerlPlanet" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="cnperlplanet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<title type="html">mojo tt2 defaults layout patch</title>
		<link href="http://fayland.me/perl/2013/04/27/mojo-tt2-defaults-layout-patch" />
		<id>http://fayland.me/perl/2013/04/27/mojo-tt2-defaults-layout-patch</id>
		<updated>2013-04-26T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;You wrote code with open source like CPAN. You meet problems with them. You investigate, write tests then provide patches. Your patches are accepeted.&lt;/p&gt;

&lt;p&gt;I really enjoy the way it moves.&lt;/p&gt;

&lt;p&gt;Here is &lt;a href="https://github.com/fayland/mojox-renderer-tt/commit/95d9ee5c356fa3f398b2deed9611ba47b69a890b"&gt;another patch&lt;/a&gt; for &lt;a href="https://github.com/plicease/mojox-renderer-tt"&gt;Mojolicious::Plugin::TtRenderer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;the issue is that &lt;code&gt;$self-&amp;gt;defaults(layout =&amp;gt; 'wrapper');&lt;/code&gt; is always dropping the &lt;code&gt;[% content %]&lt;/code&gt; without reason. and with debug I see the content is really in &lt;code&gt;$c-&amp;gt;stash-&amp;gt;{'mojo.content'}&lt;/code&gt;. so a simple patch is that just &lt;code&gt;$c-&amp;gt;stash-&amp;gt;{content} ||= $c-&amp;gt;stash-&amp;gt;{'mojo.content'}-&amp;gt;{content};&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;recently I&amp;#8217;m writing another new app with bitcoin &amp;lt;-&amp;gt; litecoin and other virtual coins exchange. and I have a wrapper.html.tt for the whole site. but I do not want to use it in the email TT2 render.&lt;/p&gt;

&lt;p&gt;if I put &lt;code&gt;WRAPPER =&amp;gt; 'layouts/wrapper.html.tt',&lt;/code&gt; in the TT2 options, it will also apply to the mail render. a better approach is to use defaults layout. then in email render, set the layout as empty or actually we need use &lt;code&gt;partial =&amp;gt; 1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;MainApp.pm&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$self-&amp;gt;plugin('tt_renderer');
$self-&amp;gt;defaults(layout =&amp;gt; 'wrapper');
$self-&amp;gt;renderer-&amp;gt;default_handler( 'tt' );&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;OtherController.pm&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;my $body = $c-&amp;gt;render(
    template =&amp;gt; 'emails/forgot_pass', format =&amp;gt; 'mail',
    other_stash =&amp;gt; $var,
    partial =&amp;gt; 1
);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;partial =&amp;gt; 1 will set layout as null. so it will give us what we want.&lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Mojolicious TT2 patch</title>
		<link href="http://fayland.me/perl/2013/04/12/mojo-tt2-patch" />
		<id>http://fayland.me/perl/2013/04/12/mojo-tt2-patch</id>
		<updated>2013-04-11T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;I am kindy busy with &lt;a href="https://github.com/fayland/findmjob.com/commits/master"&gt;adding new features&lt;/a&gt; to my &lt;a href="http://findmjob.com/"&gt;job site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;but it&amp;#8217;s very boring to restart the app on template updates. TT2 should be able to pick up the changes automatically. it works under Dancer or Catalyst, but not Mojolicious.&lt;/p&gt;

&lt;p&gt;I thought I should spend some time on investigating why before writing more stuff. and after a while, I have &lt;a href="https://github.com/fayland/mojox-renderer-tt/commit/d15192619713b044878301c6f911df4c27aa0d84"&gt;a patch&lt;/a&gt; for &lt;a href="https://github.com/plicease/mojox-renderer-tt"&gt;Mojolicious::Plugin::TtRenderer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;it dues to the Provider in TtRender always return 1 instead of &lt;em&gt;mtime&lt;/em&gt; on &lt;code&gt;_template_modified&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;plicease accepts it quite fast with slight changes but I&amp;#8217;m waiting for a CPAN release. :-)&lt;/p&gt;

&lt;p&gt;here is few changes on &lt;a href="http://findmjob.com/"&gt;http://findmjob.com/&lt;/a&gt; recently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;tag view is splitted with &lt;a href="http://findmjob.com/tag/OOm8jHZ84RGjYrDhKQ5yzw/+job/perl.html"&gt;job&lt;/a&gt; and &lt;a href="http://findmjob.com/tag/OOm8jHZ84RGjYrDhKQ5yzw/+freelance/perl.html"&gt;freelance&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Location link is added like: &lt;a href="http://findmjob.com/location/wM4xraui4hGi3+CgdEa_Ag/San-Francisco-CA.html"&gt;San Francisco, CA&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Dancer to Mojolicious</title>
		<link href="http://fayland.me/perl/2013/04/10/dancer-to-mojolicious" />
		<id>http://fayland.me/perl/2013/04/10/dancer-to-mojolicious</id>
		<updated>2013-04-09T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;The progress went smoothly because all of them are just Perl code.&lt;/p&gt;

&lt;p&gt;old &lt;a href="http://www.perldancer.org/"&gt;Dancer&lt;/a&gt; code: &lt;a href="https://github.com/fayland/findmjob.com/blob/3368b812b72d11cbd1534d2cb870ad0f331a0bf7/www/lib/FindmJob/WWW.pm"&gt;FindmJob::WWW&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;new &lt;a href="http://mojolicio.us/"&gt;Mojolicious&lt;/a&gt; code: &lt;a href="https://github.com/fayland/findmjob.com/blob/5727a9f68cca0d18bf7acb26b7ccaa9ab05663b1/lib/FindmJob/WWW.pm"&gt;FindmJob::WWW&lt;/a&gt;, &lt;a href="https://github.com/fayland/findmjob.com/blob/5727a9f68cca0d18bf7acb26b7ccaa9ab05663b1/lib/FindmJob/WWW/Root.pm"&gt;FindmJob::WWW::Root&lt;/a&gt; and &lt;a href="https://github.com/fayland/findmjob.com/tree/5727a9f68cca0d18bf7acb26b7ccaa9ab05663b1/lib/FindmJob/WWW"&gt;others&lt;/a&gt;&lt;/p&gt;

&lt;h3 id="few_notes"&gt;Few notes&lt;/h3&gt;

&lt;h4 id="hooks"&gt;hooks&lt;/h4&gt;

&lt;p&gt;from &lt;code&gt;before_template_render&lt;/code&gt; to &lt;code&gt;before_render&lt;/code&gt;&lt;/p&gt;

&lt;h4 id="dancer__vs_mojolicious_"&gt;Dancer &lt;code&gt;forward&lt;/code&gt; VS Mojolicious &lt;code&gt;before_dispatch&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;we can modify the req-&amp;gt;url-&amp;gt;path in &lt;code&gt;before_dispatch&lt;/code&gt; with assigning stash.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# feed.(rss|atom) and /p.2/
$self-&amp;gt;hook( before_dispatch =&amp;gt; sub {
    my $self = shift;

    my $p = $self-&amp;gt;req-&amp;gt;url-&amp;gt;path;
    if ($p =~ s{/feed\.(rss|atom)$}{}) {
        $self-&amp;gt;stash('is_feed' =&amp;gt; $1);
    }
    if ($p =~ s{/p\.(\d+)(/|$)}{$2}) {
        $self-&amp;gt;stash('page' =&amp;gt; $1);
    }
    $self-&amp;gt;req-&amp;gt;url-&amp;gt;path($p);
});&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="supervise"&gt;supervise&lt;/h4&gt;

&lt;p&gt;Dancer:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;plackup -E production -s Starman --workers=3 -l /tmp/findmjob.sock -a /findmjob.com/www/bin/app.pl&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Mojolicious:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hypnotoad -f /findmjob.com/bin/www.pl&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note &lt;code&gt;-f&lt;/code&gt; is important here, or supervise will keep restarting the script.&lt;/p&gt;

&lt;p&gt;above plackup using sock and hypnotoad use port. so we need update the ngnix config a bit.&lt;/p&gt;

&lt;p&gt;and it looks like hypnotoad is working better than plackup Starman&lt;/p&gt;

&lt;h4 id="template_name_conversation"&gt;Template name conversation&lt;/h4&gt;

&lt;p&gt;there is no rule in Dancer for the Template name. but in Mojolicious, we have to do it with $name.$format.$handler&lt;/p&gt;

&lt;p&gt;in this case we have to rename index.tt2 to index.html.tt&lt;/p&gt;

&lt;h3 id="conclusion"&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;well, I&amp;#8217;m not saying that Dancer is worse than Mojolicous or any other words. both of them are great.&lt;/p&gt;

&lt;p&gt;but Dancer is a bit messy with Dancer and Dancer2. actually I love Moo a lot, but I don&amp;#8217;t want to spend time on upgrading Dancer to Dancer2 (there seems some more difference than expected.)&lt;/p&gt;

&lt;p&gt;in the other hand, Mojolicious looks amazing, sri improves it every week and I admire/trust his professional knowledge.&lt;/p&gt;

&lt;p&gt;Have fun.&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Two new CPAN modules</title>
		<link href="http://fayland.me/perl/2013/03/30/two-new-cpan-modules" />
		<id>http://fayland.me/perl/2013/03/30/two-new-cpan-modules</id>
		<updated>2013-03-29T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;I got two new CPAN modules uploaded today.&lt;/p&gt;

&lt;h3 id="wwwspinnerchief"&gt;&lt;a href="https://metacpan.org/module/WWW::SpinnerChief"&gt;WWW::SpinnerChief&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;I wrote this based on the &lt;a href="https://github.com/niteoweb/spinnerchief/blob/master/src/spinnerchief/__init__.py"&gt;Python code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;it&amp;#8217;s pretty good that you know how to read the Python.&lt;/p&gt;

&lt;h3 id="businesspaypoint"&gt;&lt;a href="https://metacpan.org/module/Business::PayPoint"&gt;Business::PayPoint&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;aka tips to write SOAP module in Perl.&lt;/p&gt;

&lt;p&gt;the PHP SOAP lib is pretty good while the Perl one is a little suck.&lt;/p&gt;

&lt;p&gt;so usually if I can&amp;#8217;t write it at the first try in Perl, I would use PHP to find the sending request/response&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$client = new SoapClient('https://www.example.com/Test?wsdl', array(
    'trace' =&amp;gt; 1,
) );
$client-&amp;gt;__call('TestAction', $params);
echo &amp;quot;RESPONSE:\n&amp;quot; . $client-&amp;gt;__getLastResponse() . &amp;quot;\n&amp;quot;;
echo &amp;quot;REQUEST HEADER:\n&amp;quot; . $client-&amp;gt;__getLastRequestHeaders() . &amp;quot;\n&amp;quot;;
echo &amp;quot;REQUEST:\n&amp;quot; . $client-&amp;gt;__getLastRequest() . &amp;quot;\n&amp;quot;;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After I got the correct sample request, I&amp;#8217;ll try to use Perl library to send the same XML with trace on.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;use SOAP::Lite +trace =&amp;gt; 'all';&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;well, you even can&amp;#8217;t write correct one sometimes (maybe I am a little stupid).&lt;/p&gt;

&lt;p&gt;but I have a final trick for it. use XML::Write to genereate the request XML. then use&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;my $som = $soap-&amp;gt;call($method, SOAP::Data-&amp;gt;type('xml' =&amp;gt; $xml));&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;you won&amp;#8217;t be wrong in this case. :)&lt;/p&gt;

&lt;p&gt;Have fun.&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Net::Telnet with bitflu</title>
		<link href="http://fayland.me/perl/2013/03/18/nettelnet-with-bitflu" />
		<id>http://fayland.me/perl/2013/03/18/nettelnet-with-bitflu</id>
		<updated>2013-03-17T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;Even &lt;a href="https://metacpan.org/module/Net::Telnet"&gt;Net::Telnet&lt;/a&gt; is quite old, it&amp;#8217;s still very powerful and simple to use.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;use strict;
use warnings;
use Net::Telnet ();
use Data::Dumper;

my $host = '0';
my $port = 4001;

my $telnet = Net::Telnet-&amp;gt;new();
unless ($telnet-&amp;gt;open( Host =&amp;gt; $host, Port =&amp;gt; $port, Timeout =&amp;gt; 30 )) {
    die &amp;quot;Can't connect to $host:$port\n&amp;quot;;
}

$telnet-&amp;gt;waitfor('/bitflu&amp;gt; /');

my @messages = map { chomp; $_ } $telnet-&amp;gt;cmd(String =&amp;gt; 'ls');
pop @messages if $messages[-1] eq 'bitflu';
print Dumper(\@messages);

$telnet-&amp;gt;close();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;there are some tips:&lt;/p&gt;

&lt;h4 id="remove_ansi_color"&gt;remove ANSI color&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;foreach my $msg (@messages) {
    # if you do not remove this, your regex with /^\[/ may break
    $msg =~ s/\e\[[\d;]*[a-zA-Z]//g;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="change_window_size"&gt;Change Window Size&lt;/h4&gt;

&lt;p&gt;if you use term to do bitflu&amp;gt; ls, you&amp;#8217;ll see full torrent name. but with the code above, you can only see few chars. here is the note to change the Window Size:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;my $telnet = Net::Telnet-&amp;gt;new();

$telnet-&amp;gt;option_callback( sub { return; } );
$telnet-&amp;gt;option_accept(Do =&amp;gt; 31);

unless ($telnet-&amp;gt;open( Host =&amp;gt; $host, Port =&amp;gt; $port, Timeout =&amp;gt; 60 )) {
    die &amp;quot;Can't connect to $host:$port\n&amp;quot;;
}
$telnet-&amp;gt;waitfor('/bitflu&amp;gt; /');

## copied from http://blog.webdir.bg/perl-apache-realtime-output-from-script/
## Many Thanks!
$telnet-&amp;gt;telnetmode(0);
$telnet-&amp;gt;put(pack(&amp;quot;C9&amp;quot;,
                  255,                  # TELNET_IAC
                  250,                  # TELNET_SB
                  31, 0, 200, 0, 0,     # TELOPT_NAWS
                  255,                  # TELNET_IAC
                  240));                # TELNET_SE
$telnet-&amp;gt;telnetmode(1);&lt;/code&gt;&lt;/pre&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Learn Python Note 1</title>
		<link href="http://fayland.me/python/2013/03/11/learn-python-note-1" />
		<id>http://fayland.me/python/2013/03/11/learn-python-note-1</id>
		<updated>2013-03-10T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m starting learning Python a bit.&lt;/p&gt;

&lt;h3 id="argparse"&gt;argparse&lt;/h3&gt;

&lt;p&gt;if you have args setup in different modules, like you want setup &lt;code&gt;--log&lt;/code&gt; on logging, setup &lt;code&gt;--tor&lt;/code&gt; &lt;code&gt;--skip-tor&lt;/code&gt; on requesting, the combination of &lt;em&gt;add_help=False&lt;/em&gt; and &lt;em&gt;parse_known_args&lt;/em&gt; is pretty cool.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import argparse
parent_argparse = argparse.ArgumentParser(add_help=False)
parent_argparse.add_argument('--log', action='store', default='ERROR', dest='log', help='logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL')
_args, _args_unknown = parent_argparse.parse_known_args()&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;afterwards, in real place, do&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;parser = argparse.ArgumentParser(description='Some real CLI', parents=[parent_argparse])&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="initpy_and_as"&gt;&lt;strong&gt;init&lt;/strong&gt;.py and as&lt;/h3&gt;

&lt;p&gt;actually it&amp;#8217;s a very cool feature. you can put some common code for all sub-modules in &lt;code&gt;__init__.py&lt;/code&gt; like config code (to avoid write another file)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import ConfigParser
try:
    cfg = ConfigParser.ConfigParser()
    cfg.read(['/somwhere/conf/project.ini', '/somwhere/conf/project_local.ini'])
except ConfigParser.Error, e:
    logger.critical('Cannot read configuration file, reason [%s]' % e)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and &lt;code&gt;as&lt;/code&gt; is pretty amazing.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from modulename import cfg as project_config&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="beautifulsoup_is_another_htmltreebuilder"&gt;BeautifulSoup is another HTML::TreeBuilder&lt;/h3&gt;

&lt;p&gt;BeautifulSoup works like Perl HTML::TreeBuilder.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from bs4 import BeautifulSoup
soup = BeautifulSoup(text)

for tag in soup.find_all('span', attrs={'id': re.compile('^ctl00_contentPageContent_lbl(.*?)Value$')}):
    id = tag['id']
    id = id.replace('ctl00_contentPageContent_lbl', '').replace('Value', '')
    data[id] = tag.get_text()&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="something_i_do_like_in_python"&gt;something I do like in Python&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;def&lt;/code&gt; with args and default values. (Perl &lt;code&gt;sub&lt;/code&gt; was developed too many years ago.)&lt;/p&gt;

&lt;p&gt;you don&amp;#8217;t need type so many &lt;code&gt;{}&lt;/code&gt; or &lt;code&gt;()&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id="something_i_do_not_like_in_python"&gt;something I do not like in Python&lt;/h3&gt;

&lt;p&gt;string interpolation is quite inconvenience. there are &lt;code&gt;%&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt; and Template. but I really miss the $ with Perl.&lt;/p&gt;

&lt;p&gt;I miss Perl regexp a lot. the &lt;code&gt;re.compile&lt;/code&gt;, &lt;code&gt;re.sub&lt;/code&gt;, &lt;code&gt;re.I&lt;/code&gt; is too much typing.&lt;/p&gt;

&lt;h3 id="disclaim"&gt;Disclaim&lt;/h3&gt;

&lt;p&gt;I&amp;#8217;m still a newbie. so parden me if anything is wrong. I&amp;#8217;ll write more when I learn more. and I admit it&amp;#8217;s pretty fun to learn Python.&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">add alert note for old posts in Jekyll</title>
		<link href="http://fayland.me/note/2013/03/07/add-alert-note-for-old-posts-in-jekyll" />
		<id>http://fayland.me/note/2013/03/07/add-alert-note-for-old-posts-in-jekyll</id>
		<updated>2013-03-06T16:00:00+00:00</updated>
		<content type="html">&lt;h2 id="add_alert_note_for_old_posts"&gt;add alert note for old posts&lt;/h2&gt;

&lt;p&gt;For Jekyll Bootstrap, it&amp;#8217;s quite simple as we can do something like below:&lt;/p&gt;

&lt;p&gt;edit &lt;em&gt;_includes/themes/twitter/post.html&lt;/em&gt;, add&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{% assign page_year = page.date | date: &amp;quot;%Y&amp;quot; %}
{% if page_year &amp;lt; '2010' %}
&amp;lt;div class='alert alert-info'&amp;gt;This post may be outdated due to it was written on {{ page_year }}. The links may be broken. The code may be not working anymore. Leave comments if needed.&amp;lt;/div&amp;gt;
{% endif %}&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id="20_items_in_rssatom"&gt;20 items in rss/atom&lt;/h2&gt;

&lt;p&gt;I have another if in the {% for post in site.posts %} for rss.xml and atom.xml&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{% if forloop.index &amp;lt; 20 %}
...
{% endif %}&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id="paginate"&gt;paginate&lt;/h2&gt;

&lt;p&gt;edit &lt;em&gt;_config.yml&lt;/em&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;paginate: 10
paginate_path: 'page/:num'&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Have fun.&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Blogger local file  &amp;gt; Jekyll migrator</title>
		<link href="http://fayland.me/perl/2013/03/07/blogger-local-file---jekyll-migrator" />
		<id>http://fayland.me/perl/2013/03/07/blogger-local-file---jekyll-migrator</id>
		<updated>2013-03-06T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;I have an &lt;a href="http://fayland.org/blog/"&gt;old Blogger&lt;/a&gt; before I move to MT5, it contains my posts from 2006 to 2009. some are quite old, broken, useless and even not worth reading. but some are still very useful and it&amp;#8217;s a part of my memory and life. (Sorry that comments are dropped that I can&amp;#8217;t import it into Disqus.)&lt;/p&gt;

&lt;p&gt;so I wrote a simple Perl script to convert the local HTML files into Jekyll here. the source code can be found in &lt;a href="https://github.com/fayland/p5-jekyll-scripts/blob/master/blogger/migrator.pl"&gt;github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;it&amp;#8217;s quite simple and maybe just fit for my need. but feel free to change it if you have same demand.&lt;/p&gt;

&lt;p&gt;Have fun.&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">MT  &amp;gt; Jekyll perl migrator</title>
		<link href="http://fayland.me/perl/2013/03/06/mt---jekyll-perl-migrator" />
		<id>http://fayland.me/perl/2013/03/06/mt---jekyll-perl-migrator</id>
		<updated>2013-03-05T16:00:00+00:00</updated>
		<content type="html">&lt;p&gt;I bought a new domain &lt;a href="http://fayland.me/"&gt;fayland.me&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I picked &lt;a href="https://github.com/mojombo/jekyll"&gt;Jekyll&lt;/a&gt; as the blog engine.&lt;/p&gt;

&lt;p&gt;I wrote a simple Perl script to convert my old Movable Type 5 blogs to Jekyll Bootstrap.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fayland/p5-jekyll-scripts/blob/master/mt/migrator.pl"&gt;Github code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the difference between this one and the &lt;a href="https://github.com/mojombo/jekyll/wiki/blog-migrations"&gt;Jekyll::MT&lt;/a&gt; is that it supports tags and it&amp;#8217;s for &lt;a href="http://jekyllbootstrap.com/"&gt;Jekyll Bootstrap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;at last, using&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;rsync -arv --delete _site fay:/srv/www/fayland.me/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to rsync the site.&lt;/p&gt;

&lt;p&gt;Have fun.&lt;/p&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Net-Amazon-DynamoDB</title>
		<link href="http://fayland.me/perl/2012/11/22/net-amazon-dynamodb" />
		<id>http://fayland.me/perl/2012/11/22/net-amazon-dynamodb</id>
		<updated>2012-11-21T16:00:00+00:00</updated>
		<content type="html">I have been playing with&amp;nbsp;&lt;a href="https://metacpan.org/module/Net::Amazon::DynamoDB"&gt;Net::Amazon::DynamoDB&lt;/a&gt;&amp;nbsp;a lot recently. this article is not to comment on that service. it's just a few notes for Perl guys who're using it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Moo based instead of Moose.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;well, if you're not using Moose in your system, Moose may be too much for your speed. I am maintain a new branch on that which converted Moose to Moo. changes can be found at&amp;nbsp;&lt;a href="https://github.com/fayland/Net-Amazon-DynamoDB/commit/0b3b9a493e92c85461353ef1fc1da422e4d0bb48"&gt;https://github.com/fayland/Net-Amazon-DynamoDB/commit/0b3b9a493e92c85461353ef1fc1da422e4d0bb48&lt;/a&gt;&amp;nbsp;and I'll update when the Moose version is updated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. custom Cache module supports.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I removed the isa =&amp;gt; 'Cache' in the Moo version, instead, I'm using&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;has cache =&amp;gt; ( isa =&amp;gt; sub {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;die "thaw/freeze/remove must be supported in cache" unless $_[0]-&amp;gt;can('thaw') and $_[0]-&amp;gt;can('freeze') and $_[0]-&amp;gt;can('remove')&lt;/div&gt;&lt;div&gt;}, is =&amp;gt; 'rw', predicate =&amp;gt; 'has_cache' );&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;so that we can use custom layer like&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;package My::Dummy::Cache::FastMmap;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;use Moo;&lt;/div&gt;&lt;div&gt;use Cache::FastMmap;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;has 'cache' =&amp;gt; (is =&amp;gt; 'lazy');&lt;/div&gt;&lt;div&gt;sub _build_cache { Cache::FastMmap-&amp;gt;new(share_file =&amp;gt; '/tmp/mycache_fastmmap', unlink_on_exit =&amp;gt; 0) }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# Cache::FastMmap do not have thaw/freeze sub&lt;/div&gt;&lt;div&gt;sub thaw {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my $self = shift;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; $self-&amp;gt;cache-&amp;gt;get(@_);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;sub freeze {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my $self = shift;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; $self-&amp;gt;cache-&amp;gt;set(@_);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;sub remove {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my $self = shift;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; $self-&amp;gt;cache-&amp;gt;remove(@_);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have fixed some bugs for the cache system like not set while return is undef, delete on batch_write etc. but it is still not perfect b/c it's not supported inside batch_get_items yet. I may write patch for it later.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. set is not array.&lt;/div&gt;&lt;div&gt;well, for SS or NS. it's set. it's not array. it means there is not an order inside.&lt;/div&gt;&lt;div&gt;if you want something like order, we can join it as string and save it. after get, split back.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Care each other</title>
		<link href="http://lamppurl.blogspot.com/2012/10/care-each-other.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-1496001604996280832</id>
		<updated>2012-10-10T21:31:23+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;凡事不可自私自利、爱慕虚荣，要心存谦卑，看别人比自己强。 各人不要只顾自己的事，也要为别人的需要着想。 腓立比书 Phil2.3-4.CCB &lt;a href="http://bible.us/Phil2.3.CCB"&gt;http://bible.us/Phil2.3.CCB&lt;/a&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/care-each-other"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-1496001604996280832?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">诗篇 118:14-16</title>
		<link href="http://lamppurl.blogspot.com/2012/10/11814-16.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-3289321547074036390</id>
		<updated>2012-10-08T17:51:56+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;耶和华是我的力量，是我的诗歌；�拯救了我。义人的帐篷里传出胜利的欢呼声：“耶和华伸出右手施展了大能！耶和华高举右手，耶和华的右手施展了大能！” &lt;a href="http://bible.us/Ps118.14.CCB"&gt;http://bible.us/Ps118.14.CCB&lt;/a&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/11814-16"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-3289321547074036390?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">http://bible.us/Ps69.12.CCB</title>
		<link href="http://lamppurl.blogspot.com/2012/10/httpbibleusps6912ccb.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5874809094667740898</id>
		<updated>2012-10-01T00:51:21+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;我成了街谈巷议的话题，醉汉作歌取笑我。可是，耶和华啊，在你悦纳人的时候，我向你祷告。上帝啊，求你以你的大爱和信实拯救我。 &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/httpbibleusps6912ccb"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5874809094667740898?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">http://bible.us/Ps60.4-5.CCB</title>
		<link href="http://lamppurl.blogspot.com/2012/09/httpbibleusps604-5ccb.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-1705696646484480142</id>
		<updated>2012-09-27T23:45:59+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;但你赐给敬畏你的人旗帜，可以挡住箭羽(或译为可以为真理飘扬)。求你应允我们的祷告，伸出右手帮助我们，使你所爱的人获救。 诗篇 Ps60.4-5.CCB &lt;a href="http://bible.us/Ps60.4-5.CCB"&gt;http://bible.us/Ps60.4-5.CCB&lt;/a&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/httpbibleusps604-5ccb"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-1705696646484480142?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Romans 3:23-24</title>
		<link href="http://lamppurl.blogspot.com/2012/09/romans-323-24.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-1877531524765748553</id>
		<updated>2012-09-27T20:21:24+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;a href="http://bible.us/Rom3.23.CCB"&gt;http://bible.us/Rom3.23.CCB&lt;/a&gt; 因为世人都犯了罪，亏欠上帝的荣耀， 但蒙上帝的恩典，靠着基督耶稣的救赎，世人被无条件地称为义人。 &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/romans-323-24"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-1877531524765748553?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">?? 52:8-9 CCB</title>
		<link href="http://lamppurl.blogspot.com/2012/09/528-9-ccb.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-1533238742086091587</id>
		<updated>2012-09-27T03:20:33+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;我就像上帝殿中的一棵橄榄树，枝繁叶茂，我永永远远信靠上帝的慈爱。 上帝啊，我要永远赞美你的作为。我要在你忠心的子民面前仰望你美善的名。 &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/-528-9-ccb"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-1533238742086091587?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">诗篇 55:6-8, 16, 22 CCB</title>
		<link href="http://lamppurl.blogspot.com/2012/09/556-8-16-22-ccb.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5327509578849401546</id>
		<updated>2012-09-27T02:41:35+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;啊，但愿我能像鸽子展翅飞去，得享安息。 我要飞到远方，住在旷野。我要赶快躲进避难所，避过暴雨狂风。 但我要呼求耶和华上帝，祂必拯救我。 把你的重担卸给耶和华，祂必扶持你。祂必不让义人跌倒。 &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/556-8-16-22-ccb"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5327509578849401546?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">BJ Rental price as a chart</title>
		<link href="http://lamppurl.blogspot.com/2012/09/bj-rental-price-as-chart.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5686243064201960903</id>
		<updated>2012-09-19T16:55:27+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;      &lt;p align="left"&gt; &lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;a href="http://getfile4.posterous.com/getfile/files.posterous.com/purl/lqi4nHAIKhbIN7EKY7ernaRcrEB2cKjcOxMI3EXtITgmtwi5qeA7bFOinwT0/image001.jpg"&gt;&lt;img alt="Image001" height="289" src="http://getfile5.posterous.com/getfile/files.posterous.com/purl/m3xiugVKscW2CYkGiqLOOdsQ9xZWzQylLMxt4EvCGLublJQuGozIXgxLjH2v/image001.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/bj-rental-price-as-a-chart"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5686243064201960903?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">reCaptcha and lightbox and ajaxPost</title>
		<link href="http://fayland.me/javascript/2012/09/14/recaptcha-and-lightbox-and-ajaxpost" />
		<id>http://fayland.me/javascript/2012/09/14/recaptcha-and-lightbox-and-ajaxpost</id>
		<updated>2012-09-13T16:00:00+00:00</updated>
		<content type="html">sometimes, you want to do lightbox for Email Us or Contact Us page.&lt;div&gt;in this case, you don't want to include the recaptcha js in every page, you want to include it in the popup lightbox but here we have an issue that $(document).ready would be called while the google recaptcha js is not loaded. b/c document ready is just checking the original page instead of the lightbox. in this case, here is a common solution for every js loading (wait until that js loaded.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&amp;lt;script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; $(document).ready(function(){&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var reCaptcha_timer;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reCaptcha_timer = setInterval(function(){&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (typeof(Recaptcha) != 'undefined') {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clearInterval(reCaptcha_timer);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CreateReCaptcha();&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, 50);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; });&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; function CreateReCaptcha() {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Recaptcha.create("public_key_blabla", 'captcha-placeholder', {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; theme: "white",&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; callback: Recaptcha.focus_response_field&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; });&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;see we have a tricky that keep check if Recaptcha is inited (which will be done when recatpcha_ajax.js is loaded).&lt;/div&gt;&lt;div&gt;and only after it's loaded, we clear the check, and create the catpcha.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the trick works pretty good. but here is another issue, when the lightbox is loaded and user submits the form, and if some elements are wrong or captcha is wrong, that we need show captcha once again. it will be broken. b/c Recaptcha js variable is already defined, and Recaptcha.create will not working fine b/c it has something stored for previous captcha.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in this case, another tricky is much more simpler.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div&gt;// so that we can reload it&lt;/div&gt;&lt;div&gt;if (typeof(Recaptcha) != 'undefined') Recaptcha = undefined;&lt;/div&gt;&lt;div&gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;before load the js, we reset it so it works like it's the first time we are trying to create reCaptcha.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;those issue only happens on ajax lightbox load reCaptcha and ajaxPost the reCaptcha form.&lt;/div&gt;&lt;div&gt;stupid but works.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">MacOSx homebrew postgresql issue note</title>
		<link href="http://fayland.me/macosx/2012/09/12/macosx-homebrew-postgresql-issue-note" />
		<id>http://fayland.me/macosx/2012/09/12/macosx-homebrew-postgresql-issue-note</id>
		<updated>2012-09-11T16:00:00+00:00</updated>
		<content type="html">after brew install postgresql&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then run "initdb /usr/local/var/postgres -E utf8", may got:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;selecting default shared_buffers ... 400kB&lt;/div&gt;&lt;div&gt;creating configuration files ... ok&lt;/div&gt;&lt;div&gt;creating template1 database in /usr/local/var/postgres/base/1 ... FATAL: &amp;nbsp;could not create shared memory segment: Cannot allocate memory&lt;/div&gt;&lt;div&gt;DETAIL: &amp;nbsp;Failed system call was shmget(key=1, size=2138112, 03600).&lt;/div&gt;&lt;div&gt;HINT: &amp;nbsp;This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter. &amp;nbsp;You can either reduce the request size or reconfigure the kernel with larger SHMALL. &amp;nbsp;To reduce the request size (currently 2138112 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;The PostgreSQL documentation contains more information about shared memory configuration.&lt;/div&gt;&lt;div&gt;child process exited with exit code 1&lt;/div&gt;&lt;div&gt;initdb: removing data directory "/usr/local/var/postgres"&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;fixes as:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;~ &amp;nbsp;sudo sysctl -w kern.sysv.shmall=1024000&lt;/div&gt;&lt;div&gt;kern.sysv.shmall:&amp;nbsp;8192&amp;nbsp;-&amp;gt; 1024000&lt;/div&gt;&lt;div&gt;&amp;nbsp;~ &amp;nbsp;initdb /usr/local/var/postgres -E utf8&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then everything will move smoothly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;just for note.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Proverbs 21:23-24</title>
		<link href="http://lamppurl.blogspot.com/2012/08/proverbs-2123-24.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-7589172385740125495</id>
		<updated>2012-08-18T04:31:22+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p&gt;&lt;a href="http://bible.us/Prov21.23.CCB"&gt;http://bible.us/Prov21.23.CCB&lt;/a&gt; 管住口舌，免遭祸患。嘲讽者狂妄自大，行事骄横无比。&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/proverbs-2123-24"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-7589172385740125495?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">John 18:36</title>
		<link href="http://lamppurl.blogspot.com/2012/08/john-1836.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-4889210701317529305</id>
		<updated>2012-08-17T22:56:35+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p&gt;&lt;a href="http://bible.us/John18.36.CCB"&gt;http://bible.us/John18.36.CCB&lt;/a&gt; 耶稣答道：“我的国不属于这个世界，如果我的国属于这个世界，我的臣仆早就起来争战了，我也不会被交在犹太人的手里。但我的国不属于这个世界。”&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/john-1836"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-4889210701317529305?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">真理必叫你们得到自由</title>
		<link href="http://lamppurl.blogspot.com/2012/07/blog-post_03.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-2950276337127474649</id>
		<updated>2012-07-03T21:31:00+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;      &lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;The&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;Truth&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;Sets&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;You&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;Free&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;by Jon Walker&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;span&gt;“&lt;/span&gt;&lt;span&gt;Then you will know the truth, and the truth will set you free.” (John 8:32 NIV)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;b&gt;&lt;span&gt;你们必认识真理，真理必叫你们得到自由。 约翰福音 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;8:32 CCB&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Read this as a prayer today:&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;请你今天用祷告的方式来读：&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Jesus, you are the Truth, and the Truth sets me free. You are the Truth, and your Truth lives in me.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;耶稣，你是真理，而真理必要叫我得到自由。你是真理，而且你的真理就住在我的里面。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;I clothe myself in your Truth, Jesus, putting on the coat of a new self, “created to be like God in true righteousness and holiness” (Ephesians 4:24 NIV). You are “the way and the truth and the life,” and I am connected to God through you and you alone (John 14:6 NIV). Because of you, I know the Truth about who I am and I know that your life is working in me (Galatians 2:20).&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;耶稣，我让自己披戴你的真理，&lt;span&gt;“&lt;/span&gt;穿上照着上帝形象所造的新人。这新人有从真理而来的公义和圣洁。&lt;span&gt;”&lt;/span&gt;（以弗所书 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;4:24&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。你&lt;span&gt;“&lt;/span&gt;就是道路、真理、生命&lt;span&gt;”&lt;/span&gt;，而且我是靠你，也只能靠你，才能和上帝相连（约翰福音 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;14:6&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。因为你，我知道关于自己是谁的真相。我知道现在是你活在我的里面（加拉太书 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;2:20&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Truth enables me to discern and reject the lies of the enemy. Your Truth demolishes arguments and pretensions that are at war with the knowledge of God. In your Truth, I will “take captive every thought” and make it obedient to you (2 Corinthians 10:5 NIV). With your Truth, I will teach these thoughts to obey you, King Jesus (suggested by 2 Corinthians 10:5 MSG).&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;真理使我能明辨是非，拒绝仇敌的谎言。你的真理使那些阻碍人认识上帝的谬论和高傲言论都被击破。在你的真理中，我能&lt;span&gt;“&lt;/span&gt;夺回被掳去的心思意念，使其顺服基督&lt;span&gt;”&lt;/span&gt;（哥林多后书 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;10:5 CCB&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。在你的真理中，我要教导那些心思意念都去顺服你，认识你是主耶稣。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Your Truth says I’m forgiven, I’m loved by my Creator, and I’m God’s child, beloved and empowered by the Spirit of Truth.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;你的真理告诉我，自己是被赦免的，我是得造物主喜悦的，是神的爱子，也充满了圣灵的大能。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;The Truth enables me to respond to your direction. I can trust your leadership, I can trust your commands, and I can trust your plans because you are the Truth.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;这真理让我回应你的指引。我也能相信你的带领，我能信靠你的话语，我能坚信你的计划，因为你就是真理。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;I will leave it up to you to interpret the facts and determine the truth of any situation. I will let your Truth make the decisions, and then I will obey and leave the consequences in your loving, truth-filled hands.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;我会让你来告诉我事实真相是如何的，带我在每个状况中明辨是非。我会让你的真理替我做决定，然后我还要遵行这个决定，从而把自己放在你的慈爱和信实中。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;All the decisions are yours to make. Because you are Truth, I can respond in the Truth in all situations; I am no longer a slave to my emotions.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;所有的决定都是出于你。因为你是真理，我也决心在每个状况中以真理回应你，我不再是情绪的奴隶。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Jon Walker is managing editor of Rick Warren’s Daily Hope Devotionals. He is also the author of &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Costly&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Grace&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;: &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;A&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Contemporary&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;View&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;of&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Bonhoeffer&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;’&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;s&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; ‘&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;The&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Cost&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;of&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Discipleship&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;’&lt;/a&gt;&lt;/span&gt;&lt;span&gt; and &lt;/span&gt;&lt;span&gt;&lt;a href="http://bit.ly/nSqDts"&gt;In&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Visible&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt; &lt;a href="http://bit.ly/nSqDts"&gt;Fellowship&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;: &lt;/a&gt; &lt;a href="http://bit.ly/nSqDts"&gt;A&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Contemporary&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;View&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;of&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Bonhoeffer&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;'&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;s&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Classic&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt; &lt;a href="http://bit.ly/nSqDts"&gt;Work&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; ‘&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Life&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Together&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;’&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;This devotional &amp;copy; Copyright 2012 Jon Walker. All rights reserved. Used by permission.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/143320230"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-2950276337127474649?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">真理必叫你们得到自由</title>
		<link href="http://lamppurl.blogspot.com/2012/07/blog-post.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-7925474278093408508</id>
		<updated>2012-07-03T19:14:40+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;      &lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;The&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;Truth&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;Sets&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;You&lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt; &lt;/a&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=11110"&gt;Free&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;by Jon Walker&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;span&gt;“&lt;/span&gt;&lt;span&gt;Then you will know the truth, and the truth will set you free.” (John 8:32 NIV)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;b&gt;&lt;span&gt;你们必认识真理，真理必叫你们得到自由。 约翰福音 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;8:32 CCB&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Read this as a prayer today:&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;请你今天用祷告的方式来读：&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Jesus, you are the Truth, and the Truth sets me free. You are the Truth, and your Truth lives in me.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;耶稣，你是真理，而真理必要叫我得到自由。你是真理，而且你的真理就住在我的里面。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;I clothe myself in your Truth, Jesus, putting on the coat of a new self, “created to be like God in true righteousness and holiness” (Ephesians 4:24 NIV). You are “the way and the truth and the life,” and I am connected to God through you and you alone (John 14:6 NIV). Because of you, I know the Truth about who I am and I know that your life is working in me (Galatians 2:20).&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;耶稣，我让自己披戴你的真理，&lt;span&gt;“&lt;/span&gt;穿上照着上帝形象所造的新人。这新人有从真理而来的公义和圣洁。&lt;span&gt;”&lt;/span&gt;（以弗所书 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;4:24&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。你&lt;span&gt;“&lt;/span&gt;就是道路、真理、生命&lt;span&gt;”&lt;/span&gt;，而且我是靠你，也只能靠你，才能和上帝相连（约翰福音 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;14:6&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。因为你，我知道关于自己是谁的真相。我知道现在是你活在我的里面（加拉太书 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;2:20&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Truth enables me to discern and reject the lies of the enemy. Your Truth demolishes arguments and pretensions that are at war with the knowledge of God. In your Truth, I will “take captive every thought” and make it obedient to you (2 Corinthians 10:5 NIV). With your Truth, I will teach these thoughts to obey you, King Jesus (suggested by 2 Corinthians 10:5 MSG).&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;真理使我能明辨是非，拒绝仇敌的谎言。你的真理使那些阻碍人认识上帝的谬论和高傲言论都被击破。在你的真理中，我能&lt;span&gt;“&lt;/span&gt;夺回被掳去的心思意念，使其顺服基督&lt;span&gt;”&lt;/span&gt;（哥林多后书 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;10:5 CCB&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;）。在你的真理中，我要教导那些心思意念都去顺服你，认识你是主耶稣。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Your Truth says I’m forgiven, I’m loved by my Creator, and I’m God’s child, beloved and empowered by the Spirit of Truth.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;你的真理告诉我，自己是被赦免的，我是得造物主喜悦的，是神的爱子，也充满了圣灵的大能。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;The Truth enables me to respond to your direction. I can trust your leadership, I can trust your commands, and I can trust your plans because you are the Truth.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;这真理让我回应你的指引。我也能相信你的带领，我能信靠你的话语，我能坚信你的计划，因为你就是真理。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;I will leave it up to you to interpret the facts and determine the truth of any situation. I will let your Truth make the decisions, and then I will obey and leave the consequences in your loving, truth-filled hands.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;我会让你来告诉我事实真相是如何的，带我在每个状况中明辨是非。我会让你的真理替我做决定，然后我还要遵行这个决定，从而把自己放在你的慈爱和信实中。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;All the decisions are yours to make. Because you are Truth, I can respond in the Truth in all situations; I am no longer a slave to my emotions.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;span&gt;所有的决定都是出于你。因为你是真理，我也决心在每个状况中以真理回应你，我不再是情绪的奴隶。&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;Jon Walker is managing editor of Rick Warren’s Daily Hope Devotionals. He is also the author of &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Costly&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Grace&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;: &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;A&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Contemporary&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;View&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;of&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Bonhoeffer&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;’&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;s&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; ‘&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;The&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Cost&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;of&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt; &lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;Discipleship&lt;/a&gt;&lt;a href="http://www.amazon.com/gp/product/0891126767?ie=UTF8&amp;amp;tag=gracec-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0891126767"&gt;’&lt;/a&gt;&lt;/span&gt;&lt;span&gt; and &lt;/span&gt;&lt;span&gt;&lt;a href="http://bit.ly/nSqDts"&gt;In&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Visible&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt; &lt;a href="http://bit.ly/nSqDts"&gt;Fellowship&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;: &lt;/a&gt; &lt;a href="http://bit.ly/nSqDts"&gt;A&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Contemporary&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;View&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;of&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Bonhoeffer&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;'&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;s&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Classic&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt; &lt;a href="http://bit.ly/nSqDts"&gt;Work&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; ‘&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Life&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt; &lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;Together&lt;/a&gt;&lt;a href="http://bit.ly/nSqDts"&gt;’&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;This devotional &amp;copy; Copyright 2012 Jon Walker. All rights reserved. Used by permission.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/143320230"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-7925474278093408508?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Untitled</title>
		<link href="http://lamppurl.blogspot.com/2012/04/untitled.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-8489485822103012996</id>
		<updated>2012-04-29T06:41:15+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;div class="p_embed p_file_embed"&gt; &lt;a href="http://purl.posterous.com/127415335"&gt;&lt;img alt="" src="http://posterous.com/images/filetypes/pdf.png" /&gt;&lt;/a&gt; &lt;div class="p_embed_description"&gt; &lt;strong&gt;mcdonalds.pdf&lt;/strong&gt; &lt;a href="http://getfile2.posterous.com/getfile/files.posterous.com/purl/BFTshqJ9OrdUk3zbaVDaefKaggADQO1s5R451HA2MvznaLIiWDsDCHHza8TG/mcdonalds.pdf"&gt;Download this file&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://purl.posterous.com/127415335"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-8489485822103012996?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">MongoDB and Perl</title>
		<link href="http://fayland.me/perl/2012/04/26/mongodb-and-perl" />
		<id>http://fayland.me/perl/2012/04/26/mongodb-and-perl</id>
		<updated>2012-04-25T16:00:00+00:00</updated>
		<content type="html">it's really a pain to work with MongoDB in Perl. Perl has no 'type' so when you get INT value from DBI, it might be really "1" instead of int 1.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I got some data dumped from MySQL to MongoDB and found all the 'time' field is wrapped as "1335350669" instead of&amp;nbsp;1335350669.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and when you insert it from code like { time =&amp;gt; time() }, you really have&amp;nbsp;1335350670 instead of "1335350670". it breaks the sort. it breaks the deletion. it breaks everything.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;blabla, to fix that, we just need update it in mongodb like below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;PRIMARY&amp;gt; db.jobs.find().forEach(&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; function(job) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; job.time = parseInt(job.time);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; db.jobs.save(job);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; });&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;but it's still a pain. I didn't check MongoDBx::Class or&amp;nbsp;Mongoose yet, but Moose's type should be able to fix it I think.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">api and android app</title>
		<link href="http://fayland.me/perl/2012/04/14/api-and-android-app" />
		<id>http://fayland.me/perl/2012/04/14/api-and-android-app</id>
		<updated>2012-04-13T16:00:00+00:00</updated>
		<content type="html">I'm a fan of Android. even I like my iPad and MBP very much too.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd like to write an App for Android. and here is all the story.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;first of all, I need write an API which supports JSONP. since it would be very simple, I don't want to mix it up with Dancer. at last, I wrote something based on &lt;a href="https://github.com/stevan/webmachine-perl"&gt;webmachine-perl&lt;/a&gt;. I like the idea behind the webmachine. the chain design looks pretty nice. even I don't use that too much.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the code is at&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://github.com/fayland/findmjob.com/blob/master/api/app.psgi"&gt;https://github.com/fayland/findmjob.com/blob/master/api/app.psgi&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://github.com/fayland/findmjob.com/blob/master/api/lib/FindmJob/Resource.pm"&gt;https://github.com/fayland/findmjob.com/blob/master/api/lib/FindmJob/Resource.pm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and live demo as&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://api.findmjob.com/search?callback=jQuery171016797792096622288_1334322201618&amp;amp;q=perl&amp;amp;loc=&amp;amp;_=1334322214418"&gt;http://api.findmjob.com/search?callback=jQuery171016797792096622288_1334322201618&amp;amp;q=perl&amp;amp;loc=&amp;amp;_=1334322214418&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;after API is done. now comes the android app part. Sorry that I don't know much about Java. and I failed to download appmobi/jqmobi (the download never ends here). so at last I picked up&amp;nbsp;&lt;a href="http://phonegap.com/"&gt;phonegap&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the progress went pretty smooth. mixed with jQuery Mobile, I have it out after few hours.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;you can download it for fun from&amp;nbsp;&lt;a href="http://static.findmjob.com/FindmJob.apk"&gt;http://static.findmjob.com/FindmJob.apk&lt;/a&gt;&lt;/div&gt;&lt;div&gt;it's pretty simple, just with one JSONP request and not much different than the demo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;even there, I'd like to share the code with you:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://github.com/fayland/findmjob.com/blob/master/mobile/android/assets/www/index.html"&gt;https://github.com/fayland/findmjob.com/blob/master/mobile/android/assets/www/index.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://github.com/fayland/findmjob.com/blob/master/mobile/android/assets/www/mobile.coffee"&gt;https://github.com/fayland/findmjob.com/blob/master/mobile/android/assets/www/mobile.coffee&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;it's very cool and I'm excited! (badly Google costs 25$ for submitting it and I don't want to do it for now)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">sphinx search with varchar primary key</title>
		<link href="http://fayland.me/sphinx/2012/04/08/sphinx-search-with-varchar-primary-key" />
		<id>http://fayland.me/sphinx/2012/04/08/sphinx-search-with-varchar-primary-key</id>
		<updated>2012-04-07T16:00:00+00:00</updated>
		<content type="html">usually when you index the mysql data into sphinx, you'll use id int/bigint for the primary key. but it's broken for me on &lt;a href="http://findmjob.com/"&gt;http://findmjob.com/&lt;/a&gt;, we use uuid everywhere for the primary key.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;here is the solution for it. use&amp;nbsp;@id := @id + 1 for the indexer, and use&amp;nbsp;sql_field_string to get the real id when matched. &lt;a href="https://github.com/fayland/findmjob.com/blob/master/etc/sphinx.conf"&gt;sample code&lt;/a&gt; below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;sql_query_pre = SET NAMES utf8&lt;/div&gt;&lt;div&gt;sql_query_pre = SET @id := 1;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;sql_query&lt;span class="Apple-tab-span"&gt;		&lt;/span&gt;= \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; SELECT @id := @id + 1 AS tid, id, title, description, location, contact, inserted_at FROM job ORDER BY inserted_at DESC LIMIT 10000&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;sql_field_string = id&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;it requires latest sphinx to support&amp;nbsp;sql_field_string. and the latest CPAN module too.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and Perl code for it will be normal like before. and instead you use -&amp;gt;{doc}, you need use the attribtues -&amp;gt;{id} like&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;my @jobids = map { $_-&amp;gt;{id} } @{$ret-&amp;gt;{matches}};&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;so now we have sphinx search supports in my new site, eg:&amp;nbsp;&lt;a href="http://findmjob.com/search/Perl.html?q=Perl"&gt;http://findmjob.com/search/Perl.html?q=Perl&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Wildlife park, Beijing</title>
		<link href="http://lamppurl.blogspot.com/2012/04/wildlife-park-beijing.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-3243213250393068188</id>
		<updated>2012-04-05T14:11:06+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;div class="p_embed p_file_embed"&gt; &lt;a href="http://purl.posterous.com/wildlife-park-beijing"&gt;&lt;img alt="" src="http://posterous.com/images/filetypes/pdf.png" /&gt;&lt;/a&gt; &lt;div class="p_embed_description"&gt; &lt;strong&gt;pdfcreatorultimatefree_20120406_4.pdf&lt;/strong&gt; &lt;a href="http://getfile0.posterous.com/getfile/files.posterous.com/purl/wvl6PnLSHjZU8UpPJEv2UX2OBAvpmbLPpCC7JxHfnWaDcF2O2854inXbmmGc/pdfcreatorultimatefree_2012040.pdf"&gt;Download this file&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/wildlife-park-beijing"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-3243213250393068188?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">cidr2regexp.pl</title>
		<link href="http://lamppurl.blogspot.com/2012/04/cidr2regexppl.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5146116159881882214</id>
		<updated>2012-04-05T05:27:58+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p align="left"&gt;&lt;span&gt;$ cidr2regexp.pl 210.212.0.0/11&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;210\.((19[2-9])|(20[0-9])|(21[0-9])|(22[0-3]))&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$ cidr2regexp.pl 210.212.0.0/12&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;210\.((20[8-9])|(21[0-9])|(22[0-3]))&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$ cidr2regexp.pl 210.212.0.0/13&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;210\.((20[8-9])|(21[0-5]))&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#!/usr/bin/perl -l&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;BEGIN&lt;/span&gt;&lt;span&gt;{ (&lt;span&gt;$ip&lt;/span&gt;,&lt;span&gt;$bits&lt;/span&gt;)=&lt;span&gt;split&lt;/span&gt; &lt;span&gt;q(\/)&lt;/span&gt;, &lt;span&gt;shift&lt;/span&gt; }&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$bin_str&lt;/span&gt;&lt;span&gt;=&lt;span&gt;substr&lt;/span&gt;( (&lt;span&gt;join&lt;/span&gt; &lt;span&gt;qq()&lt;/span&gt;, &lt;span&gt;map {&lt;/span&gt; &lt;span&gt;sprintf&lt;/span&gt; &lt;span&gt;q(%08b)&lt;/span&gt;, &lt;span&gt;$_&lt;/span&gt; &lt;span&gt;}&lt;/span&gt; &lt;span&gt;split&lt;/span&gt; (&lt;span&gt;q(\.)&lt;/span&gt;, &lt;span&gt;$ip&lt;/span&gt;)), &lt;span&gt;0&lt;/span&gt;, &lt;span&gt;$bits&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;push&lt;/span&gt;&lt;span&gt; &lt;span&gt;@eight_bins&lt;/span&gt;, &lt;span&gt;$1&lt;/span&gt; &lt;span&gt;while&lt;/span&gt; &lt;span&gt;$bin_str&lt;/span&gt;=~&lt;span&gt;m{&lt;/span&gt;&lt;span&gt;(.&lt;/span&gt;&lt;span&gt;{1,8&lt;/span&gt;}&lt;span&gt;)&lt;/span&gt;&lt;span&gt;}g&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;@ddd&lt;/span&gt;&lt;span&gt; = &lt;span&gt;map {&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;if&lt;/span&gt; (&lt;span&gt;length&lt;/span&gt;(&lt;span&gt;$_&lt;/span&gt;) == &lt;span&gt;8&lt;/span&gt;) { &lt;span&gt;eval&lt;/span&gt; &lt;span&gt;qq(0b&lt;/span&gt;&lt;span&gt;$_&lt;/span&gt;&lt;span&gt;)&lt;/span&gt; }&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;else&lt;/span&gt; {&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[eval &lt;span&gt;qq(0b&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;substr&lt;/span&gt;(&lt;span&gt;$_&lt;/span&gt;.&lt;span&gt;q(0)&lt;/span&gt;x8,&lt;span&gt;0&lt;/span&gt;,&lt;span&gt;8&lt;/span&gt;)]})]&lt;span&gt;}&lt;/span&gt; .. &lt;span&gt;@{&lt;/span&gt;[eval &lt;span&gt;qq(0b&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;substr&lt;/span&gt;(&lt;span&gt;$_&lt;/span&gt;.&lt;span&gt;q(1)&lt;/span&gt;x8,&lt;span&gt;0&lt;/span&gt;,&lt;span&gt;8&lt;/span&gt;)]&lt;span&gt;}&lt;/span&gt;)]})&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; }&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;} &lt;span&gt;@eight_bins&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;END&lt;/span&gt;&lt;span&gt; {&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;do&lt;/span&gt; { &lt;span&gt;@digits&lt;/span&gt;=&lt;span&gt;split&lt;/span&gt; &lt;span&gt;q()&lt;/span&gt;, &lt;span&gt;$_&lt;/span&gt;; &lt;span&gt;$seen{&lt;/span&gt;&lt;span&gt;join&lt;/span&gt; &lt;span&gt;q()&lt;/span&gt;, &lt;span&gt;@digits[&lt;/span&gt;&lt;span&gt;0.&lt;/span&gt;.&lt;span&gt;$#digits&lt;/span&gt;-&lt;span&gt;1&lt;/span&gt;&lt;span&gt;]}&lt;/span&gt;.=&lt;span&gt;$digits[&lt;/span&gt;-&lt;span&gt;1&lt;/span&gt;&lt;span&gt;]&lt;/span&gt; }&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;for&lt;/span&gt; &lt;span&gt;eval&lt;/span&gt; &lt;span&gt;qq( &lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;grep {&lt;/span&gt; &lt;span&gt;m{&lt;/span&gt;&lt;span&gt;\.\.&lt;/span&gt;&lt;span&gt;}&lt;/span&gt; &lt;span&gt;}&lt;/span&gt;&amp;nbsp; &lt;span&gt;@ddd&lt;/span&gt;]&lt;span&gt;}&lt;/span&gt;&lt;span&gt; )&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;print&lt;/span&gt; &lt;span&gt;join&lt;/span&gt; &lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\\\.&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;, (&lt;span&gt;grep {&lt;/span&gt; !&lt;span&gt;m{&lt;/span&gt;&lt;span&gt;\.\.&lt;/span&gt;&lt;span&gt;}&lt;/span&gt; &lt;span&gt;}&lt;/span&gt; &lt;span&gt;@ddd&lt;/span&gt; ),&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;eval&lt;/span&gt; {&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;q{(}&lt;/span&gt;.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;join&lt;/span&gt; &lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\|&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;,&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;map {&lt;/span&gt;&lt;span&gt;qq((&lt;/span&gt;&lt;span&gt;$_&lt;/span&gt;&lt;span&gt;\[&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;substr&lt;/span&gt;(&lt;span&gt;$seen{$_}&lt;/span&gt;,&lt;span&gt;0&lt;/span&gt;,&lt;span&gt;1&lt;/span&gt;)&lt;span&gt;]}-&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;substr&lt;/span&gt;(&lt;span&gt;$seen{$_}&lt;/span&gt;,-&lt;span&gt;1&lt;/span&gt;,&lt;span&gt;1)&lt;/span&gt;]&lt;span&gt;}&lt;/span&gt;]))}&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;sort {&lt;/span&gt;&lt;span&gt;$a&lt;/span&gt;&amp;lt;=&amp;gt;&lt;span&gt;$b&lt;/span&gt;&lt;span&gt;}&lt;/span&gt; &lt;span&gt;keys&lt;/span&gt; &lt;span&gt;%seen&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;span&gt;q{)}&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;if&lt;/span&gt; &lt;span&gt;$ddd[&lt;/span&gt;-&lt;span&gt;1&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;=~&lt;span&gt;m{&lt;/span&gt;&lt;span&gt;\.\.&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;}&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/cidr2regexppl"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5146116159881882214?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">DBIx::Class with Moose has</title>
		<link href="http://fayland.me/perl/2012/04/04/dbixclass-with-moose-has" />
		<id>http://fayland.me/perl/2012/04/04/dbixclass-with-moose-has</id>
		<updated>2012-04-03T16:00:00+00:00</updated>
		<content type="html">well, I don't know how to name it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://metacpan.org/release/DBIx-Class"&gt;DBIx::Class&lt;/a&gt; is one of my&amp;nbsp;favorite modules. for its structure, with DBIx::Class you can make all your code very well&amp;nbsp;organized and clean. writing code with DBIx::Class means you can use it in framework like Catalyst or Mojo or Dancer, and you can use it in any perl script (cron usually). for me, DBIx::Class is the right model, TT2 is the right template, and framework is just for URL dispatch.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://metacpan.org/release/Moose"&gt;Moose&lt;/a&gt; is another module I like. Role, and clean OO.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;by using&amp;nbsp;DBIx::Class::Schema::Loader&amp;nbsp;make_schema_at, with&amp;nbsp;use_moose =&amp;gt; 1 on (eg:&amp;nbsp;&lt;a href="https://github.com/fayland/findmjob.com/blob/master/script/make_schema_at.pl"&gt;https://github.com/fayland/findmjob.com/blob/master/script/make_schema_at.pl&lt;/a&gt;), we can generate very clean Result module with Moose.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;sometimes you want make assessor based on the table column. like for each job in table, we all have a URL which is based on the id and title in the table, it's so related to those two fields, so we'd better to put it in the Result.&lt;/div&gt;&lt;div&gt;with DBIx::Class, it's very simple. (&lt;a href="https://github.com/fayland/findmjob.com/blob/master/lib/FindmJob/Schema/Result/Job.pm"&gt;sample code&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;package FindmJob::Schema::Result::Job;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;use FindmJob::Utils 'seo_title';&lt;/div&gt;&lt;div&gt;has 'url' =&amp;gt; ( is =&amp;gt; 'ro', isa =&amp;gt; 'Str', lazy_build =&amp;gt; 1 );&lt;/div&gt;&lt;div&gt;sub _build_url {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my ($self) = @_;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; return "/job/" . $self-&amp;gt;id . "/" . seo_title($self-&amp;gt;title) . ".html";&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;after that, we can always call $job-&amp;gt;url after we -&amp;gt;search for -&amp;gt;find it. very neat. live demo like:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://findmjob.com/job/Il2bUdB74RGuDaqxKQ5yzw/Senior-Perl-Developer.html"&gt;http://findmjob.com/job/Il2bUdB74RGuDaqxKQ5yzw/Senior-Perl-Developer.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;have fun. Thanks&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">findmjob.com</title>
		<link href="http://fayland.me/perl/2012/04/02/findmjobcom" />
		<id>http://fayland.me/perl/2012/04/02/findmjobcom</id>
		<updated>2012-04-01T16:00:00+00:00</updated>
		<content type="html">maybe to earn some money (not for fun this time), I decided to write a new website &lt;a href="http://findmjob.com/"&gt;http://findmjob.com/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I sit front of my computer and coded it for 2 days and here is it. it's out.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;it's very simple and without much stuff yet. and the final goal is undecided. but there it is. I'm very pleased to see it in public.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;since there is no reason to keep it private, I opened source it in github:&amp;nbsp;&lt;a href="https://github.com/fayland/findmjob.com"&gt;https://github.com/fayland/findmjob.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;for programmer, it's very simple to write website. but it's very hard to make it a success. so suggestions are welcome.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">better pagination url design in Dancer</title>
		<link href="http://fayland.me/perl/2012/04/02/better-pagination-url-design-in-dancer" />
		<id>http://fayland.me/perl/2012/04/02/better-pagination-url-design-in-dancer</id>
		<updated>2012-04-01T16:00:00+00:00</updated>
		<content type="html">usually People do param for pager like ?page=1 or ?p=1, it maybe not that good for search engine because they may not go scrape inside. so we may come out a solution with /page=1/ or /p=1/ or even /p.1/ etc.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in &lt;a href="http://search.cpan.org/perldoc?Dancer"&gt;Dancer&lt;/a&gt;, it's very tricky to do add pagination regex in all URLs. and thank God, we have 'forward' and with code like below, it becomes very simple and easy to use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perl code:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;get qr'.*?/p\.(\d+).*?' =&amp;gt; sub {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my $uri = request-&amp;gt;uri;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; $uri =~ s'/p\.(\d+)'';&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; var page =&amp;gt; $1;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; $uri =~ s/\/$//;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; forward $uri;&lt;/div&gt;&lt;div&gt;};&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;get '/' =&amp;gt; sub {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my $p = vars-&amp;gt;{page} || 1; $p = 1 unless $p =~ /^\d+$/;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;we use regex to get the page stuff, then remove it from the request uri then using &lt;b&gt;forward&lt;/b&gt;&amp;nbsp;to do a internal request.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the TT2 pager code can check at&amp;nbsp;&lt;a href="https://github.com/fayland/findmjob.com/blob/master/templates/pager.tt"&gt;https://github.com/fayland/findmjob.com/blob/master/templates/pager.tt&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;live demo as:&amp;nbsp;&lt;a href="http://findmjob.com/tag/perl/"&gt;http://findmjob.com/tag/perl&lt;/a&gt;/ and&amp;nbsp;&lt;a href="http://findmjob.com/tag/perl/p.2/"&gt;http://findmjob.com/tag/perl/p.2/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;have fun.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Net-GitHub-0.43_01</title>
		<link href="http://fayland.me/perl/2012/03/30/net-github-043-01" />
		<id>http://fayland.me/perl/2012/03/30/net-github-043-01</id>
		<updated>2012-03-29T16:00:00+00:00</updated>
		<content type="html">Github is &lt;a href="https://github.com/blog/1090-github-api-moving-on"&gt;moving on with their API&lt;/a&gt; that "We will terminate API v1 and API v2 in 1 month on May 1st, 2012.".&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I know lots of people are preferring that they want token instead of writing user/pass in the config or code.&lt;/div&gt;&lt;div&gt;and now we have the choice with create access_token with code instead of web flow.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;it's time to kick Net::GitHub default to V3 now. so here comes the beta release. and tests/patches are welcome.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://fayland.org/CPAN/Net-GitHub-0.43_01.tar.gz"&gt;http://fayland.org/CPAN/Net-GitHub-0.43_01.tar.gz&lt;/a&gt;&amp;nbsp;(it will be on CPAN soon too)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tips to create access_token with script:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;use Net::GitHub;&lt;/div&gt;&lt;div&gt;my $gh = Net::GitHub-&amp;gt;new( login =&amp;gt; 'fayland', pass =&amp;gt; 'secret' );&lt;/div&gt;&lt;div&gt;my $oauth = $gh-&amp;gt;oauth;&lt;/div&gt;&lt;div&gt;my $o = $oauth-&amp;gt;create_authorization( {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; scopes =&amp;gt; ['user', 'public_repo', 'repo', 'gist'], # just ['public_repo']&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; note &amp;nbsp; =&amp;gt; 'test purpose',&lt;/div&gt;&lt;div&gt;} );&lt;/div&gt;&lt;div&gt;print $o-&amp;gt;{token};&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;record the token down, and later on we can always use that token without writing down user/pass.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;my $github = Net::GitHub-&amp;gt;new(&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; access_token =&amp;gt; $token, # from above&lt;/div&gt;&lt;div&gt;);&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Heartfelt man</title>
		<link href="http://lamppurl.blogspot.com/2012/03/heartfelt-man.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-8598823882597705755</id>
		<updated>2012-03-16T01:50:01+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p&gt;&lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;img alt="Image001" height="217" src="http://getfile5.posterous.com/getfile/files.posterous.com/purl/7X4iwmYXeGuTvTqT3llzMoMnApx54gFW4beelBI4toZL1SulBcpyfTwdW71o/image001.png" width="232" /&gt; &lt;/div&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/heartfelt-man"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-8598823882597705755?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">在　神我们的父面前，那清洁没有玷污的虔诚，就是看顾在患难中的孤儿寡妇，并且保守自己不沾染世俗。 http://bible.us/jas1.27.cunpss</title>
		<link href="http://lamppurl.blogspot.com/2012/02/httpbibleusjas127cunpss.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-2698578165316425564</id>
		<updated>2012-02-26T06:39:45+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/httpbibleusjas127cunpss"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-2698578165316425564?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Split inside specific column and expend to key-value extractor</title>
		<link href="http://lamppurl.blogspot.com/2012/01/split-inside-specific-column-and-expend.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-1981084415705038622</id>
		<updated>2012-01-19T02:03:20+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;col2kv ()&lt;br /&gt;{&lt;br /&gt;    perl -F\\t -lane 'BEGIN{ $i=shift; @h=split q(,), shift; print STDERR join qq(\t), @h } %k=map { @{[split(q(:), $_)]}[0,1] } split q(, ), $F[$i]; print join qq(\t), map { $k{$_} } @h' $*&lt;br /&gt;}&lt;p&gt;&lt;/p&gt; $ echo 2010Q1:H, 2007:Y, 2009:Y| col2kv 0 2006,2007,2008,2009,2010Q1,2010Q2 2&amp;gt;&amp;amp;1| row2col&lt;br /&gt;2006&lt;br /&gt;2007    Y&lt;br /&gt;2008&lt;br /&gt;2009    Y&lt;br /&gt;2010Q1  H&lt;br /&gt;2010Q2 &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/split-inside-specific-column-and-expend-to-ke"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-1981084415705038622?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">How to make group_by_in_perl?</title>
		<link href="http://lamppurl.blogspot.com/2012/01/how-to-make-groupbyinperl.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-8078227970027398499</id>
		<updated>2012-01-06T22:42:31+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;$ typeset -f group_by_in_perl&lt;br /&gt;group_by_in_perl ()&lt;br /&gt;{&lt;br /&gt;    perl -F\\t -lane 'BEGIN{$group_by=shift; $sum_by=shift} END { print for map{ join qq(\t), $_, $sum{$_}} keys %sum } $sum{join qq(\t), @F[eval($group_by)]} += $F[eval($sum_by)]' $*&lt;br /&gt; } &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/how-to-make-groupbyinperl"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-8078227970027398499?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">BJ in snowing</title>
		<link href="http://lamppurl.blogspot.com/2012/01/bj-in-snowing.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-4665279036938910196</id>
		<updated>2012-01-06T20:54:40+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt; &lt;p&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;a href="http://getfile4.posterous.com/getfile/files.posterous.com/purl/YjYsCFQxE5zqIBfjAkIYffjTyjtGnUGmeAnovPNpjhBrosgUyhg5jK9W0ZeV/snow2.jpg.scaled.1000.jpg"&gt;&lt;img alt="Snow2" height="375" src="http://getfile2.posterous.com/getfile/files.posterous.com/purl/hFNxE6SYJmpoX2qxcIDdFobr9zQCZdXOjYvHyXaFIFLGtSTBTAxPc2tlBDTH/snow2.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;a href="http://getfile0.posterous.com/getfile/files.posterous.com/purl/GsfrTO9sInwMRVI4lOCA7tTHMpLXwnt5vFRDdLAi3ahQv3DeZts3EfOQGzou/snowing.jpg.scaled.1000.jpg"&gt;&lt;img alt="Snowing" height="375" src="http://getfile8.posterous.com/getfile/files.posterous.com/purl/jV5PgzPgsxEFy2h4dckyoGiXqvsg0BdkwMUC9cqpgN2SHS85Ib4S2sCZwU5L/snowing.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;div class="p_see_full_gallery"&gt;&lt;a href="http://purl.posterous.com/bj-in-snowing"&gt;See the full gallery on Posterous&lt;/a&gt;&lt;/div&gt; &lt;/div&gt; &lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/bj-in-snowing"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-4665279036938910196?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">xml-table-maker for Windows</title>
		<link href="http://lamppurl.blogspot.com/2011/12/xml-table-maker-for-windows.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-8388512997429292770</id>
		<updated>2011-12-27T01:22:08+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;@echo off&lt;br /&gt;perl -e &amp;quot;use Win32::Clipboard; use DBIx::XHTML_Table; Win32::Clipboard::Set(DBIx::XHTML_Table-&amp;gt;new(q(dbi:Oracle),qq(@ARGV))-&amp;gt;exec_query(eval &amp;lt;STDIN&amp;gt;)-&amp;gt;modify(table=&amp;gt;{border=&amp;gt;1, bordercolor=&amp;gt; q(#888888), cellspacing=&amp;gt;0})-&amp;gt;output())&amp;quot; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/xml-table-maker-for-windows"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-8388512997429292770?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Plack::Middleware::FileWrap</title>
		<link href="http://fayland.me/perl/2011/12/04/plackmiddlewarefilewrap" />
		<id>http://fayland.me/perl/2011/12/04/plackmiddlewarefilewrap</id>
		<updated>2011-12-03T16:00:00+00:00</updated>
		<content type="html">&lt;div&gt;When you really go coding, you'll meet lots of issues. then you'll write solution for them. that's straight.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today I have another CPAN module &lt;a href="http://search.cpan.org/dist/Plack-Middleware-FileWrap/"&gt;Plack::Middleware::FileWrap&lt;/a&gt; out to fit my demand: I'll have lots of plain HTML files, they'll share the same header/footer and I don't want to use stupid iframe.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;under Plack, it just means wrap $res-&amp;gt;[2] with file content or strings.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;so here comes Plack::Middleware::FileWrap, very simple if you looked at the &lt;a href="https://github.com/fayland/Plack-Middleware-FileWrap/blob/master/lib/Plack/Middleware/FileWrap.pm"&gt;source code&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then I used it in the KinderGarden project, with snippets:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; mount '/static/docs/' =&amp;gt; builder {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enable 'FileWrap', headers =&amp;gt; ["$root/static/docs/header.html"], footers =&amp;gt; ["$root/static/docs/footer.html"];&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Plack::App::File-&amp;gt;new( root =&amp;gt; "$root/static/docs" )-&amp;gt;to_app;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; },&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Live demo as &lt;a href="http://kindergarden.fayland.org/static/docs/TestLocally.html"&gt;http://kindergarden.fayland.org/static/docs/TestLocally.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;now all the files under static/docs will wrapped with header.html and footer.html (header.html/footer.html itself too!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;for some advanced example, like if you just want to apply to html files, then you can code something like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; mount '/static/docs/' =&amp;gt; builder {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enable_if { $_[0]-&amp;gt;{PATH_INFO} =~ /\.html/ } 'FileWrap',&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; headers =&amp;gt; ["$root/static/docs/header.html"], footers =&amp;gt; ["$root/static/docs/footer.html"];&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Plack::App::File-&amp;gt;new( root =&amp;gt; "$root/static/docs" )-&amp;gt;to_app;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; },&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I didn't put the Content-Type check b/c I think it's better to be handled with enable_if.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy. Thanks&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">git submodule</title>
		<link href="http://fayland.me/linux/2011/12/03/git-submodule" />
		<id>http://fayland.me/linux/2011/12/03/git-submodule</id>
		<updated>2011-12-02T16:00:00+00:00</updated>
		<content type="html">When you include another open source in your own project, it's usually pretty hard to keep it up to date. it becomes even more harder if you have some modification on it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;recently I have &lt;a href="https://github.com/twitter/bootstrap"&gt;bootstrap&lt;/a&gt;&amp;nbsp;in my &lt;a href="https://github.com/PerlChina/kindergarden"&gt;KinderGarden&lt;/a&gt;&amp;nbsp;project, it's very easy to use git submodule to handle it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;kindergarden&amp;gt; git submodule add https://github.com/twitter/bootstrap.git static/bootstrap&lt;/div&gt;&lt;/div&gt;&lt;div&gt;kindergarden&amp;gt; git add .gitmodules static/bootstrap&lt;/div&gt;&lt;div&gt;kindergarden&amp;gt; git commit -a -m "remote bootstrap"&lt;/div&gt;&lt;div&gt;kindergarden&amp;gt; git push&lt;/div&gt;&lt;div&gt;&lt;div&gt;kindergarden&amp;gt; git submodule init&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in delopy or other machine:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;kindergarden$ git submodule init&lt;/div&gt;&lt;div&gt;kindergarden$ git submodule update&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;pretty easy and simple, and the logic behind is simple too. reference as &lt;a href="http://help.github.com/submodules/"&gt;http://help.github.com/submodules/&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://progit.org/book/ch6-6.html"&gt;http://progit.org/book/ch6-6.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BTW, I added Live.com OAuth2 supports to KinderGarden.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy. Thanks&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">2011 CN Perl Advent</title>
		<link href="http://fayland.me/perl/2011/12/01/2011-cn-perl-advent" />
		<id>http://fayland.me/perl/2011/12/01/2011-cn-perl-advent</id>
		<updated>2011-11-30T16:00:00+00:00</updated>
		<content type="html">Hi, it's time for advent again!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and here it is:&amp;nbsp;&lt;a href="http://perlchina.github.com/advent.perlchina.org/"&gt;http://perlchina.github.com/advent.perlchina.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the repos is at&amp;nbsp;&lt;a href="https://github.com/PerlChina/advent.perlchina.org"&gt;https://github.com/PerlChina/advent.perlchina.org&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy!&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">我们为你们所存的盼望是确定的</title>
		<link href="http://lamppurl.blogspot.com/2011/11/blog-post.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-3580846780510261983</id>
		<updated>2011-11-29T20:20:57+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;img alt="Screen_20111130_121352" height="320" src="http://getfile6.posterous.com/getfile/files.posterous.com/purl/coMXcTBLKBqQemwico47TyVglSelyjIope4IhLiXq5zYAk7mUpkHkwVG15AL/Screen_20111130_121352.jpg" width="480" /&gt; &lt;/div&gt;  &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/82770206"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-3580846780510261983?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">PDC: 圣经说，爱是个习惯</title>
		<link href="http://lamppurl.blogspot.com/2011/11/pdc.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-9076248739745197379</id>
		<updated>2011-11-29T18:52:23+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;div align="center"&gt;&lt;table class="MsoNormalTable" border="0" width="590"&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;table class="MsoNormalTable" border="0" width="575"&gt;&lt;tr&gt;&lt;td valign="top" width="300"&gt;&lt;p&gt;&lt;span&gt;Tuesday, November 29, 2011&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="135"&gt;&lt;p align="right"&gt;&lt;span&gt;&lt;a href="http://www.facebook.com/sharer.php?u=http://purposedriven.com/blogs/dailyhope/index.html?contentid=9466" target="_blank"&gt;&lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;img alt="Image001" height="18" src="http://getfile0.posterous.com/getfile/files.posterous.com/purl/iDFVxVfgDB9odtg3kYkZlxgFkmvLvqyCIXxWzfUNOK6JBo6dsxSRPfPA4HCF/image001.jpg" width="60" /&gt; &lt;/div&gt; &lt;/span&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/share?_=1299044753369&amp;amp;count=vertical&amp;amp;original_referer=http%3A//www.purposedriven.com/blogs/dailyhope/index.html?contentid=9466&amp;amp;text=The%20Bible%20Says%20Love%20Is%20a%20Habit%20#saddleback%20@youmatter2god&amp;amp;url=http%3A//purposedriven.com/blogs/dailyhope/index.html?contentid=9466" target="_blank"&gt;&lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;img alt="Image002" height="18" src="http://getfile4.posterous.com/getfile/files.posterous.com/purl/wkX7x1EdBhfLHtAhn9WHeeYFcOiFkegDrYhqrWLeuPkuRXkxRjDaBtNkPGj2/image002.jpg" width="55" /&gt; &lt;/div&gt; &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=9466" target="_blank"&gt;&lt;span&gt;The Bible Says Love Is a Habit &lt;/span&gt;&lt;span&gt;&lt;span&gt;圣经说，爱是个习惯&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;by Rick Warren&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;p&gt;&lt;span&gt;“If you love those who love you, what credit is that to you? Even sinners love those who love them.” (Luke 6:32 NIV)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;你们若单爱那爱你们的人，有什么可酬谢的呢？就是罪人也爱那爱他们的人。路加福音&lt;/span&gt;&lt;span&gt; 6:32&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;If you only love on and off like a light switch, you do not love others like God wants you to love. Jesus said, “If you only love those who love you, what credit is that to you?” (Luke 6:32a NIV)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;如果你的爱像电灯一样时开时关，那么你就没有按照神的心意去（活出�的）爱了。所以，耶稣这样说：&lt;span&gt;“&lt;/span&gt;你们若单爱那爱你们的人，有什么可酬谢的呢？&lt;span&gt;”&lt;/span&gt;（路加福音&lt;span&gt; 6:32&lt;/span&gt;）&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;His point is this: All of us can love those who love us back. Becoming a master lover means you learn to love the unlovable � when you love people who don’t love you, when you love people who irritate you, when you love people who stab you in the back or gossip about you. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;他的意思是：我们每个人都能做的，就是爱那些知恩图报的人。而你若想要成为一个有博爱之心的人，就得学着去爱那些不可爱的人。也就是，去爱那些不爱你的人，包括那些常常触怒你的人，或是那些在你背后指指点点、说长道短的人。&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;This may seem like an impossible task, and it is � that’s why we need God’s love in us, so we can then love others: “We know and rely on the love God has for us” (1 John 4:16a NIV).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;如果这听上去有点象天方夜谭，那你其实是清醒的。因为，无私的付出爱，并且一味的坚持，这真的需要神的爱先充满我们的心。所以，圣经这样说：&lt;span&gt;“&lt;/span&gt;神爱我们的心，我们也知道也信&lt;span&gt;”&lt;/span&gt;（约翰一书&lt;span&gt; 4:16&lt;/span&gt;）。&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;When you realize how much God loves you � with an extravagant, irresistible, unconditional love � then his love will change your entire focus on life. If we don’t receive God’s love for us, we’ll have a hard time loving other people. I’m talking about loving people who are unlovely, difficult, irritable, and those who are different or demanding. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;当你认识到神对自己的爱有多么丰盛、多么的坚忍、多么的无私，那么�的爱就能改变你对生命的关注点。如果我们不去接受神给我们的爱，那么关爱他人就是一件太难太难的事。注意，这里我们说的仍然是爱那些不可爱的、满是困难的、易于激怒人的、与常人迥异的、常常不满足的人。&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;You can’t do that until you have God’s love coming through you. You need to know God’s love so it can overflow out of your life into others.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;没有神的爱在你心里运行，这些就真的太难了。你必须去认识神的爱，这样你的心里才能充满�的爱，直到这爱开始满溢，涌流出来，进入他人的生命中。&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/pdc-67967"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-9076248739745197379?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">KinderGarden</title>
		<link href="http://fayland.me/perl/2011/11/27/kindergarden" />
		<id>http://fayland.me/perl/2011/11/27/kindergarden</id>
		<updated>2011-11-26T16:00:00+00:00</updated>
		<content type="html">as talked yesterday, I get it uploaded into github. well, under PerlChina.&amp;nbsp;&lt;a href="https://github.com/PerlChina/kindergarden"&gt;https://github.com/PerlChina/kindergarden&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I really want to draw more people to add more features and fix more bugs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and I added one new feature with &lt;a href="http://mojolicio.us/"&gt;Mojolicious&lt;/a&gt;&amp;nbsp;which is&amp;nbsp;&lt;a href="http://kindergarden.fayland.org/app/whereilive"&gt;http://kindergarden.fayland.org/app/whereilive&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;feel free to view the source and let me know what you think!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Dancer::Template::Xslate</title>
		<link href="http://fayland.me/perl/2011/11/26/dancertemplatexslate" />
		<id>http://fayland.me/perl/2011/11/26/dancertemplatexslate</id>
		<updated>2011-11-25T16:00:00+00:00</updated>
		<content type="html">I'm writing some toy once again with Plack and Dancer (and Mojo later).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;this time, I'm playing &lt;a href="http://search.cpan.org/perldoc?Plack::Middleware::OAuth"&gt;Plack::Middleware::OAuth&lt;/a&gt; and &lt;a href="http://search.cpan.org/perldoc?Dancer::Template::Xslate"&gt;Dancer::Template::Xslate&lt;/a&gt; a bit. the website is&amp;nbsp;&lt;a href="http://kindergarden.fayland.org/"&gt;http://kindergarden.fayland.org/&lt;/a&gt;&amp;nbsp;and I'll open source it if someone is interested. for now, it's just 'Login with ...' OAuth and nothing else. (layout is built with&amp;nbsp;&lt;a href="http://twitter.github.com/bootstrap/"&gt;twitter bootstrap&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the Dancer::Template::Xslate has some bugs and I tried to submit few commits through github to fix it. (at least it's working for me now)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;here is a tip to add function like&amp;nbsp;gravatar into Xslate within Dancer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;problem as &lt;a href="http://search.cpan.org/perldoc?Text::Xslate"&gt;Text::Xslate&lt;/a&gt; supports &lt;b&gt;function&lt;/b&gt; param when -&amp;gt;new but Dancer YAML config can't have Perl code inside. and it's very tricky or hard to fix the engine 'template' b/c we can never modify it. it has 'my $_engine;' inside code and you can't modify it at all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;after a while, I find a good solution with the &lt;b&gt;module&lt;/b&gt; param of the Text::Xslate. it's very neat. sample code as below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;# config.yml&lt;/div&gt;&lt;div&gt;template: xslate&lt;/div&gt;&lt;div&gt;engines:&lt;/div&gt;&lt;div&gt;&amp;nbsp; xslate:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; syntax: 'TTerse'&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; extension: 'tt'&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; header:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 'layout/header.tt'&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; footer:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 'layout/footer.tt'&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; module:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - KinderGardenX::Text::Xslate::Bridge::KinderGarden&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;#&amp;nbsp;KinderGardenX::Text::Xslate::Bridge::KinderGarden&lt;/div&gt;&lt;div&gt;&lt;div&gt;package KinderGardenX::Text::Xslate::Bridge::KinderGarden;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;use strict;&lt;/div&gt;&lt;div&gt;use warnings;&lt;/div&gt;&lt;div&gt;use parent qw(Text::Xslate::Bridge);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;use Gravatar::URL;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;my %funtion_methods = (&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; gravatar_url =&amp;gt; \&amp;amp;gravatar_url,&lt;/div&gt;&lt;div&gt;);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;__PACKAGE__-&amp;gt;bridge(&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; function =&amp;gt; \%funtion_methods,&lt;/div&gt;&lt;div&gt;);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# template&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;img src="[% gravatar_url( email =&amp;gt; user.email, size =&amp;gt; 30) %]" /&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;img src="[% gravatar_url( email =&amp;gt; user.email, size =&amp;gt; 50) %]" /&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;img src="[% gravatar_url( email =&amp;gt; user.email) %]" /&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;Note there is always more than one way to do it.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">new baby</title>
		<link href="http://fayland.me/life/2011/11/08/new-baby" />
		<id>http://fayland.me/life/2011/11/08/new-baby</id>
		<updated>2011-11-07T16:00:00+00:00</updated>
		<content type="html">I'm very happy to share the good news with all the world. my second kid, another boy, was born today. 9:45am Beijing Time, Nov 8th, 2011. 2800g. and everything is good. Thanks.</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Psalm 16:7</title>
		<link href="http://lamppurl.blogspot.com/2011/11/psalm-167.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-979641135720945415</id>
		<updated>2011-11-06T17:31:36+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;I praise you, Lord , for being my guide. Even in the darkest night, your teachings fill my mind. &lt;p&gt;&lt;/p&gt;  &lt;a href="http://bible.us/Ps16.7.CEV"&gt;http://bible.us/Ps16.7.CEV&lt;/a&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/psalm-167"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-979641135720945415?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">po4a for the translation of Perldoc</title>
		<link href="http://lamppurl.blogspot.com/2011/10/po4a-for-translation-of-perldoc.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-920740362384555486</id>
		<updated>2011-10-25T23:55:43+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p&gt;&lt;span&gt;To make a translation of perldoc, use the tool named po4a&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;[jjiang@fedora14 ~]$ pmvers Locale::Po4a::TransTractor&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;0.41&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;[jjiang@fedora14 ~]$ po4a-gettextize --help-format&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;List of valid formats:&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - dia: uncompressed Dia diagrams.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - docbook: DocBook XML.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - guide: Gentoo Linux's XML documentation format.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - ini: INI format.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - kernelhelp: Help messages of each kernel compilation option.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - latex: LaTeX format.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - man: Good old manual page format.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - pod: Perl Online Documentation format.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - sgml: either DebianDoc or DocBook DTD.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - texinfo: The info page format.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - tex: generic TeX documents (see also latex).&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - text: simple text document.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - wml: WML documents.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - xhtml: XHTML documents.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; - xml: generic XML documents (see also docbook).&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;[jjiang@fedora14 ~]$ perldoc -l perlretut&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;/usr/share/perl5/pod/perlretut.pod&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;[jjiang@fedora14 ~]$ po4a-gettextize -f pod -m $(perldoc -l perlretut) | tee perlretut.po | wc -l&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;5155&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;[jjiang@fedora14 ~]$ vim perlretut.po&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;…&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#. type: =head1&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#: /usr/share/perl5/pod/perlretut.pod:1&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgid &lt;/span&gt;&lt;span&gt;&amp;quot;NAME&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgstr &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;名称&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#. type: textblock&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#: /usr/share/perl5/pod/perlretut.pod:3&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgid &lt;/span&gt;&lt;span&gt;&amp;quot;perlretut - Perl regular expressions tutorial&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgstr &lt;/span&gt;&lt;span&gt;&amp;quot;perlretut - Perl &lt;/span&gt;&lt;span&gt;正则表达式指南&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#. type: =head1&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#: /usr/share/perl5/pod/perlretut.pod:5&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgid &lt;/span&gt;&lt;span&gt;&amp;quot;DESCRIPTION&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgstr &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;简介&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#. type: textblock&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#: /usr/share/perl5/pod/perlretut.pod:7&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgid &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;This page provides a basic tutorial on understanding, creating and using &amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;regular expressions in Perl.&amp;nbsp; It serves as a complement to the reference &amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;page on regular expressions L&lt;/span&gt;&lt;span&gt;&amp;lt;perlre&amp;gt;&lt;/span&gt;&lt;span&gt;.&amp;nbsp; Regular expressions are an integral &amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;part of the C&lt;/span&gt;&lt;span&gt;&amp;lt;m//&amp;gt;&lt;/span&gt;&lt;span&gt;, C&lt;/span&gt;&lt;span&gt;&amp;lt;s///&amp;gt;&lt;/span&gt;&lt;span&gt;, C&lt;/span&gt;&lt;span&gt;&amp;lt;qr//&amp;gt;&lt;/span&gt;&lt;span&gt; and C&lt;/span&gt;&lt;span&gt;&amp;lt;split&amp;gt;&lt;/span&gt;&lt;span&gt; operators and so this &amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;tutorial also overlaps with L&lt;/span&gt;&lt;span&gt;&amp;lt;perlop/\&amp;quot;Regexp Quote-Like Operators\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt; and &amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;L&lt;/span&gt;&lt;span&gt;&amp;lt;perlfunc/split&amp;gt;&lt;/span&gt;&lt;span&gt;.&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;msgstr &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;这篇文章用来介绍&lt;/span&gt;&lt;span&gt; Perl &lt;/span&gt;&lt;span&gt;正则表达式的解读、编写和使用方面的基础知识。相对于&lt;/span&gt;&lt;span&gt; &lt;span&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;perlre&amp;gt; &lt;/span&gt;&lt;span&gt;中的介绍来说，这篇文章更加侧重于提供一些增补知识。正则表达式，它是&lt;/span&gt;&lt;span&gt; &lt;span&gt;C&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;m//&amp;gt;&lt;/span&gt;&lt;span&gt;, C&lt;/span&gt;&lt;span&gt;&amp;lt;s///&amp;gt;&lt;/span&gt;&lt;span&gt;, C&lt;/span&gt;&lt;span&gt;&amp;lt;qr//&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;和&lt;/span&gt;&lt;span&gt; C&lt;/span&gt;&lt;span&gt;&amp;lt;split&amp;gt; &lt;/span&gt;&lt;span&gt;这些操作符的主要兴趣所在，因此&lt;/span&gt;&lt;span&gt;L&lt;/span&gt;&lt;span&gt;&amp;lt;perlop/\&amp;quot;Regexp Quote-Like Operators\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;和&lt;/span&gt;&lt;span&gt; &lt;span&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;perlfunc/split&amp;gt; &lt;/span&gt;&lt;span&gt;里面也有许多相关的描述。&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;…&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;[jjiang@fedora14 ~]$ po4a-translate -k 0 -f pod -m $(perldoc -l perlretut) -p perlretut.po | less&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;a href="http://getfile7.posterous.com/getfile/files.posterous.com/purl/3bHlUJzfDaQuRe48OJy4D9aYnfrfwzm4g1AcBCdGIunpDDlHrO2LCHj1SrjG/image001.png"&gt;&lt;img alt="Image001" height="272" src="http://getfile8.posterous.com/getfile/files.posterous.com/purl/yFw4Mt5wUsrxfrHjysMpITlO568ZFvKSUEYZg8eDHN9xTTc848JQB4E1EfI0/image001.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/po4a-for-the-translation-of-perldoc"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-920740362384555486?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Non-stop debugging of perl programs</title>
		<link href="http://lamppurl.blogspot.com/2011/10/non-stop-debugging-of-perl-programs.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-1280400404647633326</id>
		<updated>2011-10-20T23:13:04+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;$ PERLDB_OPTS=&amp;quot;NonStop frame=31&amp;quot; perl -dle 'sub abc { return $_[0] + 1 } print join qq(\t), abc(0), abc(1+2)'&lt;br /&gt;Package -e.&lt;br /&gt;in  @=main::abc(0) from -e:1&lt;br /&gt;out @=main::abc(0) from -e:1&lt;br /&gt;list context return from main::abc:&lt;br /&gt; 0  1&lt;br /&gt;in  @=main::abc(3) from -e:1&lt;br /&gt;out @=main::abc(3) from -e:1&lt;br /&gt;list context return from main::abc:&lt;br /&gt;0  4&lt;br /&gt;1       4 &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/non-stop-debugging-of-perl-programs"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-1280400404647633326?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">PDC:慷慨也是信心的表现</title>
		<link href="http://lamppurl.blogspot.com/2011/10/pdc.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-6723570112325443125</id>
		<updated>2011-10-19T18:41:47+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;table class="MsoNormalTable" border="0" width="590"&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;table class="MsoNormalTable" border="0" width="575"&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;span&gt;Wednesday, October 19, 2011&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" width="135"&gt;&lt;p align="right"&gt;&lt;span&gt;&lt;a href="http://www.facebook.com/sharer.php?u=http://purposedriven.com/blogs/dailyhope/index.html?contentid=9039" target="_blank"&gt;&lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;img alt="Image001" height="18" src="http://posterous.com/getfile/files.posterous.com/purl/xyMh8qrJarjvb477nCfnENVVIWtUKecMuGxCieE02TznHRKVGNeyrMPlhbbr/image001.jpg" width="60" /&gt; &lt;/div&gt; &lt;/span&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/share?_=1299044753369&amp;amp;count=vertical&amp;amp;original_referer=http%3A//www.purposedriven.com/blogs/dailyhope/index.html?contentid=9039&amp;amp;text=Generosity%20is%20a%20Matter%20of%20Faith%20#saddleback%20@youmatter2god&amp;amp;url=http%3A//purposedriven.com/blogs/dailyhope/index.html?contentid=9039" target="_blank"&gt;&lt;span&gt;&lt;div class="p_embed p_image_embed"&gt; &lt;img alt="Image002" height="18" src="http://posterous.com/getfile/files.posterous.com/purl/O4BreEBDVoIjwYo4XTbSQY6nbzmWhGmQO8ll0GV5ovWGT0c8ZfRsQhMPlPpZ/image002.jpg" width="55" /&gt; &lt;/div&gt; &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;a href="http://purposedriven.com/blogs/dailyhope/index.html?contentid=9039" target="_blank"&gt;&lt;span&gt;Generosity is a Matter of Fait&lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt;&lt;span&gt;慷慨也是信心的表现&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;by Rick Warren&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="574"&gt;&lt;p&gt;&lt;span&gt;A generous man will prosper and he who refreshes others will himself be refreshed. Proverbs 11:25 (NIV)&lt;br /&gt;&lt;/span&gt;&lt;span class="verse"&gt;&lt;span&gt;好施舍的，必得丰裕；&lt;/span&gt;&lt;/span&gt;&lt;span class="verse"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="verse"&gt;&lt;span&gt;滋润人的，必得滋润。&lt;/span&gt;&lt;/span&gt;&lt;span class="verse"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="verse"&gt;&lt;span&gt;箴言&lt;/span&gt;&lt;/span&gt;&lt;span class="verse"&gt;&lt;span&gt; 11:25&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;When you share with others, God shares with you.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;当你与他人分享的时候，神也会与你分享。&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The world says, “Get everything you can and you will be financially secure.” The Bible says share with others in need and you’ll sow what you reap: “Give and it will be given to you.” (Luke 6:38 NIV)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;这个世界的逻辑是&lt;span&gt;“&lt;/span&gt;尽可能的攫取，这样你就会富有&lt;span&gt;”&lt;/span&gt;，而圣经的原则是要尽可能的与他人分享，这样你就会有丰厚的回报：&lt;span&gt;“&lt;/span&gt;你们要给人，就必有给你们的&lt;span&gt;”(&lt;/span&gt;路加福音&lt;span&gt; 6:38)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;God says that when you give to somebody else, you're not throwing it away. It’s an investment in the lives of others. God says the one who gives will gain even more: “He who is kind to the poor, lends to the Lord and He will reward him for what he has done.” (Proverbs 19:17 NIV)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;在神的眼中，当你给予别人的时候，并不是在舍弃什么，而是对其他人的生命进行投资。神会对那些慷慨付出的人给予更多回报：“怜悯贫穷的，就是借给耶和华。他的善行，耶和华必偿还”（箴言&lt;span&gt; 19:17&lt;/span&gt;）&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;When you see people in need and you give to them, God looks at this as if it were a loan to Him. He says, “I will reward back.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;所以，当你向那些需要的人伸出援手的时候，神会把这看成是对�自己的一次借贷。�就这样想：“我必须偿还他”。&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;God is always going to take care of you and your needs. Do you believe that is true? Generosity is a matter of faith. Will you take God at his Word?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;神总是想要帮助你，满足你的需要。你相信这个道理么？慷慨也是信心的一种表现。你要不要在这个方面顺服神的吩咐呢？&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/pdc"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-6723570112325443125?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">remove/add job to crontab by commandline</title>
		<link href="http://fayland.me/linux/2011/10/13/removeadd-job-to-crontab-by-commandline" />
		<id>http://fayland.me/linux/2011/10/13/removeadd-job-to-crontab-by-commandline</id>
		<updated>2011-10-12T16:00:00+00:00</updated>
		<content type="html">1. add job to crontab&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(crontab -u fayland -l ; echo "*/5 * * * * perl /home/fayland/test.pl") | crontab -u fayland -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. remove job from crontab&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;crontab -u fayland -l | grep -v 'perl /home/fayland/test.pl' &amp;nbsp;| crontab -u fayland -&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. remove all crontab&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;crontab -r&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;nothing is tricky. expect it took me 10 minutes to figure out '-' is the one I want. (- is STDOUT in Linux).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Psalm 118:24</title>
		<link href="http://lamppurl.blogspot.com/2011/10/psalm-11824.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-2961528449438410735</id>
		<updated>2011-10-11T04:31:06+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt; 这是耶和华所定的日子， 我们在其中要高兴欢喜！ &lt;p&gt;&lt;/p&gt;  &lt;a href="http://bible.us/Ps118.24.CUNPSS"&gt;http://bible.us/Ps118.24.CUNPSS&lt;/a&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/psalm-11824"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-2961528449438410735?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Draw the Cross in Unicode</title>
		<link href="http://lamppurl.blogspot.com/2011/09/draw-cross-in-unicode.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5498366596887484671</id>
		<updated>2011-09-29T03:19:41+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;% perl -MUnicode::String=uchr -le 'print uchr(10014)'&lt;br /&gt;✞ &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/draw-the-cross-in-unicode"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5498366596887484671?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">sphinx 0.99 bug (attributes count vs fields count)</title>
		<link href="http://fayland.me/sphinx/2011/09/29/sphinx-099-bug-attributes-count-vs-fields-count" />
		<id>http://fayland.me/sphinx/2011/09/29/sphinx-099-bug-attributes-count-vs-fields-count</id>
		<updated>2011-09-28T16:00:00+00:00</updated>
		<content type="html">when you have 4 columns in sql_query, and you want 3 columns as attributes. you'll get a failure. 0 size sphinx files.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;it's quite annoying, and it cost me almost 4 hours to figure it out. I'm so dumb and so are you, SPHINX.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;a simple solution is to add a dumb col in the SELECT of sql_query like&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;SELECT id,&amp;nbsp;radians(longitude) as long_radians, radians(latitude) as lat_radians, 'dumb' FROM table&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;OK. actually 'dumb' is dumb because it takes more disk than 'a'.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;for a detailed issue description, please check&amp;nbsp;&lt;a href="http://sphinxsearch.com/forum/view.html?id=8345"&gt;http://sphinxsearch.com/forum/view.html?id=8345&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks.&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Script to find the root directory usage, on system with lots of mounts</title>
		<link href="http://lamppurl.blogspot.com/2011/09/script-to-find-root-directory-usage-on.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5084072216618580922</id>
		<updated>2011-09-25T21:11:35+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p&gt;&lt;span&gt;sudo perl -MList::MoreUtils=any -lne 'BEGIN{@m=map {@F=split; qq(^$F[2])} map {$1 if m{(.*)}} qx{mount|tail --line=+2}; open STDIN, q(find / -maxdepth 3 -mindepth 1 |)} $p=$_; do {print join qq(\t), qx(du -s &amp;quot;$_&amp;quot;)=~m{(.*)}} unless any {$p=~m{$_} or $_=~m{$p}} @m' | sort -k1 -nrg | head&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/script-to-find-the-root-directory-usage-on-sy"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5084072216618580922?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Net-GitHub 0.40_02</title>
		<link href="http://fayland.me/perl/2011/09/25/net-github-040-02" />
		<id>http://fayland.me/perl/2011/09/25/net-github-040-02</id>
		<updated>2011-09-24T16:00:00+00:00</updated>
		<content type="html">it's a story following the &lt;a href="http://blog.fayland.org/2011/09/net-github-040-01.html"&gt;previous one&lt;/a&gt;. and this one will be shorter.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I got Net-GitHub 0.40_02 released few minutes ago. with&lt;/div&gt;&lt;div&gt;* Gists, Git Data, Orgs supports&lt;/div&gt;&lt;div&gt;* methods on fly&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;there are still something to do like Pagination and MIME-Types. but most of the functions should be working now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;big thanks to &lt;a href="https://metacpan.org/module/Moose"&gt;Moose&lt;/a&gt; team, I becomes a little smarter than yesterday.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;yesterday I was dumb. I wrote every methods with sub, with arguments fix, with -&amp;gt;query or check DELETE status. lots of duplication codes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I cleaned all the code up with __PACKAGE__-&amp;gt;meta-&amp;gt;add_method. now all the code looks very clean and easy to maintain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;old code looks like (&lt;a href="https://github.com/fayland/perl-net-github/blob/3c7cb3393834d5dd5d5bc4b583fcb1669ef8ef2d/lib/Net/GitHub/V3/PullRequests.pm"&gt;https://github.com/fayland/perl-net-github/blob/3c7cb3393834d5dd5d5bc4b583fcb1669ef8ef2d/lib/Net/GitHub/V3/PullRequests.pm&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;new code is really much better:&amp;nbsp;&lt;a href="https://github.com/fayland/perl-net-github/blob/master/lib/Net/GitHub/V3/PullRequests.pm"&gt;https://github.com/fayland/perl-net-github/blob/master/lib/Net/GitHub/V3/PullRequests.pm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the main tricky here is the -&amp;gt;meta-&amp;gt;add_method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;## build methods on fly&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;sub __build_methods {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my $package = shift;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; my %methods = @_;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; foreach my $m (keys %methods) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $v = $methods{$m};&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $url = $v-&amp;gt;{url};&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $method = $v-&amp;gt;{method} || 'GET';&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $args = $v-&amp;gt;{args} || 0; # args for -&amp;gt;query&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $check_status = $v-&amp;gt;{check_status};&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $is_u_repo = $v-&amp;gt;{is_u_repo}; # need auto shift u/repo&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $package-&amp;gt;meta-&amp;gt;add_method( $m =&amp;gt; sub {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $self = shift;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # count how much %s inside u&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $n = 0; while ($url =~ /\%s/g) { $n++ }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ## if is_u_repo, both ($user, $repo, @args) or (@args) should be supported&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( ($is_u_repo or index($url, '/repos/%s/%s') &amp;gt; -1) and @_ &amp;lt; $n + $args) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unshift @_, ($self-&amp;gt;u, $self-&amp;gt;repo);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # make url, replace %s with real args&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @uargs = splice(@_, 0, $n);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $u = sprintf($url, @uargs);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # args for json data POST&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @qargs = $args ? splice(@_, 0, $args) : ();&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($check_status) { # need check Response Status&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $old_raw_response = $self-&amp;gt;raw_response;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $self-&amp;gt;raw_response(1); # need check header&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $res = $self-&amp;gt;query($method, $u, @qargs);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $self-&amp;gt;raw_response($old_raw_response);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return index($res-&amp;gt;header('Status'), $check_status) &amp;gt; -1 ? 1 : 0;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $self-&amp;gt;query($method, $u, @qargs);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } );&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div&gt;next step will be Pagination and MIME-types. and later.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Net-GitHub 0.40_01</title>
		<link href="http://fayland.me/perl/2011/09/24/net-github-040-01" />
		<id>http://fayland.me/perl/2011/09/24/net-github-040-01</id>
		<updated>2011-09-23T16:00:00+00:00</updated>
		<content type="html">it's a quite long story. but it's all about &lt;a href="https://metacpan.org/module/Net::GitHub"&gt;Net::GitHub&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Github released their&amp;nbsp;&lt;a href="http://developer.github.com/"&gt;V3 API&lt;/a&gt;&amp;nbsp;few months ago.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the reason why I didn't update the module is super simple, I'm kind busy recently. my wife is during pregnancy. we'll have another kid 2 months later. and I even don't use in my daily life. I wrote it because I enjoy writing stuff for people.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a CPAN module&amp;nbsp;&lt;a href="https://metacpan.org/module/Pithub"&gt;Pithub&lt;/a&gt;. it is great. even he is reinventing another wheels instead of contributing, I have to say: nice module, well written. I&amp;nbsp;was thinking to add some notes in Net-GitHub to say that if you're looking for V3 implemention, please try Pithub.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed my idea suddenly after c9s patched the module for access_token supports. if I accept it and write POD for it, why not write V3 API too?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Writing code for public is enjoyable. you can't write messy code because people use it and rate you as dumb guy. I don't want to be dumb so I have to be smarter.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Writing code is easy and simple. The most hard part is to design the API. how it works so that user will feel comfortable to use it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here comes few thoughts on Net-GitHub.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. raw query should be supported so if Github add any new API, people can at least use it without waiting for another release.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;use Net::GitHub;&lt;/div&gt;&lt;div&gt;my $gh = Net::GitHub-&amp;gt;new( login =&amp;gt; 'fayland', pass =&amp;gt; 'secret' );&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;my $data = $gh-&amp;gt;query('/user');&lt;/div&gt;&lt;div&gt;&lt;div&gt;$gh-&amp;gt;query('PATCH', '/user', { bio =&amp;gt; 'another Perl Programmer and Father' });&lt;/div&gt;&lt;div&gt;$gh-&amp;gt;query('DELETE', '/user/emails', [ 'myemail@somewhere.com' ]);&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div&gt;so most of the methods is just a wrapper like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;sub emails {&amp;nbsp;(shift)-&amp;gt;query('/user/emails'); }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;2. more than half of the Github API is binded with :user/:repo. but it will be really very boring to type user/repo for every call.&lt;div&gt;but for one-off call, pass user/repo should be better. so both of them should be supported.&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$gh-&amp;gt;set_default_user_repo('fayland', 'perl-net-github');&lt;/div&gt;&lt;div&gt;my @issues = $gh-&amp;gt;issue-&amp;gt;issues;&lt;/div&gt;&lt;div&gt;my @pulls &amp;nbsp; &amp;nbsp;= $gh-&amp;gt;pull_request-&amp;gt;pulls;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# or one-off call&lt;/div&gt;&lt;div&gt;my @contributors = $gh-&amp;gt;respo-&amp;gt;contributors($user, $repo);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;I kicked out the version to public today. but there are still a lot of stuff missing. I released it because I want to hear some feedback from the users. below are some todos.&lt;div&gt;1. Orgs, Gists, Git Data&lt;/div&gt;&lt;div&gt;2. Pager and MIME types&lt;/div&gt;&lt;div&gt;3. Moose handles like $gh-&amp;gt;pulls = $gh-&amp;gt;pull_request-&amp;gt;pulls to ease keyboard.&lt;/div&gt;&lt;div&gt;4. method builder so there isn't too much duplication code like now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;but I may not be able to finish all of them soon. so if anyone is willing to help, please fork on&amp;nbsp;&lt;a href="https://github.com/fayland/perl-net-github"&gt;https://github.com/fayland/perl-net-github&lt;/a&gt;&amp;nbsp;and patches are welcome!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content>
		<author>
			<name>Fayland Lam</name>
			<email>fayland@gmail.com</email>
			<uri>http://fayland.me</uri>
		</author>
		<source>
			<title type="html">Fayland and Programming</title>
			<subtitle type="html">Perl is not the whole part of life. I know!</subtitle>
			<link rel="self" href="http://www.fayland.org/atom.xml" />
			<id>http://fayland.me</id>
			<updated>2013-04-27T02:30:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">SQLite related 2 utilities, to fix the book &amp;amp; chapter names problems of Blackberry YouVersion bible reader</title>
		<link href="http://lamppurl.blogspot.com/2011/09/sqlite-related-2-utilities-to-fix-book.html" />
		<id>tag:blogger.com,1999:blog-6399922107071957890.post-5433472445150342684</id>
		<updated>2011-09-23T01:10:46+00:00</updated>
		<content type="html">&lt;div class="posterous_autopost"&gt;&lt;p align="left"&gt;&lt;span&gt;SQLite.pl&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;use strict&lt;/span&gt;&lt;span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;use &lt;/span&gt;&lt;span&gt;DBI;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;my&lt;/span&gt;&lt;span&gt; &lt;span&gt;@r&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;my&lt;/span&gt;&lt;span&gt; &lt;span&gt;$d&lt;/span&gt;=DBI-&amp;gt;&lt;span&gt;connect&lt;/span&gt;(&lt;span&gt;qq(dbi:SQLite:dbname=&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;shift&lt;/span&gt;]&lt;span&gt;}&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;, &lt;span&gt;q()&lt;/span&gt;, &lt;span&gt;q()&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;my&lt;/span&gt;&lt;span&gt; &lt;span&gt;$s&lt;/span&gt;=&lt;span&gt;$d-&amp;gt;prepare_cached&lt;/span&gt;(&lt;span&gt;join&lt;/span&gt; &lt;span&gt;q()&lt;/span&gt;,&lt;span&gt;&amp;lt;STDIN&amp;gt;&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$s-&amp;gt;execute&lt;/span&gt;&lt;span&gt;(&lt;span&gt;@ARGV&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$,&lt;/span&gt;&lt;span&gt;=&lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\t&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;; &lt;span&gt;$\&lt;/span&gt;=&lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt; &lt;span&gt;STDERR&lt;/span&gt; &lt;span&gt;@{$s-&amp;gt;{&lt;/span&gt;&lt;span&gt;NAME&lt;/span&gt;&lt;span&gt;}}&lt;/span&gt;; &lt;span&gt;print&lt;/span&gt; &lt;span&gt;@r&lt;/span&gt; &lt;span&gt;while&lt;/span&gt; &lt;span&gt;@r&lt;/span&gt;=&lt;span&gt;$s-&amp;gt;fetchrow_array&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$s-&amp;gt;finish&lt;/span&gt;&lt;span&gt;; &lt;span&gt;$d-&amp;gt;disconnect&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;Do-SQLite-for.pl&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;use strict&lt;/span&gt;&lt;span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;use &lt;/span&gt;&lt;span&gt;DBI;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;my&lt;/span&gt;&lt;span&gt; &lt;span&gt;$d&lt;/span&gt;=DBI-&amp;gt;&lt;span&gt;connect&lt;/span&gt;(&lt;span&gt;qq(dbi:SQLite:dbname=&lt;/span&gt;&lt;span&gt;@{&lt;/span&gt;[&lt;span&gt;shift&lt;/span&gt;]&lt;span&gt;}&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;, &lt;span&gt;q()&lt;/span&gt;, &lt;span&gt;q()&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;my&lt;/span&gt;&lt;span&gt; &lt;span&gt;$s&lt;/span&gt;= &lt;span&gt;$d-&amp;gt;prepare_cached&lt;/span&gt;(&lt;span&gt;do&lt;/span&gt; { &lt;span&gt;open&lt;/span&gt;(&lt;span&gt;SQL&lt;/span&gt;, &lt;span&gt;q(&amp;lt;)&lt;/span&gt;, &lt;span&gt;shift&lt;/span&gt;); &lt;span&gt;join&lt;/span&gt;(&lt;span&gt;q()&lt;/span&gt;,&lt;span&gt;&amp;lt;SQL&amp;gt;&lt;/span&gt;) });&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$,&lt;/span&gt;&lt;span&gt;=&lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\t&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;; &lt;span&gt;$\&lt;/span&gt;=&lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;while&lt;/span&gt;&lt;span&gt;(&amp;lt;&amp;gt;) {&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;chomp&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;my&lt;/span&gt; &lt;span&gt;@F&lt;/span&gt; = &lt;span&gt;split&lt;/span&gt;(&lt;span&gt;qq(&lt;/span&gt;&lt;span&gt;\t&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;, &lt;span&gt;$_&lt;/span&gt;, -&lt;span&gt;1&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&amp;nbsp; &lt;span&gt;$s-&amp;gt;execute&lt;/span&gt;(&lt;span&gt;@F&lt;/span&gt;);&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;}&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span&gt;$s-&amp;gt;finish&lt;/span&gt;&lt;span&gt;; &lt;span&gt;$d-&amp;gt;disconnect&lt;/span&gt;; &lt;span&gt;close&lt;/span&gt; &lt;span&gt;SQL&lt;/span&gt;;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://purl.posterous.com/sqlite-related-2-utilities-to-fix-the-book-ch"&gt;purl's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6399922107071957890-5433472445150342684?l=lamppurl.blogspot.com" alt="" /&gt;&lt;/div&gt;</content>
		<author>
			<name>purl</name>
			<email>noreply@blogger.com</email>
			<uri>http://lamppurl.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">purl in your heart</title>
			<link rel="self" href="http://lamppurl.blogspot.com/feeds/posts/default" />
			<id>tag:blogger.com,1999:blog-6399922107071957890</id>
			<updated>2012-10-28T11:00:38+00:00</updated>
		</source>
	</entry>

</feed>
