妻を愛してる IT エンジニアの件

【その2】妻・夫を愛してるITエンジニア Advent Calendar 2016 - Adventar の5日目です。枠が空いてたので書きます!

結婚してもうすぐ6年になります。その間、2人の子供に恵まれました。夫婦の仲は以前と変わらずまだまだアツアツです。ぐへへ。

妻もITエンジニアをやっています。というか同じ会社の同期です。ただ、同じ会社と言っても部署は違うためやっている仕事は全然違います。私は Web アプリ開発がメインですが、妻は BI やデータ解析などをやっています。なので、仕事の悩みがイマイチ共有できないことがあります。(お互いにアドバイスくらいはできるけど)

あと、保育園では何かと資料作りが必要になることがあり、妻は日頃鍛えた Excel 力を発揮しています。

同じ業界にいることもあり、プロジェクトが炎上して帰りが遅くなったり休出になってもいろいろ察して理解してくれるので助かります。逆に、時短勤務である妻の仕事が忙しかったりミーティングや飲み会に参加するようなときには私が保育園の送迎をやったりします。

共働きなのでお互い助け合ってバランスを取ることが大事です。もちろん家事は分担します。家事は「手伝うもの」ではなく「分担するもの」です。

kntmr.hatenablog.com

妻はあまり勉強会やセミナーに行くことはないのですが、私が平日の夜や休日に勉強会に行きたいときは、基本的に OK してくれます。ただし、保育園の行事などが重なる場合にはそちらを優先します。なので、勉強会の資料をあとから公開していただけるのはとても助かります...!ありがたい。

価値観の違いが夫婦仲の問題になる話をしばしば聞きます。私は、価値観 ≒ 個性 と捉えているため、そこは違っていて当たり前と考えています。価値観が違うからと言ってパートナーとすれ違うのはとても勿体ないことです。長い時間をともに過ごすわけなので、お互いに認め合って譲り合って、楽しく充実した時間を過ごしたいものです。

しかし、妻はよくこんな自分と結婚したなぁと、ふと思うことがあります。そんな妻に圧倒的感謝🙏ぐへへ。

TortoiseSVN で Compare revisions するときはリビジョンの選択範囲に注意する

自戒を込めて。

例えば、r123 ~ r130 でコミットしたファイルを抽出する場合。
単純にヒストリーの r123 ~ r130 を範囲選択して Compare revisions すると、r123 でコミットしたファイルは含まれない。(当然と言えば当然...)

あるリビジョンの差分ファイルを取得する場合は『目的のリビジョン』と『1つ前のリビジョン』を選択する。

したがって、r123 でコミットしたファイルを含める場合は r122 から選択して Compare revisions すること。

Spring Day 2016 に行ってきた

Spring Day 2016 に行ってきました。簡単に所感をまとめます。
いくつかの資料は公式サイトで公開されています。

springday2016.springframework.jp

  • Spring 5.0 では JUnit 5 が標準になる模様
    • JUnit 4 ⇔ 5 は少しギャップがある気がするので個人的には気になるところ
  • Reactive (Mono/Flux)
  • フレームワーク移行 (Struts/Seasar -> Spring)
    • 現行システムの品質(実装ポリシー)で苦労するケースが多い印象
    • 何かしらのポリシーに従っていれば、(部分的にでも)自動化できるかもしれない
    • 開発当初にアーキテクチャや実装ポリシーを固めることが重要か
    • 特に Spring はレイヤ構成でアーキテクチャを統一しやすい (@Controller, @Service, @Repository)
  • Spring Boot は Microservice やスケールアウトが必要なシステムに適している
    • サービスをどう分割するか、冗長なAPIをどう再構成するか
    • RESTful API 開発における API ドキュメントの自動生成
      • Spring REST Docs, Springfox, Swagger
    • 各サービスのプロパティ管理やログ収集の話など
      • Spring Cloud Config, Logstash, Elasticsearch, Kibana, ...
    • spring-boot-starter-cache
  • Spring Initializr カスタマイズ
    • メンバーの開発環境が簡単に構築できてよさそう

個人的にはフレームワーク移行について各社の事例が聞けて参考になりました。アーキテクチャを考えるときにレイヤを意識することが大事だなと。
あと、ドキュメント自動生成。Swagger はちょっと取っ付き難いイメージがあるんですが、その点、Spring REST Docs は手軽でよさそうな気がします。

djUnit を Eclipse 4.5 (mars) と Maven2 で使えるようにする

djUnit 自体、2011年頃から更新されていないため、もはや需要がないかもしれませんが、必要に迫られて調べました。

Eclipse 4.5 (mars)

Eclipse 4.x 以降ではプラグインの仕組みが変更されているようで、古い形式のプラグインが動作しません。よって、古い形式のプラグインを動作させるための Eclipse プラグインをインストールする必要があります。

  1. Help > Install New Software…
  2. リポジトリhttp://download.eclipse.org/eclipse/updates/4.5 を追加
  3. Eclipse Tests, Tools, Examples, and Extras
    Eclipse 2.0 Style Plugin Support をチェックしてインストール

djUnit プラグインをインストール。

  1. ダウンロードサイト から jp.co.dgic.eclipse.jdt.djunit_3.5.x_0.8.6.zip をダウンロード
  2. 展開して作成されたフォルダを Eclipse の plugins フォルダにコピー
  3. plugin.xml の plugin > requires に記載されている
    <import plugin="org.eclipse.core.boot"/>コメントアウト

Maven2

pom.xmlJUnit, djUnit, asm, oro の依存関係を追加。(詳細は省略)

ここでは Maven Surefire Plugin を使用します。pom.xml に以下の設定を追加。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <argLine>-Djava.system.class.loader=jp.co.dgic.testing.common.DJUnitClassLoader -Djp.co.dgic.eclipse.virtualmock.usevirtualmock=true -Djp.co.dgic.eclipse.coverage.usecoverage=false -Djp.co.dgic.eclipse.project.source.dir=${project.build.sourceDirectory}</argLine>
      </configuration>
    </plugin>
  </plugins>
</build>

とりあえず、手元の環境で $ mvn test してテストがパスするようになりました。

余談

テストコードから getClass().getResource(fileName) でファイルを読み込む場合、テストクラスと同じ階層にファイルを配置すると Maven2 からテストを実行した際に正常に読み込まれません。src/main/resources 下に同様のパッケージ階層を作成してファイルを配置する必要があります。
または、ClassLoader.getSystemResourceAsStream("foo/bar/filename") でパッケージを指定してファイルを読み込みます。

iOS 10 で勝手にスリープ解除されるのをやめる

iOS 10 にしてから iPhone を自分の方に向けるだけでスリープが解除されるようになったようです。

便利と言えば便利なんですが、例えば手に持ってる iPhone をポケットに入れようとしただけで、iPhone が反応してスリープ解除されちゃうのがちょっと煩わしいんですね。

この設定を OFF にする方法。

  1. 設定 > 画面表示と明るさ
  2. 手前に傾けてスリープ解除をOFF

以上です。

余談

iOS 10 にしてから 3D Touch の反応がイマイチな気がする...。

ちなみに 3D Touch は、

で感度を調整できます。