<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>blog.kentarok.org</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/" />
   <link rel="self" type="application/atom+xml" href="http://blog.kentarok.org/atom.xml" />
   <id>tag:blog.kentarok.org,2008://1</id>
   <updated>2007-06-14T06:24:16Z</updated>
   <subtitle>about daily life, thought, popular culture, technologies etc.</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.34</generator>

<entry>
   <title>Glitchr: Glitches the Web</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/06/14/033140.html" />
   <id>tag:blog.kentarok.org,2007://1.33</id>
   
   <published>2007-06-13T18:31:40Z</published>
   <updated>2007-06-14T06:24:16Z</updated>
   
   <summary> Yesterday, I hacked up a website, Glitchr, which is heavily inspired by youpy&apos;s great work, GlitchMonkey. It aimes to let people know fun of glitched things easier without installing greasemonkey script. A glitch is a short-lived fault in a...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="arts" label="arts" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="image" label="image" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="release" label="release" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p><img src="/2007/06/14/glitchr.png" alt="Glithr" title="Glitchr" /></p>

<p>Yesterday, I hacked up a website, <a href="http://glitchr.kentarok.org/" title="Glitchr">Glitchr</a>, which is heavily inspired by <a href="http://d.hatena.ne.jp/youpy/">youpy</a>'s great work, <a href="http://userscripts.org/scripts/show/9653" title="GlitchMonkey -- Userscripts.org">GlitchMonkey</a>. It aimes to let people know fun of glitched things easier without installing greasemonkey script.</p>

<blockquote>
  <p>A glitch is a short-lived fault in a system. The term is particularly common in the computing and electronics industries, and in circuit bending, as well as among players of video games, although it is applied to all types of systems including human organizations and nature. The term derives from the German glitschen, meaning 'to slip.'</p>
</blockquote>

<p>Source: <a href="http://en.wikipedia.org/wiki/Glitch" title="Glitch - Wikipedia, the free encyclopedia">Glitch - Wikipedia, the free encyclopedia</a></p>

<p>As the entry from Wikipedia says, glitch is a word which originally come from electronics industries terms, but it's also a name of a genre in some kind of arts, music, movie, image, and so on. Speaking about music, I really love <a href="http://en.wikipedia.org/wiki/Oval_%28band%29" title="Oval (band) - Wikipedia, the free encyclopedia">Oval</a>, who compose songs filled with glitched noises, nevertheless, they're really melodious and beautiful.</p>

<p>Glitchr is a website which glitches images in webpages, and of course, you can also specify the image by its URL on the Net. Anyway, seeing is believing. I'll show you some examples (by specifing an image).</p>

<p><img src="/2007/06/14/original_girl.png" alt="Original image" title="Original image" /></p>

<p><img src="/2007/06/14/glitched_girl.png" alt="Glitchedr image" title="Glithed image" /></p>

<p>It's interesting!</p>

<p>Surely, it's totally useless. But usefulness doesn't matter for arts at all, you know ;)</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>WebService::Hatena::Graph version 0.06 released</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/06/14/021752.html" />
   <id>tag:blog.kentarok.org,2007://1.32</id>
   
   <published>2007-06-13T17:17:52Z</published>
   <updated>2007-06-13T18:55:10Z</updated>
   
   <summary>Today, I released the new version of WebService::Hatena::Graph along with some updates of Hatena::Graph API. It&apos;s become totally new, adding several features, getting graph data and setting/getting configurations. The feature to set new graph data has been offered since the...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="release" label="release" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>Today, I released the new version of <a href="http://search.cpan.org/dist/WebService-Hatena-Graph/" title="Kentaro Kuribayashi / WebService-Hatena-Graph - search.cpan.org">WebService::Hatena::Graph</a> along with some updates of <a href="http://graph.hatena.ne.jp/" title="はてなグラフ">Hatena::Graph</a> API. It's become totally new, adding several features, getting graph data and setting/getting configurations.</p>

<p>The feature to set new graph data has been offered since the API was released, but the method to enable users to do so is now renamed to post<em>data() from post() to distingish posting some graph data , post</em>data(), from posting some configs, post_config().</p>

<p>Here's a usage of this module:</p>

<pre><code>use WebService::Hatena::Graph;

my $graph = WebService::Hatena::Graph-&gt;new(
    username =&gt; $username,
    password =&gt; $password,
);

