タグ

perlに関するemonkakのブックマーク (76)

  • YAPC::Asia Tokyo 2013: 「本当にあったレガシーな話」と最近のlivedoorBlogの改修 : D-7 <altijd in beweging>

    はい、というわけで自分のトークです: 昨年12月頃から関わってるlivedoorBlogのコードを触っていた時の憤りをスライドにぶつけてみました。 追記:スライドに「ログにマーカーをつける」というのは、(コード読んでないけど)多分こちらのエントリにあるLog::Minimal::Indentとだいたい同じ感じのヤツです ところでWeb上で見かける感想の中でこんなのがありました: 今年個人的に一番衝撃的だったのはやっぱ、livedoor blogのPlack化です。技術的な側面もさることながら、ああいう近視眼的には何のメリットもないし、逆にデメリットの方が大きそうな案件にリソースを割くジャッジができる会社としての姿勢が当に凄いなと。 実はビジネス的にも意味はあるんだなー。 なかなか書くことができなかったんだけど、その内容というのがこちらと→ ブログのお引っ越し機能を大幅に強化しました! (

    YAPC::Asia Tokyo 2013: 「本当にあったレガシーな話」と最近のlivedoorBlogの改修 : D-7 <altijd in beweging>
    emonkak
    emonkak 2013/09/30
  • How to build a High Performance PSGI/Plack Server

    This document discusses key metrics to monitor for Node.js applications, including event loop latency, garbage collection cycles and time, process memory usage, HTTP request and error rates, and correlating metrics across worker processes. It provides examples of metric thresholds and issues that could be detected, such as high garbage collection times indicating a problem or an event loop blockin

    How to build a High Performance PSGI/Plack Server
  • Perl5 における B optree の操作方法入門 - tokuhirom's blog

    いよいよ今週から YAPC だ。YAPC にあわせて、Perl5 の内部構造を復習できるエントリーを書いたのでご一読いただきたい。 Perl5 hack においては、XS をつかった B optree の操作が楽しい。B optree というのはいわゆる AST(抽象構文木) である。Perl5 は byte code interpreter などではなく昔ながらの AST をそのままなめるインタプリタである。であるから、この B optree を操作すれば、簡単にインタプリタの挙動を変えられるというワケ。 一方で、B optree の操作については、あまり知られていないし情報がすくない。日語でも情報がすくないし、英語でもまた情報がすくなく、それっぽいモジュールのコードをよみながら会得するしかないのが現状だ。 すこしでも B 初心者が、ステップアップできるように、私のもっている情報をここ

    emonkak
    emonkak 2013/09/21
  • 第20回 リファレンス入門(1) | gihyo.jp

    連載は第一線のPerlハッカーが回替わりで執筆していきます。今回は『初めてのPerl』(⁠通称リャマ)(⁠注1⁠)⁠、『⁠プログラミングPerl』(⁠通称ラクダ)(⁠注2)の訳者である近藤嘉雪さんで、テーマはリファレンスです。 リファレンスとは? 今回は、Perlを学ぶ際に避けて通ることができないリファレンス(reference)について説明しましょう。 リファレンスとはどんなものでしょうか? リファレンスはスカラ値の一種で、ほかのデータのことを指しているデータです(C言語のポインタに相当します⁠)⁠。リファレンスを利用すれば、連結リスト、木構造、グラフのような高度なデータ構造を表現できます。 Perlでは、変数の前に逆スラッシュを置くことによって、その変数を指すリファレンスを得ることができます。たとえば次のコードによって、変数$srefには、スカラ変数$sを指すリファレンスが代入さ

    第20回 リファレンス入門(1) | gihyo.jp
    emonkak
    emonkak 2013/08/24
  • 複雑なデータ構造の中にうまっているデータのパスをさがす方法 - tokuhirom's blog

    Perl5 の場合、Data::DPath をつかえば、 my $data = { foo => { bar => 'candy', }, }; のようなデータから、 say dpath('/foo/bar')->match($hashref); などとして、candy を簡単にとりだすことができます。 しかし、ここで、たとえば以下のように複雑なデータになってしまった場合は、DPath をつくるのがまじめんどいかんじになります。 my $data = { foo => { bar => 'candy', boz => 3, iyan => { bakan => 7, yappo => 'candy', dan => [ 'suspender', 'hige', 'candy'] }, }, }; そんな場合、以下のようなコードをささっと書いてcandyをさがしましょう。 #!/usr/bi

  • JSON+HTTPでメールが送信出来るAPIサーバ``Haineko'' | /var/log/azumakuniyuki

    接続先のURLは、HainekoがLISTENしているアドレスの/submitです。 $ cp eg/email-01.json /tmp/1.eml ⏎ $ vi /tmp/1.eml ⏎ $ curl -X POST -H 'Content-Type: application/json' -d '@/tmp/1.eml' 'http://127.0.0.1:2794/submit' | jq -M . ⏎ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 892 100 508 100 384 253 191 0:00:02 0:00:02 --:--:-- 253 { "smtp.remoteport": 51762, "smt

  • Carton 1.0 時代の Web アプリケーション開発フロー - tokuhirom's blog

    Carton 1.0 がでたところで、Web アプリケーション開発のフローを一度見直しておきたい、そんな人も多いでしょう。 そんな方のために僕のやりかたをまとめました。各社、議論の叩き台にしていただければよろしいかと存じます。 もっとも重要なことは、、 Carton を使うときに、僕が最重要だと思うことは、できるだけ番環境と開発環境の環境をそろえるということです。CPAN モジュールが番と開発でバージョンちがうから挙動がちがってた!! なんてのは時間の無駄ですし、よくないことですからね。 ですから、各開発環境と番環境をできるだけそろえることを意識していきたいとおもいます。 DarkPAN は使ってない そんなに DarkPAN 的なのを使うほど、DarkPAN 的なオレオレモジュールがないので、git submodule で管理しています。 【201308061241update】

    emonkak
    emonkak 2013/08/07
  • 初めて Perl でコードを書く時に知っておきたかったこと - あらびき日記

    この記事は abicky.net の 初めて Perl でコードを書く時に知っておきたかったこと に移行しました

    初めて Perl でコードを書く時に知っておきたかったこと - あらびき日記
    emonkak
    emonkak 2013/07/16
  • 第140回 ブロックを渡せるのはRubyだけじゃない! Perlだって渡せるんだ! - bingo_nakanishiの他言語出身者のためのPerl入門

    YAPCが始まりましたね。 去年は参加したのですが(聴衆の方ですが)、今年は非常にとてつもなく残念な事に参加できません。 でも気分だけでもひたりたいのでPerlのお話を少々。 Rubyに備わったブロックという概念 Rubyは言語自体に高階関数をブロックという形でもっており、 eachなどで使われているのは有名です。 例: array = [1,3,5,9] array.each{|i| puts i} eachに与えている { }の部分がブロックです。 自前でブロックを受け取る関数を作りたければ yield を使えばよいでしょう。 今回のお話の内容は「Perlでもブロックを渡せる」ということなので、 eachの機能, yieldの機能は知っておられるという前提で先にすすみたいと思います。 Perlのブロックを使った例 それではRubyの話はこれくらいにしてPerlの話にまいりましょう。 ま

    第140回 ブロックを渡せるのはRubyだけじゃない! Perlだって渡せるんだ! - bingo_nakanishiの他言語出身者のためのPerl入門
    emonkak
    emonkak 2013/07/13
  • 第23回 Module::Build:MakeMakerの後継者を目指して | gihyo.jp

    今年もよしなにお願いいたします 連載第18回ではlocal::libの話題を取り上げましたが、今回はそのときにもちらと紹介した、モジュールをインストールするときに利用するいくつかのモジュールについて簡単にまとめてみます。 ExtUtils::MakeMakerが生まれるまで Perlがバージョン3でコンパイル時にユーザ独自のライブラリを組み込んで体機能を拡張できるようになったとき(1990年⁠)⁠、おそらくもっとも喜んだのがデータベースを使っていたユーザでした。彼らはいそいそと自分の使っていたデータベースのライブラリをPerlに組み込み、それとわかる名前をつけて公開しました。当時の記録によれば、Oracleに対応したOraperlやPostgreSQLに対応したPgperlなど、データベース関連だけで8つないし9つの専用Perlがあったようです[1]⁠。 でも、このアプローチには問題もあ

    第23回 Module::Build:MakeMakerの後継者を目指して | gihyo.jp
    emonkak
    emonkak 2013/05/29
  • ゆーすけべー日記

    ムフフなビデオも網羅的に扱うDVDや動画の提供サービス「DMM」のWeb APIがいつの間にか公開していたらしく、なにぶんノーマークだったもので昨日の夜知ってビックリした。というかDMMは一生API出さないだろうなんて決め込んでいたのが良くなかったですね。 ってことでとあるAV女優の商品一覧を出力するようなスクリプトを書いてみました。API固有の「癖」でいくつか実装する際の注意すべきポイントがあるのでそれをまず紹介します。Perlコードですが参考になるかもです。 リクエストパラメータにはタイムスタンプがいる リクエストのパラメータにはタイムスタンプが必須です。形式は 2013-05-14 08:03:16 というもの。僕はDateTime派なので、以下のコードで現在のタイムスタンプの文字列をつくっています(*ある方から指摘を受けてコードを修正させていただきました!)。 use DateTi

    ゆーすけべー日記
    emonkak
    emonkak 2013/05/18
  • Monoceros というPrefork型だけどC10Kの接続を捌くことができるPSGI/Plackサーバ書きました - blog.nomadscafe.jp

    Monoceros というPSGI/Plackサーバ書きました https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros StarmanやStarletのようなPreforkなアプリケーションサーバでは、コネクションの維持イコールプロセスの占有なので、HTTPのKeepAliveは無効にするのが一般的ですが、負荷の高いサービスではTIME_WAIT状態のソケットが溜まったり、SYN-ACKの再送問題などあり、KeepAliveを使いたいという欲求があったりなかったりします。 Monoceros はリクエストを処理するworkerの他に、イベントドリブンで動くコネクション管理プロセスを立てて、クライアントからの接続ソケットをunix domain socketを使いプロセス間でやりとりします。待機

  • OSX - mv2trashというスクリプト書いた : 404 Blog Not Found

    2013年04月14日01:30 カテゴリTipsLightweight Languages OSX - mv2trashというスクリプト書いた AppleScript: The Definitive Guide (Kindle Ed.) Matt Neuburg どれくらい需要があるかわかりませんし、明らかに車輪の再発明なはずなのにどこ見ても転がってなかったので。 dankogai/osx-mv2trash ・ GitHub 名前を見ての通り、OS X専用です。 404 Blog Not Found:私みたいなおっちょこちょいを自滅から救って来たちょいとした工夫x3+1 上記の例は、実はこれだけで防ぐことが出来ていた。 とはいってもファイルをその場で消しちゃう(厳密にはunlink)ことには変わりはありませんし、undoできるならそれに超した事はないわけで。 で、私が30抜きのMac S

    OSX - mv2trashというスクリプト書いた : 404 Blog Not Found
  • Hokkaido.pm #9

    自己紹介 twitter @xaicron works :DeNA CPAN https://metacpan.org/author/XAICRON 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 免責 日発表する内容は、個人的な考えや意見であり、 所属する組織、会社とは一切関係ありません。 また、スピリチュアルトークはできません。 というわけで 今日は、最近使ってるモジュールの話とかを中心にまったりやっていこうと思います。 いきなり題に入る前に 自分がどんなふうに使うモジュールを選んでいるのか CPAN モジュールの選定基準 2008年ごろ書かれたいい記事があります。 CPANソムリエになる方法 ざっくりまとめると 最終更新日時がふるいモジュールは危険 テストが超絶少ないモジュールは危険 バグレポート溜まってるモジュールは危険 って感

    emonkak
    emonkak 2013/04/11
  • モダンPerlの裏側で... Yapcasia2010 前夜祭

    This document contains user account information for 3 accounts: a nobody user for unprivileged tasks, the root administrator account, and a daemon account for system services. Each line lists the username, password information, user ID numbers, description, home directory, and shell program.Read less

    モダンPerlの裏側で... Yapcasia2010 前夜祭
    emonkak
    emonkak 2013/03/30
  • 続・技術的負債の把握と改善を促すために - mixi engineer blog

    こんにちは, 先日Kansai.pmで発表させて頂いたgoccyこと五嶋@たんぽぽグループです. 今回は, 前回紹介した技術的負債の把握と改善を促すためにの続編として, 僕が作ったPerl5コードのコピペ検出器について紹介させて頂きます. はじめに 今やPerl, Ruby等さまざまな言語で, 便利なライブラリ群やフレームワークを利用できる時代になりました. これらを使うことでソフトウェアの開発コストは格段に下がり, より素早く開発することができるようになっています. しかし, 当初予定されていた機能を実装して, 「よしできたから終わり!」というわけにもいきません. 何か物を生み出せば, 必ずそれを保守・運用するコストが発生します. 開発することが便利になった今, 開発物を保守・運用することを支援するツールも求められています. ですが, 保守や運用, とりわけ保守に関して支援するツールはそ

    続・技術的負債の把握と改善を促すために - mixi engineer blog
  • Kindle本「Perlについて語ろう」を出版しました - ゆーすけべー日記

    プログラミング言語「Perl」の入門書「Perlについて語ろう」をKindle向け電子書籍として出版し販売を開始しました。 書は週刊で発行しているメルマガ「 ゆーすけべーラジオ」内の連載を原稿とし、加筆修正したものとなります。文字数はトータルで11万文字ちょい。紙媒体にして100ページ前後というボリュームで、480円という値付けにしてみました。Perl処女脱出から、基的なデータ構造の解説、様々なCPANモジュールの紹介、Webアプリケーションフレームワークの使い方などを「サクっと」した文章とコードでまとめました。Perl初心者の方を対象に、読み終わった頃にはWebアプリ開発ができている!ところまで持っていくことを目標にした入門書です。以下目次になります。 はじめに Perlとは? 初めてのPerl 関数とスカラー、配列 Perlにおけるデータ表現 データを操作する CPANモジュールを

    Kindle本「Perlについて語ろう」を出版しました - ゆーすけべー日記
  • Cartonはマジにcool - さよならインターネット

    Perl弱者のわたしが、Cartonを使ってみたのでメモ。 Carton使えばインフラ側の人たち相当捗ると思う。 $ ls -a ./carton/ . .. carton_test.pl $ $ cd ./carton/ $ $ cat carton_test.pl #!/usr/bin/env perl use strict; use warnings; use Data::UUID; my $uuid = Data::UUID->new; $uuid = $uuid->create_str(); print "UUID is $uuid\n"; $ Makefile.PLをつくる use inc::Module::Install; name 'carton_test'; version '0.1'; requires 'Data::UUID', 1.217; WriteAll; こん

    Cartonはマジにcool - さよならインターネット
    emonkak
    emonkak 2013/02/23
  • Perl のウェブアプリケーションのディレクトリ構成をわかりやすく説明するよ - tokuhirom's blog

    ディレクターの人にわかりやすいように、Amon2 をつかった一般的なプログラムのディレクトリ構成をわかりやすく説明していくよ。

    emonkak
    emonkak 2013/02/16
  • ltsview ─ LTSVフォーマットフィルタ (Text::LTSV 0.03) - naoyaのはてなダイアリー

    LTSV が行指向な Key-Value フォーマットで捗る話 - naoyaのはてなダイアリー で試作した LTSV のフォーマッタが思いの他捗ったので ltsview という名前でもう少し機能を整えてみました。 Text::LTSV に同梱する形で先ほど CPAN に shipit したので、CPAN で取得可能になったら cpanm Text::LTSV で ltsview ごとインストールされるはずです。なお github は https://github.com/naoya/perl-Text-LTSV です。 $ cat example/example_log.ltsv time:05/Feb/2013:15:34:47 +0000 host:192.168.50.1 req:GET / HTTP/1.1 status:304 size:0 referer:- ua:Mozil

    ltsview ─ LTSVフォーマットフィルタ (Text::LTSV 0.03) - naoyaのはてなダイアリー