会社の評価面談のための目標設定を書くために考え込んでいたらメンタルがヘラって長文で自傷行為をしてしまった

文脈 上期の目標設定シートが全く書けなくて会社のSlackでメンヘラになっています書けない理由は以下の通りです久々に本格的に死にたくなってきたな pic.twitter.com/OJRRIoigVW — エヌユル (@ncaq) December 13, 2022 数学と英語 一般的には自己研鑽で学べるものとされていて、学ぶと良いと思って前回も書いたのは数学と英語だ。 数学 数学も大学で出来ないことを承知で「数理最適化」を取ったが、3次元以上の微分を中々イメージできなくてテスト問題を全然答

:
HaskellのAlternative, MonadPlus, StateT, Logicを使ってパーサーコンビネータのようにツリー構造を処理するための初歩知識

この記事は何? これは、 logict :: Stackage Server とそれを組み合わせたパターンを使うための入門文書です。 具体的に行いたい処理としては、事前にある程度トークン分割などが処理されている、自然言語もしくはプログラミング言語などの人工言語の処理を想定しています。 ゼロから平坦なテキストをパースしていきたい場合は、 Megaparsec tutorial from IH book (翻訳) という名記事を読んだほうが良いと思いますし、そもそもこの記事を読んでもMegaparsecのチュ

poetry 1.2.2と1.1.12ではlockファイルに互換性が無いのでコーナケースでは注意が必要

要約 GitHubで公開だけしてるだけのソフトウェアをAWS LambdaのPythonのDockerランタイムで実行したい poetryのロックファイルがバージョンごとに非互換で詰まっていた やりたいこと foo = {git = "https://github.com/Lab/foo.git"} みたいなPyPIに登録されてないGitHubに直接置かれているライブラリをpoetryで管理して、 poetry export -f requirements.txt --ou

DRIVER_POWER_STATE_FAILUREでのブルースクリーンに悩まされていたらHDDの自動スリープが原因らしいと教えてもらった話

もしも私と同様困ってる人が居たら助けになりたいのでメモ。 Ryzen 9 7950Xでの自作PCパーツ購入メモ - ncaq で新しいPCを組んでみた所、時々起きるブルースクリーンに苦しんでました。 ブルースクリーンの表示はDRIVER_POWER_STATE_FAILUREです。 CPU: AMD Ryzen 9 7950X マザーボード: ASRock X670E Taichi OS: Windows 11 BIOSのバージョンは当時最新の1.07でした。 ブルースクリーンの経過をツイートしていたら

:
WSLgでWaylandネイティブでDvorak入力を行い、勝手にQWERTYになるのに対策し、日本語入力を行う

問題 WSLgでDvorak入力しようとすると様々なストレスに見舞われます。 support customized keyboard layout (with KLC file) · Issue #173 · microsoft/wslg を見て色々と試してみたんですが、 WSLgのwestonは初回のweston.ini設定のキーボード配列を保持しません。 ログを見ると途中で、 convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 la

xmobarにCPUコア別の周波数の最大値を表示させる

問題 CPUの周波数のうち複数のコアの最大値を取っているものを常に確認したいです。 結構前からある程度のグレード以上のCPUについては、シングルスレッドで負荷がかかるだけの処理を行う時に、一つのコアだけの周波数を発熱と消費電力が許す限り上げる機能があります。マルチスレッドでは発熱と消費電力の関係で全コア5.7GHzとは行かない場合でも、シングルスレッドならば余裕があるというわけですね。実際はもう少し条件などが複雑らしいですが簡略化するとこのようなものです。 IntelにもAMDにも同様の機能はありますが、

xmobarにRyzenの温度を表示させる

問題 AMD Ryzen環境でxmobarの ThermalZone が動かなくて温度が計測できなかった。 Linuxカーネルを6.0.2にしてk10tempをRyzen 7000シリーズ対応にすれば良いと思っていたので意外な結果でした。 Ryzen Threadripperでも同じでした。前からこういう状態だったけどカーネルの問題だと思っていたので放置していました。温度表示は必須の項目ではないですし。流石にずっとサポートされないし、おかしいなと思って調べることにしました。 Intel Core第8世代を

Ryzen 9 7950Xでの自作PCパーツ購入メモ

