illuminate/databaseでクエリログはいつからデフォルトで取らないようになったのか

Laravel 9.x時点での話 実行済みのクエリログを取得する場合、DB::connection()->enableQueryLog();のようにしてログを有効化し、$queries = DB::getQueryLog();のようにする。 クエリログはデフォルトでは取得しないようになっているので最初にenableQuery…

些細なことでも課題に感じたことは言語化して共有できれば良いと思う

タイトルの主語がでかい。状況次第だろう。 ただ、例えば、チームでプロダクト開発をしているときに課題に感じることがあれば、些細なことであっても言語化して共有できれば良いと思っている。共有はテキストベースだと更に良いと思っている。 ...のだが、な…

PHPStanの実行結果をreviewdogとGitHub Actionsを用いてPRにレビューコメントできるようにする

PHPStanというPHPの静的解析ツールがある。 github.com 歴史あるPHPプロダクトにこれを導入する場合、解析レベルを低めに設定したとしても、既存コードで多くのエラーが出ることがある。もちろんそれらのエラーを潰していくことも大事だが、ひとまず小さく導…

PHP-Parser入門した

PHP

最近「PHPのコードをパースしていい感じにしたい」ということがあった。その時にPHP-Parserについて調べたので、使い方などを軽くメモしておく。 PHP-Parserとは このライブラリのこと。 github.com PHPのコードを静的解析して抽象構文木(AST)を生成し、そ…

tblsによるデータベースドキュメントの更新をGitHub Actionsで自動化してみる

tblsという非常に便利なデータベースドキュメント生成ツールがあり、よく利用させてもらっている。「tbls is 何?」という人は各自で調べてみてほしい。 github.com これまでドキュメントを更新するときは、ローカルでtbls doc -fして、差分をpushしていた。…

Livewireをほんの少しだけ触ってみた

昨日、社のとある勉強会でHotwireの話題があがった。僕はそれがどういうものなのかよく分かっていなかったのだが、他の参加者から「PHPでも似たようなやつあったような?」的なことを教えてもらった。どうやらLivewireがそれにあたるものらしい。せっかくな…

Habitifyを使い始めて100日くらい経った

Habitifyという習慣化アプリを使い始めて100日くらい経ったので、なぜ使い始めたのか、どのように使っているか、使ってみてどうなったかを書いてみる。 あと「習慣化」する上で意識したいことなんかも少しだけ書く。 なぜ使い始めたのか blog.tnmt.info tnmt…

Scrapboxに競プロ関連の雑なメモ置き場を作った

最近競プロにハマっています(Nヶ月ぶりM度目)。 scrapbox.io ということで、競プロ関連で雑にメモしておきたいことをScrapboxに書いていこうと思います。具体的には、やるだけ(一瞬で解法が思いつく)ではない問題の解法だったり、新しく学んだことや忘れ…

Kindle Oasisを買った

「読書する」を今年の抱負の1つにしているのですが、その環境を整えるためにOasisの32GB・広告無しモデルを買ってみました。 使い始めてまだ1週間くらいしか経っていないですが、現時点での感想は「めっちゃ使いやすい!!1」です。Paperwhiteの2012年モデ…

2020年の振り返りと2021年の抱負

前回の振り返りと抱負はこんな感じでした。 2020年の振り返り 技術的なこと フロントエンドとサーバーサイドを中心にやっていました。歴史あるプロダクトの開発に携わっているのですが、古いライブラリのバージョンアップをゴリゴリ進めたりして年初と比べる…

第三回アルゴリズム実技検定(PAST)を受けた

PASTをリアルタイム受験していたので軽く感想を書きます。 past.atcoder.jp まず、結果はこんな感じでした。上級です。 D: 入力例1をそのまま貼り付けたのに微妙に実装に時間かかってしまった H: DPなんだけどジャンプ中にゴールするケースを考慮できてなく…

オンラインボドゲ会もいいぞ

ボードゲーム(ボドゲ)は皆で同じ場所に集まってアナログでやるのが楽しい!!最高!! そう思ってるタイプの人間だったのですが、最近オンラインで友人とボドゲをしてみたら結構面白かったので、かるーーーく紹介します。 どんな感じでやるの? 酒やおつま…

AtCoderでACした人をSlack上で褒めるツールを作った

こんなものを作りました。 github.com なぜ作った? 最近、社で競プロに興味を持つ人が少しずつ増えてきました。基本的にはエンジョイでやっていこう!というスタンスなので問題を解くペースは人それぞれですが、中には時間をうまく作って毎日解いてくる人も…

2019年の振り返りと2020年の抱負

前回の振り返りと抱負はこんな感じでした。そのときはいろいろ迷いがあって「ほげ〜」としていたのですが、今は目標があって、それに向かってやっているところです。 それでは今回も振り返りと抱負を書いていきます。 2019年の振り返り 技術的なこと これま…

Mint60を作った

初めての自作キーボードです。 きっかけ 普段はHHKBやMacbookのキーボードを使っているのですが、ここ最近は肩こりがひどかったり指が疲れやすくなったりで困っていました。そこで社のキーボード好き好き軍団(沼の住人たち)にいろいろ聞いてみた結果、「キ…

