2017-01-01から1年間の記事一覧

reverse-proxyとforward-proxy

proxyって仲介屋さんくらいにしか認識してなくて、reverse-proxyとforward-proxyの理解があやふやだった。 少し理解できた気がするのでまとめておく。 forward-proxy クライアントが経由地として「意識する」Proxyがforward-proxy。 一般的にはただのProxyと…

SpringBootを環境毎にいい感じに起動する #SpringBoot

Intro SpringBootは設定をapplication.yml(properties)で管理するが、システムプロパティやコマンドライン引数で上書きすることができる。 もちろんprofileを用意して切り替える形でも良いと思うんだけど、環境依存系の設定の場合、環境変数を利用するなどし…

Maven Assembly Pluginを使って、特定のリソースをjar形式で配布する #Maven

概要 DDLなどのリソースがアプリケーションとリポジトリ(プロダクト)が別で管理されている場合に、別プロジェクトからそのリソースを参照したい場合があると思います。 例えば、UnitTest等の利用等が考えられます。 二重管理を避けるために、jar形式でリソ…

「採用基準」を読んだ

採用基準作者: 伊賀泰代出版社/メーカー: ダイヤモンド社発売日: 2012/11/09メディア: 単行本(ソフトカバー)購入: 24人 クリック: 392回この商品を含むブログ (63件) を見る 上司のすすめで読んでみた。 リーダーシップ論とかそういう類のものになるだろう…

CircleCI2.0で別コンテナのMySQLを使ったJavaアプリのCIを行う #CIrcleCI #docker

CircleCIは2.0は、docker imageベースになった。 JavaアプリをCIするときはCircleCIのJava用imageを使えばいいんだけど、テスト用DBとしてMySQLのコンテナを一緒に使うようにしてみた。 1.0のときはそのままMySQL使えたんだけどね。 config.yml 最終的にはこ…

「最短で達成する 全体最適のプロジェクトマネジメント」を読んだ

最短で達成する 全体最適のプロジェクトマネジメント作者: 岸良裕司出版社/メーカー: KADOKAWA/中経出版発売日: 2011/02/23メディア: 単行本この商品を含むブログを見る 上司の薦めで読んでみた。 プロジェクトマネジメントの本は久しぶり。 TOCを分かりやす…

IntelliJ IDEAでマルチスレッドのデバッグをする #IntelliJ #idea

IDEAはスレッド単位でのデバッグできる。 Breakpoint optionsでThreadを選択するだけ。 素晴らしい。便利。 Breakpoints - Help | IntelliJ IDEA 参考 stackoverflow.com

CircleCIでbatsによるbashのテストがエラー #Bash #CircleCI

概要 CircleCIでbatsによるBashのテストをしてたんだけど、特に改修していないのにCIがコケるようになってしまった。 どうもbatsがtputなるコマンドを使っているようで、 tput は $TERM という環境変数が必要なようだ。 CircleCIの使ってるビルド環境から $T…

JJUGで発表してきました #jjug_ccc #ccc_l1

JJUGで「SpringBootとMyBatisでデータベースを可視化する」というテーマで発表してきました。 speakerdeck.com CfPの書き方教えてくれたり、発表資料レビューしてくれた同僚たちには感謝しかない。 朝イチ・冬将軍・雨模様で果たして聞きに来てくれる人いる…

mysqlコマンドのエラー出力をログに吐く #mysql

mysqlコマンドは問題発生時はエラー出力にメッセージを吐くので、標準エラーをファイルにリダイレクトしてやればよい。 mysql -u root sample_db < test.sql >> result.log 2>> error.log この場合だと、test.sqlを実行した結果、result.logに標準出力が、er…

gitでremoteに同名のtagがいる場合、 fetchにtagsオプションが必要 #git

Git

概要 tagの向き先が意図しないコミットハッシュになっていて、調査したらローカルに同名のtagが存在していたのが原因だった。 詳細 tagの向き先を切り替える場合には、fetchしてからtagにチェックアウトするようにしていた。 $ git fetch $ git checkout v2.…

MavenでWebDriverの管理にはwebdriverextensionsが便利そう #geb #e2e

Geb

概要 Gebを使ったE2Eテストに挑戦しているのだけれど、WebDriverの管理にはwebdriverextensionsが便利そう。 Mavenプラグインが提供されているので、ドライバーを都度インストールしたり、バイナリファイルをプロジェクトで管理しなくて済むようになる。 git…

BATSでbashスクリプトのテストをする #bats #bash

