2011-01-01から1年間の記事一覧

2011年を振り返る

とても充実した1年だった。振り返ってみるといろいろなことがあった。 Hokkaido.pm #4 Hokkaido.pmには去年の#3から参加していて、今年も参加した。 ここで、僕がPerlを使うようになるキッカケとなった、憧れのyusukebeさんと出会う。 Hokkaido.pm #5 LT 初…

Perl Advent Calendar 〜これを見ておけば年末も大丈夫!〜

はてブ数が多い順に並べて見ました。 はてブ数 記事 63 STF分散オブジェクトストレージ - Perl Advent Calendar Japan 2011 Hacker Track 46 データ分散とインデックス最適化のためのハッシュ関数の利用 - Perl Advent Calendar Japan 2011 Hacker Track 39 …

Skype::Any for Mac

typesterさんがCocoa::Skypeを作ってくれたので、Skype::AnyがMacで動くようになりました。 typester++ 変更点 Macのサポート Macで動くようになりました。 Skype::Any::Messageを追加 Skypeのバージョンが古い場合や、protocolに2以下を指定するとSkype::An…

WindowsからSkype APIを叩く

CPANで調べてみたところ、2つのモジュールがあった。 SkypeAPI Win32::Skype SkypeAPI XS 「only support windows platform now.」。SkypeAPIってマルチプラットフォームに対応してそうな名前なのに… やたらとprintする。うるさい :( 無駄にAPIを叩く。それ…

Skype::Anyというモジュールを書いている話

少し前に、Net::DBus::Skype::Liteというモジュールを書きました。PerlからSkype APIを叩けるのは便利なのですが、不満点がいくつかあります。 LinuxのSkypeにしか対応していない 全体で2200行くらいある(Liteなのに…) 無駄なコードが多すぎる そこで、Net::…

Hokkaido.pm#6で話してきます

http://hokkaido.pm.org/event/hokkaidopm6.html 10分枠をもらったので、botの話をしたいなーと思っています。 AnySanで簡単! Twitter bot AnySanで簡単! ◯◯ bot ↑今、これを実現するためにモジュールを書いています。

はてブロ

http://akiym.hateblo.com/

Acme::Collector64というモジュールを書きました

akiym/Acme-Collector64 - GitHub オリジナルのBase64を作ることができるモジュールです。 使い方はこんな感じです。 use strict; use warnings; use utf8; use Acme::Collector64; my $index_table = 'あいうえおかきくけこさしすせそたちつてとなにぬねの…

Initial commit

http://staff.hatenablog.com/entry/2011/11/24/180013

ワンライナーでExcel列名変換問題(逆変換)

Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編) - give IT a try より 27 → AA perl -le'$c=A;$c++for 2..pop;print$c' 追記(11月5日 0:50) AA → 27 perl -le'$n++for A..pop;print$n'

crontab tips