OOUIについて調べた

最近、OOUI(Object-Oriented User Interfaces)の考え方が今の僕には必要だということが分かり、いろいろ調べてみました。 読んだ記事 ソシオメディア | OOUI – オブジェクトベースのUIモデリング ソシオメディア | モードレス・ユーザーインターフェース …

「経費精算で損しないために」の続き

GMOペパボ Advent Calendar 2019の記事ではありません。(面白い記事がたくさんあるのでぜひチェックしてみてください!!1) この記事は何? 弊社アドベントカレンダーの5日目に同僚のakht氏がこのような記事を書きました。 akhtikd.com akht氏は競技プログラ…

AtCoder Beginners Selection 300点問題を解いた

【注意】この記事はAtCoder Beginners Selection (ABS)のネタバレを含んでいるのでまだ解いてない人は下のほうまで見ないほうが良いです!(内輪向け感のある発言) 少し前から周りの人に競プロを宣伝していて、初めての人には「とりあえず最初はABSをやると…

最近遊んだボードゲームたち

三連休の某日に都内のボドゲ会に参加した。不特定多数が参加するボドゲ会に参加するのはいつぶりだろうというくらい久々だったし、そもそもボドゲをやるのが久々だった。(最近全然ボドゲやってないな...) そのとき遊んだボドゲがなかなか面白かったのでメ…

2018年の振り返りと2019年の抱負

新年なのでブログのデザインを変えた。あと断捨離の一環でSlackやDiscordの整理をしている。 さて、今年も書いていくか。 2018年の振り返り 去年書いた抱負を元に振り返ってみる。 引き続き継続的なインプットとアウトプットをする。 PHP、SQL、Linuxなどな…

ランチをいい感じにするbotを作った

はじめに 最近Slack上で動くbotを作るのにハマっている。 元々は社Slackの自身が担当するプロダクトのチャンネルに便利botを生やしたいお気持ちでbot作りを始めたのだが、いろいろ試していくうちに楽しくなってきて今に至る。 そして今回はその過程で作ったb…

ボドゲ福袋を買った

あけましておめでとうございます。今年もよろしくお願いします。 さて、今日は都内で暇を持て余していたので、ボドゲ福袋を買いにジェリカフェ渋谷へ行ってきました。 開店N分前に到着したら既に何人か並んでいて、早めに来て良かったなあと思いながら待機。…

2017年の振り返りと2018年の抱負

今年の振り返りと来年の抱負を箇条書きしていく。 去年のやつはこちら。 2017年の振り返り 印象に残っているやつだけ書く。アクション自体が良いものには を、そうでないものには をつけている。 初めての転職 知り合いが1人もいない新しい環境で最初はす…

MySQLのレプリケーション環境をDockerでシュッと構築する

はじめに GMOペパボ Advent Calendar 2017の15日目の記事です。 昨日の担当は@kurotakyさんによる RubyでBancor protocolのシミュレーションをするライブラリ"Bancor"を作っています - mo-fu note でした。 ブロックチェーン技術や仮想通貨はだいぶ前から話…

MySQLのバイナリログについて調べた

何となくでMySQLを使っているところがあるので、それなりに機能を理解しながら使っていきたいお気持ち。そんな中で最近バイナリログについて調べていたのでその内容をメモしておく。 バイナリログについて バイナリログには、テーブルやデータの更新操作が格…

初めてISUCONの問題をやってみたらすごく楽しかった話

今日、某所に社のエンジニア6人で集まってISUCONの過去問をやった。 今回はISUCON5予選問題「ISUxi」を2チームに分かれて、予選と同様に10~18時で競った。 問題内容や技術的な話はここではしないけど、やってみた感想としては、競プロ以外でチームでプログラ…

「いまさら聞けないビットコインとブロックチェーン」を読んだ

最近、ビットコインやブロックチェーンに興味を持つ人が私の近くで増えている。そんな中、私はこれらについてほとんど知らなかったのだが、これらに興味を持っている人の1人が「いまさら聞けないビットコインとブロックチェーン」という本が分かりやすくて良…

PHP5.5で追加されたジェネレータについて調べた

PHP

前にまとめたPHP5系で追加された機能を振り返る記事の続き。今回は、ほぼ知らなかったジェネレータについて調べた。サンプルコードを多めに載せ、まとめていく。 ジェネレータとは ジェネレータとは、イテレータのような反復処理をシンプルに実装できる構文…

PHP5.3で追加された遅延静的束縛(Late Static Bindings)について調べ直した

PHP

前にまとめたPHP5系で追加された機能を振り返る記事の続き。今回は、よく理解していなかった遅延静的束縛について調べ直した。 転送コールと非転送コールとは 遅延静的束縛を理解するために、先にこの2つについてまとめる。 ▼ 転送コールとは self / parent …

PHPのバージョン5.3から5.6までの新機能をおさらいする

PHP

レガシーなPHPコードを触っていると「あれ、このバージョンだとこの機能はまだ使えないのか?」みたいなことがたまにある。私がそれなりにPHPを使うようになったときの最新バージョンが5.6くらいで、それより前の機能はいつ追加されたものなのか曖昧にしか覚…