タグ

Perlに関するkajisukeのブックマーク (31)

  • Naoya Ito - SmartPhone development for Perl programmers with Node, CoffeeScript, HTML5

    YAPC::Asia Tokyo 2011 資料、詳細はこちら http://yapcasia.org/2011/talk/77 (c)Naoya Ito CC-BY-NC

    Naoya Ito - SmartPhone development for Perl programmers with Node, CoffeeScript, HTML5
  • Web+DB PRESS vol.63 の Perl Hackers Hub に寄稿しました | BLOG - DeNA Engineering

    初めまして、プラットフォームシステムグループの xaicron こと嶋田です。一部では鈴木と呼ばれていますが、実在する個人、団体とは関係ありませんのでご了承ください。 6/24 発売の Web+DB PRESS vol.63 に 「高速なWeb APIの実装とテスト」というタイトルで記事を書きましたのでちょこっと紹介します。 Mobage API を例に、どのようなことに気を付ければ高速な Web API を実装できるのかという割とニッチなネタを書きましたが、通常の Web アプリケーションであっても、そのまま転用して使えると思いますので「Web API とか興味ないし〜」と言う人も騙されたと思って読んでいただけると幸いです。 「Web API をOAuthに対応させよう」という記事や、pixiv さんの「段階的サービス拡張」という記事も載っているので、これ一冊あれば、Web API サー

    Web+DB PRESS vol.63 の Perl Hackers Hub に寄稿しました | BLOG - DeNA Engineering
  • Perlのメモリリークを見つける方法 - Islands in the byte stream (legacy)

    Perlではメモリリーク検出ツールがいくつか開発されているので、top(1)の結果を眺めるよりそういうツールを使うほうが楽である。 さて、メモリリークが発生しているとき、その可能性としてはだいたい以下の4つが挙げられる。 Perlレベルでの循環参照 グローバル変数に値をどんどん足しているとき*1 XSレベルでリファレンスカウントの管理ミス XSレベルでmalloc()したメモリの管理ミス この1-3についてはすべてPerlインタプリタ内の出来事であり、Test::LeakTraceを使って検出できる。4を検出するのは難しいが、Test::Valgrindが役に立つ。 Test::LeakTraceのSYNOPSISは歴史的経緯によりごちゃごちゃしているが、テストで使うべき関数はno_leaks_ok()とleaks_cmp_ok()だけである。 たとえば、以下のようにして使う*2。 #!p

    Perlのメモリリークを見つける方法 - Islands in the byte stream (legacy)
  • fixed point operator による再帰的な記述の除去 - Pixel Pedals of Tomakomai

    論理と計算のしくみを読んでるメモ。 fixed point operator があれば、再帰的な記述を再帰しない記述に直せる。再帰的な記述とは、例えば、以下のようなもの。 my $fact = sub { my $x = shift; $x <= 1 ? 1 : $x * $fact->($x - 1); }; 階乗を求める関数$factの定義内で、$factを参照している。これは一見実行できそうに見えるが、sub の中をコンパイルする段階では$factがまだ未定義のため実行できない*1。これを再帰しない記述に変えるために、fixed point operator というものが使える。fixed point operator とは、以下の性質を満たす$make_fixed_point。 my $x = $make_fixed_point->($f); $f->($x) eq $x; 任意の

    fixed point operator による再帰的な記述の除去 - Pixel Pedals of Tomakomai
  • Module::Setupで身に付けるよい習慣 - Perl日誌

    あらすじ 前回[twitter:@hachiojipm]で行われた[twitter:@norry_gogo]さんのLTで次のような発言がありました。 自分が書いたPerlコードを添削してくれる人が周りにいなくて困ってる 添削したったでー https://github.com/okamuuu/Twitter-Reader おすすめのファイル構成について 一枚岩のスクリプトだとテストがしづらいので普段から以下のようなディレクトリ構成にする事をおすすめします。 Your-Dist/script/*.pl Your-Dist/t/*.t Your-Dist/lib/**/*.pm Your-Dist/Makefile.PLscriptはbinでも何でも良いと思います。こんな感じのディレクトリがいいと思います。 それを簡単につくるためのcpanモジュールがいくつかあるのですが、今回はその中からMod

    Module::Setupで身に付けるよい習慣 - Perl日誌
  • Yokohama.pm#7 で喋って来たよ! - blog.nomadscafe.jp

    徒歩で帰れるのはYokohama.pmだけ! 2011/5/13 に開かれた「Yokohama.pm#7」で発表してきました。hirataraさんのまとめがいつもながらすばらしいです 自分の発表は、「Operation Oriented Web Applications」というなんかもっともらしいタイトルで最近作ってる Log::Minimal DBIx::Sunny GreenBuckets について話してきました。当は Scope::Container も追加しようと思ったのですが、どう考えても時間ないのでカットしてます。それでも時間オーバーすみません>< 資料はいつも通り slideshare 3つのモジュール/システムを紹介しながら、運用しやすい、運用からみて効率の良いアプリケーションとはというテーマをもってみました。ログ、SQL、効率的なスキーマ設計、ハードウェアの有効活用あた

  • CloudForecastっていうリソース監視のツール/フレームワーク作った - blog.nomadscafe.jp

    「クラウド」って言ってみたかった。今は反省していr 上のグラフは前回のエントリーを公開したときの、当blogを配信しているサーバのトラフィックグラフです。記事を公開した17時にぴょーんとトラフィックが伸びています。4時にも増えているけどこちらは謎。 実はこのグラフもCloudForecastを利用して取得しています。CloudForecastはサーバ等のリソース監視を行うツールもしくはフレームワークで、rrdtoolの薄いラッパーとして動作し、小規模から大規模なサーバ群を一括で管理できるように設計してあります。tokuhirom曰く、「perlが書けてrrdtoolがつかえるsysadminの人だったら使いやすいと思われる」というのがもっともしっくりくるような気がします。Perlとrrdtoolが使える運用者によるカスタマイズ前提なのがフレームワークと呼んでいる所以です。 CloudFor

  • GreenBuckets という Object Storage を作りました - blog.nomadscafe.jp

    GreenBuckets という Object Storage を作りました Object Storage とは何かというと、OSSではOpenStack Object StorageとかMogileFS 、Webサービスで使われているところでは mixi の ImageCluster とか livedoor の STF とか、比較にならないけどAmazon S3とかそういったたぐいのものです。しばしば画像のストレージなんかに使われていると思います。今回作ったのは GreenBuckets というもので、mixiのImageClusterの構成をまねしつつ、stfと同じようにバケット単位での操作を可能としています。なんですでにあるのに作ったのかというと、主に「つくってみかったから」ですね。一応目標として シンプルだけど使える cpanm でインストールが完了する できるだけ少ない依存関係

  • Perlで単体テスト - yokkunsの日記

    Perlの単体テスト、特にMockObjectを使ったテストについての情報が少ない気がするのでまとめてみる。 前提 モジュールは、CPAN形式であると前提。雛形は、Module::Starterで作成すると良い。 テストは、Test::Perl::Criticを入れる。 インストール $ sudo cpan Module::Starter $ sudo cpan Module::Starter::PBP $ sudo cpan Test::Perl::Critic 初期セットアップ $ perl -MModule::Starter::PBP=setup モジュールの作成 $ module-starter --module=Ysm::Example $ cd Ysm-Example $ ls Build.PL Changes MANIFEST Makefile.PL README ignor

    Perlで単体テスト - yokkunsの日記
  • XS基礎文法最速マスター - Islands in the byte stream (legacy)

    元ネタ:Perl基礎文法最速マスター(id:perlcodesample) XSを始めるための手順といくつかの要素の解説です。C言語をある程度知っている人でも,これを読んだだけでXSの基礎をマスターしてXSを書くことができるようにはなっていません。リファレンスでもありません。 XSとは,狭義ではPerlでエクステンションを書くためのマクロ言語の名前ですが,広義ではエクステンションを書くための技術の総称です。ここでは,広義のXSを俯瞰します。 XSはいろいろと特殊なのでテンプレは無視で行きます。 目次: h2xsで空のディストリビューションを作る XSファイルの構成 スレッドコンテキスト SVファミリ GCとスコープ さらなる学習のために h2xsで空のディストリビューションを作る 以下のコマンドで空のXSディストリビューションを作ることができます。 h2xs -A -b 5.8.1 -n

    XS基礎文法最速マスター - Islands in the byte stream (legacy)
  • Perl のテストについて(2011年改訂版1) - tsucchi’s diary(元はてなダイアリー)

    0. 前提 0.1 はじめに 以前、Perl のテストについてという記事を書きました。2008年の記事なのですが、現在もそこそこのアクセスがあるようです。 ただ、Test::More がアップグレードされて新しい書き方ができるようになったり、そもそも僕自身のプログラムの書き方が少しずつ変わってきているので、いつまでも古い記事を見てもらうのもどうかな、と思い、2011年バージョンをつくってみました。(ちょっとしか改定してませんが。。。)DB まわりのテストに関しては、また次回。 0.2 対象 Perl は書けるが、Perl のテストコードを書いたことが無い人。 0.3 動作確認環境 % uname -a FreeBSD over.tsucchi.mydns.jp 8.2-RELEASE FreeBSD 8.2-RELEASE #1: Sun Feb 27 23:51:01 JST 2011

    Perl のテストについて(2011年改訂版1) - tsucchi’s diary(元はてなダイアリー)
  • CuteというWebフレームワークを作った - Kentaro Kuribayashi's blog

    俺々フレームワークを作ってみたかったので、先人の知恵をいろいろ拝借する感じでやってみた。 https://github.com/kentaro/cute いろいろ足りないものがあるけど、まあとりあえず動くところまで。自分の好み的に、わりといい感じになりつつあるので、今後は、個人用プロジェクトにはこれを使っていきたい。 いちファイルでこんなん書いたら適当に動く感じ。 package Example::Cute::Default; use strict; use warnings; use Cute; sub title { my ($self, $suffix) = @_; my $title = 'Hello, Cute!'; $title .= " ($suffix)" if $suffix; $title; } get '/' => sub { my ($self, $ctx) = @

    CuteというWebフレームワークを作った - Kentaro Kuribayashi's blog
  • local::lib を切り替える - unknownplace.org

    レガシーなアプリをメンテするのにレガシーな Perl モジュールが必要になることがあり、そのために古いアプリ用には専用の local::lib ディレクトリを切っているわけですが、普段から日常的に local::lib を使用しているため shell が上がったタイミングではデフォルトの local::lib 環境変数がセットされていて切り替えが非常に面倒だった。 これまではそれほど頻繁に使用しなかったので放置していたのだが、ここのところ頻繁に必要になるためいい加減うざくなってきて簡単に local::lib を切り替えられるよう設定をしてみた。 zsh に次のような関数をつくり、それで local::lib を切り替えるようにする。 function locallib () { INSTALL_BASE=$1 if [ -d $INSTALL_BASE ]; then eval $(~/

  • cpan恐怖症の僕がPerlの環境構築してからTetoをいれるまで - mizchi log

    貴重なマシンパワーの一部をニコ動の作業用BGMに割いてるみなさんおはようございます もともとFlashというかAdobeが嫌いなので、しかしニコ厨としてはなんとかしてStremaing環境を構築したくて id:motemen さんのTetoをいれたかった うちのMBAにはFlashいれてない。自宅で鯖化した旧MBがニコ動再生機と化していた ニコニコ動画の音声だけを流し聴きするストリームサーバを書きました - NaN days - subtech] 音声が入れば最低でも作業用BGMきけるよ!ってこと頑張ってみた PerlといえばCPAN。名前を聞くだけで魅力的だとわかるモジュールが目白押し。WWW::Mechanize::AutoPagerとか超羨ましい しかしPerl、というかCPANには嫌な思い出があって 依存が複雑 依存が多すぎ 初心者なのでこれ入ってて当然だよね、がわからない そもそ

    cpan恐怖症の僕がPerlの環境構築してからTetoをいれるまで - mizchi log
  • リソースモニタリングツール「CloudForecast」入門 - As a Futurist...

    kazeburo さんが開発をされているサーバリソースの可視化ツール「CloudForecast」ですが、個人的に使ってみていてとても使いやすいなと思っています。もっと使ってくれる人が増えるといいなと思い、自重せずに入門エントリを書いてみました。 CloudForecast って何? そもそも何なの?という話ですが、CloudForecast とはリソースのグラフ作成ツールとして有名な「RRDTool」の薄いラッパーとして作られています。記述言語は Perl ですので、Perl と RRDTool の使い方が大体分かっている人にとっては導入さえしてしまえばかなりかゆいところまで手が届く=カスタマイズが簡単かつ自由自在なツールだと思います。とりあえずのイントロとしては kazeburo さんの YAPC::Asia 2010 でのこちらのスライドをご覧頂ければと思います。 RRDTool っ

    リソースモニタリングツール「CloudForecast」入門 - As a Futurist...
  • perlでgzipファイルを最速で読み込む方法 - yukiex

    いくつか方法があるが、それぞれ試してみる。 条件 open 非圧縮ファイル読み込み open zcat(gzip -cd) 標準出力読み込み IO::File zcat(gzip -cd) 標準出力読み込み Compress::Zlib サンプルファイル 内容 CSVファイル 行数 6309行 sample.csv 1661636 bytes (1.6M bytes) sample.csv.gz 196774 bytes (193K bytes) 環境 OS Debian GNU/Linux 4.0 (coLinux 0.7.1) Perl v5.8.8 メモリ 512MB/2048MB (coLinux割り当て/全体) PC HP ProLiant ML115 (Windows XP) 使うモジュール Compress-Zlib 2.008 http://search.cpan.org/

    perlでgzipファイルを最速で読み込む方法 - yukiex
  • Test::Apache::RewriteRules で mod_rewrite のテストを書こう - 大西日記 - はてなダイアリー

    YAPC::Asia Tokyo 2010 で LT してきました。以下はその資料(に少し説明を追加したもの)です。 mod_rewrite 正規表現によるURL書き換えモジュール スイス製アーミーナイフ / 黒魔術 まだ Apache 使ってますよね? reverse proxy とか… はてなの mod_rewrite 活用事例 ほぼ reverse proxy URLにより用途別のbackendに振り分ける 用途によりbackendを分けリソース効率化 特定のアクセスをキャッシュサーバーに振る URL加工 Squidにキャッシュさせたいが同一URLで異なるコンテンツを返す場合がある →クエリに情報を付加する BAN! 便利な半面… 増える! $ cat jp.www.proxy.apache.conf | grep Rewrite | wc -l 179 テストしづらい! → 一行加

    Test::Apache::RewriteRules で mod_rewrite のテストを書こう - 大西日記 - はてなダイアリー
  • 公式ドキュメント一覧(日本語訳つき) - Perl入門ゼミ

    Perl › 公式ドキュメント Perlの公式ドキュメントの一覧です。日語訳が存在するものはリンクしています。 概観 初心者のためのPerlの入門 (perlintro) 入門 Perlリファレンスの短い入門 (perlreftut) Perlデータ構造入門 (perldsc) Perlデータ構造: 配列の配列 (perllol) Perl正規表現クイックスタート (perlrequick) Perl正規表現入門 (perlretut) 初心者のためのPerlオブジェクト指向入門 (perlboot) Perlオブジェクト指向入門 その1 (perltoot) Perlオブジェクト指向入門 その2 (perltooc) Perlオブジェクト指向 秘訣とサンプル (perlbot) Perlパフォーマンスと最適化のテクニック (perlperf) Perlスタイルガイド (perlstyl

    公式ドキュメント一覧(日本語訳つき) - Perl入門ゼミ
  • YAPC::Asia Tokyo 2010 ... Coming Soon

    皆様のおかげで今年もYAPC::Asia Tokyoは無事開催することができました。スライド・動画はまだ準備中ですが、タイムテーブルページからご覧頂けるよう準備中です(動画はyoutubeのyapcasiaチャンネルページからもご覧頂けます)。またカンファレンスのオフィシャルレポートフォトセットも公開中です。Enjoy! Thanks to all of you, this year's YAPC::Asia Tokyo was a success! Slides and videos are being compiled, and will be available via the timetable page (videos will are available via youtube yapcasia channel as well). We also have an officia

  • perlintro - a brief introduction and overview of Perl - Perldoc Browser

    CONTENTS NAME DESCRIPTION What is Perl? Running Perl programs Safety net Basic syntax overview Perl variable types Variable scoping Conditional and looping constructs Builtin operators and functions Files and I/O Regular expressions Writing subroutines OO Perl Using Perl modules AUTHOR #NAME perlintro - a brief introduction and overview of Perl #DESCRIPTION This document is intended to give you a