今できなければ、だいたいできないと思った方が良い。
大事だと思ったらすぐやる。どうでもいいならやらない。くらいでいいの心持ちでいたい。
今できなければ、だいたいできないと思った方が良い。
大事だと思ったらすぐやる。どうでもいいならやらない。くらいでいいの心持ちでいたい。
git remote set-url --add ${remote}
して上げれば良い。
# git clone git@github.com:masasuzu/p5-Acme-LoveLive.git cd p5-Acme-LoveLive git remote set-url --add origin git@bitbucket.org:masasuzu/p5-acme-lovelive.git # git push
この例だとgithubとbitbucket両方にpushするようになっているが、githubと社内のgitサーバ両方同期したいときにどうすれば良いのかなーと調べて出てきた一つの答えがこれ。
定期的にcronで同期させるとタイムラグがあるのに対して、こっちだとリアルタイムに同期出来るのが利点かな。ただ、cloneした後にこの設定忘れると、社内のミラーレポジトリが古いままになってしまって非常に面倒くさくなることもあり得るのが注意点ではある。 cronで同期方式とgit push時に同期方式、一長一短ではあるが、さて。
あと思いついた方法としてgithubのwebhook飛ばして、それをhookにしてfetchするとか、jenkinsさんお仕事任せるとかそういう方法もありますね。
fluentd 0.12.15 の話です。
結論から言うとFluentdのfilter_grepが、keyの後にスペース1個しか許容してくれません。 なので、下記のようにそろえるために、スペースを余分に入れると、意図しない正規表現になってしまいます。
<filter fluent.info> type grep exclude1 message (?:^out_forest plants new output|adding rewrite_tag_filter rule) </filter>
正しくはこう。
<filter fluent.info> type grep exclude1 message (?:^out_forest plants new output|adding rewrite_tag_filter rule) </filter>
ソース的にはこのあたりで、スペース一個でsplitしてるので、2個目以降のスペースはregexに含まれてしまうという。
key, regexp = conf["regexp#{i}"].split(/ /, 2)
out_rewrite_tag_filterと同じ感覚で設定すると自分のようにはまるのが請け合いという話でした。
<match static.access.**> type rewrite_tag_filter rewriterule1 vhost (?:hogehoge.jp|fugafuga.jp) ignore rewriterule2 uri (?:/favicon.ico|/robots.txt) ignore rewriterule3 vhost (.*) static.access.site.$1 </match>
以上です。今日1時間くらいはまってた話でした。
あー、fluentdのfilter_grepって、keyの後にスペース1個しか許容しないなこれ。
`conf["exclude#{i}"].split(/ /, 2)`
`exclude1 message hogehoge`とか書いててはまってた。。。
— masasuzu? (@masasuz) August 10, 2015
設定ファイルにこう書いて再起動するだけ。
<source> type monitor_agent bind 0.0.0.0 port 24220 </source>
拡張子json
を付けるとJSONで結果が返ってくるので、jqと組み合わせるとか、プログラムで処理しても良い。何も付けないとLTSVで結果が返ってくる。
curl --silent localhost:24220/api/plugins.json
ちなみにもともと自分が、やりたかったことはforwardのキュー溢れしてないかどうかなのでこういう風にしてあげれば良い。
% curl --silent localhost:24220/api/plugins | grep forward | grep plugin_category:output plugin_id:object:3fb168dda99c plugin_category:output type:forward output_plugin:true buffer_queue_length:3 buffer_total_queued_size:1447111 retry_count:0 plugin_id:object:3fb16aad87d8 plugin_category:output type:forward output_plugin:true buffer_queue_length:77 buffer_total_queued_size:26217068 retry_count:0 plugin_id:object:3fb168667b9c plugin_category:output type:forward output_plugin:true buffer_queue_length:27 buffer_total_queued_size:21915109 retry_count:0 plugin_id:object:3fb1687cb9fc plugin_category:output type:forward output_plugin:true buffer_queue_length:54 buffer_total_queued_size:2465405 retry_count:0 plugin_id:object:3fb168d580a0 plugin_category:output type:forward output_plugin:true buffer_queue_length:13 buffer_total_queued_size:421007 retry_count:0
Fluentdのforward回りで少しはまってたときに役に立ったリソースメモ。 解決しつつあるので、その件についても後で書く
なんとなく某所から圧力がかかったので、雑に対応しました。
% perl -Ilib -MAcme::LoveLive -E 'binmode STDOUT => "utf8";say join(":", $_->fullname_ja, $_->cv) for Acme::LoveLive->unit("Aqours")->members' 小原鞠莉:鈴木愛奈 津島善子:小林愛香 黒澤ダイヤ:小宮有紗 高海千歌:伊波杏樹 桜内梨子:逢田梨香子 松浦果南:諏訪ななか 黒澤ルビィ:降幡愛 国木田花丸:高槻かなこ 渡辺曜:斉藤朱夏
ご査収ください。
というか、9人中5人も名前があ
で始まるのかー。
crystalをちょっと触ってみたくなったので、hello worldするまで。 基本ドキュメントに書いてあります。
anyenvは入ってる前提です。plenvやrbenvと同じノリで、開発したいのでcrenvを使います。
cd ~/.anyenv git pull anyenv install crenv exec $SHELL -l
現時点で最新の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/
特にネガティブな理由はなくて不要になったので、解約しました。
7年間使っていたことになります。ありがとうございました。 とはいえ、一括で払ってるので来年の2月までは契約が残ってます。
もともとこのサーバは http://masasuzu.net をホストするために使っていたサーバです。
の4つの役割を持っていましたが、ぺらいちのページは別で持っているVPSもしくはGithub Pagesに移行出来ますし、HikiもtDiaryも使っていないので、維持する必要が無い。 そして、メールもgmailに全部寄せてしまえば、とくに独自ドメインのメールアドレスも必要無いということで、完全に役割が無くなってしまったのでした。
とはいえ、もろもろの移転作業が面倒くさい + 年間1500円ちょいしか費用かかってなかったので、ちょっと億劫になっていたのですが、このまま放置する方が将来のコストが高いなと思い立ち、解約することにしました。
移転作業は、なんだかんだで、@masasuzu.netのメールアドレスで作っていたアカウントが多くて、そこの変更作業が面倒くさかったです。
ぺらいちのページは本体のページはGithub Pagesに置いて、VPSのnginxでリバースプロキシしてます。なんでこんな面倒なことしてるかというと、仕様上トップのDNSエントリはCNAMEできないので、仕方なくVPSの方に名前を振っています。
tDiaryのデータはもう捨てて問題ないのですが、Hikiのデータはまだ有用なものがあるので、そのうちmarkdown化してGithubのレポジトリにデータを置いておきたいな思います。
メールサーバの運用をおまかせするためだけに、惰性でレンタルサーバ借り続けてたけど、やっと卒業出来る見込みが立ってきた。
— masasuzu? (@masasuz) July 19, 2015
7年間契約してたさくらのレンタルサーバ解約した。さよならさくらさん。(と言っても、来年の2月まで契約残ってるけど。
— masasuzu? (@masasuz) July 19, 2015
さくらさん7年間ありがとうございました。