Perl REPL Reply

やっぱREPLですよねっってなってこれみながらReply入れた。

perlのREPL近状 – やわらかコード http://d.hatena.ne.jp/toku_bass/20130614/1371179619

Reply is awesome! – blog.64p.org
http://blog.64p.org/entry/2013/06/07/180316

便利!!ってなったけどやっぱ例によってmac鬼門のreadlineとかその辺があれな予感でhisotory効かないし左右キーもなんか変なになってしまう。複数行に入力しようとするとまたうまくいかない。キビシー

Term::ReadLine::Gnu
Term::ReadLine::EditLine
Caroline
Reply::Plugin::Caroline #=> 入らない

追記(2013-09-27 2:17):

あと、この入れたモジュールどう使うんだ 勝手に読み込んでくれるの?

PERL_RL=Caroline reply

http://lingr.com/room/perl_jp/archives/2013/08/09

うごいたー 左右で戻れる 上キーでなんとなく? いくつか戻れる 日本語いっぱい打つとなんかカーソルがずっと右の方に行く 一番いいかんじだわっしょい

どこ見る感覚がないのがツライ

CPAN Testers Reportの話聞いた

Travis-ciって結局Ubuntu 12.04 LTS Server Edition 64 bitだけじゃないですか。cpan testersの仕組みすごいヨイと思ってて、一番興味あるのが@moznion のトークでした。

CPAN Testers Reportの情報を上手に使おう!
http://yapcasia.org/2013/talk/show/0efabac4-c857-11e2-a1f8-59856aeab6a4

聞いて思ったこと。使ったことはないけど見たことはあるあの格子状のpass-fail図、うまく使えればいいんだけど、どっかで落ちてますって言われても地獄っぽい。

http://www.cpantesters.org/distro/T/Text-Xslate.html

エライなあ反面、よくやるなあっていう。たとえばこんな組み合わせウンコもれるじゃないですか。

https://github.com/pluginaweek/state_machine/blob/8a3ba81801782ac4ef9d4ace1209d8d50ffccdb0/Appraisals
https://github.com/pluginaweek/state_machine/blob/8a3ba81801782ac4ef9d4ace1209d8d50ffccdb0/.travis.yml

これで別に網羅してるわけでもなく、ubuntuだけだぞっと。あと、rubyの各patchレベルのちょっと古いのとか知らん。

コレは別件の、ci.hsbt.orgを紹介した時の反応。

自分でライブラリ書くならrubyだけど、メンテナンスしなくなる/されなくなるリスクあるよなーとおもうへん。といっても、おまえのパッチtravis-ciのjruby 1.8modeでおちるんだけどって言われても知らんがなって思う。遠い。

cpan testersで落ちた環境をリストアップしてくれて、その環境をvagrant経由で一発で作ってくれるprojectやってますと。

https://github.com/ytnobody/Testament

便利そう。あと、どこ見てもgfxがでてくる。

CPAN Testersの紹介 – Islands in the byte stream http://d.hatena.ne.jp/gfx/20130309/1362823135

cpanfile.snapshot and carton.lock

うろおぼえでtachikomaのcarton対応しようとしてて、carton.lockが更新されるはずなのにdiff出ないし.snapshotってファイルしか出来ねー って思ってたら、v0.9.65 2013-07-23 18:51:59 PDTに入ったBig Changeで対象ファイルが変わった!!らしい。

https://github.com/miyagawa/carton/blob/bd6456c57b330070d1f13286dc4ffe6ff9998d26/Changes

あと、perlの人はcarton updateってあんまりしないのかなーってLTで言ったけど、carton update実装自体そんなに古くなかった。v0.9.57  2013-06-05 19:21:17 JST すみません。

なんかこのへんYAPCでまわりにperlの人いるときにやっとけばすっと行けたのかなーと思う。

http://weblog.bulknews.net/post/57356232719/carton-1-0-is-released
http://blog.64p.org/entry/2013/08/05/191051

carton.lockをgitignoreしてる「アプリケーション」が多い?

tachikomaをcarton対応しようとしていて、自分ではそんなのないからそれっぽいリポジトリでどう差分が出るのか試してみようとしている。

