2017年6月27日火曜日
2017年6月19日月曜日
[Visual Studio 2017] インデント問題を解決する? .editorconfig を使ってみた
Visual Studio 2017 からプラグインインストール不要で EditorConfig が使えるようになったので、遅ればせながら使ってみました。
2017 のリリース直後に試して、ブログにしようと思ってましたが、なんだかんだでこの時期になってしまいました。
なので、特に"これ"という情報はありません(;´・ω・)。が、editorconfig 便利だなーということだけ紹介します。

チーム内のスタイル統一が容易になるのもメリットですが、個人的には1つのエディタでプロジェクトごとの設定を意識せずにコーディングできるとこが便利だなーと思いました。
Visual Studio の場合ですと、インデントの設定はグローバルに1つだけなので、タブ派なプロジェクトとスペース派なプロジェクトを跨いで作業するのは大変でした。
これが、Visual Studio 2017 から EditorConfig が使えるようになったので、とっても捗ります!
(※ 2017 以前でも拡張機能をインストールすることで使用できます)
これをルートディレクトリに配置するだけで、Visual Studio が自動的に設定を読み込んで、インデントなど指定した通りに編集できるようになります。
https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
editorconfig、本当に便利なんで、会社でもリポジトリに突っ込んでいこうと思いました。
今回は以上です。ではでは。
2017 のリリース直後に試して、ブログにしようと思ってましたが、なんだかんだでこの時期になってしまいました。
なので、特に"これ"という情報はありません(;´・ω・)。が、editorconfig 便利だなーということだけ紹介します。
EditorConfig とは?
EditorConfig はインデントのタブ派 vs スペース派などのルールを書式化し、個人のエディタ設定によらず、コーディングスタイルの統一ができるようになるものです。チーム内のスタイル統一が容易になるのもメリットですが、個人的には1つのエディタでプロジェクトごとの設定を意識せずにコーディングできるとこが便利だなーと思いました。
Visual Studio の場合ですと、インデントの設定はグローバルに1つだけなので、タブ派なプロジェクトとスペース派なプロジェクトを跨いで作業するのは大変でした。
これが、Visual Studio 2017 から EditorConfig が使えるようになったので、とっても捗ります!
(※ 2017 以前でも拡張機能をインストールすることで使用できます)
iutest の .editorconfig
root = true
[*]
indent_style = space
indent_size = 4
insert_final_newline = true
[Makefile]
indent_style = tab
[*.{cpp,hpp,ipp}}
charset = utf-8-bom
[*.py]
charset = utf-8
[*.{yml,html}]
indent_size = 2これをルートディレクトリに配置するだけで、Visual Studio が自動的に設定を読み込んで、インデントなど指定した通りに編集できるようになります。
設定できる項目
公式にまとまっているので、そちらを参照してください。https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
editorconfig、本当に便利なんで、会社でもリポジトリに突っ込んでいこうと思いました。
今回は以上です。ではでは。
2017年6月12日月曜日
[Docker] docker-compose で作成されるデフォルト network でハマった備忘録
こんにちは。
「ブログズミ: [Docker] 始めてみたけど躓きまくってるので備忘録として残しておくよ」
上記記事から、一ヶ月くらい経って、docker-compose も使うようになってきました。
Docker はもとより、ネットワークとかの知識がほとんどない素人ですが、多少覚えてきました。
それにしても、docker-compose 便利ですね!
環境変数とか設定を Dockerfile から追い出せるし、--build-arg も docker-compose.yml に書けるし、
Docker ホストが起動したときに自動起動したい場合も、"restart: always" を書いとけば OK ですし、
「ブログズミ: [Windows][Docker] Host および コンテナの起動をスタートアップに登録」とか、
いらんかったわ!って感じです。
今回ハマったのはネットワーク絡み。
Dockerfile からビルドして docker run したコンテナからは通じるのに、
それを docker-compose で run すると通じない…
そんなことがありました。
こんな感じでログが出ていると思います。
Docker 管理下のネットワークは docker network ls で確認できます。
さらに、詳細を docker network inspect {ネットワーク名} で確認できます。
で、これが目的のネットワークと衝突してて通じてなかったようです。
参考:https://github.com/docker/compose/issues/2582
これで、network の subnet/gateway を指定できるので、都合の良い設定すれば解決するはずです。
また、1つ docker のことがわかった気がします。
今回は以上です。では。
「ブログズミ: [Docker] 始めてみたけど躓きまくってるので備忘録として残しておくよ」
上記記事から、一ヶ月くらい経って、docker-compose も使うようになってきました。
Docker はもとより、ネットワークとかの知識がほとんどない素人ですが、多少覚えてきました。
それにしても、docker-compose 便利ですね!
環境変数とか設定を Dockerfile から追い出せるし、--build-arg も docker-compose.yml に書けるし、
Docker ホストが起動したときに自動起動したい場合も、"restart: always" を書いとけば OK ですし、
「ブログズミ: [Windows][Docker] Host および コンテナの起動をスタートアップに登録」とか、
いらんかったわ!って感じです。
でもハマった
まぁ、でもハマりますよね。今回ハマったのはネットワーク絡み。
Dockerfile からビルドして docker run したコンテナからは通じるのに、
それを docker-compose で run すると通じない…
そんなことがありました。
docker-compose が作成する network
docker-compose run すると、{サービス名}_default という名前で network が作成されます。$ docker-compose up -d Creating network "hoge_hoge_default" with the default driver
こんな感じでログが出ていると思います。
Docker 管理下のネットワークは docker network ls で確認できます。
$ docker network ls a8c84238aaaa bridge bridge local f9b622381b6a host host local 7061554ce0f1 hoge_hoge_default bridge local f1c24d1dda82 none null local
さらに、詳細を docker network inspect {ネットワーク名} で確認できます。
$ docker network inspect hoge_hoge_default
[
{
"Name": "hubot2_bridge",
"Id": "1d3906e507b39eb08cf6d7326058eb62c447772371c4d2b692765c25778a4d11",
"Created": "2017-05-23T11:41:13.819782229Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1/16"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"72917816824f2d5fe76ba854a49766787fd1bb54928fd903d251fc9dfa5a2f69": {
"Name": "hoge_hoge_1",
"EndpointID": "219cb4cbd809b4d3d7e5f4d1118abe87fe5e4d44222ace5e6022119366827d60",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
で、これが目的のネットワークと衝突してて通じてなかったようです。
解決方法
docker-compose.yml にネットワークの設定を書き足します。参考:https://github.com/docker/compose/issues/2582
services:
hoge:
networks:
- bridge
networks:
bridge:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.238.0/24
gateway: 172.16.238.1
これで、network の subnet/gateway を指定できるので、都合の良い設定すれば解決するはずです。
また、1つ docker のことがわかった気がします。
今回は以上です。では。
2017年6月5日月曜日
Wandbox のコンパイラー追加を通知する環境を作った
Wandbox で対応コンパイラーが増えたら、自分宛てにツイートしてくれる環境を作りました。

ソースコードをみていただければ、どんなことやっているかはわかると思います。
特に難しいことはしてなくて、Wandbox API で取ってきたリストを成果物として保存して、前回との差分があれば Webhook を投げます。
あとは、Zapier で Webhook を受け取ってツイートするだけです。
あとは、Notification でカスタム json を作るのに、ちょっと手間取りました。
デフォルトで送ると Zapier で message を取るのがめんどくさかった(というか、うまくできない?)ので、カスタムで送るようにしてます。
url が secure 指定できなかったので、Web UI 設定にしてますが、appveyor.yml にコメントで書いてあるので参考にしてください。
では。
※更新なしが FAIL 更新ありが PASS になっているが、どちらも PASS にできるならしたい。
※Webhook を発行するトリガーとして、ステータスを利用しているため。
※最初は逆だったが、成果物取得で落ちてくるのが lastSuccessBuild のものだったため、更新があったときを PASS にしている。
※Zapier で tweet する際に改行がスペースに置換されてしまっている。
※改行のまま tweet したい。
@srz_zumix [NEW!] C: gcc-7.1.0-c, C++: gcc-7.1.0, C++: zapcc-1.0.1 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ https://t.co/9GNf3KoflL
— ずみっくす (@srz_zumix) 2017年5月30日
構成
Appveyor + Zapier
概要
https://github.com/srz-zumix/wandbox-newsソースコードをみていただければ、どんなことやっているかはわかると思います。
特に難しいことはしてなくて、Wandbox API で取ってきたリストを成果物として保存して、前回との差分があれば Webhook を投げます。
あとは、Zapier で Webhook を受け取ってツイートするだけです。
その他
最初は、Google App Engine とか Circle CI とか使おうと思ってましたが、定期ビルド、Webhook Notification、成果物の保存・取得ができる Appveyor に落ち着きました。あとは、Notification でカスタム json を作るのに、ちょっと手間取りました。
デフォルトで送ると Zapier で message を取るのがめんどくさかった(というか、うまくできない?)ので、カスタムで送るようにしてます。
url が secure 指定できなかったので、Web UI 設定にしてますが、appveyor.yml にコメントで書いてあるので参考にしてください。
では。
※更新なしが FAIL 更新ありが PASS になっているが、どちらも PASS にできるならしたい。
※Webhook を発行するトリガーとして、ステータスを利用しているため。
※最初は逆だったが、成果物取得で落ちてくるのが lastSuccessBuild のものだったため、更新があったときを PASS にしている。
※Zapier で tweet する際に改行がスペースに置換されてしまっている。
※改行のまま tweet したい。
登録:
コメント (Atom)