記事

PHPカンファレンス沖縄2019に参加してきた

ポエム

PHPカンファレンス沖縄に参加してきた先月に続きPHPカンファレンスに参加してきました。 沖縄は6月末に宮古島にいった以来で、少し気温の変化が感じられました。 セッション実用PHPメタプログラミング実用PHPメタプログラミング evalは最終手段 ex. foreach内でevalを使って関数定義するとか →Closureで頑張る 大いなる力には大いなる責任が伴う 静的解析の恩恵が受けられな...

PHP PHPカンファレンス

PHPカンファレンス北海道2019に参加してきた

ポエム

PHPカンファレンス北海道2019に参加してきた2ヶ月ぶりのPHPカンファレンスに参加してきました。(前回はPHPカンファレンス福岡2019に参加・登壇してきました) 北海道は子供の頃数年ほど住んでいたり、祖父母が住んでいたりと縁の地なので、他のカンファレンスとはちょっと違った感情を感じて、ポエミーでエモい気持ちになりながら現地で過ごしていました。(昔住んでいた家やよく遊んでいた公園を見に行ったり...

PHP PHPカンファレンス

FuelPHP1.8.0→1.8.2、PHP5.6→PHP7.3へのバージョンアップした

アプリケーション

概要FuelPHP1.8.0→1.8.2、PHP5.6→PHP7.3へのバージョンアップ対応をした。業務でアプリケーションのバージョンアップ対応を行ったので、取り組みをまとめておく。 スコープ FuelPHP1.8.0 → FuelPHP1.8.2 PHP5.6 → PHP7.3 対象リポジトリ ユーザー側アプリケーション 管理側アプリケーション パッケージリポジトリ ※ミドルウェアのバージ...

PHP FuelPHP

DockerのOperation not permittedというエラーに対応する

インフラストラクチャ

概要 Docker Composeを使ってgolangのtest実行していたら、Operation not permittedというエラーに遭遇した。 対応 Docker Documentation - runtaime-privilege-and-linux-capabilities Dockerコンテナの特権設定をいじると解決する。 gobel_test_db: container...

Docker Docker Compose Linux linux capabilities seccomp Tips

Golangでトライ木を実装する

アルゴリズムとデータ構造

概要トライ木のアルゴリズムと実装についてかく。 bmf-san/road-to-algorithm-master  トライ木とはトライ木(プレフィックス木ともいう。英語はそれぞれ、trie、prefix tree)は文字列の集合を扱う木構造の一種。 各ノードは単一または複数の文字列あるいは数値を持ち(ノードは必ずしも値を持つ必要はない)、根ノードから葉に向かって探索して値をつなげていくことで単語を...

Golang 基数木 トライ木

Mackerelで監視対象から外れたホストを再度復帰させる方法

インフラストラクチャ

概要 Mackerelの監視対象から誤ったホストを退役させてしまったり、意図せず監視対象から外してしまったときなどに復帰させる方法についてメモっておく。 手順 mackerel-agentを再起動しても自動で復帰しないのでホストに割り振られたhostIdを更新させる必要がある。 service mackerel-agent stop cd /var/lib/mackerel-agent mv id...

Mackerel Tips

Dockerizeを使ってDocker Composeのコンテナの起動順を制御する

インフラストラクチャ

概要Dockerizeを使ってDocker Composeで起動するコンテナの順番を制御する方法についての覚え書き。 github.com - jwilder/dockerize なぜDockerizeを使うのかDockerizeではなく、wait-for-it というピュアなbash scriptを使った方法も採用することもできる。 cf. Docker-docs-ja - Compose の起...

Docker Docker Compose Dockerize

Golangでクリーンアーキテクチャに入門する

アプリケーション

概要GolangでClean Architectureの実装に挑戦したみたので整理しておく。 内容は概ねスライドの内容を踏襲している。 理解しきれていないところがあったり、自分の解釈、考えを記述しているので、正しくない部分もあるかもしれない。 スライドLTをする機会があったのでスライドを貼っておく。 Dive to clean architecture with golang ソースソースはこれ。...

Clean Architecture Golang DIP

MySQLでテストデータを生成するSQL

データベース

概要MySQLだけでテストデータを生成するSQLについてメモしておく。テストデータをスクリプトで生成する方法は柔軟性が高く、上等手段な気がするが、数万件のレコードを用いてパフォーマンステストをしたい時などはSQLだけでも十分かもしれない。 SQLクエリはこんな感じ。 DROP TABLE IF EXISTS `tests`; CREATE TABLE `tests` ( `id` int(...

MySQL sql cross join

PHPカンファレンス福岡2019に参加・登壇してきました

ポエム

PHPカンファレンス福岡2019に参加・登壇してきましたPHPカンファレンス福岡に初めて参加してきました。 今までCFPに落ち続けていたのですが、今年度は無事採択されることができたのでスピーカーとして参加しました。 東京以外のカンファレンスに参加するのはPHPカンファレンス仙台に続いて2回目でした。 登壇資料はこちら。PHPでURLルーティングを自作する PHPerKaigiでトークをしたネタでし...

PHP PHPカンファレンス