# set data to the specified graph
$graph-&gt;post_data(
    graphname =&gt; $graphname,
    date      =&gt; $date,
    value     =&gt; $value,
);

# retrieve graph data
my $graph_data = $graph-&gt;get_data(
    graphname  =&gt; $graphname,
    username   =&gt; $username,
);

# set config
$graph-&gt;post_data(
    graphname      =&gt; $graphname,
    graphcolor     =&gt; $graphcolor,
    graphtype      =&gt; $graphtype,
    status         =&gt; $status,
    allowuser      =&gt; $allowuser,
    allowgrouplist =&gt; $allowgrouplist,
    stack          =&gt; $stack,
    reverse        =&gt; $reverse,
    formula        =&gt; $formula,
    maxy           =&gt; $maxy,
    miny           =&gt; $miny,
    showdata       =&gt; $showdata,
    nolabel        =&gt; $nolabel,
    userline       =&gt; $userline,
    userlinecolor  =&gt; $userlinecolor,
    comment        =&gt; $comment,
);

# retrieve config
my $graph_config = $graph-&gt;get_config( graphname =&gt; $graphname );
</code></pre>

<p>Enjoy!</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Twitter to say farewell</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/05/19/013632.html" />
   <id>tag:blog.kentarok.org,2007://1.31</id>
   
   <published>2007-05-18T16:36:32Z</published>
   <updated>2007-05-19T05:19:51Z</updated>
   
   <summary>Steven D. Levitt, well-known in Japan for the book, &quot;Freakonomics&quot; (&quot;ヤバい経済学&quot; in Japanese), expects the Internet to be of great help for fighting pandemic. What can we do to fight global pandemics? The single most powerful tool we have is...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>Steven D. Levitt, well-known in Japan for the book, "<a href="http://www.freakonomics.com/thebook.php" title="Freakonomics: A Rogue Economist Explores the Hidden Side of Everything by Steven D. Levitt and Stephen J. Dubner - William Morrow, 2005">Freakonomics</a>" ("ヤバい経済学" in Japanese), expects the Internet to be of great help for fighting pandemic.</p>

<blockquote>
  <p>What can we do to fight global pandemics? The single most powerful tool we have is probably the internet. Pandemics tend to start in remote locations. What we need is a way to extract the information from those places quickly to get a head start on keeping the epidemic tamed. The formal networks like the CDC do not seem to work all that well.</p>
</blockquote>

<p><a href="http://www.freakonomics.com/blog/2007/05/18/fight-global-pandemics-or-at-least-find-a-good-excuse-when-youre-playing-hooky/" title="Freakonomics Blog ? Fight Global Pandemics (Or At Least Find a Good Excuse When You’re Playing Hooky)">Freakonomics Blog ? Fight Global Pandemics (Or At Least Find a Good Excuse When You’re Playing Hooky)</a></p>

<p>Great. I totally agree with it. And he describes <a href="http://whoissick.org/">Whoissick.org</a> which allows people to post about their sickness, to search with zip code, to view on a map, etc. It looks very cool and really useful. But he also says:</p>

<blockquote>
  <p>I doubt, however, that I would want to bother to go tell Whoissick.org that I feel awful. Certainly if I was about to die from the bird flu, it would not be top of mind.</p>
</blockquote>

<p>Certainly ;)</p>

<p>In the meanwhile, I've been really addicted to <a href="http://twitter.com/">Twitter</a> these days, where people only reply to the question, "What are you doing?".</p>

<p>I think that it must be tough for us to post about our sickness to such sites as Whoissick.org, when we're suffering from disease. It's just a little overreact.</p>

<p>But I'm sure that Twitter enables us to do so easily due to its simplicity and diversity of accessibility. Actually, when people get ill, they're twittering, "got a headache", "feel so bad", "I seem to catch a cold" or so. We may be twittering at that time we're about to dying.</p>

<p>"Folks! I'm about to die. Good-bye!"</p>

