読者です 読者をやめる 読者になる 読者になる

weblog of key_amb

主にIT関連の技術メモ

2016 年を Software Engineer として振り返って

はじめに 概要と、昨年との比較 2016年に作ったもの ピックアップ shove (ShellScript) fireap (Ruby) poloxy (Ruby) grifork (Ruby) perl5-App-Memcached-CLI 関連記事 他に、こんなのも作ってました Contributions 勉強会で発表した 終わりに OSS 活動と業…

Ginza.rb で "grifork" について発表してきた

10/18(火)に、第40回の Ginza.rb に参加してきました。 初参加でしたが、今回は他にも初参加の方が8名ほど(?)いらしていたようです。 Ginza.rb では、毎回、別々のテーマについて会を催しているようです。 今回は「自分でつくったものを見せてみよう」とい…

ssh と rsync だけで Tree Deploy を実現する "grifork" を作った

はじめに〜fireap to grifork Tree Deploy とは grifork: standalone モード grifork: grifork モード 使い方 動作例と実行ログ 今後の展望 余談〜デプロイの未来について おまけ〜grifork の語源 はじめに〜fireap to grifork 約半年前に fireap というデプ…

"clenv" がそこそこ xxenv っぽく使えるようになってきた

3日前に上の記事を書いたばかりですが、また少し工事をしたので、自分の中での整理も兼ねて、お知らせ。 "clenv" は私が趣味で作っているもので、シェルスクリプトのパッケージ管理ツールのようなものです。 ソースコードは https://github.com/key-amb/clen…

シェルスクリプト用テストツール "shove" v0.8 までの更新のお知らせ

シェルスクリプト用のテストツール "shove" を作って、初めて上の記事で紹介したのは約5ヶ月前になります。 今回は、上記事の時点からこれまでの主な差分をお知らせします。 言うなれば CHANGELOG + αな記事となります。 shove は GitHub で公開しています。…

"clenv" というシェルスクリプトのモジュール管理ツールを引き続き作っている

keyamb.hatenablog.com 上の記事を書いたのが3ヶ月前ですね。 趣味で作っているのでだいぶ波があるのですが、初コミットからは5ヶ月ほど経ちました。 "clenv" って何? "clam" モジュール NEW - "cload" コマンドと "cllib" 関数 NEW - shims/ に shim を置…

"clenv" というシェルスクリプトのパッケージ管理ツールのようなものを作った

主に先月、開発していました。 いまバージョンは 0.1.12 です。 最近、久しぶりにやりかけだった機能拡張を進めようかと思ったのですが、拡張した機能を今後、自分自身でもあまり使うイメージが持てなくて、現状をひとまずこの記事にまとめておくことにしま…

アラートをまとめるシステム "poloxy" の v0.2 をリリースしました

前回の記事で紹介した poloxy をその後リリースして、本稿の執筆時点で v0.2.1 までバージョンが進みました。 ※5/8 v0.3.1 になったので追記しました。 目次: "poloxy" とは Motivation Current Status (※5/8 追記アリ) Milestone (余談) Another Approach …

ドキュメンテーション用の Hugo のテーマ "bootie-docs" を改善しました #gohugo

Bootie Docs はちょうど一年前ぐらいにドキュメンテーション用の静的サイトジェネレータがほしくて作った Hugo*1 の Theme (テンプレート)です。 当時の記事はこちら: Hugo で "bootie-docs" というドキュメンテーション用のテーマを作った #Hugo - weblog …

西日暮里.rb で "poloxy" というアラートシステムの話をした #ninirb

昨夜、GW 突入前に下の勉強会に参加してきました。 西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!! - 西日暮里.rb | Doorkeeper poloxy は未完成なのですが、"pool" + "proxy" の造語で、通知の送信者と受信者の間で動いて、流量をコントロールしたりし…

find ... xargs ~ のラッパーを2つ書いたけど ag に移行していこうと思う

自分がよく使うコマンドを、自分が使いやすいオプション付きでラッパー化しました。 自分はこれまで ag(the silver searcher) をほとんど使っていなかった *1 ので、いつもこんなコマンドを叩いていました。 …が、このエントリを書くにあたって改めて調べた…

"shove" というシェルスクリプト用のテストツールを作った

CONTENTS: "shove" とは Motivation こんなツールにしたい 使い方について 中で何をやっているのか おわりに "shove" とは こちらです。 github.com 動作イメージとしては README.md にも貼っているスクリーンショットがわかりやすいと思うので、こちらにも…

Bash で pathctl という PATH 操作ツールと bb という簡易ベンチマークツールを書いた

