ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

大手銀、店舗スリム化でコスト減 完全無人化も

www.nikkei.com

とか、

r.nikkei.com

みずほFGは2026年度までに1.9万人の業務量を減らす計画で、

とか、まあ、よく読んだら人を減らすとは書いてないけど、人減らすでしょこれ。株価最高で、いざなぎ超えの景気とか言われてるのに、コンピュータに仕事が奪われる人々。色々終わりの始まり感ありますね。

自分も含めた、いわゆる「金融系SE」とか言われている人たちも一緒に終わるのか、

厳しい経営環境やデジタル技術の進展を背景に、すべての店があらゆるサービスを担う方式から、メリハリを付けた運営に切り替える。

 デジタル技術のあたりにチャンスを見い出すのか、まさに岐路感ありますね。よーくよく考えて、生き残る道を探そう。

HerokuにデプロイするSpring Bootアプリでプロファイルを切り替える(VM引数の渡し方)

Heroku環境で、このVM引数の渡し方はイマイチ分からなかったので、

ググったら見つかりました。

devcenter.heroku.com

ルートにProcfileっていうファイルを配置して、そこにコマンド書いとけばよいということらしい。

デフォルトでは、

web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/dictation-0.0.1-SNAPSHOT.jar

となっているところを、

web: java -Dspring.profiles.active=prod -Dserver.port=$PORT $JAVA_OPTS -jar target/dictation-0.0.1-SNAPSHOT.jar

のようにすればOKです。簡単ですね。
(先頭のweb:を付け忘れてハマったのは良い思い出)

Microsoftの音声認識がすごい

きっかけ

次男氏が小学校1年生なんですが、算数の勉強の一環で、単語カードに8+6=14、7+9=16などと、繰上りありの1桁の足し算を延々と練習していて、いやその単語カード作るのめんどくさいでしょってことで思いつきました。

作ったやつ

小学校1年生で習う繰上りありの足し算を延々と音声で解答するC#デスクトップアプリ · GitHub

動作イメージ


小学校1年生で習う繰上りありの足し算を延々と音声で解答するC#デスクトップアプリ

参考

qiita.com

英語ディクテーション学習Webアプリ(8)

taka-2.hatenablog.jp

前回の続き。

プロファイルでの環境差異の吸収

ローカルはオンメモリデーターベース、Heroku上ではPostgreSQLとなり、環境差異を吸収する必要が出てくるので、Spring Bootのプロファイルを調べて導入しないといけません。

 というわけで調べました。

-Dspring.profiles.active=dev

というVM引数を渡すと、プロファイルを切り替えられます。dev環境のプロパティファイルは、application-dev.propertiesに書けば反映されます。Heroku環境で、このVM引数の渡し方はイマイチ分からなかったので、productionをdefaultとして、開発環境では上記のようにdevプロファイルとして起動することで解決しました。

これで、開発環境はh2database、本番環境はPostgreSQLで切り替え可能になりました。ちなみにHeroku上のPostgreSQLは無料で簡単に作れます。しかし、無料枠では1万行までしか扱えないなどの制限があるようです。

f:id:taka_2:20171028235145p:plain

ちなみに、spring bootで設定情報をソースの外に出す方法についてはもっと色々あって、下記を参照すると良いようです。

24. Externalized Configuration

PostgreSQLjdbc URL/username/passwordは、バージョン管理したくないので、環境変数(HerokuのConfig Vars)に設定しています。

データベース差異の吸収

データベースへの初期データ投入は、spring bootの機能で、data.sqlを用意しておくと起動時に実行してくれるという仕組みを利用していますが、h2databaseとPostgreSQLで微妙に文法が違うことが災いして、1つのdata.sqlで対応できないことが判明しました。

ここで役立つのがspring.datasource.platformという設定。これを使って、dev環境は、spring.datasource.platform=h2にして、data-h2.sqlを用意。production環境は、spring.datasource.platform=postgresqlにして、data-postgresql.sqlを用意、という風に分けることが可能です。同じようなSQLをコピペすることにはなりますが、いったん回避できました。

英語ディクテーション学習Webアプリ(7)

ユーザ認証の実装

学習記録をとれるようにするにあたり、ユーザを識別出来ないとダメだろうということで、認証を作ってました。

自前でユーザ・パスワード管理しても良いのですが、あんまりパスワード持ってたくないよねってのもあったので、Spring Social Twitterを使って、Twitterログインを実装してみました。

Spring Social Twitter

今一つSpring Securityとの連携がよく分からなかったのですが、下記ページがとても参考になりました。

qiita.com

Twitter認証通った後、TwitterのscreenNameとSpring Securityのusernameをマッピングして、Spring Securityの認証も通ったことにしてあげると良さげな動作をしてくれます。

(参考)その辺の実装

dictation/IndexController.java at master · taka2/dictation · GitHub

データベースの導入

とりあえずH2 Databaseのオンメモリ版を入れてみました。これだとインスタンスの再起動時にデータが消えてしまうので、マスタ管理には使えますが、記録には使えません。

RDSも少し試してみたのですが、基本プライベートネットワークに置いて、IAMインスタンスプロファイルを設定したEC2インスタンスからアクセスさせるのが良さそうです。この規模のアプリケーションには要らないかな。。HerokuでもPostgreSQL使えるみたいなので、そちらを検討しようと思います。

そうなると、ローカルはオンメモリデーターベース、Heroku上ではPostgreSQLとなり、環境差異を吸収する必要が出てくるので、Spring Bootのプロファイルを調べて導入しないといけません。

ソフトバンクからLINEモバイルへ乗り換え

奥さんの携帯電話ですが、料金を安くしたいって延々主張してたら、ようやくキャリアメール(しかもvodafone.ne.jp)を捨てる決意が出来たので、MNPにて乗り換えとなりました。

mobile.line.me

コミュニケーションフリープランの、音声通話SIMで、3GBのにしたので、1,690円/月です。

端末は、ソフトバンクで契約したiPhone6sをSIMロック解除してもらったので、SIM差し替えただけで、そのまま使えてます。ただ、最近動作が不安定なので、近々iPhone8にするかも。。端末を自由に入れ替えられるのも、SIMフリーの魅力ですよね。

ソフトバンクには解約月じゃないからうんぬんとか言われたんですが、また電話するのも面倒だし、半年もすれば元取れるし、もういいやってことで手続きしてしまいました。こまけぇこたぁいいんだよ!

LINEモバイルの回し者じゃないですが、1周年のキャンペーンやってて、LINEのクレジットだかポイントだかもらえるらしいです。(すぐにはもらえないらしい)

mobile.line.me