PHPerKaigi 2022に参加していろいろわからないことがあったので調べたりして

さて本題、見たセッションの簡単な感想と、わからなくて調べたこと Datadog APM で始める Laravel アプリケーションのパフォーマンスチューニング 予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント PHPとGraphQL BASE大規模リアーキテクチャリン…

TridactylでAmazonの商品ページのURLを正規化してコピーする

2022-05-04追記。JavaScriptコード修正した。location.hrefやめてdocument.querySelector('link[rel=canonical]').hrefから取るように。 js で自由にJavaScriptを書ける。その結果を composite して、 yank につなげる。それを bindurl でキーバインド設定す…

VirtualBoxでVM起動時に「The VM session was closed before any attempt to power it on.」というエラーメッセージが出た場合

仮想マシン"..."のセッションを開けませんでした。 The VM session was closed before any attempt to power it on. 終了コード : E_FAIL (0x80004005) コンポーネント: SessionMachine インターフェース: ISession {c0447716-ff5a-4795-b57a-ecd5fffa18a4} …

Tridactylとか使ってて、フォーカス当たると要素内でスクロールしてしまい困る場合

overflow: hiddenなのが原因なので、Stylusなど使って、overflow: clipにしてしまおう。 hidden (中略)内容はプログラム的に (例えば、 offsetLeft のようなプロパティの値を設定する方法などで) スクロールすることができます(中略) clip (中略)clip と hid…

PHPカンファレンス2021のMySQL関係のセッション2つがめちゃくちゃよかった

2021-10-09追記。「MySQLとインデックスとPHPer」のスライドのリンク間違っていました。修正済みです。 今回はいろいろ忙しいし書くつもりなかったけど、めちゃくちゃいいセッションが2つあったので、その感想だけ手短に書く。 PHPer が知るべき MySQL クエ…

三井住友銀行SMBCダイレクトに最近ログインできなくなった場合

エラーコード:PC-CECEE04-09000-E ただいまお取り扱いできません。恐れ入りますが、しばらくお待ちになってからアクセスしてください。 というエラーが出た場合、おそらくブラウザに保存してあるSMBCダイレクトのアカウント情報を削除すればログインできる。…

各メーカーの無線LANルータのサポート期間を調べてみた(が、あまりわからなかった)

エレコムの無線LANルータの脆弱性の件で、発売から3年半ちょいのルータのサポートが切れているのを見て驚いたので、各メーカーのサポート期間についてちょっと調べてみた。 関連: 無線LANルーターなどネットワーク製品の一部における脆弱性に関して - 最新情…

Laravelの例外処理で最低限知っておきたいこと

例外をレンダリング・出力する機能と、ロギングする機能の2つに分かれる デフォルトの例外処理クラスApp\Exceptions\Handlerが継承する親クラスIlluminate\Foundation\Exceptions\Handlerには、render(), report()というメソッドがあり、これらがそれぞれレ…

現役エンジニアと駆け出しエンジニアの遭遇についてちょっと語る

昨夜、PHPerKaigiのプレイベントとして、現役PHPエンジニアが語る、プログラミングを仕事にするということ - connpassというイベントがあった。 そのイベントの宣伝ブログやイベント自体にちょっと突っ込んだりしていたのだが、 長いから途中までしか読んで…

LaravelのRefreshDatabaseはいつ実行されるか、なにを実行しているか

いつ実行されるか 前提として、PHPUnitでのsetUp()等の実行タイミングから。 setUpBeforeClass()がテストクラスごとに、最初のテストメソッドの実行前に。 setUp()がテストメソッドごとに、テストメソッド実行前に。 tearDown()がテストメソッドごとに、テス…

DockerのMySQLでdocker-entrypoint-initdb.dのSQL読み込み始めたと思ったら"MySQL server has gone away"と言われた場合

多分SQLがでかくて、max_allowed_packetが足りてない。/etc/mysql/conf.dあたり に、 [mysqld] max_allowed_packet=100M みたいなファイルを置こう。 参考: Connection lost on import of database · Issue #13 · docker-library/mysql 特にDockerで特有の問…

2020年読んだ本

去年はほんと本が読めなかった。まあ、忙しかったとは思う。技術書が読了したのがまさかの0で、技術書以外のフィクション以外が30冊弱、小説ちょっとは読んだ気してたがこれも30冊弱。漫画は500冊弱で、これは大きく変わってないか。 技術書は部分的に読んだ…

Vimでステータス行にビジュアルモードで選択中の文字数が出てこなくなったら

Vim

ステータス行の右の方に、シンルグバイト文字列を選択中なら文字数の数字だけ、マルチバイト文字列を選択中なら文字数-バイト数、矩形ビジュアルモードだと縦x横が表示されるアレ。 set showcmd すればいい。デフォルトオンっぽいんだけど、.vimrcあれこれし…

2020年振り返り

仕事 前年(2019年)末からの案件がまだ継続中。出勤もだが固定の時間で働く働き方が合わず、さらに国内でコロナ感染者が出てきてもしばらくフルリモート移行できなかったこともあり、2月か3月くらいでもうやめようと思っていたのだが、その後けっきょくフルリ…

PHPカンファレンス 2020を見たので簡単な感想を

コロナなのでオンライン。オンラインのカンファレンス見るのは初。今年そもそもカンファレンス初。あと~関西じゃないPHPカンファレンスも初だな。 ほんと簡単な感想です。アーカイブぜんぶ残るみたいなので興味あるセッションはアーカイブ見ましょう。 スラ…