小さな Bash のスクリプトを2つ書いたという小ネタです。 使い方 1. pathctl 環境変数に対する push, pop, shift, unshift 操作を提供します。 #!bash source pathctl.shrc pathctl_push /path/to/your-bin # 末尾に追加 pathctl_unshift /path/to/your-bin …

Git のリポジトリを1コマンドで統合できるシェルスクリプトを書いた

気づいたら GitHub にリポジトリが40個以上ありました。 古いものは作りかけだったり、実験して後に放置したものなどがいろいろありました。*1 そのままでも特に困ることはなく、これまで気にすることはなかったのですが、最近ときどき邪魔だなと思うことが…

DateTime::Format::Strptime にパッチを送った話 #Perl

CPAN モジュールの DateTime::Format::Strptime は DateTime と同じ Dave Rolsky さんが開発しているもので、日付時刻を含む文字列のパースによく使われているのではないかと思います。 このモジュールの挙動が v1.58 から変わっていました。 #!perl use fea…

Ruby コード中の "=" や "=>" を整列してくれる "ruby-align" というツールを作った

こちらになります。 github.com 使い方・動作例 ruby-align [-f] ファイル で結果を標準出力に吐きます。 README には vim の設定例を書いてますが、エディタから呼んでその場でコード整形すると捗るかと。 動作例としては、README に挙げたものをこちらにも…

memcached-cli の v0.9.4 までの追加機能の紹介

3/24 の記事で、最近作った memcached-cli というツールの紹介をしました。 keyamb.hatenablog.com 別に困ってはいないのですが、もっと便利にしたので、Changes から抜粋して追加機能を紹介しておきます。 昨日か一昨日に手元に入れて試してみた、という方…

Memcached に対話的にコマンドを実行できる "memcached-cli" を作った

Redis*1 には redis-cli というツールがあって、Redis サーバに接続して対話的にコマンドを発行して、結果を得ることができます。 Memcached*2 の場合、いい感じに使えるツールがなくて*3、必要なときはいつも TELNET でつないでコマンドを実行していました…

Consul クラスタ上で動作する S3 非依存の pull 型デプロイツール "fireap" を作った

github.com fireap = fire + reap です。 Consul Event を発火(fire)して、受信側でそれを収穫(reap)する、という意で。 読み方は「ファイリープ」で良いかと思ってます。 どんなツール? GitHub に上げた README.md より、かいつまんで日本語に変換しつつ説…

git push する前に stash して pull --rebase してくれるシェルスクリプト書いた

git push しようとして陥りがちなパターン: remote branch が更新されてて push がこける local 差分があるため git pull --rebase できない こういうケースでイライラしないために、 git stash && git pull --rebase && git push && git stash pop みたいな…

シンプルな分散ジョブスケジューラを作ってみた #appkoyomi

key-amb/perl5-App-Koyomigithub.com 掲題の通り、軽量動作する分散ジョブスケジューラを作ってみました。 名前は Koyomi としました。 Perl で書きました。CPAN にもアップしています。*1 Motivation 出発点となった課題感としては、だいたい cron の冗長化…

vboxss に Contribute して Multi-VM 環境に対応しました

VirtualBox の Snapshot 管理をかんたんにしてくれる vboxss というツールがあります。 VirtualBox の vboxmanage コマンドをいい感じにラップして実行してくれる Go 言語製のツールです。 最近、Mac のローカル環境で Vagrant + VirtualBox を使って VM に…

Hugo で "bootie-docs" というドキュメンテーション用のテーマを作った #Hugo

※2016/4/6 記事更新 こちらです。 Hugo Themes Site にも Pull Request を送って、入れてもらっています。 Motivation 以前に Markdown によるドキュメント管理について、記事を書きました。 Markdown による中規模ドキュメンテーションシステムについて調べ…

Released Perl5 AWS::CLI::Config

Sometimes I wanted to access the configuration information of AWS CLI in Perl. So I've created a perl module -- AWS::CLI::Config. It's available in CPAN. There has already been nice module Net::Amazon::Config which fetches info from ~/.ama…

LTSV なログをコマンドラインでさくっと吐くやつ作った

GitHub - key-amb/bash-logltsv: A Handy CLI to print LTSV logs いざ手元でやろうとすると date コマンドのオプションを調べたりするのが面倒だったので、書いた。 使い方はこんな感じ: $ logltsv key1:value1 key2:value2 [...] time:2014-12-10T20:55:11…

Text::LTSV::Liner 書いてみた。

LTSVのPerlのパーサをCPANで探していたら、Text::LTSVとApp::YGが見つかったけど、どちらも次のような感じで複数行に分けて表示してくれるものっぽかった。 $ cat sample.ltsv | ltsview -k id,name --- id:001 name:taro --- id:002 name:jiro --- :ログと…