Perl

リモートマシンからGrowl通知をできるようにしようとして挫折した話

Growl大好きなので色んなところから通知出来るようにしたい、と常々思っておりまして。 ふと、「sshで入って作業しているリモートマシンで時間かかるコマンド実行したときに終了通知をGrowlで受けたいじゃん?」と。 ちょろっと調べてみると以下のエントリが…

Quineの書き方メモ

Perl最短 一番簡単なquineはコレ? open 0;print<0> ただ、これは標準入力からだとダメなのでpipeで繋げる使い方はできない。 $ cat quine.pl open 0;print<0> $ perl quine.pl open 0;print<0> $ perl quine.pl | perl $ print+eval pipeでも使えるようにす…

Quine ruBy Perl版

Quine ruBy - まめめも 僕みたいなruby素人には何やっているのかよくわからない >< のでperl版を作ってみた。 eval (($q ||=q{1; $b=qq{$ q\x7d))}. join(chr( 2 +30)x11,( ";","BEGIN" .'{$^H|=' . ( "0x800000"),q"}eval$b"));$b=~s/\e\[.* ? m //xg;for…

ドット絵的な画像をそのまま拡大する方法が分からなかった

例えばこういうドット絵を 僕の環境で唯一(?)の画像編集方法であるPreview.appを使って10倍に拡大すると こんな風になってしまう。理想は こういう風にしたかったのだけど。 いくつか画像編集できるwebサービスとか試してみたけどなかなかそういうのが見つ…

App::Prove::Plugin::Growlを書き直してみた

もう1年以上になりますが「proveコマンドを実行したときの結果とかをGrowlで通知するプラグイン」というのを書いていて、 proveコマンドの完了をGrowl通知するプラグインを書いてみた - すぎゃーんメモ そのときはMac以外のプラットフォームでどうするの、と…

qunit-tapを使ってnode.jsのテストをproveで行う 続編

qunit-tapを使ってnode.jsのテストをproveで行う - すぎゃーんメモ の続きです。 qunit-tapは1.0.0がreleaseされました。 https://github.com/twada/qunit-tap/commit/5da16418b6de71e4be186d080a0622e5689e8878 で、@t_wadaさんから追加情報をいただきまし…

qunit-tapを使ってnode.jsのテストをproveで行う

Shibuya.js テクニカルトーク Test.jsでid:t-wadaさんの話がとても興味深く、 js テスト放浪記 qunit-tapというのが魅力的に感じたのでnode.jsのテストで使ってみました。 GitHub - twada/qunit-tap: A TAP Output Producer Plugin for QUnit quinit-tapとは…

半自動

人間のチカラ - すぎゃーんメモで学んだ。 Anpi - Shiny Cleaning Tip ではAPIを提供してくれているので、ある程度自動で情報を収集することができる。 Anpi - Shiny Cleaning Tip 情報量の多さではやはりGoogle Person Finderが強いと思う。 少しでも両者で…

OSX で tmpfs 的なことを試してみる

OSX で tmpfs 的なことをする方法 - unknownplace.org を読んで、SSDマシンじゃないけどちょっとやってみよう、と思って試してみた。 設定方法は上記記事の通りで $ hdid -nomount ram://128000 /dev/disk1 $ newfs_hfs /dev/disk1 Initialized /dev/rdisk1 …

初めてのPlack

初めてのnode.js - 葉っぱ日記 に便乗しまして。 Perlの世界では、2009年秋くらいから「PSGI」という仕様が作られていまして、いまやPerlでWebサーバを作る際の標準インターフェースとなっております。 PSGI/Plack - Perl Superglue for Web Frameworks and …

Perlで7記号FizzBuzz書いた

MacBook Air 11インチ欲しい! 30byteで書くとか無理ですけど7種類の記号でなら書けます! キリッ いちおうちゃんとPerlプログラムとして実行できますからね。 "^ " =~ ( ("(").("~"^"."^"^"^(""=="")."").("^" ^"="^(""=="").""^")").("^"^".").("=" ^"~"^(""=…

SQLでincrementした値を表示する方法を考える

例えば、アクセスするたびにそのページのPVをインクリメントしつつ表示するWebアプリを作るとする。 hogeというDBで CREATE TABLE `fuga` ( `path` varchar(256) NOT NULL, `pageview` int(10) unsigned default NULL, PRIMARY KEY (`path`) ); といったテー…

List::Util::reduceとかで警告が出る

List::Util::reduceとかってほとんど使ったことなくて、ちょっと使ってみようと #!/usr/bin/perl use strict; use warnings; use List::Util 'reduce'; print reduce { $a + $b } 1 .. 10; とか書いてみたら、 $ perl hoge.pl Name "main::b" used only once…

JPerl Advent Calendar 2010に参加しています

JPerl Advent Calendar 2010に参加させていただいています。 いまのところ以下の2記事を書かせていただいています。 コマンドラインで使えるかもしれないツール等あれこれ - JPerl Advent Calendar 2010 Casual Track 記号だけのPerlプログラミングの基本原…

AmonのForm::Rendererはどう使えば良いのだろう?

わからないことメモ。 http://amon.64p.org/Amon-Manual-Tutorial.ja.pod.html HelloアプリでFormを作成する際に、Hello::Form::Rendererを定義しているけど、どうもこれはHello::V::MT::Contextで呼び出して使っているようで、でも今のAmonには"V"は無いみ…

Notwifeの自分への通知を自分で行うスクリプト

Notwife、使ってみたら予想以上にイイカンジだったので愛用させていただいています。 http://notwife.heroku.com/ が、Notwifeが使用しているNotifoに利用回数の上限があるそうで、この先の運用が危うくなっているようです。 http://notwife.heroku.com/info…

Amonを触ってみる

いまのところCatalystとArkしかPerlのWAFを触ったことがないので、ちょっと他のものも知っておきたい、と思いAmonを触ってみることにした。 GitHub - tokuhirom/Amon: yet another web application framework $ git clone git://github.com/tokuhirom/Amon.g…

ニコニコ動画っぽくテキストをデスクトップに流すCocoaアプリを作ってみた

YAPC::Asia 2010 で、JesseがプレゼンにTwitterのタイムラインをニコ動っぽく流していて、同じようなことやってみたいなーと思ったものの、JS使ってやってるとそのブラウザ上でしかできないし、どうせならMacのCocoaアプリとしてどのアプリが起動していても…

YAPC::Asia 2010 を終えて

14日の前夜祭、15, 16日の本編、参加してきました。昨年に続き2回目の参加です。 昨年の感想とか: YAPC::Asia 2009 を終えて - すぎゃーんメモ 昨年は前夜祭のLTだけやらせていただいたのですが、今年は本編のトークもやってみたい、と思い、ネタも揃わぬう…

libxmlのバージョンとかでハマっためも

どうもWWW::MobileCarrierJPのインストールがうまくいかなくてtestこけてるところのログをみても何が原因なのかイマイチわからず、IRCで質問してみたところ、どうもlibxmlの方のバージョンが問題だったようで。 CentOSのデフォルトで入っている2.6.26から、…

Facebook APIを叩いてみる

ゆーすけべー日記の記事の影響か、自分のまわりでFacebookやり始める人が増えてきました。 なんか面白いことできないかなーと手始めにFacebook APIを使って全裸bot的な何かを作ってみようかと思ってやってみました。 サードパーティアプリの作り方、使い方な…

mapした結果がundefのものを除いた配列を得る

知らなかった。。 my @arr = ( { key => 1 }, { key => 2 }, { key => undef }, { key => 3 } ); のようなデータに対し、全要素の"key"に対応する値を取り出したmapを得ると print "$_\n" for map { $_->{key} } @arr; 1 2 Use of uninitialized value $_ in…

AnyEvent::Twitter::StreamでDesktop Notify

Twitterクライアントアプリでよくある「デスクトップ通知機能」。Macの場合はGrowlでアイコンと発言が出たりしますよね。 先日TwitterのUser streams APIがついに一般公開されたそうで、それに伴ってCPANモジュール"AnyEvent::Twitter::Stream"もアップデー…

StarmanとStarletの差異

StarmanとStarletの差異 - Togetterまとめ あっという間に疑問に対する回答が得られる TwitterとPerlコミュニティの皆様に心から感謝。

ackで検索してほしい拡張子を追加する

ackコマンドは空気を読んで検索対象ファイルを絞ってくれるのだけど、油断するとT::MTの.mtファイルなどは普通にスルーされてしまうので注意(TTはデフォルトで対応されているのだけど)。 Beyond grep: ack 2.14, a source code search tool for programmers …

アイコンぐるぐる

Twitterのアイコンをぐるぐる回してみた - すぎゃーんメモ で回してみたところ非常に不評だったので、みんな回ってしまえばいい、と思ってつくってみた。 http://lab.sugyan.com/iconguruguru/ (2011/04 移転) http://github.com/sugyan/IconRotate さくらの…

Template中のURLを自動で賢くアンカーテキストにしたい

まだText::XslateでもText::MicroTemplateでもなくTemplate::Toolkitを主に使っているわけですが。。 やりたいこと テンプレート中に出てくるURLを自動でアンカーテキストにしたい。 http://example.com/が自動的に <a href="http://example.com/">http://example.com/</a>になってほしい。この…

Twitterのアイコンをぐるぐる回してみた

なんとなく。 #!/usr/local/bin/activeperl use strict; use warnings; use Imager; my $file = '/Users/sugyan/Pictures/icon.png'; my @img = (); my $image = Imager->new(file => $file); push @img, $image; for (1 .. 59) { push @img, $image->rotate…

beginとかautoとかでdetachする

Catalystでハマった あるControllerで、指定の条件下ではアクションを実行させず404にしたい、というときにbeginとかautoで package MyApp::Controller::Hoge; use Moose; use namespace::autoclean; BEGIN { extends 'Catalyst::Controller' } sub begin :P…

カッコつけないPerl、カッコつけすぎなPerl

http://e-arrows.sakura.ne.jp/2010/08/is-lisp-really-has-too-many-parenthesis.html perlでカッコを使わないように階乗を計算するにはどうしたら良いんだろう? 再帰を使うとどうしてもサブルーチン定義で"{", "}"を使うことになってしまいそう、じゃあ後…