<p>No kidding.</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>WebService::Timelog released</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/05/17/152609.html" />
   <id>tag:blog.kentarok.org,2007://1.30</id>
   
   <published>2007-05-17T06:26:09Z</published>
   <updated>2007-05-17T06:55:13Z</updated>
   
   <summary>These days, so many start-ups which have an intention of following Twitter&apos;s success have come out one after another. I think it&apos;s absolutely ridiculous that most of them stupid enough not to offer diverse way to access their services except...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="timelog" label="timelog" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>These days, so many start-ups which have an intention of following <a href="http://twitter.com/" title="Twitter">Twitter</a>'s success have come out one after another. I think it's absolutely ridiculous that most of them stupid enough not to offer diverse way to access their services except Web forms, for instance, accessibility via open API, IM, cell-phone, and so on.</p>

<p><a href="http://timelog.jp/" title="今をメモする「Timelog」">Timelog</a> is one of such sites, but it wisely started providing API which allows its users to access most functions and data on it easily. Really great! As soon as I heard the news, I went straight to work on writing a perl interface to it. Then, I hacked it up as WebService::Timelog, and uploaded it to CPAN.</p>

<ul>
<li><a href="http://search.cpan.org/dist/WebService-Timelog/" title="Kentaro Kuribayashi / WebService-Timelog - search.cpan.org">WebService::Timelog</a></li>
</ul>

<p>Here's a simple usage of this module. For more details, consult the documentation on CPAN and <a href="http://timelog.jp/api.asp">the official documentation of Timelog API</a>. Enjoy!</p>

<pre><code>use WebService::Timelog;

my $timelog = WebService::Timelog-&gt;new(
    username =&gt; $username,
    password =&gt; $password,
);

# update status
$timelog-&gt;new_msg(text =&gt; $text);

# or you can do so like this
$timelog-&gt;update($text);

# retrieve public messages
my $public_messages  = $timelog-&gt;public_msg(cnt =&gt; $count, since =&gt; $since);

# retrieve friends' messages
my $friends_messages = $timelog-&gt;friends_msg(cnt =&gt; $count, since =&gt; $since);

# retrieve direct messages
my $direct_messages  = $timelog-&gt;direct_msg(cnt =&gt; $count);

# retrieve some information on you
my $me               = $timelog-&gt;show();

# retrieve some informtion on your friends
my $friends          = $timelog-&gt;friends(cnt =&gt; $count);
</code></pre>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Acme::MorningMusume version 0.10 released</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/05/07/225541.html" />
   <id>tag:blog.kentarok.org,2007://1.29</id>
   
   <published>2007-05-07T13:55:41Z</published>
   <updated>2007-05-07T14:02:19Z</updated>
   
   <summary>I&apos;ve shipped a new version of Acme::MorningMusume. It&apos;s an update along with that Hitomi Yoshizawa graduated from モーニング娘。 on May 6. Kentaro Kuribayashi / Acme-MorningMusume-0.10 - search.cpan.org As I wrote here before, I&apos;m hardly interested in モーニング娘。 now. I love...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="berryz.c-ute" label="berryz.c-ute" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="idol" label="idol" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="morningmusume" label="morningmusume" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>I've shipped a new version of Acme::MorningMusume. It's an update along with that Hitomi Yoshizawa graduated from モーニング娘。 on May 6.</p>

<ul>
<li><a href="http://search.cpan.org/~kentaro/Acme-MorningMusume-0.10/" title="Kentaro Kuribayashi / Acme-MorningMusume-0.10 - search.cpan.org">Kentaro Kuribayashi / Acme-MorningMusume-0.10 - search.cpan.org</a></li>
</ul>

<p>As I wrote here before, I'm hardly interested in モーニング娘。 now. I love ℃-ute and Berryz工房!!! I have to say モーニング娘。 now doesn't matter at all.</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Origins of Domain Names of Mine</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/05/07/183417.html" />
   <id>tag:blog.kentarok.org,2007://1.28</id>
   
   <published>2007-05-07T09:34:17Z</published>
   <updated>2007-05-07T15:48:20Z</updated>
   
   <summary>It seems that blogging about origins of domain names is in fashion among Japanese bloggers, which was suggested by kaminogoya-san at this entry: &quot;ドメイン名の由来を書いてみる - 2xup.org&quot;. I&apos;ll also take after them to catch up. I run some domain names for...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="blog" label="blog" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="myself" label="myself" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>It seems that blogging about origins of domain names is in fashion among Japanese bloggers, which was suggested by kaminogoya-san at this entry: "<a href="http://2xup.org/log/2007/05/06-0146" title="ドメイン名の由来を書いてみる - 2xup.org">ドメイン名の由来を書いてみる - 2xup.org</a>". I'll also take after them to catch up.</p>

