タグ

ブックマーク / hiratara.hatenadiary.jp (15)

  • 採択されればYAPCで話すつもりの型の話について - Pixel Pedals of Tomakomai

    今年のYAPC Asia 2013にはTypes and Perl Languageというタイトルで話をしようと申し込んだのだけど、リジェクトされそうな気しかしないので話そうとしていることの概要を書いておく。なお、トークのタイトルは名著TaPLのオマージュである*1。 以下のGoのコードをきちんと型付けされていると言って、異論を持つ人は少ないだろう。 func inc(x int) int { return x + 1 } では、以下のperlのコードはどうだろう? sub inc { $_[0] + 1; } 型がないという人もいれば、実行時に型を意識しているのだから型はあると反論する人もいるだろう。しかし、さらに別の見方として、このコードは先ほどの正しく型付けされたGoのコードから型の指定をとりはらったものだとも言える。という事は、もし、GoPerlでプログラムを実行するルールが大差

    採択されればYAPCで話すつもりの型の話について - Pixel Pedals of Tomakomai
  • 今日は Hokkaido.pm#9 の日です - Pixel Pedals of Tomakomai

    実家に帰るついでに、久々にHokkaido.pmへふらっと立ち寄ります。 マイクスタンドを借りたのでライブコーディングでも安心です。 cpanfile / @aloelight さん cpanファイルとは? Ruby Gemfileの移植 依存モジュールのバージョン cpanmとcartonで利用可能 アプリ向け cpanfile以前は、Makefile.PLへ書いていた cpanm -L local --installdeps -n . -Mlib::core::only -Mlib=local/lib/perl5 LWP6.02からLWP::protocol::https が分離されて使えなくなったりする(<= 指定ができない) cpanfile では requires で '== 6.00' みたいな指定ができる carton install、もしくは cpanm -L local

    今日は Hokkaido.pm#9 の日です - Pixel Pedals of Tomakomai
  • JSON::XSで作られる浮動小数点数でハマった話 - Pixel Pedals of Tomakomai

    JSON::XSを使うと、小数は浮動小数点数にパースしてくれる。 use JSON::XS qw(decode_json); my ($double) = @{decode_json("[0.6]")}; この値、printすると "0.6" なのだけど、0.6とイコールではない。 print $double, "\n"; # 0.6 print +($double - 0.6), "\n"; # 1.11022302462516e-16 なので、直感と違う振る舞いをしたりする。 # 3 / 0.6 == 5 printf "%s / %s == %s\n", 3, 0.6, int(3 / 0.6); # 3 / 0.6 == 4 <- unexpected :( printf "%s / %s == %s\n", 3, $double, int(3 / $double); 仕方ないので

    JSON::XSで作られる浮動小数点数でハマった話 - Pixel Pedals of Tomakomai
  • 今日はYokohama.pm #9の日です - Pixel Pedals of Tomakomai

    残念ながら横浜市民ではなくなりましたが、Yokohama.pm #9に参加しています。USTはこちら。 myfinderさん - 転職して1年間(弱)やってきたこと こちらのトークは、USTなしでした。 自作サーバインフラ 引継 ケーブリング修正 サーバが落ちる問題 WEB+DB PRESSの寄稿の計画 → 寄稿 MySQLのパフォーマンス改善 → 30分のトランザクションなど web APIの整備 AWS JPAスポンサー YAPC::Asia 2012に fluentd、TreasureData 楽しいよ! kanさん - use Smart::Options Getopt::Long 標準 使い方がキモい Getopt::Compat::WithCmd けっこう複雑 opts Smart::Argsをパクry 型の変換 optimist(node.js) 直感的、きっちりも使える S

    今日はYokohama.pm #9の日です - Pixel Pedals of Tomakomai
  • Data::Monad::CondVar をリリースしました - Pixel Pedals of Tomakomai

    YAPC Asia 2011で話をする予定のモジュールをCPANへアップしました。 Data::Monad::CondVarはJSDeferred みたいなもんです。 use AnyEvent; use AnyEvent::HTTP; sub random_choice { my ($data, $headers, $cb) = @_; my (@url) = $data =~ m{href="(http:[^"]+)}g; http_get +(shuffle @url)[0], $cb; } my $cv = AE::cv; http_get "http://yapcasia.org/2011/", sub { random_choice @_ => sub { random_choice @_ => sub { random_choice @_ => sub { my ($data,

    Data::Monad::CondVar をリリースしました - Pixel Pedals of Tomakomai
  • 今日は JavaScript ゲーム製作勉強会 Vol.2 の日です - Pixel Pedals of Tomakomai

    Akiba.jsという集まりは初めて聞いたのですが、今日はJavaScript ゲーム製作勉強会 Vol.2に出席しています。会場はリクルートさんです。 詳細はid:nakamura001 さんの撮影した動画を参照しましょう。 はじめに / @hakobera さん ブラウザが早くなった。node.jsができた。サーバとクライアントどちらもJS ブラウザで動くRPG風なデモ的なスライド 懇親会もリクルートさんのご好意で無料! ngCore の話 / @shibukawa さん androidは5月に、iOS上は先日「忍者ロワイヤル」 ngCoreで何ができるかは「忍者ロワイヤル」をやるとわかりやすい ngCore JSで開発、マルチプラットフォーム(android, iOS, Flash, HTML5) 配信方法が豊富(ポータルでDL、appファイルを作ったり) iOS上でもDLによる配布

    今日は JavaScript ゲーム製作勉強会 Vol.2 の日です - Pixel Pedals of Tomakomai
  • Hokkaido.pmでuWSGIについてLTした - 北海道苫小牧市出身の初老PGが書くブログ

    Hokkaido.pm でuWSGIについて話してきました。uWSGIは Nginx や Cherokee でも標準対応がされ初めており、今後の発展が期待されるアプリケーションサーバです。スライドは以下です。 ウヰスキーとPSGI View more presentations from hiratara デモがメインだったので、デモの手順についても書いておきます。 まず、uWSGI はデフォルトではhttpではなくuwsgiプロトコルを喋るので、uwsgiプロトコルを喋れるフロントエンドを立ち上げます。Plack::App::uWSGI は、いちいちnginxとかをセットアップするのが面倒だったので自分で書いたPSGIサーバで動かせるuwsgiのフロントエンドで、githubにだけ上げてます。uWSGIにpsgiプラグインを実行させるためのmodifier1である"5"は、現状ではfas

    Hokkaido.pmでuWSGIについてLTした - 北海道苫小牧市出身の初老PGが書くブログ
  • 今日はHokkaido.pm #5の日です - 北海道苫小牧市出身の初老PGが書くブログ

    旅行中にふらりと立ち寄ったので、内容をメモしておきます。 ustreamはこちら。 「今年の夏休みは...」 / @charsbarさん Hokkaido.pm 1周年おめでとう! Mojolisious のプリント配布どもです YAPCのネタを考えよう Game Development in Perl アメリカのYAPCのスライド Perlで書かれたゲーム Frozen Bubble、Zumbies SDL モジュール(SDLのラッパー) sdl.perl.org 国内の例だと、ニコニコ動画にある Rubyではも出ているくらいメジャー レイヤー、ネットワークなど Games-Sokoban なぜか Marc Lehmann作 これを使ったSDLのSokoban のサンプルを作ってみた : デモ コントローラのソース Gameコンテストの作品の紹介 会場にYAPCに参加する人は割といるが

    今日はHokkaido.pm #5の日です - 北海道苫小牧市出身の初老PGが書くブログ
    hide_o_55
    hide_o_55 2011/07/16
    あいかわらず速いw
  • 今日はShibuya.pm #16の日です - Pixel Pedals of Tomakomai

    今日は夏の正規表現祭りに参加していますので、自分用にメモします。 ustreamもあります! (Irr|R)egular Expressions / @dankogaiさん 「えろい」のではなく「えらい」 「命賭けるな、コード書け」 正規表現の使い過ぎに注意 $str eq 'XXX' or $str eq 'YYY' を /^(XXX|YYY)$/ に書き直したくなる → やりすぎ もしくはハッシュを使ったり、5.10 でスマートマッチ ~~ を使ったり。 メールアドレスの検証の正規表現 → 適当に書くと不完全。完全に書くとすごく長い Regexp::Common → 便利な正規表現集。ipv4とか。 Regexp::Assemble → alternations (xxx|yyy|zzz) をTRIE最適化する。 ただし、5.10 以降は自動でTRIE最適化してくれる マッチした部分を

    今日はShibuya.pm #16の日です - Pixel Pedals of Tomakomai
  • fixed point operator による再帰的な記述の除去 - Pixel Pedals of Tomakomai

    論理と計算のしくみを読んでるメモ。 fixed point operator があれば、再帰的な記述を再帰しない記述に直せる。再帰的な記述とは、例えば、以下のようなもの。 my $fact = sub { my $x = shift; $x <= 1 ? 1 : $x * $fact->($x - 1); }; 階乗を求める関数$factの定義内で、$factを参照している。これは一見実行できそうに見えるが、sub の中をコンパイルする段階では$factがまだ未定義のため実行できない*1。これを再帰しない記述に変えるために、fixed point operator というものが使える。fixed point operator とは、以下の性質を満たす$make_fixed_point。 my $x = $make_fixed_point->($f); $f->($x) eq $x; 任意の

    fixed point operator による再帰的な記述の除去 - Pixel Pedals of Tomakomai
  • 今日はYokohama.pmの日です。 - Pixel Pedals of Tomakomai

    日18:30から行われるYokohama.pm #7へ参加する予定です。 Sphinx + blockdiagで始めるドキュメント生活 / @tk0miyaさん 資料は後でTweet予定 ドキュメントの種類 納品物としてのドキュメント = お客さんのもの 設計/運用のためのドキュメント = 自分たちのもの 後者が足りない → 辛い現実 ドキュメントのメンテ テーブル定義、機能、画面キャプチャがドキュメントに更新されない メンテが必要 → Lightweight が大事 Lightweight なドキュメント Sphinex、Wiki、ソースに書く、テンプレ化 Sphinx reST形式で書く→XMLやLaTeXPDFHTMLなどに変換 Python製 reST形式 → 「====」とか「----」とか「*list」みたいなマーキング makeでビルド コードハイライト機能 → Per

    今日はYokohama.pmの日です。 - Pixel Pedals of Tomakomai
    hide_o_55
    hide_o_55 2011/05/13
    相変わらず速いw
  • 2011年になってもPerlを使ってる理由 - Pixel Pedals of Tomakomai

    10年以上使ってて慣れてるからってのが一番ですが、後、TMTOWTDI に共感するからってのもあります。 まず、たくさんの書き方があれば、それだけ読み手に色んなことを伝えられます。文章を書く時に、一人称を「僕」「俺」「私」のどれを使っても意味は一緒ですが、相手に与える印象は全然違います。コードも同じで、表現のレパートリーが多いというのは、それだけ様々なことを読み手に伝えるポテンシャルを持っているということになります。コードはロジックだけを伝えられればいいってものではなく、書いた人間の意図まで正しく伝えることが重要だというのは、誰もが認めるところでしょう。 また、自由度が高いものの方が、進化する伸びしろがあります。使い方がきちんと1つに決められている物は美しいですが、それ以上の使い方はできません。逆に、何に使うかわからないものまで含めてたくさんのものが混在しているような状況では、創意工夫でそ

    2011年になってもPerlを使ってる理由 - Pixel Pedals of Tomakomai
  • スライド「YAPCレポートの舞台裏」 - Pixel Pedals of Tomakomai

    Hokkaido.pmで話してきたので、スライドを貼っておきます。あがり症なんで人前に出ることはほとんどないのですが、今回は地元だったので頑張りました! でもやっぱりあがりました!! YAPCレポートの舞台裏View more presentations from hiratara. 今回は参加人数的に見ても大成功だったのではないかと思います。運営の方々、おつかれさまでした!

    スライド「YAPCレポートの舞台裏」 - Pixel Pedals of Tomakomai
  • 今日はHokkaido.pm #3の日です - Pixel Pedals of Tomakomai

    日、札幌にてHokkaido.pm #3が開催予定です。なんか飛行機も快速エアポートも混んでて移動が大変ですが、着き次第いつものようにメモ取ります。 ご挨拶 - @havanaclub_ さん 3回目の開催 テーマは初心者向け 懇親会もあるよ PerlCGI入門 / @keroyonn_ さん YAPCのおかげでMacBookを買ってもらった Apple風にPerlを紹介 文字化けも効率に直せる Moose WAF 大規模でも BioPerl - 科学分野 Image::Magick 呪文のようなコーディング 友好的 リビドー駆動のyusukebeさん → エロサイト駆動 今日はプログラミング初心者向けの内容(変数は何かとか) PerlCGI、インストール、文法、CGI windows対象 Perlとは? → LLの始祖 LLとは?? → Lightweight Language 学

    今日はHokkaido.pm #3の日です - Pixel Pedals of Tomakomai
    hide_o_55
    hide_o_55 2010/11/20
    もう Hokkaido.pm レポートが。id:hiratara++
  • Plack::Middleware::WebSocket and Web::Hippie - Pixel Pedals of Tomakomai

    YAPCで@clkaoさんのトークを聞いて興味が湧いたので、Plack::Middleware::WebSocketのechoのサンプルをWeb::Hippieを使って書き換えてみました。 書き換え方はこんな感じ。 Web::Hippieのよいところ WebSocketだけでなく、Multiple XMLHttpRequestやlong pollにも対応している AnyEvent::Handleを意識しなくてよい Web::Hippieのいまいちなところ Mooseへ直接依存している(Mouseが使えない) イベントハンドラはPSGIアプリケーション*1 後、これらは所詮はMiddlewareなので、WAFが持つような機能は期待できません。ルーティングやテンプレートエンジンは別の方法を探す必要があります。 *1:クライアントからのデータを受け取った時のハンドラがPSGIアプリケーションなの

    Plack::Middleware::WebSocket and Web::Hippie - Pixel Pedals of Tomakomai
  • 1