GrowthForecastがsegmentation faultで落ちるのでrelocatable-perlを使い始めた件

こちらも前回[2014-09-23-1] に引き続き、さくらのVPS上のUbuntu 14.04の話です。 今までのUbuntu 12.04 32bitではGrowthForecast は問題なく動いていたのに、Ubuntu 14.04 64bitにしたらなぜか動かなくなりました。。 Perlはplenvでインストールした5.20.0と5.20.1で確認。GrowthForecastは最新。 $ carton exec -- perl growthforecast.pl --data-dir . --enable-float-number & zsh: segmentation fault carton exec growthforecast.pl --data-dir . --enable-float-number (エラーメッセージはメモしてなかったので適当) ググってみたらこちらを発見。 https://github.com/shoichikaji/relocatable-perl-growthforecast って、YAPC[2014-08-31-1] のLTで発表されていたKajiさんじゃないですか。 リロケータブル Perl - skaji’sblog にも紹介記事があります。 ひとことで言うと「ツールのためにPerlインストールのだるいので、再配置可能なPerlにしてツールと一緒に配布しちゃえばいいんじゃね?」というやつです。 トラブル続きで意識が低くなっているので、リリース版をそのまま使用。 $ mkdir ~/growthforecast && cd $_ $ wget https://github.com/shoichikaji/relocatable-perl-growthforecast/releases/download/0.23/growthforecast-0.83-x86_64-linux.tar.gz $ tar xzf growthforecast-0.83-x86_64-linux.tar.gz $ ./growthforecast-0.83-x86_64-linux/bin/growthforecast.pl --data-dir . --enable-float-number & 動いた! http://masutaka.net:5125 しかし、、 loading... if (localStorage.getItem("pref-theme") === "...

2014-09-23 (Tue) · masutaka

YAPC::Asia Tokyo 2014に参加してきた #yapcasia

