maven releaseする前にバージョンをbumpupする方法

  • このエントリーをはてなブックマークに追加

Single Moduleであれば手で書き換えれば良いのですが、Multi moduleだとparentのversionを書き換えてsub moduleのバージョンを書き換えてと、数が多いと手で作業するのは大変です。

何も指定しないreleaseはパッチバージョンが上がります。0.0.1 -> 0.0.2
minorバージョンを上げたい場合はrelease:update-versions を使えば任意のバージョンにする事ができます。

例えば次のコマンドを実行すると、各pomファイルのバージョンを0.2.0-SNAPSHOTに書き換えてくれるので、それをコミットするだけ。

mvn --batch-mode release:update-versions -DdevelopmentVersion=0.2.0-SNAPSHOT

参考: http://maven.apache.org/maven-release/maven-release-plugin/examples/update-versions.html

心が変われば

  • このエントリーをはてなブックマークに追加

昔、とあるゲーム会社の社長がこういう事を社内BLOGに書いていて、出展どこだっけかなと調べたのでそのメモ。いくつかパターンがあるっぽいです。

心 が変われば 態度が変わる。
態度 が変われば 行動 が変わる。
行動 が変われば 習慣 が変わる。
習慣 が変われば 人格 が変わる。
人格 が変われば 運命 が変わる。
運命 が変われば 人生 が変わる。

意識が変われば行動が変わる。
行動が変われば習慣が変わる。
習慣が変われば人格が変わる。
人格が変われば運命が変わる。
運命が変われば人生が変わる。

参考: http://crd.ndl.go.jp/reference/modules/d3ndlcrdentry/index.php?page=ref_view&id=1000071866

腸閉塞になったのでその記録

  • このエントリーをはてなブックマークに追加

先日腸閉塞になってしまいました。2回目なのですが、お医者さんに前回のことを聞かれたときに何も覚えていなかったので、今回はきちんと記録を残そうと思いました。

2/12日(月) こんにゃくを沢山食べる。夜にお腹が痛くなる。1分に1回激しい痛みが来ては引いての繰り返し。痛みの場所はおへその上あたり。小腸らしい。あと吐き気が凄い。痛みで殆ど寝る事ができない。
症状的に腸閉塞だなと感じました。

2/13日(火) 会社を休む。病院へ行く。近所の内科へ。ひとまずレントゲンを撮って貰い、腸閉塞である事が確定。絶食を宣言される。ポカリはOK。お薬として漢方薬を貰う。ツムラの大建中湯(ダイケンチュウトウ) 100番。痛みがちょっと治まる。
もし痛みがやばくなったら救急車を呼ぶか、痛みに余裕があったら東京消防庁のテレホンサービスで救急医療機関の案内をしてもらうことを薦められる。

2/14日(水) 痛みは無くなったけど、おならも便も出ないので午前半休で病院へ。もう1回レントゲンを撮る。まだ詰まっている状態である。様子を見ることに。(この時、下剤とか欲しかった..)
絶食宣言は続く。(が、午後出社したらバレンタインデーだったので会社にあったスイーツを食べてしまう)

2/15日(木) 普通に仕事する。便は出ない。社食を少しだけ食べてしまう。

2/16日(金) 普通に仕事する。便は出ない。おならは出た。社食を少しだけ食べてしまう。

2/17日(土) 病院に行く。再度レントゲンを撮って貰う。極度の便秘状態らしい。お薬として、便を軟らかくする薬と、下剤を貰う。下剤は寝る前に処方するものらしいが、昼間に使う。効果が出るのは8時間後〜12時間後らしいので、寝る前にサインがあるはず。だがしかし便は出ない。
食事はおかゆとかそーいうの。でもおかゆはまだ重いらしいのでもっと軽いヤツじゃ無いとだめらしい。なので社食食べるのダメだったみたい。

2/18日(日) 便が出る。下剤の他にも酵素ドリンクを使って便意を促した。食事は軽めのものを。

絶好調というわけでは無いですが、食事はしばらく気を遣う必要がありそう。

あと左耳後ろのリンパが凄く痛い。

mavenマルチモジュールで特定のsub moduleだけビルドする方法

  • このエントリーをはてなブックマークに追加
mvn compile -pl {module} -am
  • packageする時はcompileではなくpackageにすれば良い。
  • -pl--projectの省略形でモジュールを指定する。
  • -ama--also-makeの省略形でつけると依存サブモジュールも一緒に処理してくれる(commonモジュールとか)。付けないと、-plで指定したモジュールだけ対象にする。

