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

マスタによくある適用開始日と終了日の命名

TL;DR RDB でのマスタ系によくある「適用開始日」「適用終了日」の命名ってどんなのがいいだろうかって考えた。 activated と deactivated enabled と disabled あたりがよさそう。 created modified みたいなカラム名を使うようなら特に。 その他の考えたや…

「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ

現場で使える Ruby on Rails 5速習実践ガイド作者:大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀出版社/メーカー: マイナビ出版発売日: 2018/10/19メディア: 単行本(ソフトカバー) タイトルの通り、非常に実践的な本。 入門…

CakePHP3 のテストで Fixture を bake する #cakephp

TL;DR Fixture を bake する際のテンプレ bin/cake bake fixture \ --records \ --schema ${テーブル名} \ --count ${レコード数} \ --conditions "${WHERE句に書くような条件}" --records ( test ではなく) default のデータベースを元にテスト用レコードを…

「実装パターン」を読んだ

実装パターン作者:ケント・ベック,Kent Beck出版社/メーカー: ピアソンエデュケーション発売日: 2008/12/22メディア: 単行本(ソフトカバー) いつだったか前職の Slack で話題にあがっていて、目次を見るだけで名著の雰囲気が出ているし、ケント・ベックだ…

CakePHP3 で Migration を途中からやる #cakephp

概要 CakePHP3 で DB の構成管理を行っているが、何らかの事情でプレーンな環境で migrate できない場合の現実的な回避策としてのメモ。 プロダクションでは利用されているが、十分に開発環境で運用されていない場合などを想定。 現時点での dump を取得する…

AWS CLI の default profile が効かない #AWS

AWS

問題 aws cli で default profile が効かない現象に遭遇した。 --profile default でやると動く。 解決策 aws configure list とか aws configure get profile やってみると実は別のprofileセットされてたりしませんか?— キャンプ場を買う (@okazu_dm) 2019…

(2020-02-07 追記: 転職活動終わりました)【求職エントリ】転職活動してます

(2020-02-07 追記) 転職活動終わりました 今回の転職活動は終了しました。 su-kun1899.hatenablog.com 転職活動しています 現在働いている会社を2019年12月末で退職することになりました。 年明けから無職なので、次の会社を探しています。 1月までは就活し…

CakePHP3 を CircleCI でテストする #cakephp

概要 CakePHP3 を CircleCI でテストするようにするまとめ。 Database を使ったテストも出来るようにしています。 TL;DR 最終的な yml はこんな感じです。 version: 2 jobs: build: docker: - image: circleci/php:7.1.32-fpm-node-browsers environment: DA…

MySQL で日付の疑似表を作る #mysql

概要 MySQL で日付の疑似表を作るクエリ。 集計分析等で、データがない日付も一覧としては出したいようなケースでの利用を想定。 TL;DR 色々試してみたけど、以下に落ち着いた。 SELECT @seq := 0 AS seq , DATE('2020-01-01') AS ymd FROM dual UNION ALL S…

「よなよなエールがお世話になります」を読んだ

ぷしゅ よなよなエールがお世話になります作者: 井手直行出版社/メーカー: 東洋経済新報社発売日: 2016/04/08メディア: 単行本この商品を含むブログを見る ビールの「よなよなエール」を作っている、ヤッホーブルーイングの社長の本。 今年だったか去年だっ…

カスタム Docker Image を ECR で管理して、 CircleCI から利用する #AWS #Docker #CircleCI

概要 php のプロジェクトに CircleCI を導入した。 PHP の拡張(特に grpc 拡張)のインストールに時間がかかるため、独自イメージを用意してそれを使うことにした。 イメージの管理には Amazon Elastic Container Registry (ECR) を使ってみた。 ECR でリポ…

CakePHP3 でテストの置き場所を変更する #cakephp

概要 CakePHP3 では tests/ 配下にテストコードを書くことになっている。 何らかの原因(察して)でパスを規定から変更したい場合の修正箇所に付いてまとめる。 以降 tests/PHPUnit/ に変更すると仮定して記載する。 paths.php TESTS が定義されているので書…

Elasticsearch が応答しなくなった #AWS #Elasticsearch

概要 Amazon Elasticsearch Service で、Elasticsearch が突然死んでしまった 復旧方法が分からないので、結局別ドメインで作り直した 原因は結局わからないままだったので備忘録です。 想定される原因や、強制的に再起動する方法があったら教えてほしいです…

brew services に慣れていない

mac

docker で 9000番ポート使おうとしたら他が使っていると怒られた。 なんだろうと思って調べてみると php-fpm が使っていた。 $ lsof -i:9000 -P 起動したっけな、と思いながら無邪気に kill したけど再起動が走り止められない。。 自動で何か仕込んでたかな…

リリースしたらレゴを組み立てている

僕らはリリースするたびレゴを組み立てている。 それを「リリースレゴ」って呼んでいる。 リリースレゴとは レゴブロックをリリースの度に組み立てる。 ざっくり、下記のようなルール。 1案件を Production にリリースするたび、組み立て手順を1進める 1…