<p>I run some domain names for several websites.</p>

<p><a href="http://kentarok.org/">kentarok.org</a> is for some kind of personal things like <a href="http://blog.kentarok.org/" title="blog.kentarok.org">blog</a>, <a href="http://svn.kentarok.org/public/" title="svn.kentarok.org">code repository</a>, <a href="http://code.kentarok.org/trac" title="code.kentarok.org - Trac">repository viewer and task management tool</a>, and <a href="http://docs.kentarok.org/" title="docs.kentarok.org/">some documents</a> (it's now empty, though...). As you easily recognize, it was named after my own name, Kentaro Kuribayashi.</p>

<p><a href="http://antipop.gs/">antipop.gs</a>, which is obsolete but will still work until next year or so, was replaced by kentarok.org described above. It was the first domain name I took. The story about the domain name is too long to tell whole of it, so I'll explain it as shortly as I can.</p>

<p>When I took a procedure for connecting to the Internet for the first time and was needed to choose some phrase for my e-mail account name, I hadn't thought about it at all. Since no good idea came out to me then, I took a name from a Hip Hop group called <a href="http://en.wikipedia.org/wiki/Antipop_Consortium" title="Antipop Consortium - Wikipedia, the free encyclopedia">Antipop Consortium</a>. I was just listening to their music then. So, I started using the name, antipop, in various occasion: domain name, IDs for some websites, etc.</p>

<p><a href="http://simpleandclean.jp/">simpleandclean.jp</a> was named after a song of Hikaru Utada, "<a href="http://en.wikipedia.org/wiki/Simple_and_Clean" title="Simple and Clean - Wikipedia, the free encyclopedia">Simple and Clean</a>", which is English version of "光", but not literally. I'm an enthusiastic fan of her, and love the song the most of her works. simpleandclean.jp now hosts only some experimental things of mine so far, I'll offer something usefull things there.</p>

<p>I have also much more domain names except them. There may be a chance to write about them some time or other.</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Alternative usage of Twitter</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/25/201830.html" />
   <id>tag:blog.kentarok.org,2007://1.27</id>
   
   <published>2007-04-25T11:18:30Z</published>
   <updated>2007-04-25T11:36:49Z</updated>
   
   <summary>Twitter not only is a site where we replay to the question, &quot;What are you doing?&quot;, but also can be an alternative way of informing and reminding us of anything like news, weather forecast, blog posts which gathers many attentions,...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="plagger" label="plagger" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="vox" label="vox" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p><a href="http://twitter.com/" title="Twitter">Twitter</a> not only is a site where we replay to the question, "What are you doing?", but also can be an alternative way of informing and reminding us of anything like news, weather forecast, blog posts which gathers many attentions, TODOs, and so on.</p>

<p>For instance, there's a tweet which broadcasts weather forecast of Tokyo area in Japan to its followers.</p>

<ul>
<li><a href="http://twitter.com/tokyoforecast" title="Twitter / tokyoforecast">Twitter / tokyoforecast</a></li>
</ul>

<p>Sorry to say, since I'm not live in Tokyo or near there but Amami Island, Kagoshima, forecast of Tokyo area is entirely useless for me. So, I made my version of it:</p>

<ul>
<li><a href="http://twitter.com/amamiforecast" title="Twitter / amamiforecast">Twitter / amamiforecast</a></li>
</ul>

<p>Also, I made another tweets which convey QotD, Question of the Day, from <a href="http://www.vox.com/">Vox</a>, really fascinating blogging tool offered by Six Apart, to Twitter.</p>

<ul>
<li><a href="http://twitter.com/qotd_vox" title="Twitter / qotd_vox">Twitter / qotd_vox</a> (in English)</li>
<li><a href="http://twitter.com/qotd_vox_ja" title="Twitter / qotd_vox_ja">Twitter / qotd<em>vox</em>ja</a> (in Japanese)</li>
</ul>

<p>They just only fetch QotD from Vox and dump it onto Twitter, but QotD is suitable also for such sites as Twitter, so it's worth the trial to do it, I think.</p>

<p>Acknowledgements:</p>

<ul>
<li><a href="http://plagger.org/">Plagger</a>: fetches, processes, and publishes feeds.</li>
<li><a href="http://weather.livedoor.com/" title="livedoor 天気情報">livedoor weather forecast service</a>: offers information of weather forecast as a feed.</li>
</ul>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Template::Plugin::Shorten version 0.01 released</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/25/161607.html" />
   <id>tag:blog.kentarok.org,2007://1.26</id>
   
   <published>2007-04-25T07:16:07Z</published>
   <updated>2007-04-25T07:21:26Z</updated>
   
   <summary>The initial version of Template::Plugin::Shorten is now on CPAN. It works as a Template::Toolkit plugin, which filters URLs to shorten or lengthen using URL shortening sites like TinyURL.com. I made it so that I could neatly write a template for...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="tt" label="tt" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>The initial version of <a href="http://search.cpan.org/dist/Template-Plugin-Shorten/">Template::Plugin::Shorten</a> is now on CPAN. It works as a <a href="http://search.cpan.org/dist/Template-Toolkit/">Template::Toolkit</a> plugin, which filters URLs to shorten or lengthen using URL shortening sites like <a href="http://tinyurl.com/">TinyURL.com</a>.</p>

<p>I made it so that I could neatly write a template for a Plagger plugin, <a href="http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Publish/Twitter.pm">P::P::Publish::Twitter</a>, which now supports templatization using TT. I'm afraid that it may cause some problems in other contexts.</p>

<p>Here's a usage of this module:</p>

<pre><code># Load this plugin
[% USE Shorten %]

# Shortening URLs
[% FILTER shorten_url %]
  &lt;a href="http://search.cpan.org/"&gt;search.cpan.org&lt;/a&gt;
[% END %]

# or

[% text | shorten_url %]

# Lengthening URLs
[% FILTER lengthen_url %]
  &lt;a href="http://tinyurl.com/37rwu"&gt;search.cpan.org&lt;/a&gt;
[% END %]

# or

[% text | lengthen_url %]
</code></pre>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Commands Execution History</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/19/044851.html" />
   <id>tag:blog.kentarok.org,2007://1.25</id>
   
   <published>2007-04-18T19:48:51Z</published>
   <updated>2007-04-18T20:01:08Z</updated>
   
   <summary>Here&apos;s the history of the commands I executed from someday in this year to today. $ ruby -pe &apos;gsub(/^.+;| .+$/,&quot;&quot;)&apos; .zhistory | sort | uniq -c | sort -r | head -30 880 sudo 831 svk 473 ls 369 cd...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="linux" label="linux" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="zsh" label="zsh" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>Here's the history of the commands I executed from someday in this year to today.</p>

<pre><code>$ ruby -pe 'gsub(/^.+;| .+$/,"")' .zhistory | sort | uniq -c | sort -r | head -30
    880 sudo
    831 svk
    473 ls
    369 cd
    217 rm
    199 perl
    195 svn
    121 apt-cache
    117 mv
    106 wget
    101 chmod
    100 mkdir
     84 perldoc
     79 cp
     76 cat
     60 '
     52
     49 vi
     44 href
     34 tar
     34 less
     32 ps
     30 echo
     29 ruby
     29 ln
     27 locate
     24 jed
     23 kill
     22 screen
     22 lv
</code></pre>

      

   ]]>
   </content>
