Usual Software Engineer

よくあるソフトウェアエンジニアのブログ

Gradle のデフォルトの locale を変更する方法

小ネタにもほどがある、って感じではありますが最近あまり余裕がないので良しとしましょうw 自身のマシンの言語設定は日本語のままにしておきたいけれど、開発の時に目に触れるメッセージは英語にしたいという人、多いのではないかと思います。 17:19:12: E…

jOOQ で audit フィールドを自動的に更新する方法

jOOQ 便利ですよね。 Java の ORM としては定番と言えるライブラリではありますが、 created_at や updated_at といった audit カラムを特に手動でセットせずとも、 自動的に更新したいというありがちなニーズに対応する方法が簡単には見つけられない気がし…

Raspberry Pi 用の開発を Mac 上の仮想環境でやる方法

久々に Raspberry Pi 触ろうとしたら手元になかったりセットアップ方法忘れていたりでやる気をなくしたことありませんか? それならハードがなくても仮想環境で開発できるようにしちゃった方が捗りますよね。 ググると結構 HOW TO 書いてる記事があるんです…

Spring Bootのテスト小ネタ

最近良いネタがないので苦し紛れで小ネタです。 以前 non web な Spring Boot のサンプルの記事を書きましたが innossh.hatenablog.com 今の Spring Boot の最新バージョンは 2.0.2 になっています。 使ったことがない人は公式ドキュメントを一通り読めば、…

Prometheus と Grafana で Nomad メトリクスの可視化

前回つくった Vagrant の VM 上の Nomad と Traefik のサンプルを使用して、 Nomad のメトリクスを可視化してみます。 innossh.hatenablog.com またも記事書くのが遅れてしまいましたが、エイプリルフールに続いてゴールデンウィークなので許してください。 …

Nginx の代わりに Go 言語製のリバースプロキシ Traefik を使う基本的な利点

毎月ブログ書く縛りを一日過ぎてしまいました。エイプリルフールだったので許してください。 無駄にハマってあまり余力がないのでさっさと本題に入りましょう。 Go 言語製のリバースプロキシ兼ロードバランサーの OSS である Traefik をご存知でしょうか。 …

Fluentd v0.14 では fluent-plugin-forest が不要な話

少し前のことですが、 Fluentd の v0.14 が stable になりましたね。 イコール v1.0 である通り、安定感が増した感じがしています。 ブログのネタが無いので今回は Fluentd の小ネタを投稿することにしますw 一応ここでは比較のために v0.12, v0.14 と表記…

Jenkins 2.0 アップデートで本当に知りたいこと

Jenkins 2.0 がリリースされて話題になってからだいぶ時間が経ちましたが、 昨年末に業務で Jenkins 2.0 へのアップデート作業を行ったので、今更ながらよく触るようになりました。 2年前くらいのJava 勉強会?でまともに Jenkins 2.0 の紹介を見てから良いな…

2018年やること

2017年は気まぐれで一年の目標エントリ書いたけど、なんか自分の中で今年も書かなきゃいけない空気になってしまったので、気張らずほんのり書いておこう。 個人でwebサービスを公開する 今年はちゃんとやる。できれば上半期で 毎月ブログを書く 引き続き 毎…

2017年終わり

2017年も終わりなので振り返ってみる。 innossh.hatenablog.com さて結果は 月1回ブログを書く 達成。無理やり書いたエントリもありつつ、わりと良いペースだったと思う。来年も続けたい。 英語を話す機会を増やす 達成。英会話教室に通い始めて、前よりはマ…

Ansibleモジュールのchangedの判断基準

Ansible で playbook を実行する際に、事前に check mode で一度変更点を確認することがよくあると思います。 具体的には check mode の出力結果で、 playbook 内のどの task が changed になり、どの task が changed にならないかを見ることで、今回の実行…

Amazon Echo(Alexa)とIRKitをIFTTTで連携してホームオートメーション

なかなかハマったので軽くまとめておきます。 一年ほど前に Amazon Echo と Google Home のこんなエントリを書きましたが innossh.hatenablog.com とうとう日本にも Amazon Echo が発売されましたね!テンション上がってさっそくゲットしました。 ひとまずテ…

Ansible TowerのOSS、AWXでAnsibleの実行管理をする

AWX をご存知でしょうか。 Ansible Tower の OSS 版として公開された、 Web インターフェイスと REST-API を持った Ansible の実行管理ができるプロダクトです。 今まで Ansible を使う時、実行者がそれぞれのマシンで実行したり、それを避けて Jenkins など…

Ansibleでデプロイする時に使える小ネタ

Ansible ってとても良いツールですよね。3年以上前に初めて触った時は Chef や Puppet から開放されると思うと感動するくらいでした。今でもお気に入りなプロダクトの一つです。 というわけで今回は小ネタで、 Ansible でアプリケーションのデプロイ用 playb…

header と Nginx と ELB

ブログのネタが見つからずに9月も終わりかけているので苦し紛れで前回のエントリと似たような内容ですw innossh.hatenablog.com 前回のエントリのおまけで書いたように、 AWS の ELB ではレスポンスヘッダが意図せず書き換えられることがあります。 そのこ…