情報を整理したり思考の流れがループしないように書き留めていたので、せっかくなので公開します。 パーツが揃ったと判断した段階でこのメモは完成ということになります。まだ組み立てていません。 更新理由 前回の構築記事。 Threadripper 1950XとGTX 1080 Tiで新しいPCを組みました, 詰まったところなどメモ - ncaq これにメモリ足して32GBにしたりRTX 2080 Tiにしたりしましたが、そろそろ限界なので組み直します。 Threadripperと言えども今では16コアプロセッサは

:
AWS CDKでcurrentVersionOptionsを設定してもcurrentVersionのgetプロパティを実行しないと生成されない

問題 AWS Lambdaでコールドスタート対策にProvisioned Concurrencyを設定しておきたいが、【AWS CDK】Lambda の Provisioned Concurrency を設定する | DevelopersIO を参考にして、 Functionの、 currentVersionOptionsの、 provisionedConcurrentExecutionsで設定しても、 addAliasで設定しても効果が発揮されません。 ちなみにcurrentVersion.addAli

AWS Lambda Node.jsのnode_modulesの肥大化に立ち向かったが、NestJSがガンガン動的なrequireをしてきて困った

問題 NestJSのようなバンドルしてくれない動的なrequireを含むTypeScriptプロジェクトをAWS CDKでAWS Lambdaにデプロイする - ncaq でデプロイに成功したプロジェクトがあるのですが、現在Node.jsのLambdaのnode_modulesが膨れ上がってしまい、 AWS Lambdaの制限に引っかかってデプロイ出来ない。 制限に引っかからないようにnode_modulesをLayerとして分離しているが、それでも制限に引っかかってしまう。 11:05:08 | UPD

CodeBuildがSlackに通知するデータが少なすぎて混乱するのでChatbotを諦めてLambdaで処理する

問題 CodeBuildがAWS Chatbot経由でSlackに通知してくるビルド結果の情報が少なすぎる。 Bitbucket(CircleCI)との比較 Bitbucket CodeBuild 具体的なトラブル コミットAに続けてBをした時、 Aの時点で修正が完了しているのに、 Bで問題が起きてテストが失敗したので、 Aで修正が完了していることに気が付かなかった事案がありました。 また私もコードレビューなどを行ったりしてもらう時に、 PRのCIが通ってるのかSlackのログを見るだけ

NestJSのようなバンドルしてくれない動的なrequireを含むTypeScriptプロジェクトをAWS CDKでAWS Lambdaにデプロイする

JavaScriptとかPython見ると分かるけど依存関係を動的に解決することを許した時、それは地獄への直行だ — エヌユル (@ncaq) July 31, 2022 問題 NestJSがnest buildで吐き出すjsファイルはバンドルされていないので、色々入っているnode_modulesを参照できる環境でないと実行に失敗します。 よって1ファイルにしてAWS Lambdaとかで実行するのにはバンドルが必要だと思い、 aws-cdk-lib.aws_lambda_nodejs modul

ElectronのテストをPlaywrightで行う時Linux環境だとMissing X server or $DISPLAYで動かなかったのを解決

問題 microsoft/playwright: Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.を使って、 Electronの自動テストを行う計画を立てました。 前はSpectronで行ってたのがElectronをちゃんとバージョンアップしたら爆散してしまいました。 Spectron 非推奨通知 | Elec

Gitのuser名を接続先のリポジトリによって変更する

問題 これまで怒られたこと無かったので会社のリポジトリにもncaq <ncaq@ncaq.net>でコミットしてたら、「将来知らない人が見たら誰か分からないので会社のメールアドレスに変えてください」と言われて、それも確かにそうだなと思うので変更する。 Gitのauthorは複数名で名乗れれば良いのに。そしたら少なくとも名寄せ出来ない問題は解決する。 探査 プロジェクト一つずつlocalなgit configしていくのは絶対忘れるからやりたくない。 なのでgit-configのinclude

:
amazonkaとservant-clientを組み合わせてIAM認証を有効にしたAPI Gatewayのカスタムドメインにリクエストを投げる

問題 Haskellにはamazonkaという非公式のAWS SDKがあります。これはPython向けのSDKであるBoto3から自動生成されたものなので、大抵の操作を行うことが出来ます。 しかしAPI GatewayをAPIの生成とかで操作するならともかく、デフォルトでexecute-apiになるAPIを呼び出す方法がよく分かりませんでした。 もちろん単純なAPI Gatewayならば単にHTTPで呼び出せば良いだけなのですが、今回API Gatewayを入れたのはIAM認証をしたかったからなので、認証

