ログ日記

作業ログと日記とメモ

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…

検索エンジンとSNSが合体した全文検索エンジンが欲しい

ブックマークしたページから数回層だけリンクをたどって後で検索できるようなものはないだろうか。スコア計算はGoogle以前のものでもいい。 キーワードの回数、割合、単語の近さとか。 URL スコア 巡回リンク階層 https://news.yahoo.co.jp/ 2 5 https://b.h…

サーバーで使っている Debian を buster にアップグレードしたログ

ひとまずPHP、PostgreSQL、MySQL、Rails(Redmine)、Apache が入っているstretchのサーバーをアップグレードする。第4章 Debian 9 (stretch) からのアップグレード まずPHP7とPostgreSQLのために使っていたリポジトリをコメントアウト。Dockerも # php7.1 #…

Google Closure Library の UI と調べもの

What UI rendering systems are used by Google with closure library, and why are these not open source? goog.ui.* は古いまま更新されていない。 最近のGoogleのサービスのUIはオープンソース化されていない。 Touch support for goog.ui.menu? goog.ui…

Redmineのガントチャートを画面いっぱいに表示する

RedmineのガントチャートはPDFとpngでダウンロードできるけど、結局Webをスクリーンショットするのが一番綺麗なので。 $('#wrapper').css({'overflow': 'visible'}); $('#sidebar').hide(); $('#content').css({'width': 'auto'}); $('#gantt_area').css({'o…

タスク管理ツールRepsonaに登録してみた感想メモ

これを読んだ。 note.muタスク管理ツールって理想のものが全然なくて自作しがちだよね…と思いながら。 度々調べるけど良いものがなくて、たぶん欲しい機能があるものはMS Projectになる。でも大規模用すぎるので他を探すことになる。repsona.com使ってみた(…

GHCJS + Template Haskell でハングアップ

GHC

hangs when linking Template Haskell 8.0/8.2 · Issue #668 · ghcjs/ghcjs · GitHub このissueは見てたはずなんだけど、流し読みしていて頭に入ってなかった。実際にTemplate Haskellを使ってみると問題が起きた。なので再インストールする。 その前に、 ht…

GitHub Pull Request ではなく git request-pull

Git

Linus が Git comes with a nice pull-request generation module, but github instead decided to replace it with their own totally inferior version. https://github.com/torvalds/linux/pull/17#issuecomment-5654674 Gitにはniceな pull-requestモジ…

GHCJS + Jsaddle

GHC

Jsaddleを動くようにした。 昨日書いた https://n314.hatenablog.com/entry/2019/06/06/210731 スタブはあまり意味はなかった。 理解は進んだけども。 webkit.idl などのWebIDLにDOMの定義があるから、そこから自動生成しているっぽい。 ということは、基本…

GHC8.4とGHCJS

GHC

github.com ここのコメントにDockerを置いてくれている人が居る。 tarをダウンロードして、stack.yamlを書いて、stack setupしてみる。 .stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/Parser.hs:1445:48: error Parser.hs" "Not in scope: type variab…