猫でもわかるWebプログラミングと副業

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

AWS ALB のヘルスチェックと Django の ALLOWED_HOSTS

はじめに ALLOWED_HOSTS との兼ね合い 対策 ALLOWED_HOSTS の意味 結局どうすればいいのか 事例を調査する 結論 はじめに 一般的に、 AWS で Web アプリケーションを動かすときは、 Application Load Balancer *1 と EC2 を利用します。 Application Load Ba…

pyenv を使っている環境で bad interpreter: /usr/local/opt/python@2/bin/python2.7: no such file or directory

問題 解決方法 問題 先日、久々に eb コマンド(Python で書かれている、 AWS ElasticBeanstalk の CLI ツール)を使おうとして、以下のエラーになった。 $ eb list zsh: /usr/local/bin/eb: bad interpreter: /usr/local/opt/python@2/bin/python2.7: no su…

Django 2.2 → 3.1 バージョンアップで MySQL may not allow unique CharFields to have a max_length > 255

Django を2.2 → 3.1 にバージョンアップしたら、以下の Warning が出るようになった。 test_app.Thumbnail.url: (mysql.W003) MySQL may not allow unique CharFields to have a max_length > 255. HINT: See: https://docs.djangoproject.com/en/3.1/ref/da…

index の複数形は indexes なのか indices なのか2 - MySQL のドキュメントを確認

以前にこのような記事を書き、 index の複数形は indexes と indices の2つがあり、どちらがどのようなときに使われるのかをまとめた。 www.utakata.work 改めて振り返ると、 indexes は「索引」の意味 indices は「添字」の意味 になるようだと書いた。 先…

【MySQL】インデックスを張ることのできる VARCHAR の長さには限界がある?

MySQL では長い VARCHAR にはインデックスを張れない? MySQL のドキュメントを読む ドキュメントの内容 つまり 実際にやってみる まとめ Appendix strict について テーブルの ROW_FORMAT の調べ方 MySQL では長い VARCHAR にはインデックスを張れない? My…

Djang 2.2 -> 3.1 バージョンアップで module 'MySQLdb.constants.FIELD_TYPE' has no attribute 'JSON'

エラー内容と解決方法 Django 2.2 から Django 3.1 にアップグレードしたら以下のエラーが出るようになった。 (前略) File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/introspection.py", line 27, in DatabaseIntrospection FIEL…

Mac上に立てたDockerに固定IPを降って、IPでアクセスしようと思ったらできなかった

やりたいこと 結論 代替手段 やりたいこと Docker でローカル開発環境を作りたい時があります。 アプリには、APIサーバーとWebサーバーがあり、 docker-compose up -d で立ち上げたいです。 docker-compose up -d すると、 192.168.33.10 -- Web サーバーが…

VGG16 と VGG19 の summary() を見てみる

VGG16, VGG19 summary() VGG16 の summary() VGG19 の summary() まとめ VGG16, VGG19 画像認識の学習済みモデル、VGG16 と、 VGG19 というのがあります。 16, 19 というのは層の数だそうです。勝手に、2016年、2019年みたいな意味かと勝手に思ってました。 …

Tensorflow で Model.fit_generator is deprecated Please use Model.fit, which supports generators.

Tensorflow で Model.fit_generator を使ったら下記Warningが出た WARNING:tensorflow:From <ipython-input-12-4f61d48d2ed6>:1: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version. Instructions for updating: </ipython-input-12-4f61d48d2ed6>…

Django REST framework で UnorderedObjectListWarning

Django REST framework でこのようなエラーが出ることがありました。 UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered このエラーは、「オブジェクトの順序が定まっていない」というエラーです。 Django REST fra…

Next.js で React の Server-side Rendering と Static Generation をやる #5 デプロイ

前回の記事 Vercel にデプロイする 今回使うコード Next.js と Vercel の相性が良い理由 プルリクエストするごとにプレビュービルドする Static Generation されたファイルを Netlify にデプロイするにはどうするのか 前回の記事 今回は Next.js を Vercel …

Scala 用 AWS ライブラリは aws-java-sdk しかない

はじめに 結論 比較したライブラリ aws-java-sdk AWScala aws-scala aws-scala-sdk まとめ 参考記事 はじめに Scala から S3 にファイルをアップロードする必要があったので、 AWS のライブラリを比較しました。 *1 結論 aws-java-sdk を使うことにしました…

Django の runserver より gunicorn のほうが早くなるのか ApacheBench で検証

Django の runserver は遅い 皆さん開発時に Django の runserver というコマンドを使っていると思いますが、この runserver は本番環境では使えません。 DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or perf…

Next.js で React の Server-side Rendering と Static Generation をやる #4 Dynamin Routes

前回の記事 Dynamic Routes とは Markdown で書かれた記事を表示する 日付をきれいに表示する(CSS) fallback について Catch-all Routes 404 ページをカスタマイズする場合 API を叩く際の注意点 次回 前回の記事 この記事は第4回の記事です。 今までの記…

Next.js で React の Server-side Rendering と Static Generation をやる #3

