サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
mt.endeworks.jp
YAPCスピーカー絶賛募集中です! YAPCスピーカー絶賛募集中です! 今まで参加されてこなかった方達、是非応募してみてください。最先端技術に関して喋る必要はありません。 最先端技術等は比較的「○○の紹介」という感じのトークになることが多いですが、それ以外のトークを発表する際に大事なのはあるテーマを「どうやって」成し遂げたのかを発表する事です。「ほら、みてかっこいいでしょう」ではなく「こういう仕様要求があって、これを達成するための問題はこれで、こうやって解決した」というような内容であれば必ず誰かのためになります。そしてそのテーマは特に難しいものである必要はないのです。「ログ解析」のようにありふれているものでも「ファイルの整理の仕方」とか一件技術っぽくないものでも、知らない人から見たら有用なものって必ずあるはずです。 気張る必要はありません。トーク内容にアドバイスが必要でしたら運営側にもご相
perlbrew Perl 5.6 とか Perl 5.8を今だに使ってるあなた!そうです、これを読んでるそこのあなたです。Perl5の開発チームは後方互換に関しては大変神経をつかっていますので、 Perl 5.6とかで動いてたコードをいきなり 5.12で走らせても基本的には動くはずです(多分警告とかは一杯でるだろうけど)。でもだからといって新しいバージョンで施されている様々な最適化や新しい機能を使えないのはちょっと悲しくないですか? ということで新しい Perlを使いましょう!最新安定版は5.12.1ですよ!ちなみにどのバージョンを2010年8月時点で使うべきか、はこちらのエントリを参照してください。 え?アップグレードできない?システム管理者が許してくれない?前入れてたアプリが壊れる?いやいやいや、全然いけますって。自分用のPerlをインストールすればいいんですよ! ここではそれを簡単
Okayama.pmに行ってきました 7/31に久しぶりに岡山に行ってOkayama.pmに参加してきました!途中から僕の独壇場になってしまったっぽいですが、大丈夫だったかなぁ。 やはり東京のような都市との情報の格差があるんだなぁ、というのが正直な感想。XslateやCatalystの情報は結構あるはずだ、と思っていてもやはりそれの方向に興味を向けてくれる方法がないとなかなか広まらないんでしょうね。 今はtwitterやらなにやらあるから、うまく活用して情報を拾ってくるといいと思います! twitterで #perlをつけて発言するとか、 IRCで#perl-casualとかに参加するといいですね :) ちなみに資料は来週アップ予定です。 カテゴリ 日常 タグ okayama.pm perl 2010年8月 2日 12:11 D | ブログ記事のURL | コメント(0) | トラックバッ
Geo::Hash::XS 書きました geohash値を計算するためのモジュール、Geo::HashってのがすでにCPANにあるんだけれども、それのXS版Geo::Hash::XSを作ってアップしておきました。実は特に使うアテもないんだけど、目の前で開発が進んでたロケタッチでいざ使おうと思った時にあったらいいかなぁ、と思って現実逃避のために作りました。 もしご意見等ございましたらお気軽にどうぞ。 カテゴリ 日常 タグ perl 2010年7月30日 14:50 D | ブログ記事のURL | コメント(0) | トラックバック(0) | Powered by Movable Type 4.1
食べる量。 えー、とうとう33歳になってしまいまして。 で思い返すに最近・・・そうですなぁ、ここ2年くらいですかね。なんだか急速に体の衰えを感じているのです。特に飯。どうもね満腹中枢と理性と内蔵の処理能力がいまいちシンクロしてないのです。 例えばお昼に出るじゃないですか。気分的にはお腹も減っていてそれこそ近所のもうやんカレーとか食べられるんじゃないかという感じなんですが、最近それをやってしまうともう後で膨満感で仕事にならない。他の店でも例えば昔はぺろりといけていた大盛り注文も最近は後で来るので食べられない。その食べてる瞬間はいける、と思うし実際完食まではできるんだけど、後でくるんだよなぁ・・・ まぁそんなわけでさすがに僕も馬鹿じゃないのでだんだんその事が分かってきて昼飯は今までと比べると軽めにしてみてうどんとか食べたりしてるわけですが、それでもやっぱり「あ、この店大盛りがあるんだ・・・」と
slow query logとかをTest::mysqldで出す 以前ここで書いたTest::mysqldの仕組み、すこーしずつ毎回変えながら使ってる。今は継承はしてないが、まぁやってることはだいたい一緒。 で、テーブルのインデックスとか使ってるクエリとかを確認したいなーと思って、slow query logと general log をぼこっと出せるようにした。 if (! $ENV{ TEST_DSN }) { my %my_cnf = ( 'skip_networking' => '', ); if ( $ENV{SLOW_QUERY_LOG} ) { $my_cnf{ slow_query_log } = 1; $my_cnf{ slow_query_log_file } = $ENV{SLOW_QUERY_LOG}; $my_cnf{ long_query_time } = $
チキン南蛮は唐揚げにマヨネーズじゃないんだよ。 新宿の地下にある某パン屋でよく朝食を食べてるのだけど、そこが最近「チキン南蛮パン」というものを発売した。結果は予想されてたんだけど、それでも一応チャレンジということで今日食してきたのだが・・・うーむ。 というわけで宮崎県人でもないが、いわせてくれ。 長いことチキン南蛮って唐揚げにマヨネーズだと思ってました。だって東京でチキン南蛮弁当って銘打ってるものってほとんどそうなんだもの。そしたら相方が「違うよ、それ全然違うよ!」って教えてくれ、その後宮崎の洋食小倉のチキン南蛮を食べる機会もあり、なるほど!と合点がいったのです。 衣は小麦粉+卵。鶏肉(個人的には鶏胸肉推奨)をそれで揚げたら、あついうちに南蛮タレにつけておく。ちなみに鶏肉は多分大きめのほうがうまいと思うけど、家だと難しいので普通の唐揚げっぽく一口大でよろしいかと。鶏胸肉だとパサつくと言う方
How JPA works / What JPA does (in English) This is a meta-entry about the effort that Gabor Szabo is pushing for right now (grant request, blog entry). I'm writing on my blog because for the life of me blogs.perl.com doesn't accept my OpenID login, and somehow my MT account there was suspended. WTF. Anyways. I'm the head director of Japan Perl Association (JPA), which is kind of similar to What G
自分の最近のCatalystのモデル部分の書き方 こちらのブログでなんか呼ばれた気がしたのでとりあえず書いてみた。 あくまで自分はどうしてるか、って話ですが、最近はCatalystでなんか書くときはこんな感じで使ってます。 色んな事がこの図に詰まっているので、箇条書きしてみる: Model::APIがAPIオブジェクトを作成して、使用時にはModel::APIに対して`find()`というメソッドを使って実際のAPIオブジェクトを持ってくるSchema等はMyApp::Schemaに定義し、Model::APIのアトリビュートとして持っている。cacheも同等。これらの初期化引数は設定ファイルのModel::APIから取れるようにしておくCatalyst::Model::DBIC::Schemaは*使ってない*Model::APIではACCEPT_CONTEXTが呼ばれた時点で、もしまだ初
Perl Trademark in Japan (This post is posted on my personal blog, since it contains personal rants and what not -- JPA will probably issue some statements after we've talked to the specialists handling these cases) So since it's probably of general interest, I'm here to let you know that Testuya Kitahara of the Apache Foundation fiasco fame has filed (and has been accepted!!!!) for the trademark o
Introducing Text::Xslate Text::Xslate is one of the latest inventions by Goro Fuji. It's yet another template engine -- and since it is yet another template engine, I could easily see everybody going "oh, *another* one....". Yeah, I get the idea. I feel the same for most new template engines. But I have to say, this time... this one /is/ worth looking at. First off, it's blazing fast. For trivial
就職しました ・・・ということで・・・ 株式会社ライブドアに再就職しました。 脱出プラン無しで会社をたたんだりしません!(キリッ カテゴリ 日常 2010年5月17日 10:00 D | ブログ記事のURL | コメント(0) | トラックバック(0) | Powered by Movable Type 4.1
近況 もうちょっと黙ってようと思ったんだけど、少しずつ色んな所から漏れちゃったのでばらすと・・・私が代表を務める 株式会社 endeworksは4月末を持って営業を事実上停止しました。 1月の日記では割と余裕な内容を書いてたんだけど、蓋を開けてみれば2010年度にアテにしていた仕事が諸々全部合わせて4000万円弱、全てキャンセルないしそもそも始まらなかったりして、万策尽きてしまった・・・という次第。 たいした負債もないし、社員を全部切るとか会社を続けるっていうだけだったら正直なんとかなったんだけど、まぁさすがにこれだけの額のキャンセルや、それに伴うドタバタで僕の心が折れてしまった、ということで被害がないうちに・・・と今回の運びになりました。 まぁ厳密にはまだもう少し銀行と話したりとか、オフィス機材の処理とかをしないといけないのだけど、とりあえず誰にも(不必要な)迷惑は掛けず負債も完済して全
Perl-Casual #02 でライブコーディングしてきた perl-casual #02 でライブコーディングしてきましたよ! 伝わったかどうか自信がないけど、あの中で分かって欲しかったのは CPANに色々あります無限の組み合わせこそがPerlの強み自分の環境にperldocっていうすげぇツールがついてるからうまく利用!英語のドキュメントにびびらないで!ほとんどのモジュールはかなり質の高いドキュメントがついているから賢く検索してみて!(関数名、キーワード、"return") というあたりかな。Perlは怖くないよ! あとはこちらは半分冗談ですが「IDEなんていらねぇよ。vimで十分」というのも昨日垣間見えたのではないかな!w カテゴリ 日常 タグ perl perlcasual 2010年4月22日 09:23 D | ブログ記事のURL | コメント(0) | トラックバック(0)
Plack + Markdown 今Markdownで紙用の原稿書いているんだけど・・・ Markdownって楽だけど、実際にフォーマッティングがどんな感じになるかを見るには1回パースして処理する必要があるじゃないですか。いちいちMarkdown.pl呼び出すのも面倒くさいからPlackでディレクトリ直下のファイルをパースしてはき出すようにした。 Plackはなにげにこういう使い方が異常に便利な気がする。まさにSwiss Army Knifeって感じ。 use strict; use File::Spec; use Text::MultiMarkdown 'markdown'; sub { my $env = shift; my $file = File::Spec->catfile( File::Spec->curdir, $env->{PATH_INFO}); open my $fh,
MongoDBを検討してみた Spatial インデックス貼れるKVMってことで、おー!と思ったんだが、ぶっちゃけどうしたらいいものか迷う結果に。 自分の作った非同期アプリの中で、AnyEvent::DBI風味(ブロッキングする可能性のあるDBアクセスを別プロセスにわけて順番にクエリを処理しつつ、プロセス間でデータのやりとりを行う)なアクセス方法で試したみたところ、主キーによるデータ取得はMySQLベースのものより30%ほど高速だったものの( 700+ qps -> 900+qps)、Spatialインデックスによる検索が30%ほど逆に落ちてしまった(540 qps -> 380 qps )。MongoDBのspatialインデックス貧弱だなぁと脊髄反射で思ったんだけど、よく考えるとMongoDBのPerlバインディングかもしれん。APIはオブジェクトっぽく洗練されてるんだけどムダが多すぎ
Plack + Router::Simpleで簡単なジョブキュー書いてみた まだちゃんと使ってないから問題点とかわからないけど、とりあえずStarmanを使うとかで結構スケールできる気がする。そのあたりを自由に変えられるのもPlack++だね。 使用想定としては、これをplackupしておいて、クライアント AnyEvent::HTTPで http_postして非同期で応答待ちする感じ。 package Lyra::Server::Worker; use Moose; use Router::Simple; use JSON::XS; use namespace::autoclean; use constant NO_SUCH_WORKER => [ 404, [ "Content-Type" => "application/json" ], [ q|{ "status" => 0, "
JPA Many a TODO JPAでやんなきゃいけない事、手伝って欲しいことがいっぱいあるのでとりあえずメモ 2010年度マニフェスト的なものを書かないといけないかなぁ。JPAの日常業務をボランティアで手伝ってもらえる人を募集したい。メールへの反応、YAPC準備、研修準備。毎回お願いしてると結局俺がボトルネックになるので、ボランティアチームがいたらすごい嬉しい。特にYAPCは俺は前線に*出てはいけない*。YAPCで目立ちたい!人が前線に出るべき。LLにならってブレストをやったら人来るかな?JPA PressがGoogle 検索に表れないので、どうにかする必要あり。この間のヤツからAdobeなんちゃらに文字データを入れ込んだはずなんだけど、検索にでてこないんだよな。どうすればいいの?TPF本家ともっと緊密に行動する。特にGrantは使えると思う。ドキュメンテーション回りを特にどうにかした
オープンソースと人生 タイトルほどの内容はない。 Perl6 の開発チームの人の家族の方が癌の再発で手術、入院という状態になっているそうだ。 どんなオープンソースのプロジェクトでもそうだけど、そのプロダクト以上に重要な人生の節目には当然プロダクトのほうが優先されるよね。そのときにこそそのプロダクトにまつわるコミュニティ作りの力が一番試されるんだろうなぁ。人が1人いなくなったらメンテされなくなる事の無いように運営していくのも大切な事だ。 ちなみにPerl6 のほうはすでに他の人達がどうするかを協議している模様。 カテゴリ 日常 2010年3月17日 20:32 D | ブログ記事のURL | コメント(0) | トラックバック(0) | Powered by Movable Type 4.1
CGIをPlackで開発(2) 前のエントリ書いたら宮川さんにオススメ方法を教えてもらった http://twitter.com/miyagawa/status/10271128928plackup \ -L Shotgun -MPlack::App::WrapCGI -e 'Plack::App::WrapCGI->new(script => "/path/to/cgiscript.cgi")' だそうです!これなら全ての要件を満たせるもよう!そしてapp.psgiを作る必要ありません。 今これやってみて一つだけ問題点。多分POD入りのCGIは動かない。それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました! カテゴリ 開発 タグ cgi perl plack 2
CGIをPlackで開発 ちょっと案件で簡単なCGIスクリプトをを開発することになった。StarmanとかTwiggyでほとんど全て書いているのに今更CGIとかそういう突っ込みはとりあえずおいておいて・・・環境を作るのも面倒くさいし、簡単にサーバーを立ち上げたり落としたりしたい。 そこでPlackです!具体的にはplackupとCGI::Emulate::PSGIを使います。 何も考えずにとりあえず開発したいので、以下のようにapp.psgiにコードを書いていく。 use strict; use CGI::Emulate::PSGI; return CGI::Emulate::PSGI->handler(sub { CGI::initialize_globals(); # 重要 # ここから #!/usr/bin/env perl use strict; use warnings; use
学生諸君、Perlを勉強したまえ(ただし書き付き) (はいはい、まず言語論争するつもりないから、そういうコメント禁止ね) 1. 論旨 新たな就職氷河期到来が叫ばれる昨今、就職に困っている学生さんもたくさんおろう。「技術があればチャンスはあるかも」って思う人もたくさんおろう。その際にプログラミングでもいっちょやってみっか、って思う人もたくさんおろう。 そこでとりあえず言語を選ぶよね。「就職を有利にするため」という条件をクリアするためにあなたなら何を選ぶ?Java? C#? Ruby? PHP? (ちなみに自分は大学を卒業した時点で一番得意だったのはJavaですよ) 色々選択肢はあるのは当たり前なので他の言語も排除はしないけど、僕としては自分の今持っている情報と経験から、Perlは覚えておいて損は全くない!と言い切れる。それは至極単純な理由で、需要より供給が圧倒的に少ないから。 就職情報サイト
Perlで受注できる企業リスト Perlを使うことのできる中小企業(地方企業含む)って結構いると思うんだけど、そういうのをとりまとめたリストを作って公表するとか、もしくは弊社(endeworks)と取引のあるところと今後の仕事の際にそういう会社に仕事を流して関係を築いていくとか、そういうのって需要あるのかなぁ? 発注したい側、受注したい側、両方とも意見が聞けると嬉しい。 カテゴリ 日常 タグ perl 2010年3月 5日 07:23 D | ブログ記事のURL | コメント(0) | トラックバック(0) | Powered by Movable Type 4.1
ループを使わずに配列を逆にするヤツ 「だからどうだ」ってことですけど、とりあえずループを使わずに与えた配列を逆にするコードの自己最短コードはこうなりました: sub r{@_?(pop@_,r(@_)):()}; もう少し読みやすく展開するとこんな感じですね。ただの再帰処理です: sub myreverse { if (@_ > 0) { return (pop @_, myreverse(@_)); } else { return (); } } popで配列の最後の要素を最初に回して、残りを再帰処理してるだけー カテゴリ 日常 タグ perl 2010年3月 4日 18:32 D | ブログ記事のURL | コメント(0) | トラックバック(0) | Powered by Movable Type 4.1
Plack/Starman Daemontools Run File With Complete Deploy Bundle 注1:まだ本番にはデプロイしてませんが、テストでは使いました。 注2:以下スクリプトは開発者の労力を減らすためのスクリプトで、万全なデプロイ方法だとか言うわけではありません。 注3:正直シェルスクリプトは素人です。 ここ最近のアプリケーションのバンドル・デプロイについてちょっと固まりつつあるので、書いてみる まず アプリケーションと、その依存関係。デプロイ側のサーバーにはlocal::libと必要なModule::Install系のモジュール、それにModule::Install::Bundle::LocalLibがインストールされている前提です。アプリケーションの依存関係は全部Makefile.PLに書きます。 use inc::Module::Install;
$. と <> と for と while forでは$.はカウントされない ちょっと違うので横から。 これはforの動作というより、式の評価コンテキストの問題。 forはその性質上、捜査対象は配列になる: for (<>) { .... } # 上記はこれと同等 my @lines = <>; for(@lines) { .... } なので、<>も配列として評価されるべく*まず最初に*<>を最後まで読み切って、行区切りの配列を作ってからforに渡す。このときファイルハンドルを読み切っているので、当然 $.はファイル全体の行数になる。 これに対して、whiileは対象を毎ループ評価するので、1行ずつの読み込みになる。だから$.は行毎の値になる。B::Deparseを使うとちょっとわかるかも。 # こっちはちょっと正直わかりにくいとは思うけど・・・ daisuke@beefcake $ p
@INCとuse ちょっとずれてるので横からコメント unshift、push で変更を加えた @INC(モジュール検索PATH)が使用されない。 起こってる現象とこの認識はちょっと違う。 具体的に何が起こっているか説明する前に、Perlにはコンパイル(BEGIN) フェーズとランタイムフェーズという、2回コードが実行されるタイミングがある(まぁ厳密にはもう少し色々フックすることが可能だけど、とりあえず一般的にはその二つで大丈夫)。 これがどういうことかというと、順番にコードを書いているつもりでもコンパイルフェーズで評価される部分とランタイムフェーズで評価される部分があるということ。わかりやすい例としてはこんな感じか: #!/usr/bin/perl use strict; print "Runtime!\n"; BEGIN { print "Compile time!\n"; }
実用Git 「実用Git 」を献本でいただきました。ありがとうございます! gitは毎日使っていて、もう大体躓きどころとかもわかってきたんだけど、正直自分のは我流なので色々と知らない事がたくさん。cvs→p4→svn→svk→bzrと手を出してきた自分でもこうなんだから、多分今時のVCSだからとか言っていきなりgitを覚えなきゃいけない初心者の人とか大変だよなぁと常々思っていた。 実用Gitはまず全ての実行例がちゃんとつながっているのが学習用には良いなという感想。自分で本を書いてても思うけど、例をちゃんと辻褄を合わせつつずっと繋げていくのは大変難しいのだけど、例を一個一個実行したい人には大変素晴らしいのではないだろうか。 一般的なVCSの使い方に関して特に問題がない、という方は多分4章「基本的なGitの概念」、それと9章から12章の「マージ」「コミットの変更」「リモートリポジトリ」「リポジ
ディスプレイ富豪への道 昨日、なにか現実逃避をしていてマルチディスプレイに関しての記事を読んだのがきっかけで、Buffalo社製のディスプレイ増設アダプタを衝動買いしてしまった。 Macbookでもっとディスプレイを増やすというのは前前からしたかったんだけどご存じの通りデスクトップならカード刺せばいいだけだけど、ラップトップだと使える製品が結構限られてたわけで。ところがこいつUSBなんだよね。簡単じゃん!ってことで購入した次第(ちなみに上位機種もあったんだが、別にたいした用では使わないや、ってことで下位機種を選んだ)。 さて、それが早速届いたのが本日朝。箱を見るとMac用のドライバが入ってないのだが、Buffalo社のサイトを見てみるとどうやら内蔵デバイスを作ってるところのサイトから適当に持ってこいということらしいので、この辺りからさっそく持ってきた。ベータとか書いてあるのが若干怖いけど、
次のページ
このページを最初にブックマークしてみませんか?
『mt.endeworks.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く