:
poetryで管理しているPythonパッケージのバージョンを一つの場所だけで定義する

問題 pyproject.tomlの[tool.poetry]でのversion、 __init__.pyでの__version__、 FastAPIのversionひいてはOpenAPIでのバージョン定義をそれぞれ別に行いたくない。 別々に書き換えるのは面倒だし、絶対に書き換え忘れのミスが生まれる。 一つの場所だけで定義して、それをみんなが参照するようにしたい。 解決法 How to get version from pyproject.toml from python app? · Issue #

Conventional Commitsに移行して、commitlintをグローバルに適用しました

自己流コミットメッセージをやめることにしました 今までの自己流コミットメッセージをやめることにしました。 これまでの自己流コミットメッセージは以下の記事で解説しています。 Gitのコミットメッセージでめっちゃタイプミスをするのでそろそろタイプミスを検出するhooksを書きました - ncaq 自己流コミットメッセージの確認スクリプトの最終版はこれで、 initなどへの対処を少し行っているのですかね。 commit-message-in-style at b216fa1ccd860308c60b6d6949

react-reduxをv5からv8にアップデートした

react-reduxの破壊的変更まとめメモ。 文脈として、 2019年9月にやろうとして破壊的変更があって後回しとしていて、そのまま自分がプロジェクト離れてたから今の今まで後回しとなっていた。 Reduxの開発者ツール周りの整備をするにしても、まずここまで古いバージョンを使ってたら問題が発生しても、問題の箇所の切り分けが困難だろうという判断の元、アップデートを行うことにした。 破壊的変更まとめ メジャーバージョンアップ以外で破壊的変更は行われてないだろうという楽観的な予測の上、現在v5でv8にする差分の

サイトの記事一覧を年度別に分割しました

この記事を書き始めた現状はこのサイトの全てのentry記事はトップページに全部並んでいます。 500記事ぐらいあるのにサイズやパフォーマンスは大丈夫かというと意外と大丈夫です。サイズ的にはテキストだけなので520KBしかありません。パフォーマンスもシンプルなCSSだけを使って特別なルールは設定していないのでそんなに重くありません。 しかし複数の理由からentryを分割したいと思うようになりました。 だいたい年単位ぐらいで分割したい。 Google検索が無駄にトップページを表示することが多い トップページに

serversessionのアップデートで新しいpersistentに対応した時の格闘記録2

serversessionのアップデートで新しいpersistentに対応した時の格闘記録 - ncaq の続き。 この形式はZennとかでよく見るスクラップだなと気がついたので、次からはタイトルはスクラップとかにしたいですね。ここはZennではありませんが。 相も変わらず、 yesodweb/serversession: Secure, modular server-side sessions. の新しいLTS対応を行っていて、そこで障害になるpersistentのアップデートと戦っています。 今回のステ

:
WriterでもControl.Monad.Trans.Writer.CPSは典型的なスペースリークはしない

Writerを使いたいけどスペースリークが怖い Writerを使ってはならない - Qiita に書かれているように、 HaskellのWriterは長年スペースリークの元になるので敬遠されてきました。 しかし、私はWriterのインターフェイスをとても使いたいのでもやもやしていました。 ReaderT パターン(翻訳) - LugendrePublic ではスペースリークの危険性があってもWriter使った方が早かったから使ってると書いてありましたが、それでもスペースリークの危険性を考えながら書くのはな

PowerShellで改行せずにファイルに追記する方法

前提 GitHub ActionsでWindowsのPowerShellを使う必要がありました。まあWindows向けのrunでもbashを指定できるみたいなんですが、せっかくあんまりCIで触らないWindowsなのでネイティブシェルであるPowerShellを使ってPowerShellに親しみたいという意図がありました。 やりたいこと ファイルに改行せず文字列を追記したい。 Linuxならば echo -n "foo" >> bar.txt のようにecho

serversessionのアップデートで新しいpersistentに対応した時の格闘記録

