2007年09月21日

【重大なお知らせ】征夷大将軍になりました

みなさんに重大なお知らせがあります。
この度わたくし大沢和宏は征夷大将軍に就任しました。
人力検索はてな - 征夷大将軍になれば幕府を開けると習いました。可能であれば幕府を開いてみたいと思うのですが、とりあえず何から始めればよいのでしょうか。(この質問はしきりの回答に「seiitaishougun.com といったドメインを取得するのも気が利いています。」と書いてあったので、ためしにwhoisしたら取得出来ちゃったので、征夷大将軍になる事を決意いたしました。
書籍化された、最初の章に書いてあるドメインを誰も取得してないなんてビックリですね!!!

幕府を作りたいのですが
人力検索はてなの皆さん 竹原
白泉社 (2007/09)
売り上げランキング: 1427
おすすめ度の平均: 5.0
5 はてなの「良心」
Posted by Yappo at 19:22 | Comments (5) | TrackBack

2007年09月18日

ma○aの件がぐだぐだして来たので、ひとこと言わせてもらう

この動画を公開するときが来たようだ。

Posted by Yappo at 14:13 | Comments (0) | TrackBack

2007年09月17日

第2回モバイル勉強会で発表して来ました

モバイルがテーマなので、今回は技術よりの話はしてませんが

  • ThirdForce普及の話
  • メールに件名入ってないの話
  • itkz係数について
  • GopherのPR
  • CodeReposのアピール

をテーマに発表して来ました。

取り急ぎDanさんメソッドで資料を上げときました。
若干修正済。
http://tech.yappo.jp/docs/mobaben2/

ustreamで配信されていてhttp://ustream.tv/channel/mobabenにて録画したアーカイブを視聴出来るようです。

Posted by Yappo at 18:50 | Comments (11) | TrackBack

2007年09月11日

CodeReposのircチャンネルとOhlohの件

ちゃんと告知してなかったのですが、CodeReposのircチャンネル作りました。
普通に #coderepos@freenode です。
codereposbotが常駐していてtimelineをnoticeしてくれます。

typesterさんの提案でOhlohにも登録しときました。
CodeRepos::Share - Ohloh

最初はPerlだけか?と思われ気味でしたが、現在は7言語のディレクトリがあります。
どしどし参加してくだしあ

Posted by Yappo at 22:48 | Comments (0) | TrackBack

iYappoがモバイルサーチ業界でシェア14位らしいよ

ふと携帯サイト向けSEO最新事情 | Web担当者Forumをみていて気づいたのですが

図2 「利用したことのある携帯電話の検索サービス(複数回答) N=829」(図はクリックで拡大)
(出典:『ケータイ白書2007』© impress R&D/Mobile Content Forum, 2006-2007)。

という、ケータイ白書2007の引用画像があった。
おおまかな携帯検索エンジンのシェアグラフっぽい

よく見ると。。。「iYappo 1.7%」の文字が。おじいさん興奮しちゃって目から血が吹き出ちゃったよ。
業界シェア14位だった、法人運営でも何でもないのに。
しかも1.7%って数字も馬鹿にできる数字じゃなくて。例えば5位のlivedoorが順位上げたければiYappoをちょっとさらってくれば、infoseekを抜いて4位になれるという数字。この時に買ってれば順位に影響あったのか。
逆に7位のリクルートがiYappoをさらえばlivedoorすら抜いて一気に5位にジャンプアップ出来る
そういう事を考えると結構すごいので、10億で買い取ってもらえるようにiYappoちゃんと頑張る。
今なら「携帯検索.jp」のドメインもついて来るよ!

Posted by Yappo at 22:35 | Comments (1) | TrackBack

Re: Class::Component::Plugin の init()

なんだかんだしてたら返事が遅れて超亀レスで申し訳ないですが

sexさんのsubtech - sexさんのブログ - Class::Component::Plugin の init()

init() っていうメソッドがたぶんabstract methodとしてあるっぽいんだけど、その中でなにも渡ってこないのが悔しい><

との事ですが、どうせcallとかrun_hookで呼ばれる時にはMethod,Hookなメソッドにはcontextが渡されるので、要らないかな?というのと
今となってはDisableDynamicPluginを使うと、pluginのinitを呼ばれるタイミングでは、大元のpackageのインスタンスが出来てないので$contextをinitに渡せないという理由があったりします。

やるとすればComponentとしてnewした時にpluginを初期化する処理とか実装したほうがいいのかなぁ?と
例えば以下のようなComponentを用意して

package Class::Component::Component::PluginSetContext;
use strict;
use warnings;
use Scalar::Util ();

sub new {
    my $class = shift;
    my $self = $class->NEXT( new => @_ );

    for my $plugin (@{ $self->class_component_plugins }) {
        $plugin->{context} = $self;
        Scalar::Util::weaken( $self->{ context } );
    }

    $self;
}

package Class::Component::Plugin;
sub context { shift->{context} }
1;

これをload_componentsすれば、元記事でやりたい事は一応できます。

使い方のサンプルとしては

package OIOI;

use strict;
use warnings;

use Class::Component;
__PACKAGE__->load_components(qw/ PluginSetContext /);

sub hello {
    my $self = shift;
    print $self->{hello} . "\n";
}

1;

package OIOI::Plugin::Hoge;

use strict;
use warnings;
use base 'Class::Component::Plugin';

sub hoge :Method {
    my($self, $c) = @_;
    $self->context->{hello} = 'hoge';
}

sub uge :Method {
    my($self, $c) = @_;
    $self->context->{hello} = 'uge';    
}

1;

use strict;
use warnings;

use OIOI;

my $oioi = OIOI->new({ load_plugins => [ qw / Hoge / ] });

$oioi->call( 'hoge' );
$oioi->hello; # print "hoge\n";

$oioi->call( 'uge' );
$oioi->hello; # print "uge\n";

こんな感じです。

まだまだ、手をつけなきゃいけないところもあるし

とか、他にもいろいろしたいよ!

という要望。

という事なので、もっと色々聞かせていただきたく。

CodeRepos行き?

Posted by Yappo at 22:21 | Comments (0) | TrackBack

2007年09月08日

ITPro ChallengeのLTに出て来ました

インターネットに不自由してる旅先で、つい魔が差してLTに応募したら採用されたので話して来ました。
初の試みとしては、話してる最中の様子をustreamで配信してました、といっても自分の胸ばかり写ってたかもです。そして23viewersくらいあったようです。
内容は、ごにょごにょしたのと、今空前のブームであるGopherのGopperのPRとCodeReposの宣伝して来ました。
あと、はてなスターのTシャツを着てプレゼン中にスターのアピールをしたのに、話し終わった後naoyaさんが怒ってた気がする。
やっぱり、はてなブックマークのアピールをしなかったせいだろうか。ふしぎ!
以外とGopherネタをわかってる人がおおくてよかた。

資料はhttp://tech.yappo.jp/docs/itprochallenge/にて。
キーボードの上下左右キーで操作出来ます。
後日Youtubeとニコニコ動画でプレゼンの様子をアップロードしてくれるそうです。
また、反応リンク集は便利な、はてなブックーマークをご利用ください。

id:amachangのS6を使いました、というかLL魂の資料のコピペです><
今までS6をちゃんと見てなかったんだけど、初めて使ってみようと思ってから直に使えるのはいいっすね。
amachang++

Posted by Yappo at 12:41 | Comments (0) | TrackBack

2007年09月07日

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: Simple
    config:
      host: example.org
      port: 70

plugins:
  - module: Setuid
    config:
      user: nobody
      group: nobody

  - module: Protocol::Gopher

  - module: Handler::Static
    config:
      docroot: /foo/bar/example/docroot

プラガブルな機構はClass::Componentをそのまま利用しています。
なので、Component追加とかAttribute追加とかまで労せずできます。
Class::Component標準のrun_hookは、ちょっと細かいニーズに耐えられないので別途実装しました。run_hookを拡張する仕組みをClass::Componentに入れた方がいいのかしら。

パッチ書いたりプラグイン追加したい方は、CodeReposのコミット権さえあれば誰でも開発の参加が可能なのでCodeReposに参加してくださいな。

ちなみにGopherだからってXHTML原理主義とかとは無縁というわけではない。
gopher://yappo.jp/h/shinjukujs.html
こんなリッチなアプリケーションだって書けるのだ。

ところでFirefoxで70番以外で上がってるgopherのみかたありませんか?><

Posted by Yappo at 11:31 | Comments (0) | TrackBack