はてなブログはじめました

http://nekogata.hatenablog.com/招待してくださった id:hide_o_55 さんありがとうございます。

Acme::Text::Glitchというモジュールを書きました

最近ちょっとかなり忙しくしていたのですが、ちょっと落ち着いてきたので気分転換にAcmeりました。ソースはgithub。GitHub - Shinpeim/p5-Acme-Text-Glitch: Glitch your text NAME Acme̳::͏Teͪxt::͌G̨l̼i̸t͑ch&#77…

CloudForecastでQudoのたまってるJobQueueの量をグラフ化するやつ

JobQueueがいくつたまってるか可視化したくて作りました。ソースはgist。 以下のエントリを参考にして作りました。CloudForecastのリソース監視定義モジュールの作り方 - blog.nomadscafe.jp cloudforecastって何? id:kazeburoさんが開発されているリソース…

酔っぱらいながらgistにいくつかスクリプトを上げました

ゆのっち in zshの設定 直前のコマンドの終了コードが0以外だと✖╹◡╹✖がxX_XxになってCurrentWorkingDirectoryが赤くなります watch.pl cpanm祭りとか、時間かかるコマンド打ったときにscreenとかで別のターミナル立ち上げて $ watch.pl とかやるとそのpidが…

NDS 第23回 でPerlの話をしてきました

新潟県は長岡市で行われている、NDS(長岡開発者勉強会)の第23回でPerlについて話をしてきました。第23回勉強会(2011/10/30) - 長岡 IT開発者 勉強会(NDS)内容については ishiduca さんの記事が詳しいです。blog ishiduca: Perl's Talk at nds #23 自分のトー…

YAPC::Asia 2011の地方LT枠で発表してきました。 #yapcasia

先日東工大で行われたYAPC::Asia 2011にスカイアークシステムさんの支援で参加し、招待枠LTで発表してきました。テクニカルな内容ではないのですが、スライドを以下にアップしてあります。http://www.slideshare.net/shinpei_maruyama/pre-niigatapm 見ての…

プレNiigata.pmのお知らせ

さて、今週末に迫って参りましたプレNiigata.pmですが、 @hayajo さんがお店を予約してくれました。ありがとうございます。日時 :2011/10/08 18:00 会場 :吟の蔵 (新潟県新潟市中央区東大通1-2-11 グルメビルB1F) URL :http://www.hotpepper.jp/strJ00071…

Hachioji.pm #9 エアLT #hachiojipm

新潟から参加してます 新潟市民がHachioji.pmに(しかもエアLTで)参加するってどういうこと?という声が聴こえてきそうですが、そんなの知ったこっちゃない。Hachioji.pmとはゼーガペインでつながっているのだ(お彼岸セール許せないですね)。 今回のテーマ 今…

舞浜サーバーリセットtweetスクリプト書きました

舞浜サーバーのリセットまで、あと一ヶ月を切りましたね。なんのことかわからないというあなたは、とりあえずゼーガペインを見てください。花澤香菜さん好きとか言ってるのにゼーガ見てないとか許されないですよ。https://gist.github.com/1129201 これを走…

Niigata.pmを作りたい、という話

