▼ 2026-01-01 木
雨。
*▽ 新年を迎えて
正月。1年前は仮設住宅で新年を迎えた。
正直おめでたい気分はなかった。
1年後の今年は新しい住居にて新年を迎える事が出来た。
自分はラッキーな方で前へ向かって今進む事が出来ている。
今年からはおめでとうを言う事にした。
能登に向かっては躊躇してしまう気持ちもまだあるけど。
去年はそれでも能登でおめでとうと言っている人もいた。
前を向いて歩む事が何よりの供養ではないかと思っている。
時々能登にも戻るけど、ほぼ2年経とうとしているのに
まだ電柱は傾いたままだったりあちこちに災害の傷跡が
残っている。1日も早い復興をただ祈るしかないし、
自分は自分の出来る事を前に進めるのみ。
震災当時のメモをデータに書き写したと思ってたけど、
ちょっと見つからないので再び記入していく事にした。
2024年二度に亘る被災状況を実際に体験した者として
このブログにアップしていこうと思う。
*▽ GTDの見直しについて
ずっと1日1ファイルで書いてきたけど、
いろいろ自分のGTDが破綻している。
ルーチンワークが破綻。
やっていてもいちいち記録チェックしなくなった。
なるべくシンプルに必要に応じて入力する感じに。
ファイルも1年に1ファイルとする事にした。
今日がその初日。うまく行くだろうか?
*▽ リードマクロで作ったもの
年越しはlispとemacsでって感じだったが、
とりあえず、前から作りたいなと思ってたものを
作ってみた。AIと対話しながら作ったが、
いつもはchatgptを使ってる。でもコードに
ついてはclaudeでやった方がうまく動いた。
作ったものを説明すると、
'{開始番号-終了番号:ステップ数(省略可)}
と書いて評価すると開始番号から終了番号まで
昇順、降順関係なくステップ数だけ変化して
リストに並べるというリードマクロ。
src lisp
(defun read-range (stream char)
"讀み込み時マクロにて數値範圍を展開する關數(ステップ數對應)"
(declare (ignore char))
(let* ((range-str (with-output-to-string (s)
(loop for c = (read-char stream)
until (char= c #\})
do (write-char c s))))
(separator (cond ((search ".." range-str) "..")
((search "-" range-str) "-")
(t (error "区切り文字無之候"))))
(parts (remove-if (lambda (s) (string= s ""))
(mapcar (lambda (s)
(string-trim '(#\Space #\Tab) s))
(uiop:split-string range-str :separator separator)))))
(let* ((step-parts (uiop:split-string (second parts) :separator ":"))
(end (parse-integer (first step-parts)))
(step (if (second step-parts)
(parse-integer (second step-parts))
1))
(start (parse-integer (first parts))))
(if (< start end)
(loop for i from start to end by step collect i)
(loop for i from start downto end by step collect i)))))
(set-macro-character #\{ #'read-range) (set-macro-character #\} (get-macro-character #\) nil))
'{2-7} '{2-10:3} '{10-3:4} '{2..8:2} '{9..2:2} '{ 2-7 } '{2 - 10:3} '{10-3:4} '{2..8:2} '{9..2:2} (apply #'+ '{1-10:2})
src