タグ

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

  • YappoLogs: Gopper - Gopher2.0時代のプラガブルGopher Serverをリリース

    Gopper - Gopher2.0時代のプラガブルGopher Serverをリリース 空前のGopherブームが到来したわけですが、PlaggerやMoxyのようにプラガブルに機能を拡張できるGopher Serverを書きました。 http://coderepos.org/share/browser/lang/perl/Gopper/trunk svn co http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper 今のところ超シンプルなGopher Serverにしかなりませんが、Pluginを書いて行く事によりApacheっぽいhttpdになったりします。 configなんかもPlaggerさわってる人なら判りやすいはず。 global: log: level: debug engine: module: Simpl

  • YappoLogs: CodeRepos - 個人レポジトリを共有しよう!計画

    CodeRepos - 個人レポジトリを共有しよう!計画 typesterさんのつぶやき みんながそれぞれ作って公開してる公開レポジトリを一緒くたにしちゃいたい。参加してる全員がどのファイルもみたり変更したりできるような。 パッチ送られてくる代わりに「後で見とくからコミットしといて」とかいえたりとか、つくりかけで放置したもので他の人が興味もったら続き作ってもらうとか、メンテするのめんどくなったのだれかにやってもらうとか、突発的に誰かと一緒にプロジェクト始めたりとか、できる! に呼応する形で共有レポジトリを作りました。 http://coderepos.org/share/ 特に明確な方向性とかはきまってませんし、決まるかどうかもわかりませんがtypesterさんのつぶやきを現在の方向性という事にしておきますか。 昨日作ったばかりで、今はディレクトリ構成どうしようかとかそういう事をircとか

  • YappoLogs: bradとmyとuse fieldsとPseudo-hashesとHash::Utilと

    bradとmyとuse fieldsとPseudo-hashesとHash::Utilと bradプロダクトではuse fieldsが多用されています。そして、 my ClassName $var;のような変数宣言が多用されています。 perldoc -f myしてみるとuse fieldsで使うみたいな事が書いてありました。 use fieldsってのは package Jitensya; use strict; use warnings; use fields qw/(sound); sub new { my $proto = shift; my $self = ref $proto ? $proto : fields::new($proto); $self; } 1; のようなコードがあるとして use strict; use warnings; use Jitensya; my $

    yappo
    yappo 2007/08/03
    universal.cにしか情報みあたらないorz
  • YappoLogs: Soozy Conference #2 と naoyaさんへの返事

    Soozy Conference #2 と naoyaさんへの返事 Soozy Conference #2でid:naoyaへの返事というタイトルで発表をして来ました。 内容としては naoyaグループ - naoyaの日記 - Class::Component naoyaグループ - naoyaの日記 - Class::Component#2 という、二つのClass::Componentに関する質問への返事+αとなっております。 資料は矢印キーでページ操作出来ます。Firefoxでしか動作確認してません。 あいかわらず皆さんの発表内容は高クオリティで、とても勉強になりました。 みなさん、お疲れさまでした。 Posted by Yappo at 2007年07月31日 17:43 | TrackBack | Perl

  • YappoLogs: はてなスターで付けらてた☆をグラフ化するサービス - Cosmo Audience

    はてなスターで付けらてた☆をグラフ化するサービス - Cosmo Audience 13日の金曜日はJSONの日ということで、JSONを多用したHatena Inc.初のサービス Hatena Star を、より楽しく、便利にするWebサービスを作りました。 Cosmo Audienceと言います。小宇宙の観衆です。 はてなスターで沢山の☆を付けられるのは嬉しいんだけど、どんな人が☆を付けてくれたのかを見るには、いちいち☆にマウスカーソルを合わせなきゃいけないので大変ですが、このCosmo Audienceを通せば、多く☆を付けてくれた人順に並び替えて一覧で出してくれます。 しかも上位5人の総数を円グラフで出してくれます。(棒グラフでもいいけど) なんでオーディエンスかっていうと、jkondoのエントリにいっぱい☆を付けていた時 マウスのクリック音が拍手の様に聞こえたからです。 感動して拍

    yappo
    yappo 2007/07/13
  • YappoLogs: encoding::sourceをperl5.8系で動かす

    encoding::sourceをperl5.8系で動かす ことの発端はmiyagawaさんの というわけで上記のような問題になやまされずにリテラルをソースに書くことが出来そう。5.9 からバックポートされたのかなぁ、と思ってソースをみると思いっきり use 5.9.5 が。5.10 のリリースがまたひとつ待ち遠しくなったなぁ。 から なんで5.9から? encoding:sourceのソースを見てみると5.10の新演算子//が使われていた。のでまずはdefined使いまくりでソースを書き換えたけど上手く動かない。よく見ると my $hinthash = (caller($level))[10]; なるコードがある、callerの戻り値のリストは10個しか無い筈なのに11個目を取ってる。 調べてみると、5.10からの仕様でperlpragmaなるドキュメントがある。 callerで指定した

    yappo
    yappo 2007/06/22
  • YappoLogs: 誰でも紫色の何かを口に押し付ける事が出来るWeb Serviceを公開しました

    誰でも紫色の何かを口に押し付ける事が出来るWeb Serviceを公開しました 今日mizzyさんが、何の前触れも無くmizzy.org : 紫色の何かを口に押し付けている…なんて画像を公開していて 「もしかしたら紫色の何かを押し付けたい需要が溢れているのか」とビジネスチャンスを見つけたので、カッとなって誰でも「あの」紫色の何かを押し付けられるWeb Serviceをリリースしました。 Geek Face Generatorといいます。 あなたの顔写真をuploadして、紫の位置をブラウザで調整すれば、あっというまに貴方もgeekの仲間に入れます。 下のサンプル画像のようにgeekじゃない人でも、お手軽にgeekに変身出来ます。 紫の種類はnormal geekとsuper geekの2種類ありますので、その日の気分で入れ替えるのもおしゃれかもしれません。 さっそく、ご活用して頂いておりま

    yappo
    yappo 2007/06/14
  • YappoLogs: Class::Component - プラガブルなモジュールを作る為のベースモジュールの解説

    Class::Component - プラガブルなモジュールを作る為のベースモジュールの解説 pluginやcomponentを取り扱うモジュールを書く時に、plugin/componentを取り扱いを全て引き受けてくれるモジュールを作りました。 だいぶ前からCPANには上げてたんですが、色々あって今日報告と。 既出のアイディアとしてはid:naoyaの Class::Pluggableやid:ya_kenの Class::Pluggable等があります。 これらのモジュールもシンプルでいい感じなのですが、シンプルな分、若干物足りなさがあった(例えばメソッドの生やし方に自由度持たせたいとか)のでこしらえました。 詳しくはCPANのClass::Componentにもありますが日語でも説明文書きたい。 出来る事component追加で基メソッド拡張が出来るplugin追加で、hook p

    yappo
    yappo 2007/06/12
    うまく書ききれていない。。。
  • YappoLogs: FedoraCoreやCentOS系の遅いPerlのパッチの件

    FedoraCoreやCentOS系の遅いPerlのパッチの件 3月くらいにkazeburoさんがメモしてた遅くなる話。 極端に遅くなる処理のベンチ例みたいなのがほしいかな何やったら遅くなるかわかりました。 すごく正確に検証してるわけでも無いのですが、use overloadしたパッケージをblessするとき。 例えばURIやDateTime等のnew時。 この時にかかるCPUコストが激しく高いため、全体的にアプリケーションがもっさりと動く事になってました。 しかもFC4系列のディストリビューション全体で注意した方が良いかもです。 家はCentOS 4.4の perl 5.8.8-4.el4e1 のRPMで該当のパッチが混入していました。 書いたアプリが見込みよりもパフォーマンスが悪くて、最後の最後にまさかと思ってoverloadしてるモジュールを疑っていたらkazeburoさんにナイス指

    yappo
    yappo 2007/06/11
  • YappoLogs: FizzBuzzのPerlさいたんきろくたっせい(34ばいと)

    FizzBuzzのPerlさいたんきろくたっせい(34ばいと) FizzBuzzプログラムを書くのが流行っているみたいなので、空気を一切読まずに乱入した。 現在のPerl最短記録はTAKESAKOさんの56byteらしい。 こんなコード perl -e'die+map{(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/}1..1e2' まず、元の翻訳文章には「FizzやBuzzや数字のみを出力せよ」とは書いてない事に気づいたので、warnで出してみた。 perl -le'warn((Fizz)[$_%3].(Buzz)[$_%5]||$_)for 1..100'55byteになった。 次に1から100迄の数値のソースは、別にプログラム側でもっていなくても良い事に気づいたので、これを外だししてみた。 とにかく目的の文字列が出てくればいいのだ。 head -n100 /dev/r

    yappo
    yappo 2007/05/10
  • YappoLogs: Twitterっぽいサーバースクリプト書いたよ

    Twitterっぽいサーバースクリプト書いたよ twitterAPItwitter以外でも互換APIだしたり、ライブラリとかがtwitter以外でも使えるようになってたりと、API周りが面白い今日この頃です。 大して深い意味は無いのですが、オレオレTwitterみたいのが欲しくなってサクっとTwitter APIが使えるサーバスクリプト書いてみました。 デモはhttp://tech.yappo.jp:11111/にて動いてます。 id/passwodはguest/guestもしくはtest/testです。 ソースはhttp://svn.yappo.jp/repos/public/misc/twitterd.pl 使い方はドキュメント書いてあるけど、htpasswdでユーザーアカウントを作成して、その作成したアカウントを使ってTwitterもどきにログイン出来ます。 サーバーを立ち上げた

  • YappoLogs: twitter2ircd.pl - POEで書いたperlのTwitter IRC Gateway

    twitter2ircd.pl - POEで書いたperlTwitter IRC Gateway Twitterは、どことなくチャット的な利用もされていてiChat使っていたのですが,WindowsTwitter IRC GatewayがあってIRCでやるのが楽しそうだったので、Macで動くようにPerlIRC Gateway書きました。 miyagawaさんにPoCo::Server::IRCのサンプルコードとしてLingrのIRC Gatewayを教えてもらったので、参考にしてPOE::Component::Client::Twitterを作ってCPANにうpしました。 パッケージ中にはtwitter2ircd.plというTwitterIRC Gatewayとなるサンプルコードを同梱しています。 コードの下にサンプルの設定ファイルがあるので参考にして下さい。 こんな感じで 普通

  • YappoLogs: YAPC::Asia Hackathon at Dan the hotel

    YAPC::Asia Hackathon at Dan the hotel hackathonが終わるまでがYAPCという事で、ほぼ無事に終わりました。 成果としては、はてブの大文字小文字問題を皆で直していたとか、そういうのは合ったですが、もうちょいまともなのも有ります。 hackathonいく前に、調子に乗ってミサイルランチャー買いにいったのですが4000円くらいのが1000円で投げ売りされていたので大人げも無く買い占めてから参加しました。 で、自分のマシンにいっぱい繋げて遊ぼうかと思ったらMacだとDevice::USBのtestが通らなくて、周りの人にも聞いても動く気配が無く迷ってる所で。 ちょうどmiyagawaさんがircにDevice::USB::MissileLauncherの人のgregを発見してDevice::USB::MissileLaunchersを教えていました。(

  • YappoLogs: CatalystのAttributesが初期化されるまで

    CatalystのAttributesが初期化されるまで ちょっとSoozyにもChainedっぽい仕組みを取り入れたくてCatalystのAttributesのコードを追いかけてました。 んで、とりあえず名前のエスケープと文字の長さの制限を加えてみたので、軽くメモしてみます。 AttaributeってのはControllerの中の sub default : Private { }やsub root : Chaind('/') ...のような:の右側にある奴の事です。 適当な解説はPerlのAttributesについてのお勉強でまとめてます。 主にattributesまわりの処理に偏って書いているので来の役割とは違う書き方をしてるかもしれません。 どのコードがどこに在る物なのかとかは空気呼んで把握して下さい。 Catalyst->setup Catalystのアプリケーションは、まずC

  • YappoLogs: Apacheで携帯キャリアのIPアドレス制限をするには

    Apacheで携帯キャリアのIPアドレス制限をするには 塩とDishuberを使えば良い。 用意するもの config.yaml cidr.tt contents.tt frame.tt 以上のファイルと最新のDishuberだけである。 それぞれのファイルの中身はとても単純。 frame.tt [% content %] contents.tt[% FOREACH cidr = meta.cidr %] [% cidr -%] [% END %] cidr.tt# [% meta.source.meta.carrier %] [% FOREACH cidr = source %] Allow from [% cidr -%] [% END %] そして config.yaml plugins: - module: Source::MobileCIDR cid: docomo config

  • YappoLogs: デブサミで発表してきました

    デブサミで発表してきました デブサミ2007出張Shibuyaイベントでお話ししてきました。 300人の会場が、ほぼ満席状態でかつ完璧なアウェイ状態な中でかつ、会場が凄く豪勢で恐縮する中での発表ですが、前日の入念なリハーサルや発表資料を余裕をもって用意していたおかげで、なんとか無事終わる事が出来ました。 お話の内容は、最初はPlaggerインスパイア系のツールをする予定でしたが、それらツールの作者がLTで発表してしまうため急遽ツールを作成し、そのツールに関する発表もしました。 発表内容はhttp://tech.yappo.jp/docs/devsumi2007/期間限定ノーカット版 発表したDishuberに関してはhttp://svn.yappo.jp/repos/public/Dishuber/trunk/ にて取得可能です。 Dishuberに関しては後ほどちゃんと書く予定。 豪勢な

  • YappoLogs: Scalar::Callback - 簡易的なキャッシュを楽に書く

    Scalar::Callback - 簡易的なキャッシュを楽に書く だいぶ昔に北斗の拳の人のブログに Unknown::Programming - ||=とdoを使ってキャッシュ 前にどっかのソースで、 sub method { my $self = shift; my $code = sub { ### 前処理 return Hoge->new; }; return $self->{hoge_obj} ||= $code->(); }っていう感じのを見たんだけどどっちがいいんだろーか。 僕的にはdoの方が余計な処理をしないので好きなんだけども。と書いてあったの事が引っかかって作ってみました。 http://svn.yappo.jp/repos/public/Scalar-Callback/trunk/lib/Scalar/Callback.pm ちょっとしたスクリプトとかにexpires

    yappo
    yappo 2006/12/20
    Scalar::Deferはちと違うす
  • YappoLogs: Wiiリモコンのリコールの件

    Wiiリモコンのリコールの件 まだコメントが醒めない今日この頃ですが、任天堂から「Wiiリモコン」のストラップについてのお願いというのが出ましたね。 つきましては、お客様に安心してご使用いただくためにも、より強度のある1mmの「ひも」でのプレイをしていただきたく、お手数をお掛けしますが、お持ちのストラップをご確認いただき、0.6mmの「ひも」の場合は、下記のとおり交換(無償)の手続きをお取りいただきますようお願い申しあげます。ふむふむ、0.6mmだったから、切れたのか!1mmを送ってもらえば良いんだね! 説明ページの写真はみわけ付きにくいしWii体とか手元にないからノギスで計ってみました。 信頼のおけるブロガーなのに、信じてくれない人も少数居たので様々な角度から写真取りましたよ! どうみても1mmの紐です。当にありがとうございました。 1mmの紐が切れた人にはサポート無しですか? Wi

    yappo
    yappo 2006/12/15
    wktk
  • YappoLogs: Wiiのリモコンコントローラが飛んだ件

    « Plagger::Plugin::Notify::MissileLauncher - Ejectじゃ刺激が足りない人に | Main | 深夜に車のガソリンが切れた時の解決方法 実践編 » Wiiのリモコンコントローラが飛んだ件 任天堂の法務部からクレームが来る前に言っておくッ! おれは今やつのスタンドをほんのちょっぴりだが体験した い…いや…体験したというよりはまったく理解を超えていたのだが…… ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ|          あ…ありのまま 今 起こった事を話すぜ! |i i|    }! }} //| |l、{   j} /,,ィ//|       『おれはWiiのリモコンでボーリングをやっていたと i|:!ヾ、_ノ/ u {:}//ヘ        思ったらいつのまにか投げていた』 |リ u' }  ,ノ _,!V,ハ |

    yappo
    yappo 2006/12/11
    あとで任天堂に連絡しとこ
  • YappoLogs: Plagger::Plugin::Notify::MissileLauncher - Ejectじゃ刺激が足りない人に

    « 電車運行維持のためにぬれ煎を買ってください!!電車修理代を稼がなくちゃ、いけないんです。 | Main | Wiiのリモコンコントローラが飛んだ件 » Plagger::Plugin::Notify::MissileLauncher - Ejectじゃ刺激が足りない人に 実弾発射と姿勢制御可能なUSB接続ミサイルランチャー発売という物が発売されておりますが、これをPlaggerのNotifyとして使おうというプラグインです。 Ejectの動きだけじゃ気づかないよ!って人におすすめです。 package Plagger::Plugin::Notify::MissileLauncher; use strict; use base qw( Plagger::Plugin ); use Device::USB::MissileLauncher; sub register { my($self