傷口を広げる対処法

  • このエントリーをはてなブックマークに追加

人は当事者で居るよりも一歩引いて俯瞰して状況を観察した方が全体感を見ることが出来るので、エンジニア組織とは別に例を挙げて物語形式で書いてみます。

※この物語はフィクションです

様々な要素(組織や職業、人物など)を置き換えてみてください。

序章

Aさんはとある会社で働く営業マン、社会人になって15年が経ちました。彼の仕事は、お堅い会社の役員を相手に営業を行います。優秀だった同期のBさん、Cさんは一身上の都合により会社を去ってしまい、優秀な同期を失ったAさんはテンションが下がりながらも、これまで通り自分の仕事を続けています。

この会社は新卒採用は行っておらず、営業マンは中途採用のみです。昨年は退職したBさん、Cさんの代わりにDさん、Eさんの2人が新たに入社しましたが、BさんCさんほどの実力は備えておらず、重要顧客との相手はAさんが殆ど対応している状況です。
Dさん、Eさん両名の待遇はAさんと同じですが、彼らの営業スキルは会社の平均水準には達してはいません。何かしら別の理由で採用に至ったようですが、Aさんはそれを知りません。

[営業1課]
Hさん -> 営業1課の課長
Aさん -> 優秀な人材(在籍中)
Bさん -> Aさんの同期で優秀な人材(退職済)
Cさん -> Aさんの同期で優秀な人材(退職済)
Dさん -> 中途採用/実力は平均以下
Eさん -> 中途採用/実力は平均以下

第2章

半年ほど経ったところでAさんにも心境の変化が出てました。そろそろ自分も同期と同じ道を選択しようと考えたのです。その理由は、社内の環境が大きく変わってしまったことです。彼が入社した当時はBさん/Cさんといった優秀な同期と共に仕事をすることが出来ましたが、最近はそれが叶わなくなっている事が大きな原因のようです。

彼と同じ組織の営業マンである、Dさん、Eさんの普段の仕事を見てみましょう。A/D/Eさんの上司であるHさんも登場させてみます。

  • 9時AM チームの朝礼にて(参加者はH,A/D/E)
    • Hさん「今日はこれから重要な案件でAさんとN食品に行ってきます。16時頃に戻ってきますが、何かあったらきちんと私にメールかLINEで連絡を入れてください。」
  • 11時AM
    • PRRRR(お客様からの電話が鳴る音)
    • Dさん『はいもしもし? え?Hさんですか。今居ないっすね』
    • Dさん『じゃぁAさん? Aさんも居ないっす』
    • Dさん『え?緊急の用事っすか? でも今居ないのでどうしようもないっすね』
    • Eさん「緊急なら俺が対応するっすよー」
    • Eさん『お電話変わりました、M商事さんですね。なるほどー、提案書の内容の一部を変更して欲しいという事ですね。』
    • Eさん (まぁたいした変更でもないだろうし、重要そうなお客さんっぽいから今返事しておくか)
    • Eさん『かしこまりました、ではそのように変更して進めさせていただきますね。それでは失礼します』
    • Eさん (ついでに提案書を直しておいたぞ)
  • 16時AM
    • Hさん「ただいま戻りました。私が居ない間に何かありましたか?」
    • Dさん「いつも通りっすー」
    • Eさん「特に問題はありませんでした」

翌日

  • 9時AM チームの朝会にて
    • Aさん「今日は11時にN食品、15時にM商事さんに打ち合わせに行ってきます」
  • 9時10分AM
    • Aさん(提案書を印刷して持っていかないとな。あれ? ファイルの更新日が新しくなっているぞ?)
    • Aさん(提案書が書き換わっているし、しかも変更内容が法律で禁止されている事案じゃないか)
    • Aさん「誰かM商事向けの提案書を更新しましたか?」
    • Eさん「あ、昨日M商事から電話があって直して欲しいって言われたので直しておきました」
    • Hさん「昨日何も無いって言ったじゃないか」
    • Eさん「特にトラブルはありませんでしたよ。重要顧客っぽいのでその場で対応しましたし、提案書もきちんと更新していますよ。変更はたいしたものじゃなさそうでしたので」
    • Hさん「そういうの、ちゃんと相談や報告をして欲しいな..」
    • Hさん「M商事には私から謝罪しておくから、Aさんは提案書を直してものでM商事の打ち合わせに行ってくれるかね」
    • Aさん「これからN食品に行かないといけないので、修正する時間あるかな… 移動中に修正します」