AutoHotkeyを管理者権限のウィンドウ上でも動かしたいけど管理者権限で動かしたくない場合

昔ならいざ知らず現代においてAutoHotkeyを管理者権限で動かすようなことは普通はしないのだけど、そうすると、管理者権限で実行したプログラムのウィンドウ上でAutoHotkeyが動かない。 まあ権限が低いプログラムから権限が高いプログラムを操作されたら問題…

Composerの高速化を設定した状態で2系に上げるとトラブる

PHP

https://github.com/hirak/prestissimo プラグインを入れたり、https://packagist.jp/ ミラーを使うように設定した状態で、Composerを2系にアップデートすると、composer require時等に以下のような警告・エラーが出る。 The "hirak/prestissimo" plugin was…

Laravelのファサードとはなにか

ずっと使っているけど十分に理解できなかったので調べた。 ファサードとはなにか 結論から言うと、ファサードは、対応したサービスのインスタンスのメソッドを、静的にコールできる仕組み、のようだ。 GoFのデザインパターンのFacadeパターンとはちょっと違…

Let's Encryptの証明書の期限切れ通知メールをunsubscribeすると現状どうしようもないっぽい

ある日更新が不要になったLet's Encryptで取得した証明書の期限切れ通知メールを見てて、unsubscribeと書いてあるのに気付いてふとクリックしてしまった。 クリックした後の感じでは、どうもこの通知解除は、あるドメインに対してだけではなくメールアドレス…

Googleの検索結果一覧で狭い画面でも横スクロールバーが出ないようにする

いつの間にかmin-widthが1261pxとかになっていて、ブラウザのウィンドウは小さめ派には微妙な感じになっていたのでなんとかしてみた。 #appbar, .rhscol, #top_nav, div#searchform, #fbar { min-width: 0px; } まずmin-widthが1261pxに設定されているすべて…

Gitであるauthorが変更したファイル一覧が欲しい

Git

git diff --name-onlyとかで行けるかなと思ったけど、git diffはどうもauthorの指定はできないようだった。まあ仕組みを考えると妥当か。 ちょっとややこしいけど、以下のようにしてgit logでそれっぽい感じで取れた。--name-onlyじゃなくて--name-statusな…

Laravelのフォームリクエストのジレンマ

Laravelにはフォームリクエストという便利な機能がある。コントローラに適切なフォームリクエストをインジェクションさせると、リクエストがフォームリクエスト内のルールでバリデーションされた上でインジェクションされる。 ['string'], 'email' => ['ema…

LaravelでRefreshDatabaseしているテストをどう安全に運用するか

課題 RefreshDatabaseはテストごとにデータベースをクリアしてくれる便利なトレイトで、データベースを使ったテストを書くときにはほぼ必須だが、運用をミスると消したくないデータベースを消してしまうことがある。 具体的に危険なのは、.env.testingがない…

連想配列への代入は一括でやった方がいいと思う

PHP

2020-03-26追記 もっと単純に、一つの操作を複数に分けるな、って話でよかったね。 'val1', 'key2' => 'val2', 'key3' => 'val3', ]; 上記のような場合に、$assoc1の方法より$assoc2の方法がいいと思う。まあ昔からずっと思っていたのだが最近$assoc1の方法…

通勤定期というものを初めて買った話

12月は常駐案件に入っていた。ずっとフルリモートで働いていて、通勤は初めて。そこそこ遠くて交通費もけっこうかかるので、定期を買ってみた。その際なにもわからなかったのでみどりの窓口の人にいろいろ聞いてみたのだが、ちょっとググっただけじゃわから…

2019年読んだ本

2019年は割と技術書が読めた。といっても9冊。技術書以外のフィクション以外の本が40冊。フィクションが、小説(ラノベ)80冊ちょいに漫画500冊ちょい。技術書と小説は割と読めたけどほかが減ってた感じっぽい。 今年はそこまで「当たり」って本が少なかったよ…

Laravel Deployerで変な落ち方してロックが残ってしまった場合の対処法

最近とても忙しい。つらい。 とっても便利なDeployerをLaravel向けにさらに手軽にしたLaravel Deployerですが、この間こんなメッセージが出た。 Deploy locked. Execute "dep deploy:unlock " to unlock. 書いてある通り、ロックされちゃったっぽい。 通信環…

銭けっと行ってきたので雑な感想を

(多分)第3回の銭けっと行ってきた。IT系の技術書に限らない、実業実学書の即売会とのこと。 銭けっと公式WEBサイト - ホーム 11時半くらいに着いたがまだ人は少なく、じっくり見て周れて楽しかった。以下覚えている限りの感想。 リンクは銭けっと公式ページ…

LaravelでHTTPS対応する正しいやり方

正しいやり方 HTTPSを強制する場合はWebサーバ側で対処する。HTTPから強制リダイレクトしてもいいし、HTTPは閉じてしまってもいい。 HTTPSを強制する場合、もしくはHTTPSをデフォルトにしたい場合はAPP_URLをhttps://...にする。 リバースプロキシ下で動かす…

Laravelの設定ファイル(config/*.php)のキャッシュ関係の仕様を簡単に

php artisan config:cacheでデフォルトではbootstrap/cache/config.phpにconfig/*.phpから読み込まれた設定のキャッシュが生成される。 config:cacheは最初にconfig:clearするため、再実行した場合はキャッシュが再生成される。 config:clearは単純にbootstr…