思いのたけを書いていたら長くなってしまったので、最初に結論だけ書いてあります。めんどいひとは最初だけ読むだけでいいです。 最初に結論 9月中旬に新潟県新潟市に引っ越すので、Niigata.pmを立ち上げたいです。仲間を大募集します。[twitter:@shinpei_cm…

Shibuya Perl Mongersテクニカルトーク#16で配られたうちわの解説

やっておりますShibuya.pm。今回のテーマは「夏の正規表現祭り」。会場はmixiさんでした。会場に着き、席に着くとmixiさんのノベルティがずらり。その中にmixiさん特製のうちわがあり、そこには、「ん?なんだかPerlっぽいぞ」という感じのコードが書かれて…

Net::Twitter::UserStreamsというモジュールを書きました

cpan形式でモジュールを作る練習として、Net::Twitter::UserStreamsというモジュールを書きました。このモジュールは、miyagawaさんのAnyEvent::Twitter::Streamの、UserStreamsを扱うことに特化した薄いラッパーです。思想としては、 AnyEventの層を隠蔽す…

Schwartz変換 on Haskell

リストのリストを受け取って、リストの長さでソートするsortByLengthを書いてみる。 まずは素直に書いてみる。 import List; sortByLength :: [[a]] -> [[a]] sortByLength xs = sortBy cmp xs cmp :: [a] -> [a] -> Ordering cmp x y | length x < length y…

Haskell始めました

以前少しだけ触ったことがあってモナドで挫折していたHaskell。最近自分のスキルがあがっていない感を感じていて危機感を覚えたので、もう一度入門し直してみようと思って。学習の記録を残します。小さいことからコツコツと書いていきます。 とりあえず簡単…

腹パン in Ruby

ついったの一部ではやってたのでたまにはRubyで書いてみようと思って。腹パニスト各位は自分でHarapanistをnewしてゆのっちを監視しまくればいいんじゃないですかね #!/usr/bin/env ruby -Ku class Frypan def fire p "カンカンカン!" end def name return …

sphinx + blockdiagがとっても最強すぎる件

Yokohama.pmで @tk0miya さんが発表していた sphinx + blockdiag。sphinxはテキストファイルをWiki記法みたいな書き方で書いてmakeするだけでhtmlとかpdfを生成してくれる魔法のツール。pythonで書かれてる。blockdiagはテキストファイルから遷移図とかシー…

cherokeeってサーバが気になる

http://www.cherokee-project.com/ベンチ見るとぱっと見めっちゃ速い。しばらく調査してみる

Yokohama.pmで発表してきました #yokohamapm

スライドはここにあがってますYokohama.pm110513 個人的には、sphinxとblockdiagを明日からでも使おう!という気になりました。ドキュメント、ついつい書かないですませちゃうんですよね…。 Sphinx + blockdiag で始めるドキュメント生活 @ yokohama.pm 2011…

AnyEventでJSONを読み書きするサーバをMessagePackを読み書きするサーバに書き換える

JSONを読み書きするサーバを作ってたんだけど、転送量を減らしたかったのでMessagePackを読み書きするように仕様を変更した。use AnyEvent::MessagePackするとAE::Handleのpush_readとpush_writeにmsgpackが生えるので、ほぼ直しなしで書き換えれる。コード…

時間かかるプロセスが終わったときにGrowlで通知してくれるやつ

時間かかる処理(homebrewでなんかインストールしてるとかcpan-outdated | cpanm)してるときに、その処理が終わったタイミングでGrowl通知してくれるといいのになーって思うときがあるのでやっつけで書いた。10秒ごとにチェックしてるのでほんとのリアルタイ…

PSGIアプリのテスト方法

webアプリのテストに関して、Modelについては結構テストしやすいからちゃんとテスト書いてること多いと思うのだけれど、Controllerやviewはテストがしにくいのでテストを書かないなんてことがよくあると思うのだけれど(ぼくだけか?)、PSGIアプリならばTest:…

CPANモジュールガイドをざっと読んだ

とても良い本です。一人一冊開発時に手元に置いておきたいですね。一点、Email送信モジュールにEmail::Sendを挙げているんだけど、CPANでチェックすると今はEmail::Senderのほうが推奨されているみたい。 著者の @tomita さんに質問したところ、以下のような…

tcpサーバのテストするときにはTest::TCP使うとよい

TCPサーバを書いてると、どうしてもテストが面倒だなーって思う。テストスクリプトの中でサーバを立ち上げないといけないし、サーバ立ち上げるってことは処理が戻ってこないわけだから、テストの中でforkしてサーバ立ち上げて、とかいろいろ考えなきゃいけな…

twitterってuser_idとscreen_nameがあるけど、user_idでその人のホームに行けないの不便だよね

web

user_idが連番(?)で振られる一意のid(変更不能)で、screen_nameが@hogehogeってやつ。screen_nameは変更可能。user_idでそのひとのホームにアクセスできると便利なのになー、って思いました。

on memoryで動きつつディスクにスナップショットをとってくれるRedisが便利そうって話

リアルタイム性の高いサーバを書いていると、RDBでは要件を満たさないことが多くて、そういうときにいわゆるNoSQLなプロダクトを使うことがよくあるわけだけれど、今日調べたRedisについてメモ。Redisも最近よく聞くNoSQLなプロダクトのひとつで、on memory…

1ユーザあたりに許す帯域の目安

MMOとかの、コネクションを張りっぱなしで常時通信が行われるC/S型のアーキテクチャの場合、大量に通信を行われてしまうと帯域が食いつぶされてサーバコストが半端じゃないことになる。そこで、1人あたりの通信量をなるべく小さくおさえる工夫が必要。中嶋謙…

Email::Sender使ったコードをテストする際、deliveriesを空にする

ドキュメント探しても載ってなかったからソース読んだ。Email::Sender使ってメール送信する際、テストスクリプト内では$ENV{EMAIL_SENDER_TRANSPORT} = 'Test' することで簡単にテストできる。その際送信された(とみなされた)メールはEmail::Sender::Simple-…

Controllerのテストってむずかしくね?って話

webアプリ作るときに、Modelに関してはいつもちゃんとテスト書いてるから、そこに関しては結構安心して手を入れられるんだけど、Controllerってテスト書きにくくてけっきょくテストを書かないみたいなことが多い。けどユーザに見せるためのエラーメッセージ…

メール送信に使うやつ

Email::Sendをつかってたんだけど、out of dateなモジュールなのでEmail::Senderに乗り換える。Email::Sendの時はテストコードを書くときに、コンストラクタに{ mailer => 'Test' }を渡してやる必要があって、ロジックにmailerをハードコーディングしちゃっ…