スキップしてメイン コンテンツに移動

投稿

Spring Bootのコンテンツ配信でgzip圧縮を有効にする方法

Google App EngineのJava 17のStandard EnvironmentでSpring Bootアプリケーションを運用していたところ、サーバーから送信されるhtmlにgzip圧縮が効いていないことに気が付きました。 gzip圧縮が効いているかどうかは、下記のようなサイトに調べたいページのURLを入力すれば確認できます。 https://pagespeed.web.dev/ https://www.giftofspeed.com/gzip-test/ Spring Bootでgzip圧縮を有効にするにはapplication.propertiesに下記のように追記すればOKでした。ちなみにGoogle App Engine側の設定は特にいじっていません。 # 圧縮を有効にするかどうか server.compression.enabled = true # 圧縮対象のmite type server.compression.mime-types = text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json # 圧縮を効かせる最小レスポンスサイズ server.compression.min-response-size = 1024 Google App EngineのDash Boardで確認したところ、見事にネットワークの使用帯域が1/5になりました!

Spring BootでThymeleafのキャッシュをオフにする方法

Spring BootでテンプレートエンジンとしてThymeleafを使っていると、デフォルトではキャッシュが効いて、開発時にテンプレートを修正するたびにアプリケーションを再起動する必要があます。 Thymeleafのキャッシュをオフにするにはapplication.propertiesに下記の設定を加えればOKです。 spring.thymeleaf.cache: false これによりページリロードの度に毎回テンプレートの解析が行われ、編集内容がすぐに反映されるようになります。 本番デプロイ時は設定を無効にすることを忘れないようにしてください。

WSL2上のUbuntuでgloudコマンドの実行が遅い時の対処法

gcloudコマンドの実行が遅い! 筆者はwsl2を利用してWindows上のUbuntuで開発を行っています。 開発中にgcloud コマンドの実行が非常に遅くなってしまうという問題に度々遭遇し、困っていました。例えば gcloud config set project {project_id} といった単純なコマンドでも実行に数分かかってしまうような状況でした。 調査したところ、下記のStack Over Flowの投稿を見つけ、解決しました。 https://stackoverflow.com/questions/61953082/why-is-my-gcloud-command-suddenly-very-slow-inside-wsl2 解決法 Ubuntu上で実行されていたのは、Windows上にインストールされたgcloudコマンドで、そのことが遅くなっている原因でした。 Ubuntu上で /etc/wsl.conf に下記のように追記 (ファイルが存在しない場合は作成)してWindows側のパス設定を読み込まなくすることで、Windows上のgcloudをUbuntu側から参照できないようにする。 [interop] appendWindowsPath = false wsl.exe --terminate {Linuxディストリビューション名、大抵はubuntu} でwslを一度落とし、そのあと再度wslを起動。 起動したUbuntu上でLinuxネイティブのgcloudをインストール。 筆者の場合はこれで普通のLinux環境とそん色ないぐらいコマンドの実行が速くなりました(今までのは何だったのか orz…)。

Windows側のMySQL Workbenchから、WSL2上のUbuntuにインストールしたMySQLへ接続する方法

Windows側のMySQL Workbenchから、WSL2上のUbuntuにインストールしたMySQLへ接続する方法をまとめました。 Ubuntu側 (WSL2) MySQLのインストール 普通にUbuntuへMySQLをインストールする手順に従う。 https://takake-blog.com/wsl2-ubuntu2004-mysql/ を参考に進めた。 MySQLの起動コマンドは sudo service mysql start MySQLの設定修正 ■ MySQLのユーザを作成 外部のホストからログインできるようにするために、ホスト部分は%指定 。ホストを固定したい場合はホスト名やIPアドレスを指定。 CREATE USER 'user' @ '%' IDENTIFIED BY 'password' ; FLUSH PRIVILEGES ; CREATE SCHEMA some_schema CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' ; GRANT ALL PRIVILEGES ON ` some_schema ` .* TO 'user' @ '%' ; ■ Listenするアドレスを0.0.0.0に修正 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf #bind-address = 127.0.0.1 bind-address = 0.0.0.0 sudo service mysql restart を実行してMySQL再起動 ■ ifconfigコマンドを実行して接続先のIPアドレスを調べる user@host:~$ ifconfig Command 'ifconfig' not found, but can be installed with: sudo apt install net-tools 自分の環境では、上記のメッセージが出て、ifconfigがインストールされていなかったので、 sudo apt install ne

Windowsのユーザフォルダ名の変更方法

背景 日本語ユーザ名でWindowsのユーザを作成すると、ユーザフォルダ(C:\Users{ユーザ名})も日本語で作成されてしまいます。 日本語のフォルダ名だとアプリケーションによっては不具合が生じることもあったので、英語のフォルダ名に変更を実施しました。 注意点 色々と面倒で、レジストリを修正する必要がありリスクの高い方法なので、実施する場合は自己責任でお願いします。 特にユーザ名が固有名詞や日本語名でない場合は、レジストリエディタで文字列を一括置換する場合に、置換する必要のない文字列まで置換してしまう可能性が高いので、実施はお勧めしません。 ユーザ作成直後であれば、ユーザを作り直す方が楽ですかも知れません。 対応方法 下記の流れでのように実施しました。 How to Change User Folder Name in Windows 10 – 2 Ways (minitool.com) の記事を参考に コマンドプロンプトで net user Administrator /active:yes と打ってAdministratorユーザを一時的に作成 ログアウトして作成したAdministratorアカウントでログイン CドライブのUsersフォルダ配下にある対象のユーザ名のフォルダを、変更したい名前に修正 レジストリエディタを開いて HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<User SID>\ を検索して、 ProfileImagePath に登録されているフォルダ名を修正。 netplwiz を実行してユーザ名を変更。Microsoftアカウントと紐づいている場合、表示されるユーザ名は変更できないのでスキップしてOK。 Administratorアカウントからログアウトして、ユーザ名を変更し終わったアカウントでログイン net user Administrator /active:no とコマンドプロンプトに入力して、Administratorアカウントを削除。 環境変数の修正 特に環境変数のPathにユーザフォルダが含まれている場合、ユーザ個人でインストールしたアプリケーションを実行