タグ

ブックマーク / blog.64p.org (183)

  • gRPC-WEB がもたらす我々の生活への変化 - tokuhirom's blog

    gRPC-WEB が GA となった。これが我々の生活にどのような変化をもたらすのかについて考える。 従来の gRPC の課題 gRPCgoogle が公開している RPC 方式であり、java, golang などの言語で利用可能になっている。 gRPC は protocol buffers over HTTP/2 を基としているため、通信が multiplexing されるし、schema 定義がきっちりされるのでクライアント側とのコミュニケーションがしやすい。 一方、protocol buffers はbinary であるためにbinaryの取扱が苦手な Browser JavaScript からのアクセスが難しいという問題があった。 grpc-gateway grpc-gateway という実装があって、これを利用すれば Browser JavaScript からのアクセス

  • Perl 5.19.9 で実装された signatures の構文をためしてみる - tokuhirom's blog

    use 5.019009; use autodie; use feature 'signatures'; no warnings "experimental::signatures"; package Foo { sub new($class, $n) { bless {n=>$n}, $class; } sub bar($class, $a) { $a+3; } sub baz($self, $a) { $self->{n} * $a; } } sub add($left, $right) { return $left + $right; } say add(1,2); say Foo->bar(4); say Foo->new(5)->baz(4); みたいな感じでつかえる。 【追記】 use 5.019009; use feature 'signatures'; no warning

  • Harriet ー テストのときつかうにデーモンの取扱を簡単にするためのフレームワーク - tokuhirom's blog

    https://github.com/tokuhirom/Harriet/https://metacpan.org/module/TOKUHIROM/Harriet-0.01/lib/Harriet.pmテストのときにつかう mysqld, memcached, stf, groonga あたりのデーモンを、.t 単位で起動していては遅くてかなわない。かといって、あらかじめ起動させておくというのも。。 というわけで prove のプラグインとしてよしなにする、みたいなのをがんばってかく、というような試みがおこなわれてきたわけですが、どうもめんどくさい。 なんか適当にやったらうまくうごく、っていうかんじのカジュアルなツールがほしいな、なんておもったりするわけですよ そこで、Harriet ってのをつくってみました。 なんかこう、t/harriet/mysqld.pl っていうファイル名でこん

    jazzanova
    jazzanova 2013/07/02
  • Future Perl - YAPC::NA 2013 に参加して - tokuhirom's blog

    YAPC::NA 2013 に参加してきました。その中でも印象にのこったことを取り急 ぎアップしておきます。 今回は日からは @yusukebe と @xaicron と TPF の President である Karen が参加していたようです。 僕は今回がはじめての US だったので、いろいろと困惑することもありました が、旅行記などには興味がないという人も多いでしょうし、書くのがめんどく さいですし、たぶん xaicron が書くと、ほとんど内容がかぶるので割愛させ ていただきます。 デニーズのシェイクに興奮する yusukebe と xaicron エントリーでは YAPC::NA で僕が感じたこと、技術的に Perl Community が どこに向いているか、といったあたりのことについて述べていきたいとおもい ます。 今年は Perl 25 周年ですので、これまでの Per

  • Reply is awesome! - tokuhirom's blog

    https://metacpan.org/release/Reply Reply is new REPL command written by doy++! It's pretty lightweight! I switched to this repl yesterday!

  • 【適当訳】Any::Moose は Deprecated です。 - tokuhirom's blog

    http://search.cpan.org/~sartak/Any-Moose-0.20/lib/Any/Moose.pm 新しいコードでは Moo を Any::Moose のかわりに使ってください。 Moo のクラス/ロールは、透過的に、そして正しく Moose にアップグレードすることができます。これは、Any::Moose より根的にいいデザインです。Mouse のメタクラスはMoose のメタクラスといいかんじには動作せんのです。 Any::Moose はよくがんばりました。まあなんかそれなりにはうごいていたけど、もうこれ以上つかわないでね :) MooX::late ってモジュールをつかうと Any::Moose から Moo への移植が楽になりますのでお試しあれ〜。 【解説】 後半にいくにつれて適当度がましています。

  • cpanm ってなんですか? carton ってなんですか?利点はなんですか? - tokuhirom's blog

    なんか適当に。 cpanm は cpan モジュールをいれてくれる人です。元々は某 VPS のメモリがたりなくて CPAN shell が起動しないからなんとかしよう、みたいなのがきっかけだった気がしますが、今となってはどうでもいいことです。 とりあえずつかっとけば安心なかんじなのが cpanm となっています。 carton ってのは local/lib/perl5/ 以下にアプリの依存モジュールをぶっこんでくれる人です。carton.lock というファイルにモジュールのバージョンとか記録しててくれて、いいかんじにバージョンを固定できるので、他の環境とバージョンをそろえることができて便利です。 たんに local/ 以下にライブラリいれたいだけなら cpanm --installdeps -L local/ . とかしてもだいたいおなじです。 carton exec は、perl -M

  • はやりもの一個飛ばしの法則 - tokuhirom's blog

    なんかこう、世間をみておりますと、いろいろなものがはやったりすたれたりしておりますね。 prototype.js のあとに MooTools とかなんかいろいろあったけど、それを静観して jQuery にいったらだいぶ楽でした。 mod_perl1.3 のときに、mod_perl1.9 とか mod_perl2 を導入してる某はてな社や FCGI を導入している某モジャモジャ社の人から DIS られたりもしましたが、それを静観していたら、plack の季節がやってきて、一個とばしで楽でした。 apache1.3 をつかってるときに lighty やばいよっていってる人いましたが、今はメンテされてないようで、僕は nginx をつかっています。 まあそんな風に、流行っているものは、だいたい攻めすぎてたりなんだりであんまり定着しなかったりするので、現状のものにたいしてそこまでのメリットがないの

    jazzanova
    jazzanova 2012/04/04
  • 最速な JavaScript のリファレンスマニュアルサイトをつくった - tokuhirom's blog

    JavaScript のリファレンスマニュアルといえば MDN(Mozilla Developers Network) が有名ですが、MDN の資料は探索がめんどくさいし、表示が遅いということで使い勝手がわるいという問題がありました。 そこで、jQuery のリファレンスマニュアルサイトとして有名な jqapi.com とおなじよような使い勝手のサイトがあったらいいのになーとおもいました。 なので、つくりました。 サイト自体はすべて static なデータで構成されているので、github からデータを取得すれば、イントラや自分のマシン内で閲覧することも可能となっています。 なお IE での動作確認はしていないので、うまくうごかない場合は pull-req してください。

  • node.js で人気のあるライブラリ10選 - tokuhirom's blog

    node.js というか npm で依存されているライブラリの上位10個ぐらいがどういうものがはいっているのかをまとめます! 具体的には serach.npmjs.org の Most depends on にのっているリストに註釈をつけただけです! http://search.npmjs.org/ 1位 underscore.js 392個http://search.npmjs.org/#/underscore クライアントサイド JS で人気のたかいユーティリティーライブラリの underscore.js が堂々の第1位。 クライアントサイドでつかってるからそのままつかってる人が多いのかな、とおもっています。

  • Amon2::Auth によるロケタッチAPIをつかったサイトの構築 〜 軽量フレームワークAmon2入門 (6) 〜 - tokuhirom's blog

    https://github.com/tokuhirom/TouchTouch/commit/dbb3cdeacf6629dc8213bd9fa50e14f9712634b9 久々に Amon2 入門だ! 最近リリースされたばかりの Amon2::Auth モジュールをつかってみよう! Amon2::Plugin::Web::Auth への依存を Makefile.PL に設定する!! diff --git a/Makefile.PL b/Makefile.PL index f8b9297..8f0f183 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -20,6 +20,7 @@ WriteMakefile( 'Test::WWW::Mechanize::PSGI' => '0', 'JSON' => '2.50', 'Plack::Midd

  • Amon2 の今後のバージョンアップ予定 - tokuhirom's blog

    Flavor まわりを大幅にぜんぶかきかえてます。互換性は保証されませんが、アプリケーションには影響しないのでいいのかなとおもっているところです。 Data::Section::Simple をつかったかんじのエグいやつをかいてますが、これが採用されるのかどうかはまだわかりません。 設計についてもまだちょっと練りこみ途中といったかんじです。 gfx がどのぐらい Xslate を進化させてくれるか次第という面もあります。 リリース時期は来週末を予定しています。 かなり大きい変更なので Amon2 3.0 にしようかとおもったんですが、それだと 2 だか 3 だかわからなくなるのでこまりものですね。

  • Testing Web Application 2011秋 - tokuhirom's blog

    とにかく楽に、お気軽に。お気軽にテストを追加できて、お気軽にテストを実行できる。というのがなによりも重要です。 追加しようとおもったときに「どう追加したらいいかわからない」という状況になりがちなので、あらかじめいろいろな構成要素ごとにテストをひととおりかいてみるというのも重要だとおもいます。O/R Mapper のクラスのテストとか、model のテストとか、コントローラのテストとか、JSON API のテストとか。。 ExtUtils::MakeMaker でテストをうごかさないExtUtils::MakeMaker を素でつかうと blib/ とかつかってきてうざいので、Makefile.PL に以下のような hack をほどこしてあります。ウェブアプリケーションで blib/ とかにコピーする必要ないですよね。実運用でも blib/ でうごかさないし、インストールもしませんし。 #

  • ゆるふわ CI サーバー Ukigumo ちゃんのつかいかた、かいたよー - tokuhirom's blog

    Ukigumo はゆるふわであることを第一目標として設計されているので、適当にサーバーを設置していれば、プロジェクトの担当者がそれぞれすきなタイミングでつかえるようになります。 まあ、なんか気軽に設置して気軽につかえるやつがいまいまほしかったのでつくったというかんじです。 クライアント側とサーバー側は完全に分離しているんで、クライアント側は自分のすきな実装でできるし、サーバーの管理者の世話になる必要がまったくありません。その方が楽でしょうということで。というか俺は管理したくないので。いや、するけど、できるだけ最低限の手間でやりたいじゃん。セットアップも超簡単にできるようにしてあるというか、むしろ dotcloud とかにすぐに設置できるレベルですよ。 で、クライアント側はどうやってつかいはじめたらいいかということだけども、非常に簡単で、以下のように一個 HTTP Request をおくるだ

    jazzanova
    jazzanova 2011/09/09
  • Ukigumo - Yet another continuous testing tool - tokuhirom's blog

    http://github.com/ukigumo/ なんか、お気軽につかえて、カスタマイズが容易で、お気楽な continuous testing を support する tool がほしかったので、ちょろっとかいた。 ターゲットは自社サービスの web アプリケーションです。 ベーシックなクラサバ構成となっています。サーバー側は簡単な Web UI と、RPC を提供しているだけで、ごくシンプルです。サーバー側とクライアント側には依存関係はありません。クライアント側はプラガブルな構成となっていて、誰でも簡単にいじれます。 クライアント側は Plagger 風にしようとおもったんですけど、Plagger 風にするといかんせんおおげさになりすぎるので、ライブラリとしての提供にとどめました。べろっとよんだら普通に理解できます。コードをシンプルにするために忌み嫌われがちな Mouse を採用

    jazzanova
    jazzanova 2011/09/08
  • Catalyst が Plack に依存した - tokuhirom's blog

    Catalyst 5.90001 がでまして、こちらのバージョンは Plack に依存しております。これは非常に PSGI プロジェクトにおいてはひとつの節目となるリリースといえましょう。HTTP::Engine が最初にリリースされてから3年、みんなよくがんばった!感動した!(3年前(たぶん)のジョーク(10年前のテキストサイト風)) そういうわけですが、私としてはぜんぜん Catalyst の使用はおすすめしませんで、Amon2 つかうのがオススメですね!

  • AnyEvent::HTTP - tokuhirom's blog

    #!/usr/bin/perl use strict; use warnings; use utf8; use 5.010000; use AE; use AnyEvent::HTTP; my @urls = ( 'http://www.google.co.jp', 'http://www.yahoo.co.jp', ); local $AnyEvent::HTTP::MAX_PER_HOST = 5; my $cv = AE::cv(); for my $url (@urls) { $cv->begin; http_get $url, sub { my $data = shift; print "##### $url #####\n" . $data . "\n"; $finished++; $cv->end; }; } $cv->recv;

  • tokuhirom blog

    Amon2::DBI からはじめるデータベースアプリケーション 〜 軽量フレームワークAmon2入門 (5) 〜 はい! というわけで3連休あけですね。 Ruby 会議にいったり、Android なんとかにいったり、リア充生活をおくったりと、各自たのしい3連休をすごされたことかとおもいます。 さて、連休あけの今日は、かるく Amon2::DBI について解説をしてきましょう。 Amon2::DBI は、DBI の薄いラッパーで「素の DBI だとちょっと不便だな」というところにピリリときいてくる山椒のような存在です(ちかくのチンマーハンは山椒がきいてなさすぎるので、もうちょいきいてるといいなとおもいます)。非常にうすいラッパーだし、コードベース自体も非常に簡潔なので、ひととおりよんでからつかうといいかとおもいます。 DBI には子クラスを設定できる機能があって、Amon2ではそれをつかって

    tokuhirom blog
  • tokuhirom blog

    インストール今回は Amon2 の最新版が必要なので、すでにインストールしている場合でもあらためてインストールしてください。 環境は OSX, linux を想定していますが、Windowsでもそれほどかわらないかと思います。Windows でやっていてわからなかったら mattn さんにきいてください。 さて、Amon2 のインストールは非常に容易です。Amon2はCPANにリリースされていますから、通常のCPANモジュールと同様にcpanmコマンドでインストールできます。 % curl -L http://cpanmin.us | perl - Amon2 Amon2::DBIで、インストールが完了します。テストに失敗する場合には、コメント欄などできいてください。 TinyURLを作るぐだぐだとかたっていても何もつたわらないと思うので、チュートリアルに入りましょう。 とりあえず、簡単で

    tokuhirom blog
  • tokuhirom blog

    PSGIとPlackと 〜 軽量フレームワークAmon2入門 (3) 〜 さて、今回は裏をかいて、いったん題のAmon2の話からはずれて、PSGI/Plackのはなしをしましょうかね。 PSGI/Plackは基的にはアプリを書く人は知る必要はあまりないのですが、概念ぐらいは知っておくにこしたことはない、というところです。 さて、数年前のYAPCでわたくしが口を酸っぱくして申し上げたことを皆さんはおぼえているでしょうか。そう、一番大事なのは「PSGIは仕様。Plackは実装」ということなのでした。ここだけ把握していれば十分なので、PSGI/Plack の詳細に興味がない人はブラウザの Back ボタンを連打してください。 PSGIってなんだ?PSGIとは「ウェブアプリケーションとアプリケーションサーバーの間のプロトコルのこと」です。Perlの基的なデータ型であるArrayRef, Ha

    tokuhirom blog