Process group を kill する

例えば % perl -e 'system "sleep 1000"' | grep a | sort | uniq で % ps axo pid,pgid,command PID PGID COMMAND 26275 26275 -zsh 84326 84326 perl -e system "sleep 1000" 84327 84326 grep a 84328 84326 sort 84329 84326 uniq 84330 84326 sleep 100…

Perl - Exporter の使い方

https://metacpan.org/module/Exporter 今まで、Exporterは package Foo; use base 'Exporter'; our @EXPORT = qw(func); sub func { ... } と使うものと思っていたが、 package Foo; use Exporter 'import'; our @EXPORT = qw(func); sub func { ... } でも…

Perl - ワンライナー

Perl でワンライナーを書くとき、$ とかをシェルに解釈されないようにシングルクオートで囲む方がいい。 % perl -e 'print $ENV{SHELL}' /usr/local/bin/zsh シングルクオート自身を使いたいときは変数に格納して使うと楽。 % perl -e '$quote = "\x27"; pri…

Perl - Minilla を使おうとして

tokuhirom さんの Minilla を使ってみようとして % cpanm -Lext Minilla --> Working on Minilla Fetching http://www.cpan.org/authors/id/S/SL/SLANNING/Mozilla-DOM-0.23.tar.gz ... OK ... Mozilla-DOM の example に Minilla.pm が入ってた。 気を取り…

256 color

"\e[38;5;XXXm" の XXX に 1-255 の数字を書けばその数字に対応する色が出力できる。 英語のwikipediaに詳しく書いてある。 http://en.wikipedia.org/wiki/ANSI_escape_code https://metacpan.org/module/Term::ExtendedColor https://metacpan.org/module/I…

Mac + zsh + vim + plenv or rbenv

Mac + zsh + vim から plenv の perl または rbenv の ruby を呼び出すには https://github.com/sstephenson/rbenv/issues/173 http://blog.glidenote.com/blog/2012/06/26/vim-zshenv-rbenv/ http://d.hatena.ne.jp/speg03/20120624/1340556621 などをみた…

Perl - 子プロセスにSTDINの内容を振り分ける

STDINの内容を子プロセスたちのSTDINへ順番に振り分けるスクリプト。 使いどころの例:ダウンロード並列化 url.txt にダウンロードしたい url を一行ごとに書いておく。例えば http://www.example.com/index.html http://example.co.jp/image.jpg http://www…

Perl - はじめての CGI

正直、CGI が何の事だか分かっていないので実際に動かしてみる。 CGI = HTTP サーバから環境変数とかでリクエストの内容をもらい、標準出力を通じてHTTPサーバにレスポンスを返す仕組み と理解しとこう。 % sudo apt-get install apache2 % sudo chmod 777 /…

Perl - カリー化?

http://d.hatena.ne.jp/kazu-yamamoto/20110906/1315279311 ここに書いてあることを Perl でやってみる。 定義2 カリー化 =「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと my $plus = sub { my $x = shift; return sub { my $y = sh…

git instaweb on plack

git 1.7.2 (もしくは 1.7.4.4) から git instaweb で plackup を指定できるらしい。 Various "gitweb" enhancements and clean-ups, including syntax highlighting, "plackup" support for instaweb, .fcgi suffix to run it as FastCGI script, etc. https…

Markdown Previewer for Google Chrome

Google Chrome 用の Markdown をプレビューするだけの App を作った。 拡張機能のディベロッパーモードをオンにして、ディレクトリ読み込めば使える。 https://github.com/ks0608/chrome-markdown-previewer

Perl - Mojolicious で static ファイルをキャッシュさせない

hook + after_static_dispatch before_routes でできた。 See: Mojolicious#hook

Perl の最新バージョン表示

Perl 5.14 で core module になった JSON::PP と HTTP::Tiny を使って。 perl -MJSON::PP -MHTTP::Tiny -e 'print decode_json(HTTP::Tiny->new->get("http://api.metacpan.org/v0/release/perl")->{content})->{version}' perlbrew で最新の Perl をインス…

Perl 5.12 から \N{ ... } は UTF-8 の内部表現を強制する

\N{...} now compiles better, always forces UTF-8 internal representation http://perldoc.perl.org/perl5120delta.html#Internal-Changes % cd ~/perl5/perlbrew/perls % perl-5.10.1/bin/perl -MDevel::Peek -e 'Dump "\N{U+c2}"' SV = PV(0x831b410) a…

Perl - GitHub Flavored Markdown

https://metacpan.org/release/Markdent http://github.github.com/github-flavored-markdown/

