タグ

ブックマーク / blog.yappo.jp (33)

  • YappoLogs: そろそろWEB+DB PRESSについて一言いっておくか

    そろそろWEB+DB PRESSについて一言いっておくか こんにちは、最近 ここ1ヶ月間で映画館に4回行っているYappoです。 さて、ご報告が遅れましたが、先月発売されたWEB+DB PRESS Vol.56より「モダンWebインタフェース構築術」という題名で連載をさせて頂く事になりました。過去に違うジャンルの雑誌で連載していた事があったのですが、技術誌での連載は初めてなので胸がバクバクしています。 内容はというと、今風のWebアプリを作る時に知っておきたい事やらFiciaを実装していく事で得られた知見等を紹介していく方向性になっています。 おもにクライアント側の実装に焦点があたり、JavaScript+Ajaxな感じの連載になるんじゃないかという話もありますが、そこはまぁ特定の言語にフォーカスした感じにはならないかなと、実装例は出るけど質的には「こういうのが困って、こういう解決方法を

    joan9
    joan9 2010/05/08
  • YappoLogs: PHPの関数と同等の実装をPerlでどう書くリファレンスプロジェクト開始のお知らせ

    PHPの関数と同等の実装をPerlでどう書くリファレンスプロジェクト開始のお知らせ ふとしたきっかけでPHPのリファレンスマニュアルにある関数と同等の機能をPerlで実装するにはどうするか?といったリファレンスを作るプロジェクトを始めました。 PHP使いの人がPerlを弄る時に「PHPのこれPerlでどうやれば良いんだ!」といった要望や、ごく普通のPerl使いの人が「これどうやって書けば良いのかな?」って時に使うcookbook代わりに使える事を想定しています。 ドキュメント管理にはgithubhttp://github.com/yappo/docs-php-funcref-in-perlを使い、ドキュメントのビューワーとしてwikihubWikiHub :: php-funcref-in-perl :: READMEを使っています。 書いて欲しいと思った人にはあらかたコラボレータ入れてる

    joan9
    joan9 2010/03/04
  • YappoLogs: Mooseを使うべきでない理由とMooseを使う理由

    Mooseを使うべきでない理由とMooseを使う理由 twitterにでも書いて終りにしようと思ったけど140文字じゃ無理なんで。 Mooseの欠点やら利点やらMouseがどうだとかは今更感過ぎて割愛するし、下手な抽象的な表現も面倒なんでしない。 あなたが、再利用性の高いライブラリを作りたい場合はMooseを使うべきではない。 なぜならMooseはフレームワークだからであるからだ。 たとえ有用な再利用性の高いライブラリを作ったとしても、Mooseというフレームワークに依存してしまっては、あなたの有用なライブラリを選択してもらえない事もあるだろう。 誰かが小さいスクリプトを書くために、あなたが書いた有用なライブラリを使う事で楽が出来るとする、だがMooseというフレームワークに依存したばっかりに、その有用なライブラリの後ろに控えるものの大きさに臆して選択してくれないかもしれない。 もちろんM

  • YappoLogs: KVSでORマッパーを使うという事

    KVSでORマッパーを使うという事 ケイレキ.jpの中でケイレキ.jpに招待して欲しい人を呼びかけても絶賛スルーされてるYappoです。さて今回は今巷で大人気のKey Value StorageでORマッパーを使う事についてお話するのじゃ。 一般的にORマッパーとはオブジェクトとリレーショナルデータベースをマッピングする為の仕組みの呼び名だと言うのは知られている所です。はい、そうするとKVSってのはハッシュデータベースであるわけなのでおかしいですね。今回の話はData::Model::Driver::Memcachedを使う事を前提としてるので問題が無いのです。なぜなら「data/object mapper」とか書いてあるから。 いわゆるPerlなORマッパーってのは行データをHASHで管理します。それはRDBが一般的に表形式でデータを管理しているからなんだと思います。なんでKVSをオブジ

  • YappoLogs: Imager::ExifOrientation - Exifの情報を元にして画像を回転するよ

    Imager::ExifOrientation - Exifの情報を元にして画像を回転するよ 全国的にみんな真面目だな〜。勉強会の目的なんてないよ。楽しいからやっている。それで何が悪いのかな?の実況中継、その勉強会への 参加そのものについてちょっと考えなおした方がいいかもしれない。 Imager::ExifOrientationをCPANにうpりました。 Exif の Orientation というパラメータを元にして回転済みのImagerオブジェクトを返します。 一緒に Imager::Filter::ExifOrientation もバンドルしてるので、filterとしても利用出来ます。 Orientationは何かと言うと、カメラに縦方向センサーが入ってる機種で、画像に対してカメラの上方向はどちらかというような情報が入っている所です。 わかり易い説明は500で見れないのでgoogle

    joan9
    joan9 2009/06/17
  • YappoLogs: Data::Model っていう ORM みたいの CPAN にあげたよ

    Data::Model っていう ORM みたいの CPAN にあげたよ あざーす。循環参照しすぎるとバターになる。。なんでそんなに人の目を気にするのだろうと、マジレス。 早速ですが Data::Model っていう O/Rマッパー 的な物を CPAN にあげました。 Data::Model http://github.com/yappo/p5-Data-Model/tree/master 元来は MVC モデルで言う所の Model を一括でまかなえるつもりで実装していますが、ロジック処理は普通の Perl のクラスで書いちゃった方が潰しが聞くため、主にストレージを Perl のオブジェクトにマッピングする ORM 的な使い方が主流となっています。 そして、 Data::Model の多くの実装や設計などは Data::ObjectDriver を参考にして開発しました。 他にも後述して

  • YappoLogs: TokyoCabinetがPerlのHASHより遅いわけがない!

    TokyoCabinetPerlのHASHより遅いわけがない! こんにちわ!金曜日担当・Shibuya内フェアリーことYappoです。 mixi Engineers’ Blog » PerlRubyで省メモリなハッシュを使おうにて 100万件のレコードを格納した場合のメモリ使用量と処理時間を測ってみましょう。Perl(5.8.8)でテストコードを動かしたところ、以下の改善が確認できました。標準のハッシュに比べて、メモリ使用量がTCのオンメモリハッシュだと約61%、TCのオンメモリツリーだと約37%になることがわかります。処理時間に関しては157%ほどになっていますが、まあ許容範囲ですよね。といった事が書かれており、その文面の上の解説で、tieしたので、tieしてるからおせーんじゃねーの?とテストコードも見ないで呟いてたらmikioさんからtie使わないでやってるよ!とつっこんでいただき

  • YappoLogs: danさんのllevalをもっと便利にするラッパー作った

    danさんのllevalをもっと便利にするラッパー作った 404 Blog Not Found:Ajax - Lightweight Languages を実行するAPI 今度はPerlだけではありません。一時はcodepadの1/100くらいの利便性まで下がってしまって心配しましたが、80倍便利になってぼくたちのDan the APIが帰って来ました。 しかし、まだ物足りない所として貼付けたcodeのpermalinkが取れないので、実行結果を友達に教えてhackに役立てるのが不便でした。 そこでDan the APIを利用する形で、貼付けたcodeのpermalinkを作るCGIを作りました。 http://seiitaishougun.com/lleval.cgi ソースコードは公開されてるので、自己責任で遊んで下さい。実際に動いてる物はYacafiのpack機能をつかって1つのファ

    joan9
    joan9 2009/03/28
  • YappoLogs: HTTP::Engineの今とこれから

    HTTP::Engineの今とこれから 昨年末にHE con #1 が開催されてから久しいですが、あの前後で話題になっていた 「HTTP::Engineは依存が大杉メモリいまくり」な件に関しては、Shikaという回答を出し、その後Mouse版の0.1.1をリリースしました、 そして最近Stevanから「Any::Mooseはどうか? lang:en」と言った話も有り、現在Any::Mooseに依存した0.1.4を出すべく0.1.4_xをCPANにあげています。 クラスビルダーにMooseを使うか捨てるか論争は、0.1.4にて妥協出来る所に落ち着いたんじゃないかなと思います。 Any::MooseやMouseが細かい所で挙動が変わるかどうかは今のところわかりませんが、少なくともHTTP::Engineで採用した事により安定する方向になるんじゃないでしょうか? もちろんより高い互換性の為の変

  • YappoLogs: Perlで数有る$selfを取る手法をベンチマーク取った

    Perlで数有る$selfを取る手法をベンチマーク取った PerlでOOなコード書く時のコンテキストを取る方法は色々あります、最近audreyがselfvarsをリリースしたので、gugodのself.pmとingyのSpiffyそして、既存のmy $self = shift;やshift->や$_[0]->で$selfを取る方法それぞれのベンチマークを取ってみました。 テストコードのモジュール名は、それぞれのモジュールの作者名から取り、既存の手法はYAPC::Asiaでプレゼンした事のある日を代表するPerlな企業のCTOからモジュール名を取らせていただきました。 コードは以下の通りです。 package Audrey; use strict; use warnings; use selfvars; sub new { bless { count => 0 }, shift } sub

    joan9
    joan9 2008/12/04
    いろんな書き方あるのね。Batara(さんの書き方なの?)とか知らなかったよ。
  • YappoLogs: tracとsvnwebとapache1.3.*でオープンソース開発環境の構築

    tracとsvnwebとapache1.3.*でオープンソース開発環境の構築 http://plagger.org/のようなtrac&svn環境を作りたかったので頑張ってみました。 Apache1.3系でtracとsvnwebの構築をしました。 例としてBloxabというプロジェクトを立ち上げる時の構築方法で書いていきます。 ディレクトリとかユーザー名とかは適時書き換える事。 tracの細かい事についてはドキュメントとかを参考に。 svnリポジトリの作成 $ svnadmin create /usr/local/bloxab/repos普通にリポジトリを作ります。 この作成したリポジトリは、apacheとtracdを動かすuid双方で読み書きできるしておく必要があります。 適切なchownとchmodをしておいて下さい。 以上 tracのインストール tracを動かす為の各種ソフトをインス

    joan9
    joan9 2008/11/26
  • YappoLogs: Shibuya.PM tech talk #10 の申し込み間に合わなかった人への提案とust時代の勉強会の関わり方

    Shibuya.PM tech talk #10 の申し込み間に合わなかった人への提案とust時代の勉強会の関わり方 昨夜に募集開始されたShibuya.PM tech talk #10ですが、夜に募集開始したのにも関わらず3時間足らずで定員オーバーとなりました。 wassrとか等を見ると行きたいけど間に合わないよーという話もチラホラでてます。 そこで提案なのですが折角ネット中継されるので「Shibuya Perl Mongersテクニカルトーク#10 パブリックビューイング」という催しを同時開催するのはどうでしょうか? ustで見れるから会場に来なくてもいい。という話ではなく、やはり現地にきたら現地に来たなりの何かが得られるので、というか一人で見るよりも同じ目的の人間が集まってワイワイ見た方がたのしいじゃんすか。 定員で参加出来なくて「現地で得られるもの」的な収穫は半減するかもしれないけ

  • YappoLogs: Yacafi という軽量CGIフレームワーク書いたよ

    Yacafi という軽量CGIフレームワーク書いたよ MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記やらNanoA というウェブアプリケーションフレームワークをかいてみた - id:kazuhookuのメモ置き場やらと軽量CGIフレームワーク作りが流行ってるようなので昼飯った後に20分くらいで書いたよ。 Yacafi(Yet another CGI application framework interface)と言います。 http://svn.coderepos.org/share/lang/perl/Yacafi/trunkからsvn coできるけど、Yacafiはモジュール一個だけあれば動くようにしてあるのでhttp://svn.coderepos.org/share/lang/perl/Yacafi/trunk/lib/Yac

  • YappoLogs: List::Rubyish - hatena の DBIx::MoCo から fork した

    List::Rubyish - hatenaDBIx::MoCo から fork した DBIx::MoCoというhatena謹製のO/Rマッパは有名ですが、DBIx::MoCo::ListというRubyっぽいリスト操作を行ってくれるモジュールがあります。 概要はPerl のリスト操作を Ruby 風に - naoyaのはてなダイアリーが詳しいです。 DBIx::MoCo::ListはautoboxじゃないのにList::UtilやList::MoreUtilsを活用して実装してあります。 ちょっとしたリスト操作には使い勝手が良さそうなのですが、最大の欠点があります。 それはDBIx::MoCoに含まれるモジュールだという事です。DBIx::MoCoごと入れろと言われたらおしまいですが>< 実はDBIx::MoCo::ListはDBIx::MoCoの他のモジュールに依存する箇所がどこ

    joan9
    joan9 2008/10/15
  • YappoLogs: CodeReposが1年たってGitリポジトリ追加の巻

    CodeReposが1年たってGitリポジトリ追加の巻 昨晩は夜9時から誕生日ケーキを探してたけどケーキ屋さん店じまいしてるのばっかで誕生日中にエントリかけなくなった>< YappoLogs: CodeRepos - 個人レポジトリを共有しよう!計画という記事と共にCodeReposが生まれて一年経ちました。 僕は主に460名分のhtpasswdをひたすら登録をするだけのお仕事をしていたわけですが正直ここまで続くとは思っていませんでした。 これも何もひとえにがんがんコミットしてくれる皆様のお陰だと思っています。有り難うございました。 やっぱり折角人様のコードを弄くりまくれる環境があるのだから、皆ももっとコミットしまくれば良いよ。 あと折角一年経ったという事でリリースし忘れてたGitリポジトリを公開しておきます。 http://git.coderepos.org/です。 GitはSubver

  • YappoLogs: perl-users.jp というサイトを立ち上げました

    perl-users.jp というサイトを立ち上げました perl-users.jp - 日Perlユーザのためのハブサイト YAPC::Asia 2008 で Michael Schwern は「SEOに有効な独自ドメインを取って、もっとPerl初心者が集まりやすいniceなPerlの情報を集めたサイトを作れ!」といったのでperl- users.jpドメインを取って、ここにperl-users.jpを開始します。 以前よりShibuya.pm界隈では、初心者や複雑なPerlの話題をキャッチアップ出来ないPerl利用者をどうすくい上げるか、という議論を盛んに行って降りました。 Schwern の言う通り perl で検索してもなかなかいい情報にたどり着けなかったりと、それは酷い現状をどうにかしたい思いはYAPC::Asia 2008 のスピーカー陣共通の思いだと思っています。 といっ

    joan9
    joan9 2008/05/21
  • YappoLogs: HTTP::Engine - Perl版 WSGI のような物、 Catalyst::Engine を抜き出したような物

    HTTP::Engine - Perl版 WSGI のような物、 Catalyst::Engine を抜き出したような物 先週のCatalystConでHTTP::Server::Wrapperというのを発表したのですが、やっぱり名前長いしわかりにくいよねということで、HTTP::Engineという名前でやり直して CPAN に上げました。 http://search.cpan.org/dist/HTTP-Engine/ 実は Catalyst の svn repos に HTTP-Engine のディレクトリ掘ってある事は知っていたんだけども、4ヶ月くらい前に作ってからそれっきりっぽいので、DISられ覚悟でうpたわけです。 簡単に説明すると、mod_perlやfastcgiやHTTP::Server::SimpleやPOEやCGIなど様々なWebエンジンを透過的に扱って簡単にフレームワー

  • YappoLogs: そろそろはてな京都移転について一言いっておくか

    « デブサミ2008の発表資料、MacでバランスWiiボードのデータを取れるコードとプレゼンツールPlusenの公開 | Main | 誰でも簡単にOpenID 2.0なOPを作る方法 and CodeReposでOpenID(2.0対応)プロバイダの提供始めましたのお知らせ » そろそろはてな京都移転について一言いっておくか 朕は征夷大将軍の職に就いているわけだが、電文によると「はてな」という蛮族集団の頭領が南蛮より帰国し魔羅という疾風の如き妖怪を軍門に引き連れて京へ上洛を目論んでいるというではないか。 この「はてな」という蛮族の頭領の慈衛近藤という輩は珍妙な発明ばかりをしていて周囲の国々から渋谷の大うつけと言われていると聞いている。そのような珍妙な頭領ならば朕の征夷大将軍を座を奪う為に上洛すると考えるのが筋が通ろう。 征夷大将軍の名にかけて「はてな」の上洛を阻止し朕の征夷大将軍の座を守

    joan9
    joan9 2008/02/26
  • YappoLogs: perl 5.10 and perl 20 years old

    perl 5.10 and perl 20 years old perlが20歳になったのと、5.10.0がめでたくリリースされたので、お祝い代わりにdanをCPANにuploadしました。 くわしい説明はYappoLogs: dan - リテラルとかを読まなくなるプラグマ作ったにて Posted by Yappo at 2007年12月19日 18:22 | TrackBack | Perl

    joan9
    joan9 2007/12/19
  • YappoLogs: dan - リテラルとかを読まなくなるプラグマ作った

    dan - リテラルとかを読まなくなるプラグマ作った 何を言っているのか解らないとは思いますが、use danをするとそれ以降の""とか''やq{}とかとかで囲まれた文字列を全て読まなくなります。 use dan; print "foo"; # not displaying no dan; print "foo"; # foo こんな感じで、use danからno danの間にあるもの全てを読まなくなります。 正規表現だろうがqwの中身だろうがヒアドキュメントだろが構わずです。 その他フィルタ的にも使えるので詳しくはソースとか読んでみて下さい。 サンプルはテストを見るべし。 ちょっとしたアーミーナイフ的で素敵です。 use orz的に考えてもらえると嬉しいです。 なんだかuse utf8してると、hint bits的にdanの処理がうまく行かないのでforceモード付けて、use utf8

    joan9
    joan9 2007/12/10