limitusus’s diary

主に技術のことを書きます

Perl

Perlからshared objectの関数を呼び出す

今回のお題 foo.so に含まれている関数 void func(void) をPerlから呼び出す。 プロトタイプ宣言の通り、引数は取らないし戻り値もない(あるいは見ない)。 やりかたはいくつかあって、 普通ならXSモジュールを書いて対応する。 ただこのシンプルな目的のた…

Perlのglobはもうshellを呼ばない

もう10年以上前の話だが、メモ。IPAのセキュア・プログラミング講座にある4-2. Perl の危険な関数には以下の記載がある。 便利な<> 構文,glob関数であるが,実は内部的にシェルを呼び出している。そのためリスト7の1行目のような文字列を渡した場合,パス…

PerlでGoogle Calendar APIを勉強

アラートのメール通知がきたらGoogle Calendarに記入しておくとあとで振り返るのが簡単なんじゃないかなーと思ったので、まずはお勉強から。 要素 できるようになってから振り返ると、以下の要素を理解する必要があった。 REST OAuth 2.0 Application Creden…

PerlでTwitter API SSL化に対応するたった1行

手元でTwitterの古いpostを削除するスクリプトをcron実行してるのですが、Twitter APIってSSLのみ対応になったのをすっかり放置してしまっていました。 cron実行に失敗してメール通知が来たので1週間くらい経ってようやく対応。Net::Twitterを使っているので…

Parallel::Fork::BossWorkerAsyncがいい感じ

先日 id:hirose31 と 並列処理はParallel::ForkManagerとかParallel::Preforkが定番だけど、もうちょっと効率よくやりたいこともある P::ForkManagerはタスクごとにforkするので負荷の分散は綺麗にできるが、タスクの数だけforkが発生して効率がよくない P::…

Server::Starterに対応するとはどういうことか

StarletやStarmanと組み合わせてよく使われているServer::Starterですが、普段気にしないような部分を読む機会があったのでメモ。Server::Starterは --port (TCP) や --path (Unix Domain Socket) を渡すとこれでlisten(2)して起動するworkerに引き渡してく…

YAPC::Asia 2013 Staff Report

去年の YAPC::Asia 2012にStaff参加してきた - Limitの日記 に引き続き、今年も YAPC::Asia 2013 のStaffとして参加してきました。 今年も「ブログを書くまでがYAPC::Asia」ということで、書きます。今年は僭越ながら多目的教室2という部屋のリーダーを仰せ…

YAPC::Asia 2012にStaff参加してきた

日本で最も大きなPerlの会議、YAPC::Asia 2012に参加してきました。 去年は学生チケットで参加させていただいたのですが、今年はボランティアスタッフとして。ということで、スタッフをやりながら印象に残った発表などを書いていきます。 前夜祭の日は参加で…

perlbrewがぶっ壊れた話

ちょっと事情があってperl5.6.2をperlbrewでインストールしたらperlbrewがぶっ壊れてしまい、そんな古いものでトラブったレポートなんて書かれてなかったのでその話。

Rakudo Perl6をソースからビルドしてみた

Perl使いとしてはやはりPerl6のビルドくらいはやっておかないとということでやってみた。 環境 OS Ubuntu 8.10 Intrepid Ibex Server Parrotのインストール % svn co https://svn.parrot.org/parrot/trunk parrot % cd parrot % perl Configure.pl --prefix=…

Linuxのプロセス毎メモリ使用量を調べてみた

大学の課題で「いろいろな条件下で各プロセスのメモリ使用量を調べよ」というのが出ました。メモリ使用量は/proc/PID/smapsに書かれているということを知ったので、それを使ってみることにしました。 もうレポート提出してからだいぶ日が経過したので公開し…

PugsをHardyに手動でインストールした

andLinuxではaptで簡単にPugsをインストールできたのにHardyでは見つからなかったよ?レポジトリ登録してないせいかな?とも思ったのですが面倒だったので手動で入れました。 せっかくなので手順を残しておきます。 Pugsって? 現在開発中のPerl6のインタラ…

Tween.exe.configからcrochetの設定ファイルを生成

id:showyou がこんなことを言っていたので作ってみた。PerlerなのでPerlでキモく実装。バグがあったらごめんなさい。 準備 XML::ParserはPerl標準モジュールではない(と思う)ので、以下の手順などでCPANから入れてください。 $ perl -MCPAN -e 'install XM…

LL Future行ってきたレポ

昨日知ったのでLL Futureに行ってきました。