ログ日記

作業ログと日記とメモ

技術駆動パッケージングとstrict layered

一般的な用語かどうか分からないけど、DDDなどの構造に関する方式メモ。 「技術駆動パッケージング」 DDDをいざやろうとして、実際にファイルをどこに置くの?どういうカテゴリーでディレクトリにまとめるの?という疑問への回答。 これはアンチパターン派が…

ThinkPadに入れたDebianホスト VMware Windowsゲストでスマートカードリーダーを使う

ThinkPad の P17 のオプションでスマートカードリーダー付きにしたので使ってみる。 カーネルは Lenovo ThinkPad P17 に Debianをインストールする - ログ日記 ここで5.8 に更新済み。まずはLinuxにカードリーダーを認識させる。 # uname -r 5.8.0-0.bpo.2-a…

MacBook Proを修理に出した

Mac

バッテリーが膨張したので修理に出した。 結構前からこうなっていて、でも仕事用PCがこれしかなかったので修理に出せなかった。MacBook Pro 2017 15inch の Touch Bar が壊れた - ログ日記 更に前からTouch Barは壊れていたんだけど、さすがにバッテリーがも…

Debian 10 buster に swift をインストールして GTKとQt の GUIデモを動かした

https://swift.org/download/#releases ここからUbuntu18用のファイルを持ってくる。20はglibcのバージョン違いで動かなかったので18で。 How to Install Swift on Debian 10 (Buster) – Step By Step: Linuxs ここに書いているコマンドをそのまま実行。 apt…

Debian の VMwareが遅いのでtransparent_hugepageを無効化する

LinuxのVMwareでWindowsを動かしていて、大きなファイルを開いたりすると固まるときがある。 kcompactd0 が CPU 100% になっている。vmwareも600%になっていたりする。メモリは十分あってLinuxもWindowsもfreeが残っている。www.linuxquestions.orgtranspare…

2020年のやったことまとめと2021年のやること

2019年〜2020年の前半まではひたすらリニューアルのコードを書いていた。 最終的なサーバーの構成は、いつも通りさくらクラウドでPHP、DB、Web Proxyの構成にした。現状、DockerはCIで使うだけになっている。 重いので今はこれも別のものに変えたくなってき…

PHPのベンチマークを検証しようとしたらfanが動いてなかった件

https://qiita.com/okdyy75/items/c6f1469ed6a74a075151 https://qiita.com/Maki-Daisuke/items/23c1285500208048de80 これを自分でも検証しようと実行してみた。 PHPがそんなに遅いわけないと思って。 % cat /etc/os-release PRETTY_NAME="Debian GNU/Linux…

Debian の LibreOffice が重すぎる件

Debian 10 buster をインストールしてからLibreOfficeが重すぎる。 Calcの計算とかWriterの画像とかじゃなくて、空で立ち上げてメニューを表示するだけでも重い。 PCのスペックは圧倒的に上がったはずなのに、重い。 ちょっと動かすだけでCPUが100%になる。a…

PHPの静的解析 Phan/Psalm/PHPStan の違い

PHP

エラーチェックのためにPHPで静的解析ツールをする場合、Phan, Psalm, PHPStan を使えば良いということは検索ですぐ出てくるのだが、どれを使えばいいのか。 それぞれのツールで検知できるものが微妙に異なっているので、全部使うのが安全ではある。それでも…

Linux Kernel 5.8 で Ansible の service, systemd がエラーになる

めっちゃハマった。 別のPCからAnsibleをそのまま持ってきてコンテナに実行したらエラーになった。 RUNNING HANDLER [common : reload nginx] **************************************************************** [WARNING]: The service (nginx) is actuall…

Debian の KDEデスクトップ設定メモ

gdm3をインストール。 大量に関連パッケージがインストールされるが、気にしないことにした。 セッションはKDE。 Alt + Tabのアニメーション ・システム設定 > ディスプレイとモニタ > Compositor > アニメーションの速度 Alt + Tabだけの動作は変えられない…

Debian 10 に Wine 5 をインストール (Photoshopインストールできず)

Debian - WineHQ Wiki apt の「壊れた変更禁止パッケージ」への対処方法 | marmooo's blog Winetricks - WineHQ Wiki Installing Adobe Photoshop on Linux – Linux Hint Solved: Is it legal to use Photoshop with wine? - Adobe Support Community - 9793…

Lenovo ThinkPad P17 に Debianをインストールする

今までMacBook Pro の VMware Fusion で Linux を使っていたんだけど、もう直接Linuxを使った方がいいかと思って。 新しいノートパソコンはLenovoのでかいやつ。17インチ。 www.lenovo.com ThinkPad P17 はWindows用のドライブとは別に、空のSSDがもう一つ付…

noindex と canonical を同時に指定するとGoogleクローラーはどう動くかというテストのための記事

noindexとcanonicalを併用するのは良くない。というのがもっぱらの通説。 何っ! PWAがデスクトップでも動くだと? しかも最高だと?【SEO記事12本まとめ】 | 海外&国内SEO情報ウォッチ | Web担当者Forum 重複コンテンツ対策にはrel=canonicalを推奨、noinde…

xmodmap をログイン時(Xセッション起動時)に実行する

Debuan buster にアップグレードしたら xmodmapが自動実行されなくなっていたのでメモ。以前やった設定は MacBook Pro の初期設定のメモ その2 - ログ日記 ここ。 Linuxの設定じゃなくてMacの設定として書いてた。それで、.xsessionrc や .xinitrc や .xsess…