</entry>
<entry>
   <title>IRC2Twitter Gateway Apps</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/16/021923.html" />
   <id>tag:blog.kentarok.org,2007://1.24</id>
   
   <published>2007-04-15T17:19:23Z</published>
   <updated>2007-04-16T08:48:29Z</updated>
   
   <summary>Do you enjoy twittering? How do you play with Twitter? The best way I think is to post statuses via IRC. You may wonder how you can do it. Don&apos;t worry! Many people help you with their excellent tools. Yappo...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="irc" label="irc" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>Do you enjoy twittering? How do you play with <a href="http://twitter.com/">Twitter</a>? The best way I think is to post statuses via IRC. You may wonder how you can do it. Don't worry! Many people help you with their excellent tools. </p>

<p><a href="http://blog.yappo.jp/yappo/archives/000506.html" title="YappoLogs: twitter2ircd.pl - POEで書いたperlのTwitter IRC Gateway">Yappo</a> and <a href="http://unknownplace.org/memo/2007/04/15#e001" title="unknownplace.org - 2007/04/15 - Yet Another IRC Gateway for Twitter">typester</a> hacked up Perl scripts which work as a gateway and connect IRC to Twitter. To make it, the former implements <a href="http://search.cpan.org/dist/POE-Component-Client-Twitter/" title="Kazuhiro Osawa / POE-Component-Client-Twitter - search.cpan.org">POE::Component::Client::Twitter</a> and the latter uses <a href="http://search.cpan.org/dist/POE-Component-Jabber/" title="Nicholas Perez / POE-Component-Jabber - search.cpan.org">POE::Component::Jabber</a>. If you're a Ruby guy, you might want to use <a href="http://subtech.g.hatena.ne.jp/cho45/20070415/1176631923" title="subtech - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - tig.rb (twitter irc gareway)">tig.rb (twitter irc gareway)</a> written by cho45. Super cool!</p>

