ja_JP.UTF-8ロケールを指定したPostgreSQL Dockerコンテナを作る

Docker for Mac で 日本語locale設定を含む PostgreSQL を構築 - Qiita を参考にした。

要点

DockerHubで配布されているPostgreSQLコミュニティ公式のDockerイメージでは、日本語ロケールが有効になってない。よって、有効化したイメージを作成(ビルド)する。

イメージの作成

ここでは、公式のPostgreSQL 9.6.1イメージをベースとして、9.6.1_jaという名前のイメージを作成する。

  1. 任意の空ディレクトリを作る。以後、このディレクトリ内で作業する。
  2. 次の通りDockerfileを作成する。

     FROM postgres:9.6.1
     RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
     ENV LANG ja_JP.utf8
    
  3. ビルドする。

     docker build -t postgres:9.6.1_ja .
    

コンテナの起動

initdbの引数を指定してコンテナを起動する。--nameは自分の管理しやすい名称にする(つけなくても良い)。

docker run --name xxxxxxxx -d -p 5432:5432 -e POSTGRES_INITDB_ARGS="--encoding=UTF-8 --locale=ja_JP.UTF-8" postgres:9.6.1_ja

2019-10-03 追記

どうやらPostgreSQL 10.xのコンテナイメージでは、POSTGRES_INITDB_ARGS の指定が不要になったっぽい。localedef と 環境変数の設定は引き続き必要。

IntelliJ IDEA 2016.2でEclipse Compiler for Java(ECJ) + Lombokを有効にする

この問題に対応してる時にやり方を覚えた副産物。

terurou.hateblo.jp

javacからECJにするとコンパイルが速くなるっぽいのと、いろいろ警告を出してくれるようになる。ただ、ECJとjavacは挙動が違うので、注意は必要。

前提

  • Lombok Plugin インストール済み

ECJへの切り替え方

  1. Build, Execution, Development > Compiler > Java CompilerUse compilerEclipse にする。 f:id:terurou:20161114003547p:plain

  2. Build, Execution, Development > Compiler > Annotation ProcessorsEnable annotation processing を有効にする。 f:id:terurou:20161114003557p:plain

  3. Build, Execution, Development > CompilerShared build process VM options:-javaagent:lombok.jar を設定する。(lombok.jarはフルパスで指定) f:id:terurou:20161114003608p:plain

効果

  • 設定前(javac):Compilation completed successfully in 37s 546ms
  • 設定後(ECJ):Compilation completed successfully with 723 warnings in 31s 306ms

自動生成したコードがwarning出しまくっているが、まぁ速くなったっぽい

参考ページ

IntelliJ IDEAでGradleプロジェクトをインポートしたときにクラスパスが反映されない問題へのワークアラウンド

GradleでSpring BootやらLombokやらを組み合わせたマルチプロジェクトを作っていて、なぜかIntelliJ IDEA側にclasspathがうまいこと反映されない問題が生じていた(Gradle上でのビルドは通るが、IntelliJ IDEA上ではコンパイルエラーと出る)。

都度、IDEからadd classpathをすれば動いてはいたのだけど、ビルドスクリプトを弄るたびにclasspathがぶっ壊れて、手動操作が必要になるのはだるいので、解決策を探して色々試したところ、以下で行けた。

// IntelliJ IDEA用のワークアラウンド
// dependencies編集後にIntelliJ IDEA上のみでコンパイルエラーが生じる場合は、providedを追記してください
apply plugin: 'idea'

configurations {
    provided
}

dependencies {
    provided "org.projectlombok:lombok:1.16.10"
    provided "org.slf4j:slf4j-api:1.7.21"
    provided "org.springframework:spring-beans:4.3.3.RELEASE"
    provided "org.springframework:spring-context:4.3.3.RELEASE"
}

idea {
    module {
        scopes.PROVIDED.plus += [configurations.provided]
    }
}

参考ページ

システム全体のキャプチャを無効化してFiddlerを起動する

起動するたびにF12を押すのもだるいのでやり方を定期的に探してたのだけど、やっと見つけた。

コマンドラインオプションに -noattach をつけるか、Tools > Fiddler OptionsConnections > Act as system proxy on startup をOFFにする。

stackoverflow.com

f:id:terurou:20161002170814p:plain

会社で営業用ポロシャツ作った

6月ぐらいにはできていたんですが、なんだか忙しい状況が続いていて、やっとブログに書いている次第。

実物イメージ

表面 f:id:terurou:20160516170758j:plain

裏面 f:id:terurou:20160516170903j:plain

出来栄えは満足です。展示会に出展しとるときは、これを着てる。

発注情報

オリジナルTシャツ 作成が早い【即日】|タカハマライフアート

  • ドライライトポロシャツ(ターコイズ
    • M5枚、L5枚(1,750円×10枚)
  • プリント代
    • 2,450円×10枚
  • 計 36,200円

de:code 2016で気になったポイント

全体的な感想

  • ナデラ来た、ナデラ以外にも本社の人間たくさんきた。ここ数年で考えたら偉いパワーが入ってる感じをすごく受ける。
  • 基調講演ではConversation (as a Platform)、BOT、DevOpsが特に押されていた印象。
  • イベント全体ではDevOpsの印象が強かった(牛尾さんパワーと豪華メンバーを連れてきたというのがある)
  • 一方でIoTの印象が弱かった。ロボティクス自体はそれなりに印象があるんだけど。ただし、これはバイアスがかかってるかも。
  • UWP, Azure, Office365は相変わらず。Xamarinは勢いを感じた。
  • 富士通がスポンサーから消えて、日系メーカーは全滅になった。メジャーなPCメーカーはDELLぐらい。
    • 一方で同日開催のJava Day Tokyo 2016にはNEC、日立、富士通がスポンサーやってるのはなんというか。

その他、個人レベルの感想

  • 分散システムとか触ってる人間としては、Contractの勉強しないといけない気分になった
  • 荒井さんマジ荒井さん