「わかる」と「読める」と理解する

圏論の本を読んでいてよく詰まるのが、数学記号が読めないということ。 数学記号の表 - Wikipedia 色々あるけど、どうやって読むんだろうか。 それとも数学の人は読んでないのかな? 例えば「192.168」と書いてあれば「イチキューニーイチロクハチ」と読む。…

圏論入門 Haskellで計算する具体例から 読んでる

やっと15ページまで読んだ。 1ヶ月前に買ったのに全然進んでいない。 267ページまである。 先は長い。www.amazon.co.jpAmazonのレビューは良くないみたい。 でも数学の基礎が無い自分は読みやすい。今のところ、と言ってもたった15ページだけど、暗黙の了解…

Debian の Let's Encrypt (certbot) を --preferred-chain オプション対応済みのバージョンにしてDST Root CA X3を指定する

2020年9月末でAndroid 7.1以下でSSLが使えなくなるらしいので。 以下はDebian 10 Busterの環境だけれども、stretchでもCentOSでも内容はほとんど同じはず。songmu.jp community.letsencrypt.orgバージョン 1.6.0から --preferred-chain オプションで有効期限…

テンプレートエンジンを使うのをやめたい

PHP

BladeOneをアップデートしたら、include時の変数割り当てのフローが変わったのか、既存変数が上書きされてエラーが出るようになってしまった。 本家Bladeではこういったことは起きない? 仕方がないのでバージョン固定した。ソースを追っても何となく不毛な…

開発マシンの Debian stretch を buster にアップグレードする

GUIで使っていてOfficeやらGHCやら色々入っている。PHP5も入っている。 Dockerもsystemd-nspawnコンテナも入っている。 かなり躊躇していたが、そろそろアップグレードする。 サーバーで使っている Debian を buster にアップグレードしたログ - ログ日記 CU…

PHPStanのextensionでnamespace・class名の依存関係チェックする

前に書いた記事 DDDのさわりをやろうとした - ログ日記 ここで作ろうと思っていた拡張を作った。 github.comサンプル。 https://github.com/nishimura/phpstan-namespace-dependency-sample 実際に作ってみると、各レイヤーごとの依存関係の認識が曖昧なこと…

PHPの開発環境とライブラリと振り返りと近況

昔のコードを触る機会があった。 PHPの自作フレームワーク現状まとめ - ログ日記 この辺のやつ。 もう7年も前か…。当時はテンプレートエンジンに変数を渡す場合、アクションコントローラーでメソッドを呼び出すのが流行っていた。 set('foo', 1); } } や foo…

Debian Buster に Cacti をインストールする

ログをElasticSearch+Kibanaに集約したり、Prometheus を使ってみたりしたけれども、普通にサーバーのログファイル+Cactiに戻ってきた。最近の流行は大量のサーバーとか大量のコンテナとかがメインターゲットなんだね。 普通に数台〜十数台のコンテナでは…

プログラムの分け方とディレクトリ構造

最近、プログラムのディレクトリレイアウトというかファイルを置く場所を変えようと試みている。 旧来のMVC的な構造だと、ControllerやModelのディレクトリを分ける、レイヤーごとにまとめる、という感じになると思う。 商品情報表示画面、その管理画面、CSV…

Debian stretch で MySQL 5.6 のアップグレード

本家のリポジトリを使ったMySQLの5.6.47 から 5.6.48 のアップグレードが失敗する。 /usr/bin/mysqld_safe のスクリプトが間違っているっぽい。 データディレクトリが /usr/data になってしまう。 OSもMySQLも古いバージョンだから、メンテされていないのか…

PHPStan バージョン0.12.24から PDOStatementが Traversable でなくなってしまった件

ジェネリクスの実装が @implements Traversable<array<int|string, mixed>>で固定されるようになった。FETCH_CLASSとジェネリクスを組み合わせていい感じにマッピングする方法が使えなくなって、ちょっとめんどくなってしまった。 都度 @var が必要になる。一応報告しておいたけど。 h</array<int|string,>…

Let's Encryptで後からサブドメインを変更する

既に取得済みのSSLに、後からサブドメインを追加したくなった場合。削除して再取得するしかないのかなと思ったけど、ドメイン名 common name の更新もできるようだ。 github.com certbot certonly --force-renew --cert-name example.com -d example.com -d …

DDDのさわりをやろうとした

PHP

ちょっと一部だけ複雑なプログラムがあったので、PHPでDDDっぽいオブジェクト指向をやろうとした。 なかなか大変だった。 まず静的解析による型チェックは必須。 型が自動でチェックされないDDDは、適当に書き捨てたプログラムより分かりにくくなると思った…

PHPStan が早い

PHPStanのデフォルトのルールを変更したくて、どうすれば良いか分からなかった。 デフォルトの config.neon を変更する方法を教えてってissueに書いたら10分後に返信来た。 scopeClassを変更すればgetType()で何でもできるよ、でも全体で一つの拡張しか使え…

DBでSQLのテーブル名に別名を付けるときのルールと複数形

SQL

データベースのテーブル名を複数形にするかどうか、作るたびに悩む。 Qiita の記事 https://qiita.com/siinai/items/d4274c95fcdde3fd7295 のコメント欄に良いリンクがあった。 SELECT id, name, description FROM products product WHERE product.name = ‘f…