<p>By the way, I use <a href="http://www.misuzilla.org/dist/net/twitterircgateway/" title="TwitterIrcGateway - misuzilla.org">TwitterIrcGateway</a> habitually. Today, I found there was Linux version of it (using <a href="http://www.mono-project.com/Main_Page" title="Main Page - Mono">Mono</a>)! I went straight to test it and confirmed that it worked well in my environment, debian GNU/Linux (sid). According to mayuki, the author of TwitterIrcGateway, as it includes also Mono itself, we don't need to install it for ourselves in advance. Really great! </p>

<p>I wrote an init script like this:</p>

<pre><code>$ cat /etc/init.d/TwitterIrcGateway
#!/bin/sh

NAME="TwitterIrcGateway"
DIR="/path/to/TwitterIrcGateway/"
OPT="--port=6669 --interval=60 --resolve-tinyurl=true --encoding=iso-2022-jp --ignore-watch-error=true --enable-drop-protection=true"
KILL="/usr/bin/killall"

case "$1" in
    start)
        echo -n "Starting $NAME..."
        cd ${DIR} &amp;&amp; ./${NAME} ${OPT} 2&gt; /dev/null &amp;
        echo "."
        ;;
    stop)
        echo -n "Stopping $NAME... "
        ${KILL} $NAME
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME {start|stop}"
        exit 1
        ;;
esac

exit 0
</code></pre>

      

   ]]>
   </content>
</entry>
<entry>
   <title>NHK started broadcasting their radio program on business English online</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/15/025018.html" />
   <id>tag:blog.kentarok.org,2007://1.23</id>
   
   <published>2007-04-14T17:50:18Z</published>
   <updated>2007-04-14T17:54:59Z</updated>
   
   <summary> I found NHK started broadcasting their radio program on business English, &quot;ビジネス英会話&quot;, online from this month. I went to a book store and bought a textbook for the program without any delay. It&apos;s really super! Until now, I&apos;ve taken...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="learning english" label="learning english" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p><img src="/2007/04/15/textbook_for_business_english.png" alt="textbook for &quot;Business English&quot;" title="" />
I found NHK started broadcasting their radio program on business English, "<a href="http://www.nhk.or.jp/gogaku/english/business/index.html" title="NHK外国語講座">ビジネス英会話</a>", online from this month. I went to a book store and bought a textbook for the program without any delay. It's really super!</p>

<p>Until now, I've taken TOEIC two times. In either times, the score of listening is terribly lesser than reading. I must enhance my ability of listening, but to put it into practice is difficult, so expect the program helps me to do so.</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Twittering via E-mail</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/15/004510.html" />
   <id>tag:blog.kentarok.org,2007://1.22</id>
   
   <published>2007-04-14T15:45:10Z</published>
   <updated>2007-04-15T13:55:31Z</updated>
   
   <summary>There must be many people who&apos;d like to post their status to Twitter from cell-phones. In my case, Twitter hasn&apos;t supported the cell-phones provided by Japanese careers yet, or to be exact, Japanese cell-phones don&apos;t support International SMS, so I&apos;ve...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="ruby" label="ruby" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>There must be many people who'd like to post their status to <a href="http://twitter.com/">Twitter</a> from cell-phones. In my case, Twitter hasn't supported the cell-phones provided by Japanese careers yet, or to be exact, Japanese cell-phones don't support International SMS, so I've been forced inconvenience on not to be able to do it. However, it's nonsence that I only wait for them to concider my circumstance. I have to help me for myself.</p>