去年[2013-09-29-1] に引き続き、今年も参加してきました。 YAPCはバラエティがあり、Perl以外の情報も多いので好きです。 まさにYet Another Programming Conference よく考えたらこのブログもPerlで生成しているので[2007-07-01-1] 、Perl との関わりはゼロではなかった。 参加者が過去最大ということもあり座れないことが多々ありました。YAPC ではおなじみの光景みたいですが、この辺改善されると良いですね。Wifi とか運営とかは素晴らしかったです。 以下、参加したトークへのメモ。 インフラエンジニア(狭義)は死んだ (スライドがアップされたらここに貼る) 問題を解決するためには自分の肩書きに縛られないほうが良いよという話。 まあそうだよね。そういう意味で私は、「Rubyエンジニア」とか「PHPエン ジニア」とか名乗らないようにしている。最近は「ソフトウェアエンジニ ア」か「カレー大好き!」かな(えっ Go For Perl Mongers スライドはこちら pecoの牧さんによるGOを書き始めた人向けのトーク。GOはチュートリアル を半分くらいやった程度なので、途中から付いて行けなかったorz 例外などない オブジェクト指向など忘れてしまえ fmtは「ふむと」と読む GOは継承ではなく委譲 JSON SchemaとAPIテスト (スライドがアップされたらここに貼る) 良さそう。JSON Schema知らなかったので、あとで最新の WebDBPress(Vol. 82)のWEB APIデザイン鉄則読む。 作られては消えていく、泡のように儚いクラスタの運用話 テレビと連携するサービスの話。案件ごとにぐわーっとスケールさせて、 終わったら全部削除とか。期末とか年末はやっぱり忙しいそう。Rakeタス クでいろいろ出来るようにしていた。 あと、PanisherというNodeJS製ベンチマーククラスタ使って、想定される シナリオを作って対策し、負荷が原因のトラブルはほぼゼロになったとの こと。良さそう。 Git を使ったツール開発 ghqは自作のemacs-helm-ghq で毎日使っていて、GitHub Kaigiでも紹介され たgit-pr-releaseは業務で毎週使っているので、聴いてみたかったトーク。 Gitコマンドの濃い話も聞けました。このトークも超満員で地べたに座って いたので、上半分しかスライドが見えなかったけどorz git-browse-remote、以前試したことあったみたい。emacsから使えたら便 利そうです。 コマンドラインツールについて語るときに僕の語ること 力強くて熱いトークだった。最近のCLIツール界隈も熱いですね。...

2014-08-31 (Sun) · masutaka

改めてHomebrewをクリーンインストールしたメモ

BoxenからHomebrewに戻ってきたので[2014-01-25-1] 、改めてまっさらな状 態からインストール。[2011-07-26-1] 以来だね。/usr/localは空っぽにしといた。 http://brew.sh より。 $ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" インストールが終わると、brew doctorしろと言われた。doctorから促され るがままにXQuartz-2.7.5.dmgをインストール。 brewのzsh補完ファイルのリンク先をBoxenからHomebrewに変更。 $ ln -sf /usr/local/Library/Contributions/brew_zsh_completion.zsh ~/.zsh/functions/_brew ※ ~/.zshrcでFPATH=$HOME/.zsh/functions:$FPATHを追加してある。 [2014-01-25-1] のBrewfile使って、brew bundleで各パッケージをインストール。 Rubyはrbenvから2.0.0-p353とruby-2.1.0をインストール。 # ruby-buildはHomebrew管理にはしない $ git clone git@github.com:sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # 2.1.0のインストール $ RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2.1.0 $ rbenv global 2.1.0 && rbenv rehash && rehash $ cat ~/projects/home/Gemfile.txt | xargs gem install $ rbenv rehash && rehash # 2....

2014-01-25 (Sat) · masutaka

YAPC::ASIA 2013 はノベルティに満足

最近は仕事とか二日酔いとかで結構忙しくて、もう一週間が経ってしまい ました。。 今回YAPCというPerl最大のイベントに初参加しました。残念ながら土曜日、 最終日だけの参加でしたが、なかなかに満足度が高かったです。(YAPCって、 怖いイベントじゃなかったんですねw) 最初の @yusukebe さんのトークの分かりやすさが半端なかった(以前聞い たLTも良かった)。Perlをほぼいじったことない私でも普通に理解出来まし た。トークがわかりやすいのか、Mojoliciousが分かりやすいのか。 MojoliciousのデフォルトはVCしかないというのは清々しさを感じました。 16:30から始まったLT大会は個人的にはツボのものが多く、他のLLのLTとは 違った雰囲気でした。 以下、当日聞いたトークです。 Mojoliciousでつくる!Webアプリ入門 → ブログ記事 Programming AWS with Perl What’s new in Carton & cpanm GitHubでつくる、たのしい開発現場 → ブログ記事 中規模チャットサービスの運用事例 PhantomJSによる多岐にわたる広告枠の確実な表示テスト フルテストも50msで終わらせたい 〜 FreakOutの取り組み 〜 Lightning Talks Day 2 Keynote YAPC::Asia Tokyo 2013 クロージング P.S. ノベルティが良かったです。中でもmixiプランニングポーカーが一番嬉し かった。普通に買おうと思ってたので。DeNAのスマホスタンドも使ってま すし、YAPCタオルは今日ジムで使ってきました。

2013-09-29 (Sun) · masutaka

GrowthForecastをインストールする

前回[2013-07-17-1] から間が空いてしまいましたが、GrowthForecast をイ ンストールしました。 インストールするだけなら、これだけでOKです。 % mkdir ~/growthforecast % cd ~/growthforecast % echo "requires 'GrowthForecast';" > cpanfile % sudo apt-get build-dep rrdtool % plenv exec carton install 起動方法はこんな感じ。http://example.com:5125とかにアクセスすると確 認出来ると思います。 % cd ~/growthforecast % carton exec -- perl growthforecast.pl --data-dir . & –data-dirオプションを指定しないと ~/growthforecast/local/lib/perl5/auto/share/dist/GrowthForecast/data/ 以下にsqlite関連のファイルが作られます。~/growthforecast/localは 削除することもあるでしょうから、指定した方が良いと思います。 Chefのレシピはこれ。‘Install packages depending RRDTool’のあたりが 汚いですが、仕方がないですかね。 今回初めて知りました。。 loading... if (localStorage.getItem("pref-theme") === "light") { const elements = document.getElementsByClassName('twitter-tweet'); for (let i = 0; i 次回はGrowthForecastとfluentdの連携を試してみます。...

2013-08-14 (Wed) · masutaka

plenv + cpanm + cartonでPerlの環境を構築した(OSX版)

[2013-07-17-1] のOSX(Mountain Lion)版です。こっちはめっちゃ簡単。 brewでplenvとperl-buildをインストール % brew install plenv % brew install perl-build あとはUbuntuと同じようにperl+cpanm+cartonをインストール % plenv install 5.18.0 -Dusethreads % plenv global 5.18.0 && plenv rehash && rehash % plenv install-cpanm % plenv exec cpanm Carton P.S. 入れたは良いけど、OSXでPerl使わないなーと思ってたら、chalow(このブ ログを生成するツール)で使ってた。てか、HTML::Templateがなくて chalowを実行出来なくなっていた…。早速インストール☆ % plenv exec cpanm HTML::Template

2013-07-17 (Wed) · masutaka

plenv + cpanm + cartonでPerlの環境を構築した(Ubuntu版)

plenv + cpanm + carton でPerlの開発環境を構築する|Act as Professional - hiroki.jp 私もGrowthForecast をインストールするために、Ubuntu 12.04.2 LTS上に Perlの環境を構築しました。@hirocaster さんと若干違いがあった(下記★ の箇所)ので、私の手順も書き留めておきます。 Perl力はゼロな私ですが、以下の認識でだいたい合っていると思います。 plenv Rubyのrbenvに相当。複数バージョンのperlをHOMEにインストールし、切り 替えて使うツール。というよりシステムを汚さないために使う感じ。 cpanm Rubyのgemに相当。Perlのライブラリをインストールするために必要なツー ル。今はcpanじゃなくてこれを使うみたい。 carton Rubyのbundlerに相当。アプリごとにライブラリを切り替えることが出来る。 plenv+perl-build これは同じ。 % git clone git://github.com/tokuhirom/plenv.git ~/.plenv 以下を~/.zshenv等に設定して、shellを再起動とかして完了。 export PATH=$HOME/.plenv/bin:$PATH eval "$(plenv init -)" Perlをビルドするためにはperl-buildが必要(★)。 % git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/ インストール可能なPerlがずらずらと表示されるようになった(★)。 % plenv install -l Available versions: (省略) 5.18.0 5.19.0 5.19.1 Perl 現時点での最新リリース版5.18.0をインストールする。Perlはx.y.zのy番 号が奇数が開発版で偶数が安定版とのこと。’-Dusethreads’がなぜ必要な のかは知らない。 % plenv install 5....

2013-07-17 (Wed) · masutaka

better than grepなackを試してみた

better than grepなツールack がタイムラインでちょっと話題になっていた ので、試してみました。find+grepより速くて良いね。 OSXならbrewでインストールするとお手軽なんでしょう。 % brew install ack デフォルトで再帰検索してくれます。.gitとか.svnディレクトリは勝手に 無視してくれるようです。 % ack hoge test/test-twittering-mode.el 405: (setcdr (assoc 'in-reply-to-screen-name status) "hoge") 407: (test-assert-string-equal " in reply to hoge" 検索対象の拡張子は"ack –help-types"で確認出来ます。-kオプションを 付けると、すべてのファイルを対象にします。 % ack -k hoge ファイルやディレクトリも指定可能です。 # ファイル % ack hoge twittering-mode.el # ディレクトリ % ack hoge test test/test-twittering-mode.el 405: (setcdr (assoc 'in-reply-to-screen-name status) "hoge") 407: (test-assert-string-equal " in reply to hoge" –nogroupオプションを付けるとgrep -nっぽい出力になります。 % ack --nogroup hoge test/test-twittering-mode....

2013-03-24 (Sun) · masutaka

このブログがインターネット上から消えていました

http://dlvr.it/ からの通知で気づいたのですが、このブログが1日半ほど インターネット上から消えていました。 OSXをMountain Lionにバージョンアップしたら、Perlのバージョンが上が り、HTML::Templateがなくなったことが原因でした。 CPANからインストールして解決しました。 cpanの使い方の整理 « taichino.com このブログはChangeLogメモという1つのテキストファイルから、chalow と いう変換ツールを使いhtmlに変換しています。 この作業を自動化した自作のmkchalowスクリプトの作りが甘かった。。自 分しか使わないツールと言えども、エラー処理はちゃんとした方が良いで すね。ブログが生きているかのチェックも。 ちなみにChangeLogメモを始めたのはこの記事がきっかけです。 [2001-12-30-1] から書き続けていて、23,000行になりました。 横着プログラミング 第1回: Unixのメモ技術 最近はEvernoteに全部まとめる人が多いみたいですが、技術者だったら絶 対ChangeLogメモの方が良いですよ。手に馴染んだエディタが使えるし、整 理する必要がないので。 ただchalowを使うかは微妙なところかも。やはり全てを自分が面倒見るの で、時間がないとなかなかメンテしきれません。ChangeLogをWordpressと かTumblrにインポート出来れば良いのですが。それも時間が..w

2012-09-07 (Fri) · masutaka

LL Decade は元組み込みプログラマーでも楽しめるイベントだった #lldecade

この記事 で開催を知った LL Decade 。LL はおろか、Decade の単語の意味 も知らなかった元組み込みプログラマー、現 Web プログラマーですが、予 想以上に楽しめるイベントでした。 しかし暑かった。予定どおり汗だくで会場に到着。今回は机がなかったの で MacBookAir は使わず、iPhone に軽くメモりながら純粋に楽しむことに 専念。 基調講演で初めて @miyagawa 氏を拝見。手錠をはめられてプログラミン グ..の下りが印象に残りました。PHP は知れば知るほど変態言語で、第一 印象よりかなり好きになりましたが、私も手錠をはめられている感じはす るのですよね…。 意外だったのは今まで Python に全く関わらずに生きてきたのに、 Language Update Decadev で話を聞いて、やってみようかなと思ったこと。 LL イベントは各言語をつまみ食い出来るので、組み込みなど別な分野の人 が参加しても楽しめますね。今回はまつもとさんの mruby の話も熱かった ですし。 先週の Jenkins ユーザ・カンファレンスの熱が残っているのか、CI の話 もセッションまるまる使われていました。まあでも CI は各言語やフレー ムワークに共通する内容は薄いので、CakePHP2 と Jenkins みたいにドン ピシャの話が聞きたいですね。それは個々の勉強会でやることか。。あ、 もちろん各トークは面白かったです。 @yamashiro さんの話は特に。 JsTestDriver いいかもと思ったけど、複数サーバが必要なのは残念でした。 Javascript が機械語という解釈は今回一番面白かった。すなわち永遠に生 き続ける。確かに各ブラウザ対応を考えると素で書くのはしんどい。アセ ンブラに対する C みたいに、今後はもっとしっくりと上に乗っかるとうれ しいですね。> jQuery, JSX, CoffeeScript

2012-08-06 (Mon) · masutaka