こんばんは、中尾です。 【福岡オフライン開催】JJUG CCC 2023 Spring報告会に参加してきました。 javaq.connpass.com 場所はエンジニアカフェです。 時間 内容 登壇者 18:40 ~ 19:00 開場・受付開始 19:00 ~ 19:05 開始挨拶 19:05 ~ 19:25 JJUGについて、Ja…
こんばんは、最近登壇芸人になっている中尾です。 エキサイトブログの刷新の話しかしてないですが。 neuet × LINE Fukuoka Engineer Meetupに参加してきました。 場所はFGN(Fukuoka Growth Next)です。スタートアップ企業を支援する福岡市の施設です。有名な…
エキサイト株式会社の中尾です。 Embulkを使って、S3のアクセスログを集計してデータベースに挿入する方法を説明します。 例えばアクセスログから時間帯別のアクセスログの結果をDBに保存したりすることがあると思います。 前提条件は以下の通りです。 AWS A…
エキサイト株式会社の中尾です。 JJUG CCC 2023 Spring に登壇してきました。 エキサイトブログのリビルドの詳細はブログに記載されている通りです。 tech.excite.co.jp JJUG では リビルドの話を中心にしましたが、質問でデータ移行の話が多かったので、ブ…
こんばんは。 エキサイト株式会社の中尾です。 JavaのOptionalを使ってnull判定のif分岐を極力減らす方法をご紹介します。 if分岐を減らす一つの方法として、 mapを使う (戻り値有り) ifPresentOrElseを使う (戻り値なし) の2種類があります。 以下、コード…
お久しぶりです。中尾です。 長いことブログを書いていませんでしたが、少しずつ書こうと思います。 今回は MyBatis Generatorで出力されるドメインオブジェクト名にsuffixをつけてみます。 MyBatis GeneratorはTableからドメインオブジェクトを作成する機能…
こんばんは、エキサイトの中尾です。 apacheの.htaccessで複数の環境をまとめる方法をご紹介します。 現在はnginxが人気ですが、まだまだapacheを使っているところもあると思います。よかったら参考にしてください。 といっても設定は簡単で、たとえば環境ご…
こんばんは、エキサイト中尾です。 nginxで特定のURLのアクセスログを出さない方法を説明します。 遷移先がキャンペーン終了などで導線がなくなったのに、botなどでアクセスされ続けてしまった場合に有効です。 導線がなくなったURLのアクセスログが貯まると…
こんばんは、エキサイト中尾です。 PHPのguzzleを使った並列処理を簡単に説明します。 単純に並列処理するシンプルな実装だと思います。 "https://google.com", 'yahoo' => "https://yahoo.co.jp", 'excite' => "https://excite.co.jp", 'hogehoge' => "htt…
はじめまして、エキサイト株式会社の中尾です。 今回はMemcachedからRedisに移行した話をします。 半年ほどかかりましたが、、、なんとかやりました。。(時間かかりすぎなのは申し訳ございません) はじめに まずはcacheの中身を精査する。 apiサーバーのcach…
おはようございます。エキサイト株式会社の中尾です。 intellijの便利なショートカット、pvsmとsouXXについて紹介します。 psvm とエディター上で打つと、、、なんと 一発で、以下が補完されます。 ちょっと動かしてみたいとかで、いちいち以下をタイピング…
こんばんは。エキサイト株式会社の中尾です。 laravelで複数のwebサービスを1リポジトリに載せる方法があります。 apacheで例を記載します。 laravelの配下には public/index.php がありますが、それは一つじゃなくても良いのです。それさえ増やせば良いので…
こんばんは、エキサイト株式会社の中尾です。 今回は表題の通り、redisで一度に保存するキャッシュサイズ(value)は100kb以下が良い点について説明します。 っと言っても、memcacheでも同じです。 詳しく説明はこちらのリンクを参考にしてください。 docs.mic…
こんばんは、中尾です。 今回は技術的な話じゃなくて、オルターブースさんのイベントで登壇したお話を記載します。 alterbooth.connpass.com G's ACADEMY Fukuoka はプログラミングスクールなので、スクールでは教えてくれないような内容で発表をしました。 …
こんばんは、エキサイト株式会社の中尾です。 今回は、M1 MacBookを使って、Azure SQL Databaseを動かす方法を説明します。 まず、前提条件として、M1 MacBookでAzure SQL Serverのdocker image( mcr.microsoft.com/mssql/server )は使えません。よって、Azu…
エキサイト株式会社の中尾です。 最近福岡のエンジニアカフェで2回LTと、1回スタッフ(ボランティア)として参加したのでその時のことを記載します!そんな大したLTではないのですが、、、 参加したLTは以下です engineercafe.connpass.com engineercafe.connp…
こんばんは、エキサイト株式会社の中尾です。 今回はThymeleafを使ったheaderとheadの共通化を説明します。 公式documentに書いている通りですが、記載します。 www.thymeleaf.org まず、gradleに以下をimplementationします。 implementation 'org.springfr…
こんばんは、エキサイト株式会社の中尾です。 quarkusを使う(コンパイル編) - エキサイト TechBlog. でcompileできなかったところがなんとcompileできるようになっていました! どうやらissueを見るとGraalVM 22.1 を使うようになったのでそもそもできるみた…
こんばんは、エキサイト株式会社の中尾です。 eclipseで例外ブレークポイントが便利だったので、inteljでできないかと探したら意外にすぐに出てきました。 普通にブレークポイントを仕込み、ブレークポイントで右クリックすると以下のメニューが出てきます。…
こんばんは。エキサイト株式会社の中尾です。 あまり需要がないかもしれないですが、Controllerでもinterfaceをimplementsすることができます。 ただ普通にimplementsすることは、どんなクラスでもできますが、@RequestMappingや@GetMapping()や@RequestPara…
夜遅くからこんばんは。エキサイト株式会社中尾です。 quarkusの開発に慣れてきたのですが、いまいちdebug周りが見えなかったので、debugログを全部出すことにしました。 https://quarkus.io/guides/logging 詳しい設定はこちらに記載しているのですが、簡単…
こんばんは、エキサイト株式会社中尾です。 今回はテンプレートエンジンについて説明します。 quarkusにはQUTEがあります。 ja.quarkus.io 特徴として ネイティブビルドに対応(間違っているかもしれない) テンプレートファイルを変えたら、リロードすれば反…
こんばんは お久しぶりです。エキサイト株式会社 中尾です。 最近は趣味でQuarkusを使っています。 本記事ではQuarkusの例外処理について紹介します。 Red Hatの皆様、コメントください、DM待っています。 今回はエラーのハンドリングということで、exceptio…
こんばんは、エキサイト株式会社の中尾です。 quarkusといえば、native compileでしょう。 まずはjvmで。 shogo.nakao@localhost:(main*) $ docker build -f src/main/docker/Dockerfile.jvm -t quarkus/hobby-jvm . [+] Building 100.3s (11/11) FINISHED =…
こんにちは、エキサイト株式会社の中尾です。 出落ちみたいなタイトルなのですが、みなさんはテーブル設計の時、カラム名はどのようにしていますか? 基本は - 半角英字のみ - 極力正式名称をカラム名に、妙な省略はしない - package、classなど特定の言語の…
こんばんは、エキサイト株式会社の中尾です。 前回の続きです。 mybatisを入れていきます。 mybatisにはserviceと同様@Singletonをつけて、@Injectで呼び出します。 その際、repositoryを間に挟みます。 まず、必要なextentionをgradleに追加します。 implem…
こんばんは、エキサイト株式会社の中尾です。 前回の続きです。 serviceを入れていきます。 serviceには@Singletonをつけて、@Injectで呼び出します。 ※サンプルです。 interface package org.my.hobby.service; import org.my.hobby.core.Book; public inte…
こんばんは、エキサイト株式会社の中尾です。 前回の続きです。 必要そうなツールを入れていきます。 まず、バリデーションを追加します。 gradleに以下を追加 implementation 'io.quarkus:quarkus-hibernate-validator' アノテーション でバリデーション設…
初めまして、Red Hat大好きエキサイト株式会社の中尾です。 趣味でquarkusを使っていこうと思うので、その記録を残そうと思います。 quarkus cliは使いません。 まずは環境作りです。 quarkusでbuildツールgradleを使おうと思います。 mvnよりもgradleのほう…
エキサイト株式会社の中尾です。 RestControllerAdviceで拾えない例外処理を拾う方法を記載します。 よくある方法は、ExceptionHandlerで全てcatchする方法だと思います。 @ExceptionHandler @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public Stri…