で、気づいたんだけど、rubyの場合, gemはバージョンコントロールにGemfile.lock入れるな,  アプリケーションはGemfile.lock入れろ。実際gemとして入れるときは、gemspecに書いてある通りにしか入らないし。

http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/

で、railsアプリのgitignoreにはGemfile.lock書かない、gemだとGemfile.lock書く、で生成するように今どきのgeneratorはなっている。rails だと書かない、bundle gem だとgit ignore Gemfile.lockが入ってる。で、gemのリポジトリにGemfile.lock消せって言うとだいたいもめますね。

それはともかく、なにかのtemplateがそうなっているのか、perlのアプリケーションなのに, carton.lockをignoreしているものが多く、よりアグレッシブじゃねーか!

 

ひとまずperlbrew

YAPCでperl入門しようと思うので、 まず新し目のperlを入れる。

plenvっぽいコマンド無いのにperlは5.18.0 だったのでハテナと思ったらperlbrewで入れてたらしい。ひとまずperlbrewそのままで5.18.1入れた。

29272 perl -v
29273 which perl
29274 perlbrew –version
29275 perlbrew self-upgrade
29276 perlbrew –version
29277 perlbrew list
29279 perlbrew available
29280 perlbrew install perl-5.18.1
29281 perlbrew list
29282 perlbrew switch perl-5.18.1
29283 perl -v
29286 history|grep cpanm
29287 cpanm App::pmuninstall
29288 cpanm App::cpanoutdated
29289 cpanm Plack

コマンド並べるとこんなかんじで、Plack入れてるのは、こんなaliasがbash_profileに居るので。どっかからパクったやつ。

alias pup=”plackup -MPlack::App::Directory -e ‘Plack::App::Directory->new({root=>\”.\”})->to_app’ -p 4000″

Standalone into isucon by ruby – web application tuning hackathon

Isucon – Web application tuning hackathon – was held on 2011-08-28. Isucon is “Iikanjini Speed Up Contest”.

livedoor Techブログ : なんでもありのWebアプリケーション高速化バトル、#isucon 開催のお知らせ
livedoor Techブログ : 自家製 #isucon のつくりかた

Not means “Flying chair” nor “Throw chair”. Of course Not fujiwara nor kazeburo!
via 一定時間ログを吐かないとイスが飛ぶ Log::Minimal::FlyingChair というモジュールを作りました – (ひ)メモ

Contest theme is like weblog application. Sample implementations are written by Perl, Ruby and Node.js.

Implements are mostly clean and clear, but host team hides some traps. If you think “apache sucks, nginx is cool.”, and use default configuration, you run into trap yourself. Then benchmark score down suddenly! “WHYYYYY!!” It’s a fun!

All team use perl application, so I read official article and set default configuration. But my primary language is Ruby, I start at Ruby implements.

You prepare RVM. Google it.

$ gem install bundler
$ cd webapp/ruby

Below few lines are old description. My pull req was merged. yeah!(Edited in 2011-09-18 6:58)

And you should edit Gemfile. This diff is my poor environment and wrong information cause. Sorry 🙂

diff –git a/webapp/ruby/Gemfile b/webapp/ruby/Gemfile
index 58e119e..ec065e8 100644
— a/webapp/ruby/Gemfile
+++ b/webapp/ruby/Gemfile
@@ -3,3 +3,4 @@ gem ‘sinatra’
gem ‘haml’
gem ‘mysql2’
gem ‘json’
+gem ‘thin’

 

$ bundle install –path vendor/bundle
$ bundle exec rackup -s thin -p 5000 -E production

You try to access => http://localhost:5000/
That’s your isucon application!

My initial Benchmark score => https://gist.github.com/1187953
Sample implements by Perl and Ruby. Absolute score is poor – it’s my macbookair ;( , But importance is degree. Also to compare. Have a good tuning!

FYI:
homebrew: alternative macports
perlbrew, pythonbrew, rvm, nvm: language and enviroment installer, separator
pip: alternative easy_install
cpanm: alternative cpan installer

Days22 commit message

Commit message is important.
Because this is useful for those who read it later, like me.

There is good message and particle size is just right.

$ git log –oneline
4b968cc html_escape_hex() should return raw text
8003ef1 strftime() returns a binary string which must be decoded
d88180e Footnotes are raw HTML