概要 bashスクリプトのテストコードを書く方法がないか調べていたら、BATSというのが見つかって中々よかった。 github.com 下記の記事を鵜呑みにして試してみてたのだけれど、sstephensonが有名人であることが上司からの突っ込みで発覚した。 (GitHubちゃん…

RSpecよりMiniTestの方が好きだと思ったのはなんでか考えてみた

最近、社内でモブプロの交流会等で、RSpecとMiniTest両方を触る機会があった。 どちらもガッツリ触ったわけではないのだけれど、直感的にMiniTestの方が好きだなぁと感じて、なんでかなぁって考えてみた。 RSpecはこんな感じ。 RSpec.describe Order do it "…

TDDBC Tokyo 2017-09に参加してきた #tddbc

TDDBC Tokyo 2017-09に参加してきた。 レポートというより、感じたことや考えたことなど。 tddbc.connpass.com 当日の流れ 基調講演 ペアプロデモ ペア決め&ランチ ペアプロしつつ合間に成果発表的なコードレビュー 懇親会 基調講演 TDDはじめて物語 Second…

MySQLのConnector/J (JDBC)のconnectTimeoutとsocketTimeout #MySQL

MySQLのConnector/J (JDBC)にはconnectTimeoutとsocketTimeoutのパラメータがあり、JDBCの接続文字列に追加することで設定できる。 MySQL :: MySQL Connector/J 5.1 Developer Guide :: 5.1 Driver/Datasource Class Names, URL Syntax and Configuration Pr…

mysqlのdockerイメージを使ってみた #MySQL #docker

概要 DockerHubにあるMySQLの公式イメージを使ってみた。 ※Docker for Mac使用 https://hub.docker.com/_/mysql/ イメージを持ってくる 5.6のイメージを使ってみることにする。 $ docker pull mysql:5.6 ダウンロードを確認 $ docker images 起動する とりあ…

Macにdelveを導入する #golang

goのデバッグができるというdelveの導入を試みる。 基本こいつにしたがってやってみた。 github.com brewしてみる $ brew install go-delve/delve/delve キーチェインに証明書を追加 こちらを参考に。 github.com dlv-cert.cfg を作成 [ req ] default_bits …

JJUG CCC 2017 Fall CfPに応募してみた #jjug_ccc

初心者枠があったので、ダメ元で応募してみた。 JJUG CCC 2017 Fall CfP 募集開始しました | 日本Javaユーザーグループ 参考にしたもの CfPどうやって書くのがいいかな、って思ってたら同僚が色々教えてくれた。 その中でも特に参考になったもの。 blog.buil…

SpringBoot+MyBatisでRDBMS毎にSQLを切り替える #mybatis

概要 RDBMS毎(例えばMySQLとPostgreSQL)で同じ目的のSQLでも構文に違いがあったりする。 MyBatisでは VendorDatabaseIdProvider を使うと、接続先のDBによって発行するSQLを切り替えることができる。 SpringBootで利用する方法についてまとめる。 VendorDa…

PostgreSQLでコマンドラインからSQLファイルを実行する

概要 PostgreSQLでコマンドラインから、特定のスキーマに対してSQLを発行する方法 準備 psql postgres 等で適当なデータベースに入ってroleの作成 create role commander with login; コマンドラインからデータベースの作成 $ createdb --owner commander co…

Goでコマンドラインオプションを受け取る

概要 Golangでコマンドラインオプションを受け取る方法。 go-sample というプログラムがあった場合に、 go-sample -hoge="bbb" と実行して、 bbb を受け取る。 手順 flagパッケージをimportします。 import ( "flag" ) flag変数(コマンドラインオプションを…

社内でモブプログラミング交流会を開催しました #MobProgramming

モブプロをもっとみんなで楽しみたい!の思いから社内でモブプロでの交流会開催しました。 業務後に希望者で集まって、軽くお酒とお菓子も用意して、ゆるーく楽しめる会を目指しました。 開催にあたって、以前参加させていただいた Mob Programming Val を参…

GO言語でHello Worldしてみた #golang

Macで Hello golang してみた。 インストール brew install go bash_profileの編集 export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin 追記して source する。 ワークスペースの作成 mkdir $HOME/go mkdir -p $GOPATH/src/github.com/su-kun1899 プロジ…

Visual Studio Codeの設定をいじってみた

Qiitaの記事を参考に修正してみた。 qiita.com 一部上記の記事では古くなっている設定項目もあったが、設定画面で丁寧に説明が書いてあるので特に困らなかった。 最終的に出来上がったのがこちら。 { // フォントファミリー(お好みで) "editor.fontFamily": …

RabbitMQをMacにインストールしてみた

Homebrewでインストール brew install rabbitmq 起動 /usr/local/sbin/rabbitmq-server detachedを付けるとバックグラウンド実行らしいが、何か警告が出る。 $ /usr/local/sbin/rabbitmq-server -detached Warning: PID file not written; -detached was pas…

ls がどうにもこうにも帰ってこないとき

サーバで、このディレクトリ何だろ?と思って ls を打ってみたけど、待てど暮せど帰ってこない。 どうやら大量にファイルがあるみたい。 それでも見たい、そんなとき。 -U オプションを使う lsはソートをしてろい、ソートに時間がかかっているらしい。 -U を…

spring-security-testを使おう

Spring Securityを使ってるSpring BootのWebアプリでテストを書く時に、認証自体をテストしたいのでなければ spring-security-test で認証情報を簡単にMockできる。 pom.xml spring-security-test を dependency に追加する <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin</artifactid></dependency>…

「Global Scrum Gathering参加報告会&Hunter Industries社の見学報告会」に参加してきた #ScrumTokyo

www.eventbrite.com 「Global Scrum Gathering参加報告会&Hunter Industries社の見学報告会」に参加してきた。 内容は下記の3つ。 Global SCRUM GATHERING San Diego 2017への参加報告 Hunter Industries社への訪問リポート Global SCRUM GATHERING® Singa…

spring-bootアプリをherokuにデプロイする #heroku #SpringBoot

前提 herokuのアカウントは作成済 SpringBoot単独で起動可能にしている(外部DB等を必要としない) git管理されている heroku CLIのインストール Macだとhomebrew。 brew install heroku Heroku CLI | Heroku Dev Center Procfileの作成 プロジェクト直下に …