HTTP サーバが TLS1 に対応しているかどうかを確認するコマンド

$ openssl s_client -connect ホスト名:443 -tls1 < /dev/null

-tls1 オプションは TLSv1 指定で接続する。 -tls1-tls1_1-tls1_2 にするとそれぞれのバージョンで接続チェックができる。

サーバが対応してない場合は以下のようなエラーメッセージが出力される。

CONNECTED(00000005)
write:errno=54
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---

git rebase --onto

ブランチで開発してるとどうしても必要な場面が出てくるので覚えた。

こんな状況。 f:id:suer:20190606213558p:plain

  1. コミット C からブランチして i, ii, iii と開発を進めた。
  2. iii からそれを前提とするブランチをつくって 1, 2, 3 と開発を進めた。
  3. iii を master にマージしたかったが修正が入り iv をコミットしてから master にマージした

この状況で branch_b を master の先端(Z) にリベースしたいが、 i、 ii、 iii はすでに master に入っているので iii の後の 1, 2, 3 だけを rebase したい。

少しなら 1 2 3 を一つづつ cherry-pick してもそんなに苦ではない。 (cherry-pick コミットID..コミットID で一気にやることもできる)

f:id:suer:20190606213836p:plain

cherry-pick の場合は一度作業用のブランチを作ったりして進めないといけなかったりして少々面倒になってきたので git rebase --onto を覚えた。

こんな感じ。

$ git rebase --onto (移動先のベースとなるコミット) \
  (移動するコミット列のベースのコミット) (移動するブランチ)

最初の絵の状況なら

  • 移動先のベースとなるコミット = Z
  • 移動するコミット列のベースのコミット = iii
  • 移動するブランチ = branch_b

なので

$ git rebase --onto Z iii branch_b

f:id:suer:20190606214426p:plain

また、最初の絵の場合 master が Z を指しているので以下でもできる。

$ git rebase --onto master iii branch_b

はてなダイアリーの記事を移行した

はてなダイアリー終了の際、すべての投稿データをはてなブログに自動移行します - はてなダイアリー日記

ということではてなダイアリー http://d.hatena.ne.jp/suer の記事をこのブログに移行した。 (既にリダイレクト設定したので、上記 URL はもうこのブログに飛ばされるけど)

最近書いてないけど。

Line Notify する Google Apps Script

var token = PropertiesService.getScriptProperties().getProperty("LINE_TOKEN");

function main(){
  var message = "お知らせ";
  notify(message);
}

function notify(message){
  var options = {
                  "method"  : "post",
                  "payload" : "message=" + message,
                  "headers" : {"Authorization" : "Bearer "+ token}
                };
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

Line Nofify の Access Token は
File メニュー > Project Properties > Script Properties タブ
LINE_TOKEN を追加して設定する。

f:id:suer:20180210143623p:plain

参考

Google Apps ScriptからLINE NotifyでLINEにメッセージを送る - Qiita

Redmine Bitbucket Hook プラグインを fork して最新の Redmine で使えるようにした

Bitbucket に push したコミットを Redmineリポジトリに取り込むプラグイン redmine_bitbucketgit_hook が Rails4 ベースの Redmine と最新の Bitbucket に対応していなかったので対応した。

変更点

Rails 4 に対応

Rails 4 ベースの Redmine で動くように変更した。

Bitbucket の Webhook 設定に対応

Bitbucket では従来 Services という設定で他のアプリとの連携を行っていたが、ある時期から Webhooks という設定に変更になった。
この新しい設定に対応した。

git コマンドを Redmine の設定から取得できるように変更

もとの redmine_bitbucketgit_hook では git のコマンドにパスが通っている必要があった。
この修正では config/configuration.yml で git のパスが設定されている場合に、その設定を使うように変更した。

インストール

1. 以下を実行

$ cd $RAILS_ROOT/plugins
$ git clone https://github.com/suer/redmine_bitbucketgit_hook.git
$ bundle install

上記を実行して Redmine の再起動

使い方

管理 > プラグイン > redmine_bitbucketgit_hook の「設定」で Bitbucket から clone する先のディレクトリを指定する。(1度だけ)

リポジトリの設定で Bitbucket のリポジトリ URL を指定する。

作成ボタンをクリックすると、またリポジトリの設定画面が表示されるが、ローカルのディレクトリパスに変換されているので、もう一度このまま作成ボタンをクリックする。

Bitbucket 側では Webhooks の設定を行う。
URL には https://{Redmine の Root}/bitbucketgit_hook を指定する

以上の設定により、

  1. Bitbucket に push
  2. Bitbucket が https://{Redmine の Root}/bitbucketgit_hook にアクセス
  3. Redmine が Bitbucket からもらった JSON を見て Bitbucket から fetch

という動きとなり、自動的に同期される。

Excel から Markdownのテーブル形式で簡単に貼り付けられる Redmine プラグインを作った

誰でも簡単にテーブルが書けるように Excel からコピペでできるプラグインを作った。
元ネタは ReleaseNotes/2017/02/03/Excel等から簡単に表を貼り付けられるようになりました - docs.esa.io から。

仕事に使っている Redmine に導入したら評判がよく、たくさんテーブルを書いてくれるようになった。

この記事を書くにあたって macOS の Numbers にも対応した。

環境

Redmine 3.0 以降

インストール

1. 以下のようにプラグインをインストールする。

$ cd $RAILS_ROOT/plugins
$ git clone https://github.com/suer/redmine_paste_as_markdown_tables.git
$ cd $RAILS_ROOT
$ bundle install

2. Redmine を再起動

機能

Excel や Numbers で表を作ってコピーして、

Redmine のチケットに貼り付けると Markdown のテーブルにしてくれる。