読者です 読者をやめる 読者になる 読者になる

YAPC::Asia 2012で「Skype効率化」というタイトルでトークしてきます

Skype効率化 無事に採択されました。ありがとうございます。しかし、kazuhoさんとTAKESAKOさんの裏番組でした ;( 気合入れて頑張ります! 基本的にはSkype botを作る上でのtips集の紹介です。このトークを聞けばSkype botが書けるようになるはずです。 Skype…

Acme::Collector64をCPANにアップした

Acme::Collector64 - Yet Another Base64? - metacpan.org

Mojo::DOMとWeb::ScraperとWeb::Query

Mojo::DOMとWeb::Scraper - Charsbar::Note より 最近、Web::Scraperの代わりにWeb::Queryを使うことが多いのでWeb::Queryも追加してみたけど、速度の面ではWeb::Scraperと何ら変わりないのであまり意味がなかった。。 use strict; use warnings; use 5.010;…

SFTPサーバーを立ち上げる

/etc/ssh/sshd_configに以下の内容を追加する Subsystem sftp internal-sftp Match Group sftp-only PasswordAuthentication yes ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding noあとはユーザーをsftp-onlyグループに所属させればおー…

Plack::Middleware::Warn::txt書いた

akiym/Plack-Middleware-Warn-txt · GitHub use strict; use warnings; use Plack::Builder; my $app = sub { my $env = shift; return [200, ['Content-Type' => 'text/plain'], ['hello']]; }; builder { enable 'Plack::Middleware::Warn::txt', author =…

hateblo hacks

自分のはてブロにwarn.txtを置いてみた。 通常、ファイルを置くことはできないようになっているが、あるハックをすると任意のファイルを置くことができるようになるので、それを利用した。http://akiym.hateblo.com/warn.txt

perl-5.16.0 is now available!

% perlbrew install perl-5.16.0 今朝、ついにperl-5.16.0がリリースされました。 詳しい変更点についてはperldeltaを見ればバッチリですが、Hokkaido.pm Casual#0で発表したスライドがあるので、そちらを参照するといいかもです。 http://akiym.com/slides/…

Skype::Any for Linux

0. Skype::Anyを入れる akiym/Skype-Any · GitHub からどうぞ 1. Net::DBus::Skype::APIを入れる akiym/Net-DBus-Skype-API · GitHub からどうぞ 2. AnyEvent::DBusを入れる % cpanm AnyEvent::DBus これで動くかもしれません。

Skype::Any現状

Macでは使えませんが、Linuxでは使えます(手元で動きました)。 MacのSkypeはバージョンアップして、レスポンスが非同期で返ってくるようになったので(仕様らしいです。うえー)、Mac環境では思ったように動きません。メッセージを送信だけするといったことは…

メモ: nginx「upstream sent invalid chunked response while reading upstream」

nginx/1.2.0でエラーを吐いた(しかも正常なレスポンスを返さない) nginx/1.0.15ではエラーを吐かなかった とりあえず、検索してみるとIRCのログのようなものにヒットした。 http://ngxbot.lustfield.net/logs/%23nginx/2012/02/%23nginx.03.log 英語でよくわ…

大学の授業の小テスト

perlのプログラミングについての質問です。 大学の授業の小テストなのですが、よろ... - Yahoo!知恵袋 より Q1 円の半径を入力すると「その円の面積」を出力するプログラムを作り、 作成したプログラムに半径として以下の値を入力した場合に、 それぞれの出…

.vimperatorrc晒し

あまりカスタマイズしてないけど。 今は使ってない機能とかも残ってると思うし、ただコピペしてきただけのところもあるので注意。 ひとつひとつコメントを書こうかなと思ったけど、面倒だったのでやめた。 set titlestring=Firefox set ignorecase set compl…

Firefox 12.0にアップデートしたらCocoaのEmacsキーバインドが使えなくなった!そんなときには…

気がつくと勝手にFirefoxのバージョンが12.0になっていて、うわーとなってしまいました。それだけなら別にいいのですが、CocoaのEmacsキーバインド(C-hやC-wなど)が使えなくなってしまいました。 原因 VimperatorというわけでVimperatorのアップデートをしま…

メモ2: 徳丸本に載っていないWebアプリケーションセキュリティ (PHPカンファレンス北海道)

- OSコマンドインジェクションは本当にめずらしい - 釣りでいうとイトウ(本人談) - キャッシュからの情報漏洩 - リバースプロキシ、フォワードプロキシ、ブラウザのキャッシュ機能 - アプリケーションの負荷軽減 - 「別人問題」 - 原因のひとつがキャッシュ …

メモ1: さくらのクラウドのコンパネをつくる話 (PHPカンファレンス北海道)

とりあえずメモしたので、貼り付けておく。 - 石狩データセンター - 4000ラック - ダクトは段ボール - 軽い、耐熱性 - さくらのクラウド - IaaS - インフラ - VLAN - Ether over InfiniBand - OUI: 9C-A3-BA - $1750くらい - API - REST - PHP+MySQL - ステ…

M.pmを読んだ

元ネタ: Mo.pmを読んだ - Perl日記 コード 見た感じはシンプルですが、どんな実装になっているのでしょうか。 package M; $VERSION = 1.000001; ネタが尽きたので終わり。

webibloを使ってみた

だるそうだなーと思ってたけど、まあまあ簡単だった。 しかし、webiblo.plはImage::Resizeに依存していたので嫌だなーと思ったのでImagerを使うように書き換えた。 diff --git a/webiblo.pl b/webiblo.pl index ba1fef0..c9af2d2 100755 --- a/webiblo.pl ++…

さくらのVPSを契約した

さくらのVPSがとってもお得になるという話を聞いたので、メモリ1Gのプランを契約してきた。 とりあえずDebian入れておいた。

Perlで動的ディスパッチ/動的メソッド定義

Ruby、Pythonで動的ディスパッチ/動的メソッド定義 - brainstorm より こんな感じでしょうか。 追記 AUTOLOADを使う方法もあるみたいです。(thanks nekokakさん) Re: Perlで動的ディスパッチ/動的メソッド定義 - blog.nekokak.org

Markdown事情

最近Markdownが流行っているみたいなので。自分の場合はプレゼン資料を書くのにMarkdownを使っている。 手作業でいちいちMarkdownをHTMLに変換するのはだるいので、コマンドで一発で変換するようにしている。 こんな感じ。 pfswatch ~/work/slide -e "slide.…

App::Tacochan - 様々なサーバのバッチ処理の結果等を Skype のチャットに通知するサーバ

YappoLogs: App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ より リポジトリはこちら akiym/p5-App-Tacochan - GitHub HTTPで叩けるSkypeみたいなものです。ikachanをコピペして作ったのですが、ikachanとは使い勝手…

Amon2で簡単なGyazoサーバーを書いてみる

去年、Mojolicius::LiteでGyazoサーバーを書いたので、今年はAmon2で書いてみます。 普通のGyazoを作っても面白くないので、(独自に)短縮されたURLを返すようにしてみましょう。 % amon2-setup.pl Gyazo ... create mode 100644 tmpl/include/layout.tt crea…

perldocの"−"記号

知らなかったのでメモ。 perldocで表示される"−"はよく見ると、キーボードについているあの"-"ではなく全角のハイフンなので、コピペするときや検索するときに困る。 どうすればいいのかなーと思って調べてみたところ、groffのバージョンをあげればいいこと…

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でもできるので満足ですね。