Tagbangers Blog

Blog

Hibernate Search で Elasticsearch を使用したらの bulk ではまった

なにが起きたのか? Hibernate Search は Elasticsearch にも対応しています。 今回、既存のアプリケーションで Elasticsearch に対応した際に、Hibernate Search の MassIndexer を使用して検索用インデックスを再生成を行いました。 その際、作成に失敗することがありましたので書きとめておきたいと思います。 結論 今回色々調べましたが、結論からいいますと。。 Elasticsearch がバッチで処理できるサイズを超えてしまい、Elasticsearch で生成に失敗、最終的に Hibernate Search の処理がエラーになる...

Spring Cloud Kubernetes を試してみる

はじめに Spring Cloud Kubernetes は Kubernetes ネイティブ API を使用した Spring Cloud の共通インターフェイスの実装で、次の 4 つの Spring Boot Starter がある。 spring-cloud-starter-kubernetes: Kubernetes Service からサービス名を解決する Discovery Client の実装。 spring-cloud-starter-kubernetes-config: Kubernetes ConfigMap と Secret から application properti...

Windows Server 2016 に CloudWatchAgent をインストールしてログ転送する

Windows で設定することがあまりなかったため、メモ程度に残しておきます。 以下をダウンロードして実行する https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi MSI パッケージをダウンロードディレクトリに移動して以下のコマンドを実行する msiexec /i amazon-cloudwatch-agent.msi コマンドプロンプトの例 以下のファイルを作成してルールを定義する C:\ProgramData\Amazon\AmazonCloudWa...

JQL for Jira Service Desk

今回は Jira Service Desk の小ネタです お客様(社内含め)窓口を用意して依頼を受け、リクエストのステータスを見ながら管理するのは慣れてきたけれど、 運用の問い合わせが増えてきたら、リクエストをどのようにフィルタリングするかを知ることも大事になってきます。 そこで JQL の出番なのですが、Jira Service Desk の JQL は少し癖がありますのでご注意ください。 ちなみに Jira Service Desk だけでなく、ノーマルな JQL の書き方は こちら でも紹介しています! 前提 Jira Service Desk 登場人物 言葉と概念をまとめてみます。 J...

Windows Subsystem for Linux に Linuxbrew で brew install cask してしまった失敗談

こんにちは! 最近 Mac のキーボードに慣れてきて逆に Windows のキーボードが打てなくなり始めてる方の山﨑です。 Excel とかの操作は今でも Windows版の方が使いやすいと思うし、 Windows には Mac にはない良さがたくさんあると思っていて、 もちろん逆も然りで、明日から開発は Windows でやりますとか言われたら正直つらいなと思うくらいには Mac にも依存してます。 そんな感じで自宅では Mac と Win10 両方使ってるのですが、 ずっと気になっていた Windows Subsystem for Linux (WSL) を試してみようと思い立ったのでやっ...

Spring Bootがプロパティファイルを読み込む方法に一同驚愕!!

こんにちは、インターン生の古家です。 今回はSpring Bootのプロパティファイルの理解を深めるために調査を行い、まとめてみました。 プロパティとは? SpringBootではアプリケーションコードの外に設定値を持つことができます。 この設定値がプロパティと呼ばれています。 ファイル形式は.propertiesと.ymlを使用でき、その他にも環境変数やコマンドライン引数を用いて設定値を与えることができます。 プロパティ値を直接ぶっこむ2つの方法 以下のアノテーションを使うとBeanに対して直接プロパティ値を与えることができます。 @Value フィールドを@Valueアノテーションで装飾し...

Chromeでソースを汚さずにログを出力する

こんにちは!言動がナルシストっぽいとの事で社内で悪目立ちしている方の山﨑です! 今回は、Google Chrome 73 で導入された、 logpoint という機能についてご紹介したいと思います。 Chrome 73 が公開されたのが 2019/03/12 との事なので、まだ 3ヶ月ちょい。 リリースノートに毎回目を通す熱心な方でないと見逃してしまいそうですが、こっそり便利そうな機能が追加されてました。 これは何ですか ざっくり、ブレークポイントと同じように Dev Tools からソースコードにマークをつけると、その行に対して 式 を書く事ができ、 その行を通るとその式の結果が Conso...

Domain Event with Spring

Domain Event とは? 売上というドメインがある場合 、売上ドメインでは様々な出来事がおきます。 「売上ができた」「売上が変更された」「売上が削除された」 ここで、「売上ができた」という出来事は副作用があるかも知れません。 伝票ができるかもしれませんし、在庫が変動することもあるでしょう。 これらの副作用を売上ドメインだけで完結しようとすると、 伝票ドメインや在庫ドメインとの深い関係を持っている状態になります。 我々の世界ではこれを密結合と言ったりします。 疎結合と密結合であれば、疎結合がいいと言うのはなんとなくわかりますね。 マイクロサービスがもてはやされているのもこれが一つのキーワ...

IntelliJ IDEA で Nuxt.js のデバッグ

IntelliJ IDEA で Nuxt.js のデバッグを行う場合、以下の 1 行を nuxt.config.js に追加する必要があります。 build: { extend(config, ctx) { // この 1 行を追加 config.devtool = ctx.isClient ? 'eval-source-map' : 'inline-source-map' } }, 詳しくはこちら。 https://medium.com/@fernalvarez/nuxt-js-debugging-for-webstorm-9b4ef5415a5

CurryingとFunctional Composition in JavaScript

Currying Currying(カリー化)のコンセプト自体はとてもシンプルで、複数の引数を一度に一つずつとる関数です。 例えば、2つの実引数の和を返す関数を考えた場合、まず一つの実引数を受け取る関数を返します。返り値となる関数は次の実引数を受け取る関数を返します。 const add = x => y => x + y add関数は一つの引数をとって、closureスコープに固定された部分適用された関数を返すという形になります。カリー化は常に一つの実引数を取る関数(unary function)を返しますが、部分適用の実引数の数は任意です。 const add =     x =>  ...