ふり返る暇なんて無いね

日々のメモ書きをつらつらと。メインブログに書くほどでもないことを流してます

FluentdのBufferedOutputの挙動を知るためのリソース メモ

Fluentdのforward回りで少しはまってたときに役に立ったリソースメモ。 解決しつつあるので、その件についても後で書く

tagomoris.hatenablog.com

blog.glidenote.com

qiita.com

Acme::LoveLiveがサンシャインに対応した

なんとなく某所から圧力がかかったので、雑に対応しました。

% perl -Ilib -MAcme::LoveLive -E 'binmode STDOUT => "utf8";say join(":", $_->fullname_ja, $_->cv) for Acme::LoveLive->unit("Aqours")->members'
小原鞠莉:鈴木愛奈
津島善子:小林愛香
黒澤ダイヤ:小宮有紗
高海千歌:伊波杏樹
桜内梨子:逢田梨香子
松浦果南:諏訪ななか
黒澤ルビィ:降幡愛
国木田花丸:高槻かなこ
渡辺曜:斉藤朱夏

ご査収ください。

github.com

www.lovelive-anime.jp

というか、9人中5人も名前がで始まるのかー。

crystal langことはじめ

crystalをちょっと触ってみたくなったので、hello worldするまで。 基本ドキュメントに書いてあります。

crenv(anyenv)で実行環境をインストール

anyenvは入ってる前提です。plenvやrbenvと同じノリで、開発したいのでcrenvを使います。

github.com github.com

crenvをインストール

cd ~/.anyenv
git pull
anyenv install crenv
exec $SHELL -l

crenvをインストール

現時点で最新の0.7.5をインストール

crenv install 0.7.5
exec $SHELL -l
crenv global 0.7.5

ちゃんとインストールされてることを確認。

% crenv versions
* 0.7.5 (set by /Users/masasuzu/.anyenv/envs/crenv/version)

% crystal --version
Crystal 0.7.5 [2a33a87] (Thu Jul 30 17:19:13 UTC 2015)

プログラム実行

こんな内容の hello.cr を書きます。

puts "hello world"

crystalもしくはcrystal runで実行出来ます。

crystal hello.cr
# もしくは
crystal run hello.cr

crystal buildで実行バイナリを生成してくれます。

crystal build hello.cr
./hello

--release オプションを付けると最適化してビルドしてくれます。

crystal build hello.cr --release

蛇足:プロジェクト作成

crystalには言語標準でプロジェクトの雛形を作ってくれる機能があります。べんり!

crystal init appでアプリケーション、crystal init libでライブラリプロジェクトの雛形が作れます。

% crystal init app hello-world
      create  hello-world/.gitignore
      create  hello-world/LICENSE
      create  hello-world/README.md
      create  hello-world/.travis.yml
      create  hello-world/Projectfile
      create  hello-world/src/hello-world.cr
      create  hello-world/src/hello-world/version.cr
      create  hello-world/spec/spec_helper.cr
      create  hello-world/spec/hello-world_spec.cr
Initialized empty Git repository in /Users/masasuzu/project/crystal/tmp/hello-world/.git/

SEE ALSO

http://crystal-lang.org/api/

crystal-lang.org

qiita.com

東京都内で3回以上改札出る用事があるときは都区内パスが便利なときもある

最近、JR使う時は都区内パスを使うことが多いです。750円で都区内のJRは乗り放題なので、3回以上改札外に出る用事があるときは、お安くなることが多いです。

-東京フリーきっぷ

東京フリーきっぷというのもあって、こちらは1590円で都区内の都バス、地下鉄、日暮里舎人ライナー、JRが乗り放題なので、使い勝手が良いです。 特にバス使う場合にはこちらを使う方が特になるパターンありそうです。

事前に運賃を計算してみて、うまく使ってみると良いのでは無いでしょうか?

hiki2mdを書いてる

github.com

前回書いた記事で撤去したhikiサーバにあったドキュメントを再利用しやすいようにmarkdown形式にしておきたいなと思い、ちょっと書いてます。

ソース見ると分かるんですが、正規表現でごりっとしてます。これだとテーブルの置き換えがかなり無理げです。そのほか整形済みテキストの中にhiki記法があったら、簡単に死んでしまいます。

こういう場合、やはり、トークンに分解した上でそっから目的の形式に変換するのが定石なんですかね?

もうちょっとなやんで書きます。

refs

masasuzu.hatenadiary.jp

さくらのレンタルサーバを解約した

特にネガティブな理由はなくて不要になったので、解約しました。

f:id:masasuz:20150719211722p:plain

7年間使っていたことになります。ありがとうございました。 とはいえ、一括で払ってるので来年の2月までは契約が残ってます。

もともとこのサーバは http://masasuzu.net をホストするために使っていたサーバです。

  • ぺらいちのHTMLページ
  • Hiki
  • tDiary
  • メールサーバ

の4つの役割を持っていましたが、ぺらいちのページは別で持っているVPSもしくはGithub Pagesに移行出来ますし、HikitDiaryも使っていないので、維持する必要が無い。 そして、メールもgmailに全部寄せてしまえば、とくに独自ドメインのメールアドレスも必要無いということで、完全に役割が無くなってしまったのでした。