前提 これをやった日は3時間ぐらいしか寝てなくて朦朧としてました。なので相当グダグダやっていて、普段ならすぐに解決できるタイプの問題の解決にも手間取っていました。 やる作業 yesodweb/serversession: Secure, modular server-side sessions. を新しいLTSに対応させる。これも昔私が対応させたのですが、今はLTS 15になっています。 persistentのライブラリ的には2.10.5.2から2.13.3.5へのアップデート。多分。 何故必要か

:
Galaxy Z Fold 3 5Gを今更レビュー

Galaxy S22 UltraとGalaxy Z Fold3 5Gのどっちを買うか悩んでいました - ncaq で悩んだ末に、 Galaxy Z Fold 3 5G を購入しました。 2022年4月12日から使っています。 Galaxy Z Fold3 5G着弾したセットアップするか pic.twitter.com/Np2vYHhnrp — エヌユル (@ncaq) April 12, 2022 日本での発売日が2021年10月なので極めて今更感がありますが、一応レビューを書いておきます。 概要

genkernelで作成したinitramfsがOut Of Memoryで起動しないことへの対処

背景 私は今のラップトップPCでは以下のようなコマンドでinitramfsを作っていました。 alias genkernel-update='sudo genkernel --no-lvm --btrfs --luks --firmware initramfs && grub-update' カーネル直接起動ではなく、 initramfsを使っている理由は、 rootのBtrfsによるソフトウェアRAIDと暗号化を使っていることです。 dracutではなくgenkern

Galaxy S22 UltraとGalaxy Z Fold3 5Gのどっちを買うか悩んでいました

悩み Galaxy S22 Ultra と Galaxy Tab S8 Ultra の組み合わせを買うか、 Galaxy Z Fold3 5G を買うか。 悩んでいます。 S22無印は小さいしメモリ少ないからなしですかね。 S22+なら小さくないのでメモリに目をつぶってありだったんですが、日本では発売しないのでダメ。 Galaxy Tab S8 UltraはGalaxy Tab S8+で良いかもしれません。 Fold買っても結局Tabは買うかもしれません。 前提 MNOとの高額な回線契約はしない。 仮

tidy-html5が5.9バージョンあたりからpreタグの改行を消してしまうので加工した内容を使わないようにする

背景 このサイト、 ncaq/www.ncaq.net: ncaq website はHakyllで構築しています。 そして最終的に出力するHTMLが正しいかどうかを、 htacg/tidy-html5: The granddaddy of HTML tools, with support for modern standards を通すことでチェックして、ついでにHTMLとXML(feed)をインデントしています。 問題 tidy-html5の5.9あたりからは以下のバグが発生しています。 tidy

Firefoxでクオートキーがクイック検索に奪われてしまうことへの対策

日本語記事がないので一応記述しておきます。 問題 いつからのバージョンか知らないですが、 Firefoxでクオートキーを押すと、クイック検索 (リンクのみ) が起動してしまいます。 ページ内検索 | Firefox ヘルプ これは、 Surfingkeys などの拡張機能を使ってクオートで何かしらの操作をしている人にとっては困ることで、拡張機能では上位レベルのキーを奪い取れないようです。 自分は選択したものを検索するのに当てていたので困りました。 解決 ほぼ、 Firefox 63: Disable

:
helmの更新でhelm-agが壊れましたが、helm公式のhelm-grepがripgrep対応していたのでそちらに乗り換えました

問題 emacsorphanage/helm-ag: The silver searcher with helm interface というhelmでgrep串刺し検索を実現するソフトウェアを、 ripgrepを使うように設定して長年使っていたのですが、今日helmを更新したら壊れてしまいました。 ASCIIのエスケープシーケンスをそのまま表示してしまいます。 調査 調査するのにも無理矢理カスタマイズしているし再現が難しいな、まずはhelmのコアの更新を見て何処で壊れてるか見るかと調べたところ以下のi

:
Windows 10とWSL2のセットアップログ

久しぶりにWindowsのセットアップを行いました。 2021-12-08から書き始めていたようです。今更ログを公開します。 もう何度もWindowsのセットアップは行っているので見返したいのと、他の人が詰まってたら助けになるようにセットアップをログに残しておきます。 近々またセットアップすることが予想されますし。何故なら近いうちにDDR5世代のPCを組んでWindows 11を入れたいからです。 いい加減セットアップはスクリプトにするべきなのかもしれませんが、 GUI操作が必要なのがまだまだ多いのと、今回