前回の記事 今回の概要 Pre-rendering とは 2種類の Pre-rendering Static Generation vs Server-side Rendering Static Generation with Data を行う getStaticProps について Server-side Rendering を行う Client-side Rendering を行う SWR(React Hooks…

Next.js で React の Server-side Rendering と Static Generation をやる #2

前回の記事: Docker で Next.js 開発環境を用意する 今回の概要 Next.js チュートリアルのページ ソースコード 新しいページを追加する ページ遷移(リンク) 画像などのアセットの配置方法 title などのメタデータの設定方法 CSSの書き方 Layout グローバル…

AWS Cloud Practitioner を受験した感想

先日、AWS クラウドプラクティショナー (Cloud Practitioner) 試験を、テストセンターで受けてきたので、その感想を書きます。 テストを受けたきっかけ クラウドプラクティショナーは、現役エンジニアが受けるにはかなりレベルの低い試験になります。 私は、…

PCケース Define7: 瀬戸弘司さんが買っていたPCケース #1

参考 商品の公式ページはこちら www.fractal-design.com 色は 黒 黒白(外が黒で中が白) 白 グレー とあって、瀬戸さんが買ってたのは白ですね。 個人的にケースで一番重要なのは、開けやすさですね。動画見ている限り、サイドパネルは開けやすそうで、個人…

Next.js で React の Server-side Rendering と Static Generation をやる #1

なぜこれを勉強しようと思ったか React の Server-side Rendering 技術は重要 Next は Server-side Rendering ではなく Static Generation Next.js を動かす準備 次回 なぜこれを勉強しようと思ったか この記事がたまたま twitter にの記事が流れてきたので…

AWScala で S3 にファイルを put しようとしてAccess Denied Status Code: 403;

AWScala Scala から AWS S3 にファイルをアップロードするのに、 AWScala というライブラリを利用していました。 github.com S3 のライブラリを利用するには、 build.sbt の libraryDependencies に以下を追加します。 "com.github.seratch" %% "awscala-s3"…

AWS で S3 の特定のバケットだけアクセス可能な IAM ポリシーを作成するのにつまづいた

結論 誤った書き方 権限の確認方法 まとめ 結論 正しい書き方はこうっぽい { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::lgtmoon-dev", "arn:aws:s3:::lgtmoon-dev/*" ] } ] } 誤った書…

2020年のQiitaアドベントカレンダーで書いた内容まとめ

今年のアドベントカレンダーでは10本の記事を書いたので、その10本をまとめます。 個人開発でサービスをリリースまで持っていくポイント レガシーなプロダクトに Laravel を導入する第一歩 PSR-2 に変わって新しく制定された PSR-12 のチェックを PHP_CodeSn…

Scala Play の application.conf を環境変数から取得する - Herokuでの運用戦略

はじめに Heroku の環境変数を使う application.conf の書き方 Heroku の設定 まとめ はじめに この記事は、 Scala アドベントカレンダ 2020 の 19 日目の記事です qiita.com 私は LGTMoon という LGTM 画像を生成するアプリを公開しています。 lgtmoon.dev …

テレワーク下での Raspberry Pi の可能性

Raspberry Pi について 利用例 Raspberry Pi について Raspberry Pi はめっちゃちっちゃいコンピューターです。手のひらサイズくらいです。 jp.rs-online.com 僕は 2015年に Raspberry Pi 2 Model B を買いました。Amazon の購入履歴によると 6480 円でした…

【Homebrew】homebrew-core is a shallow clone. To `brew update` first run:

brew install しようとしてこんなことを言われる Error: homebrew-core is a shallow clone. To `brew update` first run: git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow This restriction has been made on GitHub'…

【PHP】PSR-12 のチェックを PHP_CodeSniffer で行う

はじめに PSR-12 とは PSR-2 と PSR-12 の違い PHP_CodeSniffer とは IntelliJ / PHPStorm でスタイルチェックする Jenkins でコーディングスタイルチェック まとめ はじめに この記事は PHP アドベントカレンダー 4日目の記事です。 qiita.com 昨日は @taro…

PHP(Laravel)の開発を始めるときに知っておきたいこと 2020

仕事で PHP のプロダクトのリビルトを行っていて、 PHP 開発を始めるために必要なことを整理したので、ブログでも公開しておきます。 PHP のプロダクトを開発しているチームに、新しい人が Join したときなどに使えます。 知っているところは読み飛ばして、…

IPA データベーススペシャリスト試験 平成31年度 午後I 問1 解説

設問1、設問2は、問題文を読みながら埋めていくのが良い 2.顧客 (2) 設置事業所 顧客コードと設置事業所コードで識別するので、e は 顧客コード(実線) 識別するので主キー 設置事業所は、顧客コードだけでは識別できないので、一つの顧客コードに対して複…

過去問解説 データベーススペシャリスト 平成31年度春期 午後I問1

過去問のダウンロード場所 DBスペシャリストの過去問を解いたので解説を書きます。 過去問はIPA公式サイトからダウンロードできます。 www.jitec.ipa.go.jp 以下、解答と解説なので、先に問題を解いてから読んでください。 問1 解説 まず、問題をざっと見る…

Scala playframework で、 ws のリクエスト先をモックしてテストする

はじめに これは下記 playframework のドキュメントの翻訳です。 Scala Testing Web Service Clients - 2.8.x ws クライアントをテストする ほとんどのアプリケーションは、他の Web サービスの API 等を利用するクライアントを実装する。 この API クライア…