第3章

そんな日が続き、HさんもAさんも重要顧客への対応がパツパツになって行き、特にAさんは2章のような日常に疲弊しているようです。それを見かねた営業2課のGさんは、「HさんもAさんも重要顧客への対応がパツパツで疲れているじゃないか。このままではいけない。」

『重要顧客への対応は通常の顧客とは異なり、打ち合わせの準備や接待なども大変なので、もっと負荷分散してみんなで行うべきだ。AさんもHさんも最近仕事に疲れているじゃないか。Dさん、Eさんも加わって頑張りましょう』

Dさん「重要顧客?まぁ敬語?使えるから問題ねっす。接待もまぁ出来るっしょー」

Eさん「そのとおりです、重要顧客への営業に行って沢山契約してきますね!!」

終章

後は何が起きるか、結末は自分で想像してみてください。

あとがき

営業部長「大変そうだから、人を採用したよ。紹介するぞ。Jくんだ。彼は営業経験は殆どないが、素晴らしい志を持っている。Aさん、彼に営業のイロハを教えてあげてくれ。Jくん、挨拶よろしく。」

Jさん「ちょりっす」

営業部長「あれ、Aさんは今日は体調不良で休みか。弛んでるな。」

クリティカルシンキング

表面的な事象を根本原因として捉えてしまう例を挙げてみました。根本原因を考察して問題解決を図る方法に、クリティカルシンキングという分野があります。批判的思考と訳される事が多いですが完全に誤訳だと思います。次の本は私が10年以上前に読んだ本(私が読んだのは第1版)ですが、思考法の1つを学ぶのにとても良い本だと思います。

Moshの再アタッチは出来ない

  • このエントリーをはてなブックマークに追加

回線状況が悪いときにSSHを使うとイライラするので、Moshを使っています。特に海外のホテルから作業する時はSSHだとブチブチ切れてしまう事が多いのでMoshを愛用しています。会社のBastionサーバにもMoshが入っています。

Moshを使っているときにMacがいきなり再起動しちゃったりすると、mosh-serverが残ってしまうときがあり、次のメッセージが出てしまいます。

Mosh: You have a detached Mosh session on this server (mosh [20257]).

screenのように再アタッチできないのかなと思ったら、セキュリティの理由によりそんな事は出来ないぜ!との事です。

そのため、素直に表示されたPIDをKILLしてもう1回再接続するしかないようです。

参考: https://stackoverflow.com/questions/17857733/how-do-i-reattach-to-a-detached-mosh-session

SSL証明書の購入の仕方/2枚目

  • このエントリーをはてなブックマークに追加

1枚目はRapidSSLを買いました。あっちは仕事用で購入したものですが、それとは別に素振りとして個人開発のドメインでも購入したのでした。

前回はKEYとCSRをopensslコマンドで作成しましたが、GoGetSSLではオンラインで生成できます。今回はこのサイトにアカウントを作って購入しました。

それにしても、代理店経由すると割引が凄いので原価が凄い安いんだろうなーと思います。代理店ビジネスって美味しい??

購入するのは、GGSSL Wildcard SSL Certificateです。1年で55㌦。Paypalで支払いました。

購入すると、 Incomplete の状態になるので、そこからウィザード形式でポチポチと情報を入力していきます。また、Online CSR Generatorを使うと、KEYとCSRがメールで送られてきます。あとはいつもの通り、メール認証かドメイン認証を通して完了です。今回もメール認証にしました。

AWSのWorkMailだとお金がかかるので、ValueDomain(Xrea)のWebメールを使いました。このドメインはCloudDNSで管理しているので、MXレコードでXreaのサーバのIPアドレスを指定し、XreaのWebメールアカウントを作ります。(admin@example.com)。
これでメールを受信できます。楽ちん。

もろもろ設定が完了するとこんな感じになります。
証明書がメールで届くので(もしくはここからダウンロードできます)これをGAEで使う場合はそのまま貼り付けます。
SSL証明書/中間証明書/クロスルート証明書が繋がった状態でメールが来ました。

1つ注意点としては、このサイトのOnline CSR Generatorを使ってKEYを生成した場合、GAEに喰わせるときは、以下のコマンドを通したものを貼り付ける必要があります。でないと、「選択した秘密鍵は有効ではないようです。」と怒られてしまいます。

openssl rsa -in example.com.key -out example.com.nopass.key

SSL証明書の購入の仕方

  • このエントリーをはてなブックマークに追加