Perl - template

VirtualBox + Vagrant

Ubuntu 12.04 Server に VirtualBox + Vagrant を入れ、instanceを作ったり消したり簡単にできるようになった。 素晴らしい。 VirtualBox インストール VirtualBox のレポジトリを /etc/apt/sources.list に追加して、apt-getでインストール。Ubuntu じゃな…

YAPC::Asia Tokyo 2012

YAPC::Asia Tokyo 2012 の2日目に行ってきたので感想を書こう。 「新しい」を生み出すためのWebアプリ開発とその周辺 yusukebeさん Perl というかプログラミングをやろうと思い始めたのはこの方のブログを読んでからだった思う。 全く本筋とは関係ないが、…

Plackup !

Day 5: Run a static web server with Plack - Plack Advent Calendar を参考に、ローカルにある1つのファイルまたはディレクトリをWebサーバ立ち上げて配信!いやー便利だ。 $ plack-static [file | directory] # http://localhost:5000 にアクセス!

Tera Term でクリップボードにコピー

Tera Term を使ってリモートで作業してるとき、Mac の pbcopy のようにクリップボードに標準入力から受け取ったデータをコピーしてくれるコマンドがあったら便利だなと思う事がしょっちゅうある。 リモートの tmux でコピーした内容のローカルのクリップボー…

Perl - 画像ダウンロード 2

Perl - 画像ダウンロード - It'll be をAnyEventを使ってやるのに変えてみた。多分速くなった。

vim - block commentout

vimでブロックのコメントアウトをするやり方が commentout.vim : ソースをコメントアウト ←→ コメントアウト解除 — 名無しのvim使い などに載っているんだけど、なぜか動作しなかったので下のようにしてみた。 使い方 上を .vimrc にコピーして、大文字のVで…

Perl - インデントのスペースの数を変える

使い方 source.c のインデントのスペースの数を 8 から 4 に変えるには $ indent.pl -i=8 -o=4 source.c とする。indent.pl をパスの通ったところに置いた後、vim 上で :%! indent.pl -i=4 -o=2 とすると、開いているファイルのインデントのスペースの数変え…

Perl - 画像ダウンロード

いかにしておっぱい画像をダウンロードするか〜2012 - ゆーすけべー日記 をWindows Azure Marketplace上のapiを使って検索するように変えてみた。追記:AnyEventで並列化したバージョンも書いてみた -> Perl - 画像ダウンロード 2 - It'll be #!/usr/bin/env…

Perl - Strawberry Perl で cpanm をインストール

curl ないけど perl があるじゃないか! (Strawberry Perl には libwww-perl がはじめから入ってる、多分) perl -MLWP::Simple -e "getprint(shift)" http://cpanmin.us | perl - App::cpanminus追記:lwp-request ってのがあることを知った。 lwp-request h…

Mac OS X Lion の zsh で濁点・半濁点を扱う

Mac OS X Lion に最初から入っている zsh 4.3.11 (i386-apple-darwin11.0) で濁点・半濁点の入ったファイルを扱おうとすると のようになってしまうけれど、.zshrc とかに setopt COMBINING_CHARS を指定してあげれば となる。 余談 プロジェクト.txt がある…

Perl - 配列の each メソッド

いろんな言語に配列の each メソッドがあるので Perl でも全く無意味に作ってみる。 #!/usr/bin/env perl use strict; use warnings; my $array = Array->new(10, 20, 30, 40); $array->each(sub { my $item = shift; print $item + 1, "\n"; }); package Ar…

Perl - WPA の 256bit キー を求める

SSID と passphrase (8文字から63文字のASCII印字可能文字) から WPA の 256bit キー を求める Perl スクリプト。前提として Crypt::PBKDF2 が必要。 #!/usr/bin/env perl use strict; use warnings; use Crypt::PBKDF2; use Getopt::Long qw{:config auto_h…

Perl - __SUB__ を使う

JavaScript The Good Parts ―「良いパーツ」によるベストプラクティス の 51 ページでメモ化(関数内部に値を覚えておくこと、クロージャ)の例としてフィボナッチ数列を返す関数が載ってる。だいたい次のような感じ。 #!/usr/bin/env node var fibonacci, i…

Cent OS 5.8 に screen-256color を解釈させる

TERM=screen-256color にしている tmux から Cent OS 5.8 にリモート接続していろいろやろうと思ったら、プロンプトのカーソルが表示してある文字に重なったり、vim のハイライトが 16 色になったりと残念なことになってしまった。これは Cent OS 側に scree…