<p>Today, I found <a href="http://www.dreamhost.com/">DreamHost</a>, which hosts this blog and other websites of mine, supported piping E-mails into other programs. Great! I went straight to write a tiny script, mail2twitter.rb, which allows me to post my status via e-mail. Then I created a new user to accept the e-mails. Finally, created a file named .forward.postfix right under the user's home directory like this:</p>

<pre><code>"| /home/username/path/to/mail2twitter.rb"
</code></pre>

<p>That's all. For more, consult <a href="http://wiki.dreamhost.com/Email_to_Script" title="Email to Script - DreamHost">DreamHost Wiki</a> to know how to configure your environment. And I drew upon <a href="http://la.ma.la/blog/diary_200704111918.htm" title="最速インターフェース研究会 :: bluewindからtwitterを更新できるようにRubyでシンプルなクライアントを書いた">a script written by ma.la</a> to write this script. Thanks!</p>

<p><strong>Note</strong>:</p>

<ul>
<li>Don't forget to give the script an executable privilege(e.g. <code>chmod +x mail2twitter.rb</code>).</li>
<li>Hide the address to accept e-mails from anyone. mail2twitter.rb checks who sends an e-mail by From field of it, but, you know,  it's inadequate to save your status from malicious people.</li>
<li>This way explained here is basically applicable to other environments which support e-mail piping.</li>
</ul>

<p><a href="/2007/04/14/mail2twitter.txt">mail2twitter.rb</a></p>

<pre><code>#!/usr/bin/ruby

require 'uri'
require 'kconv'
require 'mailread'
require 'net/http'

username  = 'username'
password  = 'password'
addresses = ['foo@exapmle.com', 'bar@example.com']

mail      = Mail.new($stdin)
exit unless addresses.find{|address| mail['From'].index address}

status    = URI.escape(Kconv::kconv(mail['Subject'], Kconv::UTF8, Kconv::AUTO))
req       = Net::HTTP::Post.new('/statuses/update.json')
req.body  = 'status=' + status
req.basic_auth username, password

Net::HTTP.new('twitter.com', 80).start {|http|
  http.request req
}
</code></pre>

      

   ]]>
   </content>
</entry>
<entry>
   <title>MT Plugin to Attach Bookmark Counts on Delicious</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/11/192045.html" />
   <id>tag:blog.kentarok.org,2007://1.21</id>
   
   <published>2007-04-11T10:20:45Z</published>
   <updated>2007-04-11T10:48:15Z</updated>
   
   <summary>To attach counts which indicate how many people bookmarked my entries to del.icio.us, I wrote a tiny plugin script pasted below. I&apos;m sure that anyone must have written a script like it yet, but it&apos;s probably much faster to write...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="delicious" label="delicious" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="movabletype" label="movabletype" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>To attach counts which indicate how many people bookmarked my entries to del.icio.us, I wrote a tiny plugin script pasted below. I'm sure that anyone must have written a script like it yet, but it's probably much faster to write it for myself than to google for it.</p>

<p><a href="/2007/04/11/delicious-count.txt">delicious-count.pl</a></p>

<pre><code>use strict;
use Digest::MD5 ();
use MT::Template::Context;

MT::Template::Context-&gt;add_tag(DeliciousCount =&gt; sub {
    my $ctx  = shift;
    my $link = $ctx-&gt;stash('entry') ? $ctx-&gt;stash('entry')-&gt;permalink
                                : $ctx-&gt;stash('blog')-&gt;site_url;
    my $digested = Digest::MD5::md5_hex($link);

    return qq{&lt;a href="http://del.icio.us/url/$digested"&gt;&lt;img src="http://del.icio.us/feeds/img/savedcount/$digested?aggregate"&gt;&lt;/a&gt;};
});

1;
</code></pre>

      

   ]]>
   </content>
