Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

perlに関するdiary193のブックマーク (111)

  • #fluentd 用ログ収集専用のエージェント fluent-agent-lite 書いた - たごもりすメモ

    みんな大好きfluentdはたいへん便利ですが、ログの収集&集約だけをしたい、というときにちょっとオーバースペック気味のところがあります。特に in_tail はログの読み込みと同時に parse をする仕組みになっており、まあログが書かれた場所ならparseのルールもわかってるでしょ、というところは合理的なものでもあるのですが、loadavgが高いサーバでそういうことをするのは正直にいってなかなか厳しいです。 そういうわけで以前に scribeline というエージェントツールを作ったのでこれを fluentd 以降後も使い続けていたのですが、ログをいったん集約するところの fluentd がCPU使用率的にいっぱいいっぱいになって厳しいものがありました。「scribe(Thrift)じゃなくてMessagePackにすれば倍くらいさばけるよ」ということを某開発者が言っていたような気もす

    #fluentd 用ログ収集専用のエージェント fluent-agent-lite 書いた - たごもりすメモ
  • OSの標準インストールでPerl入ってるからPerl最強とか言ってるそこのおまえら、10年古い。

    10年前、たしかに、自宅サーバでApacheでCGIでPerlっていう時代がありました。でもさすがに今それはないわ。10年前それやってたサイトのほとんどが結局メンテナンスコスト払えなくて鬼籍に名を刻んだ。あるものはクラックされ、あるものは更新が止まった。そういう歴史の流れですので。今更OS標準だから偉いとか偉くないとかさすがに。ありえんです。 ああ、おまえらがプロのシステム管理者なら(つまりサービス提供側なら)ちょっと話は違う。システム管理者のくせに贔屓の言語とか持っちゃいかん。当に。どんなシステムでも同様に管理できないようではプロ失格。Perlが来たらPerlRubyが来たらRubyを鼻歌歌いながら管理できないようでは、半人前です。猛省すべき。

    diary193
    diary193 2013/03/21
    まわりには後から追加パッケージ入れる権限がなかったり、Perlが使えてもCPANが使えなかったりな環境もあるので、やっぱりOS標準は強いと思う
  • Perl のウェブアプリケーションのディレクトリ構成をわかりやすく説明するよ - tokuhirom's blog

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

    diary193
    diary193 2013/02/16
    「ぶちこまれているよ」/ 標準的なディレクトリが決まっていると作業しやすい
  • ゼロからはじめるAmon2

    スケルトンを作成する % amon2-setup.pl MyApp % cd MyApp % plackup app.psgi % tree . ├── Makefile.PL ├── app.psgi ├── config │   ├── deployment.pl │   ├── development.pl │   └── test.pl ├── db │   └── development.db ├── lib │   ├── MyApp │   │   ├── Web │   │   │   └── Dispatcher.pm │   │   └── Web.pm │   └── MyApp.pm ├── sql │   ├── mysql.sql │   └── sqlite.sql ├── static │   ├── 404.html │   ├── 500.html │ 

    diary193
    diary193 2013/02/16
    シンプルでわかりやすいWAF
  • Rebuild: 1: Podcasting, LTSV, RubyMotion (伊藤直也)

    Rebuild A Podcast by Tatsuhiko Miyagawa. Talking about Tech, Software Development and Gadgets. 00:00 miyagawa: naoyaさん、最近は結構ブログが活発になってきている感じですね。 naoya: はいはい、そうですよね。 miyagawa: なんか、心境の変化があったんですか。 naoya: 心境の変化(笑) miyagawa: (笑) naoya: いやずっとドラクエしかしてなかったんですけど(笑) miyagawa: (笑) naoya: いやそれで、最近ちょっと、なんか作ったりしてるので。結構一人で作ってるんで、あんまり「こういうことやった」みたいなことを、他人に共有する機会が無いんですよ。 miyagawa: うんうん。 naoya: そうすると、なんかブログに書いてみようか

    Rebuild: 1: Podcasting, LTSV, RubyMotion (伊藤直也)
  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

    開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽

    開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
    diary193
    diary193 2013/01/29
    Plack, Carton (ruby Bundler), Config::Pit, Config::ENV, perlbrew, cpanm, Proclet, LESS, Sinnamon とモダンな環境なのに CGI::Application 使ってるだけで親近感がわく不思議
  • Big Sky :: ctagsのPerl拡張サポートがすこぶる素晴らしすぎる件

    ctags 5.7 improves Perl support Added support for 'package' keyword Added support for multi-line subroutine, package, and constant definitions Added support for optional subroutine declarations Added support for formats Ignore comments mixed into definitions and declarations Fixed detecting labels with whitespace after label name Fixed misidentification of fully qualified function calls as labels

    Big Sky :: ctagsのPerl拡張サポートがすこぶる素晴らしすぎる件
    diary193
    diary193 2012/09/23
    移転先
  • Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ

    Perlでコマンドラインオプションをparseしようと思うと組込みモジュールとしては Getopt::Std と Getopt::Long がある。が、long style option *1 つまり --option-name のようなオプションを解釈してくれるのは Getopt::Long だけだ。なので普通はこちらを使おう。 ただし 絶対にデフォルト、つまり以下のようにして使ってはいけない。 use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); これダメ! 絶対ダメ! 死ぬ! 最初に結論を書く 必ず以下のように

    Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ
    diary193
    diary193 2012/09/19
    use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat); / コメ欄も参照
  • YAPC::Asia Tokyo 2011 で Acme::MineChan を発表してきました | TAKESAKO @ Yet another Cybozu Labs

    毎年恒例のPerlの大祭YAPC::Asia Tokyo 2011ですが、今年はちょっと趣向を変えて「Acme::MineChan」というマインスイーパを自動で解くプログラムを発表してきました。 お急ぎの方はこちらLT版の録画を 最終日2日目のLightning Talksの一番最後に少し時間をもらって簡単なデモをさせていただきました。 Perlで無理ゲーム攻略(1秒でマインスイーパを解く) 以下の録画の9:00ぐらいからデモを開始していて、途中1秒でマインスイーパを解けていますが、これはたまたま(マグレ)です。事前にいくら試しても早くて3秒2秒ぐらいだったので、番で運が良かっただけでした。 元々応募していたのは「Perlで無理ゲーム攻略」という20分の発表で、Win32::GuiTest や Win32::Screenshot などのモジュールを利用して、Windows上で動作するゲー

    diary193
    diary193 2011/11/03
    Perlでマインスイーパをちゃんと解く
  • perl - 「優れたPerlプログラマを見分ける27の質問」回答例 : 404 Blog Not Found

    2011年03月01日18:00 カテゴリLightweight Languages perl - 「優れたPerlプログラマを見分ける27の質問」回答例 これは良問。 How to Identify a Good Perl Programmer - Modern Perl Books, a Modern Perl Blog 「優れたPerlプログラマを見分ける27の質問」の日語訳 - Islands in the byte stream というわけで回答例。あくまでも解答例。There's more than one way to do it はここでも例外ではないので。 Perl5において変数のシジルが示すものは何か 変数の基型。$scalar、@array、%hash、&code、*typeglob。&codeの&は省略可能かつ省略推奨。これ以外の型はオブジェクトを作ることで作れ

    perl - 「優れたPerlプログラマを見分ける27の質問」回答例 : 404 Blog Not Found
    diary193
    diary193 2011/03/02
    Perl歴13年だが 2, 6, 9, 11 は知らんかった
  • 省サーバ運用

    自己紹介 名前 小林 篤 ID:nekokak(ネコカク) DBIx::Skinny continued...

    diary193
    diary193 2010/10/18
    オレの中でインフラ屋は いぶし銀 的な格好良さがあるんだが。
  • Perl で時刻の文字列を生成する速い方法 - Craftworks Tech Blog - Branch

    DateTime が重くて遅いのは周知ですが、一応どれくらい差が出るかベンチマーク。 「2010-07-01 15:10:53」みたいなフォーマットのタイムスタンプ文字列を生成したい場合です。 DateTime はオブジェクトをキャッシュして使い回しても相当遅いです。 POSIX はコアモジュールで、Windows でも使えますので、使える環境では積極的に使いましょう。 他にももっと速い方法があれば、教えてください。 Benchmark: running dateime, dateime_c, posix for at least 3 CPU seconds... dateime: 3 wallclock secs ( 3.15 usr + 0.00 sys = 3.15 CPU) @ 2083.17/s (n=6562) dateime_c: 3 wallclock secs ( 3.4

    Perl で時刻の文字列を生成する速い方法 - Craftworks Tech Blog - Branch
    diary193
    diary193 2010/07/17
    POSIX::strftime / 未だにlocaltime配列を使ったPerl4的な書き方になる。どこかでPerl5の定石を身につけないと。
  • CloudForecastっていうリソース監視のツール/フレームワーク作った - blog.nomadscafe.jp

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

    diary193
    diary193 2010/06/03
    こういうの試す時間もとらなきゃな・・・
  • 伊藤直也氏トークセッション「私と技術書」行ってきました - 傍観罪で終身刑

    ▼なんつうか、仮に今後またはてダとかはてブとかが不安定になることがあっても、ぶうぶう文句言うのはやめとこうと思いました。 ▼覚えてる内容を箇条書きに。 webで勉強しようとしてもすぐニュース見たり2ちゃん見たりしてしまって集中できない 書籍での勉強は集中できていい感じ 高校時代剣道ばっかやってたら450人中440番ぐらいの成績になった ファミコンは買ってもらえなかった shibuya.pmで近藤さんに直接「(うちで)やらないか」と誘われて、その場で入社決定 はてブが落ちたと午前2時に叩き起こされ、復旧して午前5時に帰宅したと思ったらまた落ちた テレビのない自宅で朝6時に起きて技術書を読むストイックな生活 3版が出るとか言われたので積ん読していた2版を読んだ 積ん読、全然オッケー! 迷わず読めよ、(何回も)読めばわかるさ 数学はいつも苦手だった 最近大分克服してきた アルファギークに会いに行

    伊藤直也氏トークセッション「私と技術書」行ってきました - 傍観罪で終身刑
  • Have Your Own Perl! - JPerl Advent Calendar 2009

    こんにちは、dankogaiです。Encode.pmのメンテナーとかしています。なのでEncodeのことでも書こうかと思ったのですが、すでにEncodeでラクラク日語処理をxaicronに書かれちゃいました。 それじゃ何書く?と思ったら、残ってましたよ。最も大事なものが。 Perlハッカーに最も必要なもの ここでなぞなぞです。Perlハッカーにとって最も必要なのは何でしょうか? Perlそのもの、ですよね。 そうなんです。どんなすばらしいPerlモジュールも、Perl体がなければ動きません。Perlはモジュールがなくてもなんとか動きますが、その逆は真ではないのです。 自分専用Perlを持つべき理由 あまりに当たり前のこの事実ですが、その一方、およそ Windows を除けばPerlは主要OSにははじめから組み込まれているのでそのことになかなか気がつきません。Perlがそこにあること、そ

    diary193
    diary193 2009/12/16
    自前Perlのビルド方法/「OSにバンドルされているPerlが、どのように Configure されているのか」確認方法/OSX Leoaprdでの結果→「Can't locate Configure.pm in @INC 」 oops
  • Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009

    Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 例えば、「ディレクトリが存在しなければ作成」という処理を書くことを考えてみます。 if (! -d $dir) { mkdir $dir or die "failed to create dir:$dir:$!"; } でいいしょうか? いえ、違います。これだと、-d 演算子でディレクトリの不存在を確認した後、mkdir を呼ぶまでの間に他のプロセスがディレクトリを作成してしまう可能性があります。なので、たとえば C ならば、 if (mkdir(dir) != 0 && errno != EEXIST) { fprintf(stderr, "failed to create d

    diary193
    diary193 2009/12/07
    Error.pm でなく Errno.pm
  • 生 DBI ユーザーのための DBI Cookbook (3) - 日向夏特殊応援部隊

    d:id:ZIGOROu:20090814:1250262134 のさらに続編です。 現在接続している dbh 全てを disconnect したい場合 use strict; use warnings; use DBI; ### なんかいっぱい接続したりとかする my %drhs = DBI->installed_drivers; for my $drh ( values %drhs ) { for my $dbh (@{$drh->{ChildHandles}}) { eval { $dbh->disconnect; }; } } こんな感じ。永続環境で1リクエストをさばく間は DBI->connect_cached() で接続するとして、それらを最後に明示的に disconnect するとかで使えると思う。 SEE ALSO 生 DBI ユーザーのための DBI Cookbook (

    生 DBI ユーザーのための DBI Cookbook (3) - 日向夏特殊応援部隊
    diary193
    diary193 2009/11/28
    「現在接続している dbh 全てを disconnect したい」
  • 以下のperlのコードが動かない理由を教えて下さい。…

    以下のperlのコードが動かない理由を教えて下さい。 FizzBuzzのコードなのですが、$iが11,26,41,56,71,86の時にBuzzと出力されてしまいます。 なんとなく直前のループ時の$outの内容が引き継がれている気がしますが、理由がわかりません。 --- #!/usr/bin/perl use strict; use warnings; use Perl6::Say; foreach my $i (1..100) { my $out = "Fizz" if $i%3 == 0; $out .= "Buzz" if $i%5 == 0; say $out || $i; } --- なお$outの宣言を別にしたところ、正常に動作しています。 --- foreach my $i (1..100) { my $out; $out = "Fizz" if $i%3 == 0; $ou

    diary193
    diary193 2009/08/28
    はてぶコメント参照
  • Perl 6、2010年4月登場 | エンタープライズ | マイコミジャーナル

    When you need perl, think perl.org Journal of pmichaud (6013)においてPatrick Michaud氏が、Perl 6のリリース時期について言及している。Patrick Michaud氏はPerl 6の設計と実装に関してリリースマネージャに近い立場にある。氏は2010年4月を目処にPerl 6の実装を公開したいと説明している。 Perl 6のリリース時期を明示的に示したのには大きくみて2つの理由がある。ひとつは、「いつPerl 6がリリースされるのか」という、これまで繰り返しおこなわれてきた質問に対して明示的な回答を示しその煩わしさを解決するということ。もうひとつはPerl 6の公開時期を示すことで、Perl 6を使ってみたいと考えている開発者へ意思表示をしておくことにある。 2010年4月に公開が予定されているバージョンは、Pe

  • tieを利用してSTDOUTの出力を弄る - すぎゃーんメモ

    print文でのSTDOUTの出力先を変更する方法 - すぎゃーんメモの続き。 id:mattnさんから「tieを使うのが一般的かと思いますよ」とコメントをいただきました。ありがとうございます。 tieって名前は聞いたことがあったけど、まったく使ったことがなかった。。 ドキュメント読んだりしながら勉強してみた。 perltie - オブジェクトクラスを単純な変数に隠す方法 - perldoc.jp tieでSTDOUTをつかまえる - 徒書 まだよく理解できてないところはあるけど、とにかく「オブジェクトクラスを変数にゴニョゴニョすることができる」らしい。 とりあえず書いてみた。 #!/opt/local/bin/perl use strict; use warnings; my $hoge; { $hoge = tie local *STDOUT, 'Hoge'; print "hoge"

    tieを利用してSTDOUTの出力を弄る - すぎゃーんメモ