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

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

プログラミング・開発

【Go 言語】 Docker 上 で Gin を動かすまで

前回の復習 go.mod とは go mod を使って gin をインストール Dockerfile の修正 gin を起動するコードを書く 前回の復習 前回は、 Docker 上で Go を動かすまでやりました。まだ読んでないひとは読んでください。 www.utakata.work go.mod とは go.mod は、…

Docker 上で main.go を動かす(Goの開発環境を作る)

何をやるか Docker 開発環境の作成 main.go 参考 何をやるか これから何回かに分けて、 Docker + Go + Gin(Webフレームワーク)の開発環境を整えていきます。 ディレクトリ構成やコマンドの書き方、変更検知してコンパイルなど、開発に必要な最低限の環境を…

AWS Application Load Balancer のヘルスチェックと 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'…

PSR-2 に変わって新しく制定された 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 は 顧客コード(実線) 識別するので主キー 設置事業所は、顧客コードだけでは識別できないので、一つの顧客コードに対して複…