ワイルドカード証明書を2ドメイン分、別々の場所で購入したのでその手順をメモ。Let’s Encryptは2018年の2月末に提供されるので、これを待っていたのですが急遽必要になってしまったのです。

それぞれ引数に-sha256を入れないとsha1で作られてしまったので指定しました。Macの場合、opensslの設定ファイル(/System/Library/OpenSSL/openssl.cnf)でデフォルトのMDがsha1になっているからです。

grep default_md /System/Library/OpenSSL/openssl.cnf
default_md = sha1 # which md to use.

秘密鍵の作成

暗号化無しで作成。暗号化する場合は-des3を指定します。

openssl genrsa -out example.com.key 2048 -sha256

確認

openssl rsa -noout -text -in example.com.key

証明書署名要求(CSR)の作成

openssl req -new -sha256 -key example.com.key -out example.com.csr

引数で諸々指定すると入力をすっ飛ばせますが、手で入力。

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shibuya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany, Inc.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:*.example.com
Email Address []:admin@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

確認

openssl req -noout -text -in example.com.csr

サイトで購入

これらのファイルを元にこちらのサイトで1枚目を購入。RapidSSLで16800円。1時間以内で発行されました。
ドメインの所有を確認するためにメール認証やファイル認証、ドメイン認証があるようですが、今回はメール認証でadmin@example.comにVerify的なメールが来ました。メール中のリンクをポチッとすると証明書が送られてきます。

メールを受け取るために、AWSのWorkMailを使いました。1ユーザー(メールアカウント)あたり4㌦です。

これをGAEに設定します。

AppEngine -> 設定 -> SSL証明書 -> 新しい証明書をアップロード

注意点としてGAEの場合は、中間証明書も一緒に貼り付ける必要があります。これをやらないと、x509: certificate signed by unknown authority と怒られてしまいます。ブラウザから見ると一見アクセスできているように見えるのが怖いところです。

SSL Checkerで調べましょう。

失敗しているとこのように見えます。

クロスルート証明書も入れたいので、実際には 証明書 中間証明書 クロスルート証明書 の順番で書きます。

もしKEYを暗号化している場合は、こんな感じでパスワードを解除してから貼り付ける必要がありました。

openssl rsa -in example.com.key -out example.com.nopass.key

ドメインにMappingするとこんな感じになります。

参考

コミュニティの一生

  • このエントリーをはてなブックマークに追加

コミュニティの一生という言葉があります。

【コミュニティの一生】
面白い人が面白いことをする

面白いから凡人が集まってくる

住み着いた凡人が居場所を守るために主張し始める

面白い人が見切りをつけて居なくなる

残った凡人が面白くないことをする

面白くないので皆居なくなる

最近はこれを感じる事が多いです。

モチベーションの源泉

私が会社で働くモチベーションの源泉は何だろうと考える事があります。会社はレバレッジをかけて物事を進める場所であり、個人で出来ない事を実現する場所であり、そこでしか出来ない事を求めます。他でも出来るのであれば、別に今に拘る必要はないですね。

とある会社に入ったとき、周りに居た人は自分には持ち合わせていない能力を持っており、皆が自立的に動き、それぞれがプロフェッショナルな仕事をしていました。時が経ち、学生でも書かないような成果物を連日のようにレビューし、定期的にポーリングしなければならず、Giveされる事が当然だという意識が蔓延すると、心も体も消耗していきます。
テックカンパニーではない普通の会社になってしまったのだなと感じます。

一般的な知識の不足が多い状態では話が通じないばかりか、困難な事をクリアしてもそれがどれだけ凄いことなのかを理解して貰えず、幸せを感じる事はできなくなります。質の低い仕事の対応に追われ、シニア人材の戦力を割く毎日が続くと、優秀な人や自立的に動くエンジニアは次々と去って行き、益々魅力の無い環境になってしまいます。

Twitterを見ていると勘違いしそうになるけど、Productionコードが書ける人や一定以上のエンジニアリングが出来る人、上手に仕事を進められる人ってそんなに少ないのかしら。

消耗しすぎて外の人といっぱい話したい。

スクワットチャレンジ再開します

  • このエントリーをはてなブックマークに追加

スクワットチャレンジ再開します。

膝を痛めていたのですが治ったので運動再開。

このアプリを使います。

Runtastic スクワット回数カウント
https://itunes.apple.com/jp/app/id570183002?mt=8

とブログで宣言する事で自分を追い込む。