とはいえ、もろもろの移転作業が面倒くさい + 年間1500円ちょいしか費用かかってなかったので、ちょっと億劫になっていたのですが、このまま放置する方が将来のコストが高いなと思い立ち、解約することにしました。

移転作業は、なんだかんだで、@masasuzu.netのメールアドレスで作っていたアカウントが多くて、そこの変更作業が面倒くさかったです。

ぺらいちのページは本体のページはGithub Pagesに置いて、VPSのnginxでリバースプロキシしてます。なんでこんな面倒なことしてるかというと、仕様上トップのDNSエントリはCNAMEできないので、仕方なくVPSの方に名前を振っています。

tDiaryのデータはもう捨てて問題ないのですが、Hikiのデータはまだ有用なものがあるので、そのうちmarkdown化してGithubレポジトリにデータを置いておきたいな思います。

さくらさん7年間ありがとうございました。

2015年健康診断雑感

30台になって初めての健康診断だったので、バリウム検査を生まれて初めて受けました。

  • バリウムはまずくて飲めないものではない、が、美味しいものでも無い。
  • 発泡剤でげっぷが出るのを我慢しないといけないのが辛いと言われてたが、そうでもなかった。
  • バリウムそのものよりぐるんぐるんまわる検査器具の方がつらかった。落ちる。落ちそう。
  • バリウムはすんなり出てきたので、"バリウム後が辛いよ"と言っていた先輩の言葉はなんだったんだろう。
  • 血を抜くのは相変わらず苦手
  • 身長1cm増、体重6kg減
    • 来年の健康診断には5kg減しておきたい
  • 思ったより待ち時間が長くて、暇つぶしの道具を持って行かなかったのは失敗だった。
    • 来年は2時間くらいで読み終わるような本を持ち込もう。

そんな感じでした。 思ったより辛くなかった健康診断でした。

Ubuntu12.04でPerlのコアモジュールのdebian packageを作りたかった。。。

Ubuntu12.04環境で、Test::Harnessのdebian packageが作りたかったんですが、うまくいかなかったメモです。

deb作成

% dh-make-perl --build --cpan Test::Harness
Test::Harness is a standard module. Will not build without --core-ok.

む。`--core-ok`をつけないとコアモジュールはダメらしい。
気を取り直してもう一度。

% dh-make-perl --build --core-ok --cpan Test::Harness

# 中略....

% ls libtest-harness-perl*.deb
libtest-harness-perl_3.35-1_all.deb

こんどは大丈夫そう。なのでローカルにインストール。

インストール => 失敗

% sudo dpkg -i libtest-harness-perl_3.35-1_all.deb
dpkg: warning: downgrading libtest-harness-perl from 3.1700-1 to 3.35-1.
(Reading database ... 307138 files and directories currently installed.)
Preparing to replace libtest-harness-perl 3.1700-1 (using libtest-harness-perl_3.35-1_all.deb) ...
Unpacking replacement libtest-harness-perl ...
dpkg: error processing libtest-harness-perl_3.35-1_all.deb (--install):
 trying to overwrite '/usr/bin/prove', which is also in package perl 5.14.2-6ubuntu2.4
Processing triggers for man-db ...
Errors were encountered while processing:
 libtest-harness-perl_3.35-1_all.deb

えー、まじすか`/usr/bin/prove`がかぶってて、インストールができないと。
さて、どうしようか。


dh-make-perlを使ってるときにインストールディレクトリを変える方法ってあるのかな。
manをひいてもぐぐってもちょっと見当たらなかったです。
何かうまい方法模索中。

お仕事の優先度

今のお仕事は社内の開発基盤の整備、社内ツールの整備、開発支援みたいなことをしてます。

その仕事の中で、開発側から色々な要望をいただくことがあります。
チームの方針は別として自分としては以下の優先順位で動きたいと思ってます。
もちろん単純に分類できないですがあくまで目安で。

  • (障碍)これがないと仕事が滞るもの
  • (改善)今あるけど、もう少しなんとかしてほしいもの
  • (要望)今はないけど、これがあると便利なもの

改善と要望はコストとメリットの天秤にかけてすぐには動けないことが多いけど、障碍に関してはホントに仕事が滞ってしまうので、できるかぎりリーダにも働きかけて最優先のやりたいと思ってます。

問題なのは優先度がわからないタスク。これは動きようがないです。優先度の説明が間違ってるタスク。これも障碍レベルなのに説明は要望レベルに終始されてたら動けないです。

こちらのヒアリング不足やコミュニケーション不足は多分にあるかもですが、優先度の食い違いで開発がうまくまわらなくなるのは避けたい所存です。

Perlモジュールのバージョン比較したい

某所でこんなコードがあって、Argument "1.20_01" isn't numeric in numeric le (<=) とか言われてイラッとしたわけですが。

if ($Time::Piece::VERSION <= 1.16) {
    ....
}

この場合、Perlモジュールのバージョンが数値がとは限らないので比較するにはversion.pm使ってあげると良いです。

versionオブジェクトは<=>とcmpをオーバーロードしてるので、比較演算子が使えます。

use version;
if (version->parse($Time::Piece::VERSION) <= version->parse(1.16)) {
    ....
}

参考