やる気がストロングZERO

やる気のストロングスタイル

2018-01-01から1年間の記事一覧

Djangoのログ設定

デフォルトのLogging設定だと 実行時エラーが起こった時に、 Debug=Trueの場合: ブラウザ上にエラーメッセージとスタックトレースが表示される。 Debug=Falseの場合: ブラウザ上にはnginxのstatusコードのみ。 となっていて、本番環境でエラーが起こった場…

2018年活動まとめ

2017年末、2018年はアウトプットを増やそうと決めた。 主にはブログによるアウトプットになったが一応1年以上継続できている。 ブログの内容を元に、今年一年行ってきたことを振り返ってみる。 英語 「どんどん話すための瞬間英作文トレーニング」がよかった…

PyCharmでDocker側のpythonインタプリタを使ってデバッグ実行する設定

サンプル用コードを用意 git clone https://github.com/mixmaru/django_nginx_uwsgi_environment.git PyCharmで開く。 インタプリタの設定 Preferences->Project Interpreter画面の Project Interpreter項目でaddを押す 開いた画面の左側メニューから「Docke…

テーブル設計:ある項目によって保存したいデータ内容が変化する場合

SQLアンチパターン:EAV(エンティティ・アトリビュート・バリュー) - やる気がストロングZERO ↑ここで書いた事と同内容。 例えばペットの種類によって保存したい内容が異なる場合 例) 犬:名前、鳴き声、リードの色、小屋の色 猫:名前、鳴き声、毛色、し…

コードレビュー出すときに意識すること

巨大な変更はしんどい 一気にドカンと巨大な変更を投げるとレビュアーがつらい。 変更内容も複合的になっていて、全体像を理解するだけで疲れてしまう。 下手をするとまともに見てもらえない。 最終段階でレビューに出した場合、このタイミングで初めて出て…

AWS EC2で[docker-compose up]一発実行でDjango動作させるようにセッティングした

EC2上で[docker-compose up]一発でDjango webアプリが動作するところまでセッテイングした。 手順 aws ec2インスタンスを作成する ・セキュリティーグループでhttpとsshを開くように設定する ・sshでログイン。ユーザー名がec2-userであることに注意 ・sudo …

awkまとめ

awk使うのがたまになので、いざ使うときにわすれているのでまとめておく。 参考図書: シェルプログラミング実用テクニック作者: 上田隆一出版社/メーカー: 技術評論社発売日: 2015/05/15メディア: Kindle版この商品を含むブログを見る 変数 NF:各行の列数 …

SQLアンチパターン:EAV(エンティティ・アトリビュート・バリュー)

SQLアンチパターンを読んだ。とても良かったです。 SQLアンチパターン作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 9人 クリック: 698回この商品を含むブログ (46件) を見る 「S…

HTTP/2について勉強した

ここを見た。自分なりにざっくりまとめる。 普及が進む「HTTP/2」の仕組みとメリットとは | さくらのナレッジ HTTP/1.1での問題点 平行ダウンロードできる数が少ないので、必要となるファイルが多い場合にそこがボトルネックになりやすい。 HTTP/2の機能を使…

競技プログラミングでもしっかりとTDDを行うと良い

とあるきっかけで競技プログラミング的なものにトライしてみて、TDDをせず痛い目を見たので書いてみる。 トライ1回目 テストコードを書くのをすっとばす 普段ならテスト駆動開発を行っているので、まずテストを書くのだが、 競技中は制限時間を強く意識して…

トランザクション内で「重複チェック」してから「DB登録実行」しても重複が発生する場合がある

例えば「ユーザー名」など重複を許さない項目はDBへ登録クエリを投げる前にバリデーションで重複チェックするが、普通にやっていると「重複チェックをパスしたのに、DB登録実行時点では重複が発生している」となるケースが存在する。 「重複チェック」と「DB…

Nginx -> uWSGI -> Djangoで動作するDocker Imageを作った

Nginx -> uWSGI -> Djangoで動作するDocker Imageを作った github.com ↓ここでいう、webサーバーに当たる部分が出来た感じ。 (引き続きDB環境も含めるようにしていく予定。) Django webアプリのDockerを使った本番環境、開発環境の構成を考える - やる気が…

pipenv lockでエラー[TypeError: 'module' object is not callable]

$ pipenv lock でエラーが出るようになった。 pipenvのバージョンは2018.4 ※以前は出てなかったのでmacのupdateが問題だった? TypeError: 'module' object is not callable issueが上がっていた。 github.com 修正されたようなのでpipenvを2018.10にアップ…

uWSGIの使い方(Djangoと使う場合)

Djangoを動かすのには nginx -> uWSGI -> Django という感じの構成にするのが良いっぽい。 uWSGIの使い方について調べたのでまとめる。 ここの荒い翻訳になっている。 Quickstart for Python/WSGI applications — uWSGI 2.0 documentation インストール pip …

Dockerを使うと何がいいのか?悪いのか?

しばらくDockerで遊んでみて実感したDockerを使うメリットをまとめてみる。 環境を汚さない 開発マシンにいろいろミドルウェアを入れていくと、把握していない依存ライブラリがいろいろインストールされていって精神衛生上よくない。依存ライブラリ周りで問…

Django webアプリのDockerを使った本番環境、開発環境の構成を考える