Nginx/OpenRestyあるある言いたい

Nginx を使う時に、設定に対して動作が意図したとおりにならないことがよくあります。 おそらく初見殺しで何度もハマる人が多いのでここであるあるをまとめておこうと思います。 OpenResty の話も混ざっていますがほぼ同じと考えて良いです。 ではさっそく、…

IntelliJ IDEAでWildflyアプリケーションを動かす

小ネタです。 Java の Web アプリケーションを開発している場合、 IntelliJ IDEA 上で Tomcat や Jetty を動かして Web アプリケーションの動作確認を行うことがあると思います。 今回は Wildfly で同じことをやってみます。 Wildfly はおなじみだけど馴染み…

テストコードについて最近思ったこと

毎月1エントリごときでつらさを感じてるブロガーだけれど文章書くのは嫌いではないので ポエムみたいなエントリをはさみつつ精神を落ち着かせようと思う。 テストコードは実はビジネスサイドにとってこそ重要なものである、という話。 これはうちの会社のCTO…

リバースプロキシのテストを書く方法

6月30日です。今日で6月も終わりです。でっていう。 Nginx や OpenResty 、 Varnish などをリバースプロキシとして使用していることが多いと思いますが、 リバースプロキシ単体で設定が正しいかどうかをテストするのって難しそうなイメージがありませんか? …

fluentdの負荷分散のためにmulti processを有効にする

ログ -> fluentd -> fluentd -> ストレージ のような流れで fluentd を酷使していると、1コアしか使えない fluentd が悲鳴を上げて そこがボトルネックとなってスループットが上がらない問題にぶつかります。 そこで使えるのが fluent-plugin-multiprocess …

今更だけどdocker composeのベストプラクティス

複数のdocker imageとcontainerを使ってサクッと環境を整えたいときにdocker composeってとても便利ですよね。 単純な構成だと公式ドキュメントを読めばわりと簡単に思い通りになるのですが、 意外と慣れるまではどんな設定をしてどうファイルを配置するか迷…

エンジニアが気になる完全食BASE PASTAを食べてみた

エンジニアには怠惰な人が多いのかなんなのか、完全食に注目している人が多いように思います。 僕もその一人で、もちろん美味しいものが食べたい時もありますが 基本は面倒くさいのでこれ食べておけば万事オッケーですっていう完全食があればそれでいいやっ…

Spring BootでWebじゃないコマンドラインアプリケーションを作る

JavaでMVCなWebアプリケーションを作成する時にSpringはとても便利で定番かと思います。 中でもSpring Bootは従来のwarにかためてサーブレットコンテナのTomcatやJetty上で動かすだけでなく、 それだけで動作可能なjarを作ることも可能なため、近年よく使わ…

ThingsboardのKafka pluginを試してみた

普段IoTなクラウドプラットフォームを運営しているエンジニアをやっております。 たまには競合プロダクトも触らないとね、ということで今回はThingsboardを触ってみました。 ついでにデフォルトで組み込まれているKafka pluginも試してみました。 今回のサン…

Gradleでdependencies無しの独自pom.xmlを生成する

小ネタです。 GradleでJavaのプロジェクトを作成する時に、何らかの理由でpom.xmlを生成したい時があるかと思います。 僕の場合はDroolsのWorkbenchにjarをアップロードするためにそのjarに独自のpom.xmlを含めたかったのですが、それにはちょっとしたテクニ…

サーバーレスアーキテクチャでモニタリングシステムを実現する

モニタリングシステムはサーバーレスアーキテクチャで実現されるべきである。 みなさんは自社のサービスを外のネットワークからE2Eで死活やパフォーマンスを確認したい場合に、どのようにそれを行っていますか? モニタリングシステムと言えば今はZabbixが定…

2017年やること

思いつきで今年の目標的なことを書いてみます。毎年だいたい目標はもっているのですが、あまりブログなどで宣言しない方が良いと思ってる人間なので今回はただの気まぐれです。 宣言しないことの強さについて前にブログを書いたことがあったのですがたまには…

DroolsでPPAP

Droolsって知っていますか?おそらく知っている方はかなり少ないのではないかと勝手に思っています。 Droolsとは、JBossが開発しているOSSのビジネスロジック統合プラットフォームです。簡単にはルールエンジンとして使えます。 ルールエンジンとは、ある特…

nginxのリクエストを制限することができるngx_http_limit_req_moduleでハマった

nginxのリクエスト数を制限する、ngx_http_limit_req_moduleの動作を勝手に勘違いして勝手にハマったというお話です。 大したことではないのですがdockerでその動作を再現した例はこちらです。 github.com 何にハマったのかというと、”5r/sが5req per secで…

IoT業界に入って半年以上経って気づいたIoTとは何なのか

昨年からIoT業界でソフトウェアエンジニアとして働いています。 IoTって何なのでしょうか? 入ったばかりの僕はそれを聞かれた時、なんとなく皆がわかっている程度の あらゆるThing(モノ)がInternet(インターネット)に繋がるんだよ と言っていたのですが…