「ここだから話せるVPoEの現場」に参加した #kiitok_meetup

kiitok.connpass.com 最近また「人・組織」方面の関心度が高まってきて、面白そうだったので参加してみた。 年齢制限があったけど、ギリギリセーフ笑 参加して考えたこと VPoE になる人というのは、VPoE になろうとしたわけではない気がした。 たぶん自分の…

CircleCI をローカルで動かそうとしたら image が pull できない #circleci

問題 CircleCI をローカルで動かそうとしたら、なんかエラーになって動かない $ circleci build すると下記のエラーメッセージが出る。 Error: Could not find picard image: failed to pull latest docker image: exit status 1 解決策 メールアドレスでロ…

バッチ処理を作るときに考えていること

バッチ処理を作る必要があるときに、考えているようなことをまとめておく。 はじめに バッチは機能の実現方式であって、機能そのものではないと思っている。 なので、バッチ処理は単独で考えるものではないというのが前提。 とはいえバッチという手段を選ん…

Mac に Virtual Box がインストールできない

概要 Macをクリーンインストールして、VirtualBoxを入れようとしたらエラーになってしまった。 brew でも、ダウンロードしたインストーラでもだめ。 installer: The install failed (エラーによってインストールできませんでした。ソフトウェアの製造元に問…

SSH トンネルしてみる

概要 SSH で ポートフォワードして、トンネル経由で接続する。 Example 踏み台経由サーバ経由で、リモートサーバの 3306 にアクセスする。 トンネルを掘るに当たり、入り口はローカルポートの 13306 としてみる。 説明 例 リモート remote.com 踏み台 fumida…

GitHub でサブチームを作ったらリポジトリの権限が剥がされた #GitHub

問題 GitHub のチーム機能を使ってサブチームを作ったら意図しない挙動になった。 サブチームを作ってリポジトリ Admin 権限を付与し、親チームは Write 権限にしようとしたところ、サブチームの権限が変更されてしまう事象が発生した。 GitHub のチーム機能…

Visual Studio Code の設定を管理する #VSCode

概要 会社と自宅とか、マシンの買い替えを考慮して、VSCode の設定を管理できるようにしておく。 azure.microsoft.com 基本的な設定 Settings Sync という拡張機能が便利そうだったので、それを使ってみることにした。 GitHub のトークンを使って、 Gist に…

「みんなのコンピュータサイエンス」を読んだ

みんなのコンピュータサイエンス作者: Wladston Ferreira Filho,小山裕司出版社/メーカー: 翔泳社発売日: 2019/01/15メディア: 単行本(ソフトカバー)この商品を含むブログを見る 文系学部卒で、ひょんなことからプログラマになった僕にとって、コンピュー…

大きなファイルを分割する

経緯 1GB 以上ある大きなファイルを見たい ログみたいなの grep 駆使とかではなくて何ならエディタで見たいようなとき もういっそファイルを分割して見ることにする split コマンドを使う split -a 3 -b 100m bigsize.log splited- -a suffix の桁数を指定 -…

pytest-mock を使ってみた #python

概要 Python のテストを Pytest で書いてみた Mock を使おうと思ったら pytest-mock という標準の薄いラッパーを使うのがいいらしい そもそも標準を知らないので少し苦労した なのでログとして残しておく テスト対象 HTTPリクエストして、レスポンスを返すよ…

DockerHub から image のタグ一覧を取得する

Docker Hub の image から tag を探そうと思ったときに、数が多いと中々目当てのものが見つからなかったりする。 API で取得するスクリプトを組んでる人がいたが、API のバージョンが古かったり、タグがたくさんあるとページングされたりするので、自分で書…

「サーバ/インフラを支える技術」を読んだ

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己出版社/メーカー: 技術評論社発売日: 2008/08/07メディア: 単…

Go で JSON を扱うユーティリティを作ってみた #golang

概要 Go で JSON を扱うときは構造体を用意して扱うのが一般的と思われる。 ただ外部の API 経由で取得する JSON なんかだと、フィールドが大量だったり、階層が深かったりして扱うのが大変だったりする。 一部の値だけ使いたいときにもっと手軽に扱えないか…

「なぜ、あなたの仕事は終わらないのか スピードは最強の武器である」を読んだ

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である作者: 中島聡出版社/メーカー: 文響社発売日: 2016/06/08メディア: Kindle版この商品を含むブログ (5件) を見る Amazon の Prime Reading で読めたので読んでみた。 スタートダッシュ方式によ…

#RSGT2019 に参加して考えたことなど

2019.scrumgatheringtokyo.org 今年も Regional Scrum Gathering Tokyo に参加してきた。 チケット取れずに行けないかなと思っていたけど、December チケットで滑り込み。 RSGT2019 をきっかけに自分が感じたり考えたことをまとめておく。 なので、セッショ…