タグ

Perlに関するsenecaのブックマーク (45)

  • 第8回 Perlによる大規模システム開発・設計のツボ(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはmixiの広木大地さんで、テーマは「大規模システム開発・設計のツボ」です。 仕事やOSS(Open Source Software)プロジェクトPerlを用いた多人数開発をするにあたって気をつけるべきことや、品質を維持するためのノウハウを、国内最大級のPerlシステムであるmixiの事例をベースに紹介します。コーディング上の命名に関する考え方から、大規模アーキテクチャの設計や品質の数値化まで、ミクロからマクロに至るポリシーやテクニックを駆け足で解説します。 なお、今回の内容は(⁠株⁠)ミクシィの2010年度の新卒エンジニア技術教育メニューからの抜粋になります。これからPerl をはじめとするLL(Lightweight Language、軽量言語)を仕事で使うというフレッシュエンジニアのみなさんにも、ぜひご一

    第8回 Perlによる大規模システム開発・設計のツボ(1) | gihyo.jp
  • モダンPerlの世界へようこそ 記事一覧 | gihyo.jp

    第42回Template ToolkitPerl製テンプレートエンジンのデファクトスタンダード 石垣憲一 2011-06-30

    モダンPerlの世界へようこそ 記事一覧 | gihyo.jp
    seneca
    seneca 2011/06/23
  • 初めてのCatalyst入門(15) Perl Catalystでメール送信を実装しよう

    はじめに これまでの連載で、Webサイトを構築するにあたって、Catalystではどのように実現するかについて説明してきました。特に前回と前々回では2回にわたって、フォーム処理を実装するのに役立つ、パラメータ検証と自動設定を行うプラグインと、フォームにまたがって一連のトランザクション処理を実現するための、コントローラモジュールについて紹介しました。 連載の最後となる記事では、Catalystでメール送信を便利に行うことのできるモジュールについて説明します(これまでの連載記事一覧)。 対象読者 Perlで簡単なスクリプトを作成したことのある方 Webアプリケーションの基的な仕組み(HTTPリクエスト、レスポンスなど)についての知識のある方 必要な環境 連載で紹介するサンプルなどで実行している環境は次の通りです。 CentOS 5.3 Perl 5.8.9 Catalyst 5.8003

    seneca
    seneca 2011/06/21
  • 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)
    seneca
    seneca 2011/06/20
  • 今すぐフォローすべきPerl界のスーパーエンジニア - すぎゃーんメモ

    今すぐフォローすべきnode.js界のスーパーエンジニア - 大人になったら肺呼吸の記事に便乗しまして。 独断と偏見に基づいて、自分がフォローしているPerl界隈の人から数人をピックアップして並べてみます。 @dankogaiさん blog: 404 Blog Not Found Perlへの言及はそれほど多くないけど 要所要所で鋭いツッコミが @hidekさん blog: hide-k.net#blog 同じ会社の人たちとの絡みが面白い。深夜のDJも注目 @Yappoさん blog: YappoLogs 基的にネタ発言が多いけど面白いので大好きです @acotieさん blog: iDeaList::Writing Perl界の女性エンジニアでは最も有名? @kamipoさん blog: かみぽわーる MySQLとかインフラな話とか。空mentionすると瞬時に返してくれるbot @w

    今すぐフォローすべきPerl界のスーパーエンジニア - すぎゃーんメモ
  • 第7回 新人さんのための仕事で使えるPerl基礎知識(3) | gihyo.jp

    リファレンス/デリファレンス (3)では、仕事Perlを使ううえで必ずと言っていいほど使用するにもかかわらず、つまずきがちなリファレンスとデリファレンスについて解説します。筆者も最初に教えてもらった際にはちゃんと理解できていませんでしたが、使っていくうちに徐々に体系的に理解できるようになりました。 リファレンス 配列やハッシュといった変数をサブルーチンへの引数としてそのまま使うと、少々困ったことになってしまいます。たとえば次のコードを書いたとします。 sub foo { my(@arg_a, @arg_b) = @_; } my @a = (1, 2, 3); my @b = (4, 5, 6); foo(@a, @b); こういったコードを書いたときに、サブルーチンfooの引数に渡される値として、@arg_aには@aの内容が、@arg_bには@bの内容が入ることが期待されますが、実際に

    第7回 新人さんのための仕事で使えるPerl基礎知識(3) | gihyo.jp
    seneca
    seneca 2011/06/11
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • 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(元はてなダイアリー)
    seneca
    seneca 2011/04/10
  • 第6回 UNIXプログラミングの勘所(2) | gihyo.jp

    forkとファイルハンドル UNIX系のOSでは、複数のプログラムが、それぞれプロセスという単位で動作しています。forkというシステムコール[1]が呼び出されると呼び出したプロセスの複製がOSによって作成され、複製されたプロセス(子プロセス)がexecveというシステムコールを使って別のプログラムにすり替わる、というしくみでさまざまな処理を実行するようになっています。 「複製」と言っても、全部の情報が複製されるわけではありません。プロセスのメモリイメージが複製される[2]一方で、プロセスが開いている「オープンファイル記述」(⁠open file description)(⁠注3)は複製されません。forkのあとは、親プロセスと子プロセスの両者が、単一のオープンファイル記述を指す「ファイル記述子」(⁠file descriptor)(⁠注4)を持つことになります(図2⁠)⁠。 図2 for

    第6回 UNIXプログラミングの勘所(2) | gihyo.jp
  • Perlの自作フレームワークで作る、アジャイルなWebサービス - はてなニュース

    「えっ、そんなはてなとそっくりみたいなことしている会社があるんですか」。Webアプリケーションの開発言語はPerl、Webアプリケーションフレームワークは自社で作り、Webアプリケーションを開発して、CentOSで動作させる――。そんな、はてなの開発とよく似た開発をしている会社が、リクルートメディアコミュニケーションズ(以下RMC)さんです。はてなチーフエンジニアの大西が、自社フレームワーク開発の経緯や、その実際を、RMCの現役エンジニアさんたちに聞きました。ライターの青宮しおりがまとめます。 (※この記事は、リクルートメディアコミュニケーションズ提供によるPR記事です) ――今日はお時間ありがとうございます。はてなでチーフエンジニアをしている大西です。2001年、はてなの創業の年からはてなで働き始めて、はてなの開発を取りまとめてきました。今日は、3人のかたとお話しできるのですね。簡単に自

    Perlの自作フレームワークで作る、アジャイルなWebサービス - はてなニュース
  • 第40回 Text::MicroTemplate:得意分野なんだからPerlを使えばいいじゃない、という方に | gihyo.jp

    モダンPerlの世界へようこそ 第40回Text::MicroTemplate:得意分野なんだからPerlを使えばいいじゃない、という方に テキストの整形はPerlの基 Perlは「Practical Extraction and Report Language」とも呼ばれるくらいで、正規表現などによる情報抽出機能と並んで、レポートの形を整えて出力する機能はPerlの根幹をなす部分といえます。もちろんそのもっとも原始的な形は二重引用符でくくられた文字列のなかにそのまま変数を埋め込むものです。 print "This report is created by $author."; もう少しこったことをしたければ、Cから受け継いだprintf系の構文を使えばよいでしょう。 printf "This report is created on %04d/%02d/%02d.", $year, $

    第40回 Text::MicroTemplate:得意分野なんだからPerlを使えばいいじゃない、という方に | gihyo.jp
    seneca
    seneca 2011/03/25
  • 優れたPerlプログラマを見分ける27の質問 | gihyo.jp

    海外のブログ「Modern Perl Books, a Modern Perl Blog」からの記事です。「⁠なぜ優れたPerlプログラマを雇うのが難しいのか?」という記事からの続きで、新たにPerlプログラマを雇いたいときに、試験や面接にてどうやって見分けたらいいのかについて、実践的なPerl 5に関する質問を計27個挙げています。次に一部を抜粋します。 Perl 5で変数を表す記号には何がある? 配列の要素にアクセスする方法で$items[$index]と@items[$index]の違いは何? ==とeqの違いは何? CPANモジュールのテストコードはどこにある? Perl 5ではどうやって例外を捕捉する? ハッシュの値だけにアクセスする方法は? 難しくトリッキーな問題は少なく、普段からPerlプログラムを書いている人であればかなりの割合で答えられるのではないでしょうか。記事では、「

    優れたPerlプログラマを見分ける27の質問 | gihyo.jp
    seneca
    seneca 2011/03/01
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
    seneca
    seneca 2011/02/15
  • 外部APIを含めたWebアプリのテストをしてみる - Perl勉強メモ アルパカDiary出張版

    外部APIを用いたWebアプリのコントローラテストについて。 たとえば 数値の2乗を結果として返すAPIサーバ があるとして、 そのAPIを利用した結果をHTMLとして出力するアプリケーション を考えてみます。 しかし、このように外部APIサーバを用いるとテストが難しくなります。 もしかしたらアクセスコントロールされているかもしれませんし、 メンテナンスされているかもしれませんし、 オフラインだとそもそもテストできないですよね! そこで外部APIサーバを振舞うplackサーバをローカルで立ち上げて それをproveで利用できるといいかも。 というわけでそのような環境を作ってみます。 サンプルWebアプリ *1 まずは /api に アクセスすると 外部APIサーバにアクセスしてその結果を返すだけのコントローラを書いてみます。 $host はテストからコントロールできるように環境変数をみてい

    外部APIを含めたWebアプリのテストをしてみる - Perl勉強メモ アルパカDiary出張版
    seneca
    seneca 2011/02/12
  • 初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?
  • なんで Perl をつかいつづけるのか - tokuhirom's blog

    互換性を大事にしているからバージョンアップしてもそのままうごくっていうのはすごくいいですね。バージョンアップするための作業に自分の時間をとられたくないですね。 そういった意味では Python はのりかえの選択肢になりますね。 正規表現リテラルがあるから正規表現リテラルがない言語はいかんせんワンライナーとかでつかえないので、ワンライナー用の言語をもう一個おぼえておく必要がありますね。正規表現つかえるとやっぱり便利ですね。 やりたいことをやれるモジュールがたいがいあるからさっき node.js で SMTPTLS でメールをおくるスクリプトをつくろうとおもったら、SMTP TLS できるライブラリがみあたりませんでした。 ちょっとしたスクリプトをかこうとしたときに、すぐにライブラリがみつかるというのはやはり Perl は便利ですね。Perl だったら Email::Send::SMTP::T

    seneca
    seneca 2011/02/02
  • Perl公式ドキュメント日本語版

    Perl 体に添付されている公式ドキュメントです。英語版は perldoc.perl.orgでみることができます 公式ドキュメント一覧 概要(overview) perl - Perl の概要 perlrun - perl コマンドの実行とオプションについて チュートリアル perldebtut - デバッグのチュートリアル perlopentut - Perl でいろんなものを開くためのチュートリアル perlpacktut - pack と unpack のチュートリアル perlreftut - Mark によるリファレンスに関するとても短いチュートリアル perlretut - Perl の正規表現のチュートリアル perlthrtut - Perl におけるスレッドのチュートリアル perlunitut - Perl における Unicode のチュートリアル

    seneca
    seneca 2011/01/29
  • 5分で分かる SSI を忘れていた人が SSI+Perl の便利さを思い出せる記事を書いたよ - なんたらノート第三期ベータ

    PHPの便利さが5分でわかるのが面白かったらしく、 http://weble.org/2010/12/28/php-beginner からerbやPythonなどいろいろ派生したので、ここらでだいぶ原点回帰。 SSIとPerlでもちょっとは5分便利シリーズとして有効だよということで参戦。 SSIはApacheで使えるサーバサイドインクルード。 一時期、サーバで任意のコマンドが実行出来るからセキュリティが云々という、なんとも不当な理由(PHPでsystem関数動かせるのに、SSIでコマンド実行はできないとか意味不明なレンタルサーバもあったような...)で冷遇されてきましたが、VPSが安くなったいま、俺の環境で勝手にやるんだから文句ないだろ、え? ということで、SSIを見直してみるのも悪くないです。 古いApacheだと.htaccessにこんな感じで。 AddType text/x-serv

    5分で分かる SSI を忘れていた人が SSI+Perl の便利さを思い出せる記事を書いたよ - なんたらノート第三期ベータ
    seneca
    seneca 2011/01/06
  • Perl でお手軽 OpenGL - Articles Advent Calendar 2010 Win32

    みなさま初めましてこんにちは。ハガと申します。 のっけから言うのもナンですが、僕はほとんど Perl を使った事がありません。というかこの前初めて触りました。普段は C++ で OpenGL 関係のプログラムを書いている事が多いのですが、周りには Perl 使いしかいないという状況で、寂しい思いをしております。みんなに C++ を使ってもらうのは無理くさい(というか意味が無い)ので、それならせめて OpenGL を広めてやろう・・・ということで、 Perl でも OpenGL は簡単に扱えるよ!という事をご紹介したいと思います。 そもそも OpenGL って何でしょう Open Graphics Library の略で、三次元の絵を描くための API です。ライブラリって名前だけどライブラリじゃなかったり、オープンって書いてあるけど実装はオープンじゃなかったりと、まぁ色々ありますけど、細か

    Perl でお手軽 OpenGL - Articles Advent Calendar 2010 Win32
    seneca
    seneca 2011/01/04
  • 2011年のPerl | gihyo.jp

    あけましておめでとうございます。今回は新春特別企画ということで、2010年のPerl界を振り返りつつ、2011年のPerl界がどうなっていくかを、予定と期待を織りまぜながら見ていきましょう。 Perl 5.14 2010年のYAPC::Asiaでジェシー・ヴィンセント(Jesse Vincent)氏が紹介されていたように、Perl 5は現在、2011年4月に予定されているPerl 5.14のリリースに向けて最後の仕上げをしているところです。Perl 5.14は2010年の開発成果をまとめた定期リリースなのでPerlの根幹をゆるがす大きな仕様変更はありませんが、Perl体、コアモジュールともに細かなバグがいくつも修正されているほか、内部的にはさまざまな最適化が行われています。 一例を紹介しますと、Perl 5.14ではkeysやeach、あるいはpushやshiftのような、配列やハッシュ

    2011年のPerl | gihyo.jp
    seneca
    seneca 2011/01/03