Django webアプリのDockerを使った本番環境、開発環境の構成を考え中。 本番環境はawsのEC2インスタンス1つにDockerを使ってすべてをまかなうものとする。 (本当はDBはRDSを使うべきだと思うけど、Dockerの勉強を兼ねているので、、) 現状の案をまとめる。…

Phthonの内包表記まとめ

※Phthon3 Phthonには内包表記ってのがあって、これを使うとリスト等のコレクションの各要素を使って新しいコレクションを作るのを1行で書ける。 内包表記を使わなくても、forを使えばできることなのでなかなか覚えなかったが、 そろそろ覚えようと思ったので…

初めてテスト駆動開発を行ってみて感じたこと

「テスト駆動開発」を読み終えて、初めてのテスト駆動開発で開発を行ってみた。 テスト駆動開発作者: Kent Beck,和田卓人出版社/メーカー: オーム社発売日: 2017/10/14メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 作ったのは「twitt…

工数見積のテクニックまとめ

工数見積のテクニックについていろいろ知見がたまったのでまとめておく。 工数見積の難しさ 工数見積は難しいが、それはそもそも着手前に正確に工数を見積もる事が不可能だから。 「不確実性のコーン」の話の通り、未知の問題を前もって考慮することなどでき…

pythonパッケージをターミナルから実行する場合は[-m]オプションを使う

自作したpythonのパッケージのスクリプトをターミナルから実行しようとしたらimportでコケていた。 パッケージ内容 └── my_package ├── __init__.py ├── main.py └── people.py main.py from .people import People man = People() man.say_hello() people.p…

AWS EC2でインスタンス作成する際に理解しときたい周辺設定

AWSでEC2インスタンスを立てて何かしようと思った時に、EC2やELBやRDS以外のその他の周辺の設定(VPCとかルートテーブルとか)に関しても、いろいろと理解しとかないといけないことがある。 それらについて記載する。 VPC AWS内の仮想プライベートネットワー…

トランザクション分離レベル Serializableでも同時実行でエラーがでる可能性がある

やりたかったこと IDが重複しないことを確認してから、DBにレコードを追加したかった。(IDの自動インクリメントは使わないものとする) ユニーク制約があるので、重複登録しようとしてもエラーになるのだが、 予めチェックしてエラーにならないようにしたか…

EC2上でDockerのnginxコンテナを動かしてアクセスを確認した

Dockerを使ったサービス構築は aws ECSのほうがいろいろ便利そうだけど、 とりあえず基本を理解するためにEC2インスタンスを立てて、 Dockerをインストールしnginxイメージでコンテナを作成しブラウザからのアクセスできることを確認してみた。 EC2インスタ…

簡単な自動化はシェルコマンドで手軽にできる

「シェルコマンドを使いこなせたらいろいろ便利なんだろうなあ」というイメージがあった。 この本(シェルプログラミング実用テクニック)を読んで勉強してみた。 シェルプログラミング実用テクニック (Software Design plus)作者: 上田隆一,USP研究所出版社…

djangoテスト環境をdockerで構築した

「Dockerでなんかいろいろ便利になる」ってイメージだったので自分の開発にDockerを導入た。 やっとDockerの便利になるポイントが見えてきたのでまとめる。※追記 開発環境の構築というよりもテスト環境の構築というほうが正しかったのでタイトルも訂正した。…

圧縮アルゴリズムを書いてみたことでバイト列に対する感覚が定着した

普段プログラムを書いていてもバイト列を意識しないといけないことがあまり無いので、バイト列に対する感覚がイマイチだった。 「大規模サービス技術入門」の中に「圧縮アルゴリズムを書いてみる」という内容があり、pythonで実際に書いてみたら意図せず定着…

pipenv [install, update, sync] [Pipfile, Pipfile.lock]について

herokuデプロイに必要で雰囲気で使っていたが、 ちょっと調べたのでまとめておく。pipenv バージョン 2018.7.1 PipfileとPipfile.lockの違い Pipfileはどういうパッケージをどのバージョンで入れたいかを指定するファイルで、 実際に入ったパッケージの詳細…

「テスト駆動開発」を読んでやっとテスト駆動開発ができるようになった

読んだ。 テスト駆動開発 作者: Kent Beck,和田卓人 出版社/メーカー: オーム社 発売日: 2017/10/14 メディア: 単行本(ソフトカバー) この商品を含むブログ (1件) を見る ずっとテスト駆動開発をやってみたかったが個人でも業務でも出来ていなかった。理由…

python3のdatetimeとtimezoneとpytzについて

djangoで datetime.datetime.now() で取得したdatetimeオブジェクトを使ってDBに値を保存しようとしたら 以下のwarningがでた。RuntimeWarning: DateTimeField ItemList.created received a naive datetime (2018-06-30 15:27:40.224351) while time zone su…

キーボード使用感レビュー [マイクロソフト エルゴノミクスキーボード Sculpt Ergonomic Desktop AES L5V-00030]

マイクロソフト キーボード マウスセット ワイヤレス/セキュリティ(暗号化機能搭載) Sculpt Ergonomic Desktop AES L5V-00030 出版社/メーカー: マイクロソフト 発売日: 2015/12/11 メディア: Personal Computers この商品を含むブログを見る 購入に至った理…