</entry>
<entry>
   <title>About a Girl (, Wearing Glasses)</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/11/030456.html" />
   <id>tag:blog.kentarok.org,2007://1.20</id>
   
   <published>2007-04-10T18:04:56Z</published>
   <updated>2007-04-10T20:06:03Z</updated>
   
   <summary>I absolutely hate those who attach their fingers to glasses when they&apos;re taken photographies. Wearing glasses, especially for girls, has been revaluated recent years, so we often get an oppotunity of looking at such photos. Whenever I encounter such photos,...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="girls" label="girls" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="thought" label="thought" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>I absolutely hate those who attach their fingers to glasses when they're taken photographies. Wearing glasses, especially for girls, has been revaluated recent years, so we often get an oppotunity of looking at such photos. Whenever I encounter such photos, I'm forced to feel annoyed their befavior, sucking arround for the fashion.</p>

<p>I absolutely love girls who're wearing glasses, especially celluloid-rimmed one, but think they should wear glasses in a dignified manner without attaching their fingers to it.</p>

      

   ]]>
   </content>
</entry>
<entry>
   <title>Post Skype&apos;s Mood Text to Twitter</title>
   <link rel="alternate" type="text/html" href="http://blog.kentarok.org/2007/04/10/202326.html" />
   <id>tag:blog.kentarok.org,2007://1.19</id>
   
   <published>2007-04-10T11:23:26Z</published>
   <updated>2007-04-11T00:51:30Z</updated>
   
   <summary>I wrote a WSH script, skype2twitter.js, which allows you to post your mood text set on Skype client to Twitter. After setting your username and password of Twiter, just run it. Then, the script checks your mood text, and posts...</summary>
   <author>
      <name>kentaro</name>
      
   </author>
   
   <category term="skype" label="skype" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="wsh" label="wsh" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blog.kentarok.org/">
   <![CDATA[
      <p>I wrote a WSH script, <a href="/2007/04/10/skype2twitter.js">skype2twitter.js</a>, which allows you to post your mood text set on Skype client to <a href="http://twitter.com/">Twitter</a>. After setting your username and password of Twiter, just run it. Then, the script checks your mood text, and posts it to Twitter if changed. </p>

<p>Be sure that now it just only posts the mood text to twitter, that is, it doesn't synchronize the mood text and the status on Twitter, which can be updated from Web, IM or the other various places. I expect someone to enhance it to enable to do it.</p>

<p>To tell the truth, what I did with the script is just to mix <a href="http://d.hatena.ne.jp/arikui/20061203#1165072573" title="Fuck食場 - SkypeにiTunesで再生してる曲名表示">this script</a> and <a href="http://muumoo.jp/news/2007/04/10/0twitterclient.html" title="Twitterに投稿するJavaScriptを作ってみた(MM Command Sense でも使えるよ)(管理人日記) - むぅもぉ.jp">another one</a>. Thank to them!</p>

<p><a href="/2007/04/10/skype2twitter.js">skype2twitter.js</a></p>

<pre><code>// configurations
var username = 'username';
var password = 'password';
var interval = 60000;

var status;
var skype = newComObject("Skype4Com.Skype");
var ua    = createUserAgent();

while (true) {
    if (status == skype.CurrentUserProfile.MoodText) continue;

    status = skype.CurrentUserProfile.MoodText
    postStatus(ua, username, password, status);
    WScript.Sleep(interval);
}

function postStatus (ua, username, password, status) {
    try {
        ua.open(
            'POST',
            'http://twitter.com/statuses/update.json',
            false,
            username,
            password
        );
        ua.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        ua.setRequestHeader('X-Twitter-Client', 'Skype2Twitter');
        ua.setRequestHeader('X-Twitter-Client-Version', '0.01');
        ua.setRequestHeader('X-Twitter-Client-URL',  'http://blog.kentarok.org/2007/04/10/skype2twitter.xml');
        ua.send('status=' + encodeURIComponent(status));

        if(ua.status == 200) {
            print('Updated: ' + status);
        }
        else {
            print('Error: ' + ua.status + ' - ' + ua.statusText);
        }
    }
    catch (e) {
        print (e.message);
    }
}

function createUserAgent () {
    try{
        return new ActiveXObject('Msxml2.XMLHTTP');
    }
    catch (e) {
        try{
            return new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            return null;
        }
    }
}

function newComObject (lib) {
    var obj;

    try {
        obj = WScript.CreateObject(lib);
    }
    catch(e){
        obj = new ActiveXObject(lib);
    }

    return obj;
}

function print (string) {
    WScript.Echo(string);
}
</code></pre>

      

   ]]>
   </content>
</entry>

</feed>
