neomebiusのブックマーク (1,825)

  • サーバーの引越しとlocal::libとcpanm - 日曜プログラマのそゞろ事

    XREAからCORESERVERに引越ししました。 「XREA+(2400円/1年)」と「CORE-MINI(2500円/1年)」は、一年契約で100円しか違わないのに、サービス内容(サーバーの性能、容量等)は格段に違います。 サーバーの移転は面倒ですが、価値はあると思います。 サーバーを変えるにあたって、さっそくcpanmを導入しました。 レンタルサーバーでPerlを満足に使おうと思えば、cpanmは必須となりました。 CORESERVERではSSHが使えるので便利です。 また、一時期local::libと組み合わせて使う方法も色々と書かれていましたが、情報がかなり整理されていたので、改めてここにまとめておきます。 wget http://cpanmin.us perl cpanm --local-lib=~/perl5 local::lib App::cpanminus ech

  • 貴方がまだ使っていないだろうTest::Moreの5つの特色 | taro-nishinoの日記 | スラド

    以前にも書きましたが、私もCPAN Testersの下辺の最下位に参加しています。いろいろなテストの中身を覗くと、まだ新しいTest::Moreの特色がすべて使われているとは言えないと感じました。 Test::Moreを使うのはCPAN作者のみならず、Perlerなら必須の道具です。ですから、最低常識に位置します。そういう時に、David Golden氏は御自分も失念していたかのようにとぼけて、エッセイという形を取りながらも、こじんまりと綺麗に新しいTest::Moreの特色を"Five Test::More features you might not be using yet"で説明してくれています。 私は以前にも書いたことがありましたが、Perl体やCPANモジュールのドキュメントやハウツーものは一切訳さないと公言しました。その理由は訳さなければならないほどの英語ではない(せいぜい

  • にひりずむ::しんぷる - 初めての Furl

    巷でとっても速くて便利だねこれってなってる HTTP Client であるところの Furl の簡単なつかい方を紹介します。 そもそも Furl は何かっていうと、perl には LWP っていう超高機能な HTTP Client があって、これがデファクトになってるんですね。 でも、それって結構昔からあって、かつ重厚長大なモジュール群なので結構遅いわけです。とくに CPU 使用率が高い。 そんなわけで、libcurl ぐらい速くて軽い HTTP Client があるといいよねってことで開発されたのが Furl です。 読み方は ふぁーる。 use strict; use warnings; use 5.0100; use Furl; my $furl = Furl->new(agent => 'Madoka-Magica/chu-2'); my $res = $furl->get('ht

  • ソーシャルゲームのためのデータベース設計

    2. 自己紹介  MySQL/Linux周りのスペシャリスト  2006年9月から2010年8月までMySQL家(MySQL/Sun/Oracle)で APAC/US圏のMySQLコンサルティングに従事  主な著書に「現場で使えるMySQL」「Linux-DBシステム構築/ 運用入門」「Javaデータアクセス実践講座」  DeNAでの主な役割  安定化/パフォーマンス/運用周りの中長期的な改善活動  L3サポート/運用/トラブルシューティング – 難度の高いMySQL周りの問題の根原因の特定と解決  多くのプロジェクト支援  社内勉強会/トレーニング – MySQLやデータベース周りのベストプラクティスを社内で共有し、 技術スキルを底上げする  技術マーケティング – 国内外のカンファレンスや、技術雑誌等

    ソーシャルゲームのためのデータベース設計
  • わたし、諦めない! - Sub::Retry - tokuhirom's blog

    DB に接続失敗したばあいに数秒後にリトライしてほしいとか、 API なげるのに失敗したときにリトライしてほしいとか、そういう処理を楽にかけるモジュールつくった。 以下のようにしてつかう。 use Sub::Retry; use LWP::UserAgent; my $ua = LWP::UserAgent->new(); my $res = retry 3, 1, sub { my $res = $ua->post('http://example.com/api/foo/bar'); $res->is_success or die; $res; };

  • charsetの大文字小文字 : Weblog : SimpleIsm

  • perl - 勝手に添削 - 相対パスを絶対パスに変更する : 404 Blog Not Found

    2010年12月28日23:30 カテゴリ perl - 勝手に添削 - 相対パスを絶対パスに変更する Perl & XML Erik T Ray / Jason McIntosh 財井一彰訳 [原著:Perl & XML] 一昔前のentryが、はてぶで引っかかっていたので。 相対パスを絶対パスに変更する | perl | 俺のメモ URIオブジェクトは直接文字列として扱える まずはこれ。何とprintされるでしょう? use 5.010; use strict; use warnings; use LWP::UserAgent; use URI; my $base = 'http://japan.cnet.com/news/business/story/0,3800104746,20416479-0,00.htm'; say URI->new_abs('/news/service/',

    perl - 勝手に添削 - 相対パスを絶対パスに変更する : 404 Blog Not Found
  • Don't use base.pm, use parent.pm instead! - Islands in the byte stream (legacy)

    「使っちゃいけない標準モジュール」*1の反響を見ていると、baseが非奨励ということに驚かれた方が少なくありませんでした。そこで、baseについて補足します。 まずbase.pmのドキュメントの最初の文は以下のようになっています。 Unless you are using the fields pragma, consider this module discouraged in favor of the lighter-weight parent. (拙訳: fieldsプラグマを使用しているのでないかぎり、このモジュールは勧められない。かわりに軽量なparent.pmを使う方がよい。) fieldsプラグマは、ハッシュリファレンスのキーを固定したオブジェクトを作成するための機能ですが、あまり一般的ではないためここでは解説しません。特に理由がない限り、ここは素直に忠告に従った方がいいでし

    Don't use base.pm, use parent.pm instead! - Islands in the byte stream (legacy)
  • Sub::Argsで存在しないキーにアクセスしたらエラーに

    前回Smart::Argsを紹介したときに、 http://blog.nekokak.org/show?guid=YOPjaCIM4BGd0gUxMSAp_g use strictしててもhashのキーを間違った場合、普通に処理できてしまい 間違いに気づかないわけです。 use fieldsつかえば回避できるんですが、 いまどきuse fieldsを使ってるのはbradだけという噂もあるので、 Smart::Args使っとけって感じです。と、書いたわけですが、Sub::Argsの0.05をつかえば package Your::Class; use Sub::Args; sub foo { my $class = shift; my $args = args( +{ fh => 1, bucket => 0, ext => 0, } ); $args->{exf}; # oops } p

  • 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
  • Expired

    Expired:掲載期限切れです この記事は,産経デジタル との契約の掲載期限(6ヶ月間)を過ぎましたのでサーバから削除しました。 このページは20秒後にITmedia ニュース トップページに自動的に切り替わります。

  • POSIXのstrftimeが生perlcodeよりも速い件について - 日曜プログラマのそゞろ事

  • おさかなラボ - Time::HiResでの礼儀正しい経過時間計測法

    まあマニュアル通りなんですが。 use Time::HiRes (qw/time gettimeofday tv_interval/); まちがい $time = time; # do something $elapse = time - $time; 正しい $time = [ gettimeofday ]; # do something $elapse = tv_interval $time; # 2つのポイント間を計りたい場合は第二引数にも参照を渡す マニュアルより。 time - NOTE 1: This higher resolution timer can return values either less or more than the core time(), depending on whether your platform rounds the higher res

  • 今さらだけどCGI::Carp::DebugScreenを覚えた - 日曜プログラマのそゞろ事

    ここのところ、CGIを書く場合は、NanoAのようなフレームワークばかり使っていたので知らなかったのだが、単純なCGIを書くときに、ど派手なデバッグスクリーンをだすモジュールがあった。 CGI::ExceptionManagerの原型とも言えるか。 PerlCGIを作成するときに、殆どの人がお世話になるであろうモジュールは、CGI::Carpだろう。 このモジュールは、一般的に500エラーと言われている「Internal Server Error」からあなたを救ってくれる。 普通なら500エラーになってしまう以下のスクリプトを、ブラウザから実行してみると、どのように救われるのかがよくわかるだろう。 #!/usr/bin/perl use strict; use CGI::Carp qw/fatalsToBrowser/; die; で。 この魔法を進化させたのが「CGI::Carp

  • Idea of Data::Validator - Islands in the byte stream (legacy)

    Smart::Argsは無駄がなくて使いやすいのですが、欠点はXSモジュール(PadWalker)への依存があることと、Perlの作法を完全に無視していることです。 そこで、試みにData::Validatorというモジュールを書いてみました。 https://github.com/gfx/p5-Data-Validator コンセプトは以下の通り: 機能的にはSmart::Args + X Pure Perlでも動く Perlの作法に則る 十分に速い 使い方は以下の通り #!perl -w use 5.010_00; use strict; use Data::Validator; sub request { state $rule = Data::Validator->new( url => { isa => 'Str', xor => [qw(schema host path_que

    Idea of Data::Validator - Islands in the byte stream (legacy)
  • Sub::Argsによる高速簡易バリデーション - Articles Advent Calendar 2010 Hacker

    再登場のnekokakです。 みなさん、method引数のチェックってやってますか! 引数のバリデーションをやりたければCPANに色々転がっています。 一番有名なのはParams::Validateですね。 Params::Validateを使えば 引数の有無だけでなく型チェックまで行えたりさらにdefaultの値を設定したり色々便利な昨日が満載てんこ盛りです。 ただ遅い!遅すぎます!日が暮れます! どういう単位でmethodの引数チェックを行うかは人それぞれプロジェクトそれぞれだと思いますが、 固くプログラムを書いておりmethodの引数チェックをカッチりやっている場合、 loopでそのメソッドを呼び出しまくるとその分Params::Validateがよばれるので パフォーマンス的によろしくありません。 とても残念な感じです。 そこで日PerlHacker達が立ち上がりました! Sm

    Sub::Argsによる高速簡易バリデーション - Articles Advent Calendar 2010 Hacker
  • Image::SizeとImage::Imlib2を使ってCSS Spriteしてみよう - Articles Advent Calendar 2010 Casual

    はじめに 名古屋というところでゆるゆるとPerlを書いているissmと申しますこんにちは.先週イカ帽子を作りました. さて,Webサイトなんかで,比較的小さなサイズの素材画像をひとまとめにして,用途によってその背景位置をずらすことでうまく表示する「CSS Sprite」という手法,もうご存知のことかと思います.次のエントリあたりが人気のようですね. CSS Spriteを活用しよう | DesignWalker CSSスプライトを使ったメニューの作り方 | CREAMU CSSスプライトで画像を円滑に表示させる | Webクリエイターボックス 私もナビゲーション・メニュー画像(言い方古い?)をはじめ,マウスオーバーで変化するような画像なんかで,この手法を使っています. しかしまぁ,この「CSS Sprite」,素材画像をまとめるための作業(デザイナさんから渡された「デザイン重視」なデータを

    Image::SizeとImage::Imlib2を使ってCSS Spriteしてみよう - Articles Advent Calendar 2010 Casual
  • Data::Validatorでバリデーションする - Articles Advent Calendar 2010 Casual

    はじめまして!@hisaichi5518です。就活生です。誰か雇ってください。 Text::Xatenaについて書こうと思っていたんですが、もうText::Xatenaの記事が他のトラックにあるので、今日はgfxさんによってリリースされたData::Validatorを紹介しようと思います。 Data::Validator とは 実行時型チェック / パラメーターチェックが出来る便利なモジュールです。 現在、Params::Validateがデファクトスタンダードっぽいんですが、速度が遅かったりするので正直微妙です。 ベンチマーク p5-Data-Validator/benchmark/simple.pl Params::Validate/0.95 Smart::Args/0.06 Data::Validator/0.06 without type constraints Rate P::

    Data::Validatorでバリデーションする - Articles Advent Calendar 2010 Casual
  • WebService::Async でウェブサービスの非同期アクセスを簡単に! あるいは私は如何にしてMacBookProを手に入れたか? - Articles Advent Calendar 2010 Hacker

    今年はHokkaido.pmからはるばる YAPC::Asia に出張してきたkeroyonnです。 嫁にYAPCの写真を見せて「ほらみんなMacでしょー」と言ったら、不憫に思ったのかMacBookProを買ってくれました。 ひとりだけ違うメーカーのランドセルをしょった可哀想な子供を連想したらしいです。 すばらしいですなっ! YAPC は! WebService::Async とは さて今回ご紹介する、WebService::Async というモジュールは、yusukebe さんの WebService::Simple の非同期版です。 WebService::Simple はカジュアルにウェブサービスにアクセスできる素晴しいモジュールだなぁと思っていたのですが、非同期処理ができないため同時に複数のリクエストを投げるのがちょっと面倒でした。 これを簡単に書けたらいいなーと思って作ってみまし

    WebService::Async でウェブサービスの非同期アクセスを簡単に! あるいは私は如何にしてMacBookProを手に入れたか? - Articles Advent Calendar 2010 Hacker
  • system 使用時にプログラムの終了を待たずに制御を返す方法 - Articles Advent Calendar 2010 Win32

    こんにちは。いつまでたっても Perl が全然わからないはせがわです。 ActivePerl を使っていて外部のコマンドを system で呼び出したはいいけど、そのプログラムが終了するまで system の呼び出し以降のコードがブロックされて困ったことはありませんか? 例えば print "abc\n"; system "notepad.exe"; print "def\n"; というコードだと、"def" が表示されるのは、起動したメモ帳が終了してからになってしまいます。 メモ帳が起動すれば終了を待たずに速やかに次のコードが実行されるほうが嬉しい場合もあります。 こういう場合は、system で直接 notepad.exe を呼び出すのではなく、いったん start コマンドを介するようにして起動します。 print "abc\n"; system "start", "notepad.

    system 使用時にプログラムの終了を待たずに制御を返す方法 - Articles Advent Calendar 2010 Win32