use strict; use warnings; use Amon2::Lite; get '/cron/regen/rss' => sub { my $c = shift; # ... $c->create_response(200, [], 'ok'); }; __PACKAGE__->to_app; */10 * * * * cronlog -- wget -O - http://localhost:5000/cron/regen/rss 2>&1

週末ひとりハッカソンのお知らせ

せっかくYAPCに行って情熱をもらってきたので、熱が冷めないうちに週末ひとりハッカソンを開催します。と言っても、ひとりハッカソンなので開催を宣言しても意味がありません。 でも、宣言しておくとやる気が出るし、放ったらかしにしてしまうことがなくなり…

高校生がYAPC::Asia 2011に行って来ました

高校生ですが、YAPC::Asia 2011に行って来ました。初参加です。 自分みたいな学生がYAPCに行くのは金銭的な問題から難しいのですが(しかも北海道からなので)、Hokkaido.pmのみなさんが支援してくれたおかげでYAPCに行くことができました。本当にありがとうご…

北海道の高校生がYAPC::Asia 2011に参加してきます

明日、飛行機に乗って東京へ行きます。 Hokkaido.pmからの支援を受けて、YAPCに参加してきます。高校生がYAPCに参加する事例はあまり聞いたことがないので、ちょっと緊張してます。 「なぜ、高校生がPerlを使うのか?」というタイトルでトークします。 15日…

Perl SEGV Golfに挑戦してみた

にひりずむ::しんぷる - perl segv golf より % perl -eversion::new zsh: segmentation fault perl -eversion::new % echo perl -eversion::new | wc -c 20 さすがにAcme::SEGVには負けますね。ちなみにperl-5.8.9ではSEGVしません。 というよりこれ、どう…

Skypeのチャットログを検索する

Skypeのチャットログを素早く閲覧・検索できるMacアプリ|SkyChatViewer - #RyoAnnaBlog より アプリをダウンロードするのはだるいですね。 OS Xでは~/Library/Application\ Support/Skype/Skype名/main.dbにDBがあります。つまり、それをごにょごにょすれば…

Hokkaido.pm#5で話してきました

Hokkaido.pmに参加するのは3回目ですが、初LTしてきました。初めてだったのでとても緊張しましたが、得られたものはとても大きいと思いました。 まず、「面白い!」と言われたこと。そして、複数の人から「YAPC来ればいいじゃん!」と言われたこと。 どちら…

PerlでSkypeボットを作る

結構前にNet::DBus::Skype::Liteというモジュールを書き始めました。一応、自分のやりたいことはできるようになったので、今では未完成のまま開発停止中です。 akiym/Net-DBus-Skype-Lite · GitHub ドキュメントがなく、コードも微妙、そしてテストもないの…

7/16のHokkaido.pmで初LTします

7/16(土)にHokkaido.pm#5が開催されます。 ゲスト: @nekokak さん Hokkaido.pm#5 : ATND 本題ですが、初LTします。タイトルは「Base64を再実装する」です。 初めてのLTでドキドキしますが、頑張ります。 あと、@nekokak さんが来るらしいので、ちょー楽しみ…

Web::Query 0.06でfirst、lastが使えるようになった話

先日書いた記事では、Web::Queryで最初の要素だけを取りたいんだけど、うまく書けないよねーと書いたあと、firstとかlastみたいなのがあると便利だなーと思ってpull-req送ったら、いいよってことで、取り込んでくれました。 Web::Query 0.06ではfirst, last…

Web::Queryで最初の要素を取りたい!

例えば、このようなリストがあるとします。 <ul class="video"> <li>A</li> <li>B</li> <li>C</li> <li>C</li> </ul> このリストから、最初の要素<li>A</li>だけを取りたい時にはどうすればいいでしょうか。 Web::Scraperではこんな感じです。 use Web::Scraper; my $scraper = scraper { process 'ul.video li', 'title' => 'TEXT…

Web::Queryで最初の要素を取りたい! その2

Web::Queryにfirst()、last()みたいなのがあると便利だなーと思いました。 例えば、こんな感じ。 sub first { my $self = shift; $self->{trees} = +[$self->{trees}[0]]; return $self; } sub last { my $self = shift; $self->{trees} = +[$self->{trees}[…

Google CGI API for Japanese Input

WebService::Simpleを使ってGoogle CGI API for Japanese Input - アリ より こう書けよ。 use strict; use warnings; use Encode; use JSON; use LWP::UserAgent; use URI; use Data::Dumper; use Data::Recursive::Encode; my $text = shift or die; my $u…

Amon2でTengを使いたいときには

Amon2のflavorを書いてみた。 こうすることで、 % amon2-setup.pl --flavor Teng MyApp みたいにできるので便利。 あと、TengにはTeng::Schema::Dumperがあるのでschemaの生成が楽。

リアルタイムプレビューしたい

gfxさんから「スクリプトを別にするのではなく、フォームからフォーマットを選べると嬉しいです!!」と言われたのでやってみました。 最近、コード書くのが楽しいです。 いい感じ!マジで便利です。 気になったこと $self->param()がからっぽのときは? こ…

昨日のリアルタイムプレビューは...

GETを使うよりもPOSTを使うべきだよね、って言われそうなのでPOSTを使ってみた。 preview in real-time. — Gist ほかにも、Text::XatenaやPod::Simple::XHTMLを使った例もあるので必見。

Mojolicious::Liteを使ってMarkdownをリアルタイムプレビューしてみた

こんな感じ。 もちろん、Text::MarkdownだけではなくText::Xatenaでもできるので満足ですね。

続 plackupを使いたい(zsh編)

実は、plackup しても引数の補完はできるのにファイル名の補完ができません。 なので、ファイル名の補完ができるようにしました。 設定方法は前回(brew、cpanm、plackupを使いたい(zsh編) - アリ)と同じです。 fpath=($HOME/.zsh/functions $fpath) を.zshrc…

vi vs Emacs

震災後アクセスが減った原因 « python練習帳より viとEmacsでも比較してみましょう。 vi Google トレンド: vi Emacs Google トレンド: emacs viの勝ちですね。やはり、viのほうが優れているということでしょうか。 ところで、vimで検索してはいけないと誰か…

brew、cpanm、plackupを使いたい(zsh編)

まずはfpathの設定を.zshrcに書く。 fpath=($HOME/.zsh/functions $fpath) brewは補完設定ファイルが付属しているので~/.zsh/functionsにコピーする。 % cp /usr/local/Library/Contributions/brew_zsh_completion.zsh ~/.zsh/functions/_brewcpanmとplackup…