* [2022-10-26 水]
((☼ . 晴れ) (☼☁ . 晴れ 昼前 から 夕方 くもり) (☁→☔ . くもり 後 一時 雨))

** アスパラガスと人参の播種 :agriculture:
*** アスパラガス播種
  栽培開始から今年で4年過ぎた気がするが、
  初めて赤い実を着けているのを確認した。
  種取りしてすぐそばに播く。
*** 人参播種 
  人参は正直遅い気がしないでもなかったが、
  実のところ、次から次となっているので、
  構わず次から次と播く。
 今年は結構畑全面に播いた。

** ブログ運用での問題点 :lisp:
   このブログについて事前にあれこれ仕様を固めた訳でもなく、
 作成しながら、問題点を挙げてその都度修正していくスタイルを
 取っている。

 ブログは毎日書いてもいいし、書かなくてもいいし、
 自分のペースでやっていくつもりだけど、
 とにかく継続していくためにはなるべく面倒臭い仕様にはしたくない。

 本来ここはlisp関係に絞ろうと思っていたが、
 あまりテーマを絞ると逆に不自由な気もするし、
 あくまで個人ブログなので、個人ブログの利点というと、
 自由気儘に書ける点かなと。
 ただ、あまりカテゴライズするとそのカテゴリー分けが面倒。

 個人的にはその辺りもあまり気にせず文章を書き、
 タグを元に勝手に仕訳してくれる仕様の方が助かると感じた。
 という事で、org-modeのタグを今日から付ける事にした。

 正直言ってその自動仕訳機能もまだないし、
 フォルダ内にアップした文章を現行ではちまちま手作業で
 メニューにリンク付したりしているが、それも自動化されていない。
 ls関数をまだ完璧ではないが、一応実装もしてあるので、
 それを使えば出来るとは思っているが、まだそこに着手出来てない。

 lsで出来る事は例えばhtmlファイルだったら
 (ls "*.html")とすればそのファイル名一覧は出せる。
 ただ、普通に考えるとタイトルをクリックするとファイルにアクセスする
 という形式だと思うので、1行目のタイトル行をも自動的にピックアップする
 必要があると思う。現在の実装状況はこんな感じ。
 lispとposixの正規表現の書き方に違いあるので、そこら辺も対応している。
 あまり綺麗じゃないなとは思っているけど。

 #+BEGIN_SRC lisp
 (defun ls (&optional (path "*"))
   (format t "~{~a~%~}"
           (mapcar #'(lambda (x) (enough-namestring x (pwd)))
                   (cond ((or (equal path ".") (equal path "*"))
                          (directory (merge-pathnames "*.*" (pwd))))
                         ((equal path "*.*")
                          (set-difference
                           (directory (merge-pathnames "*.*" (pwd)))
                           (directory (merge-pathnames "*" (pwd)))))
                         ((equal path "-d")
                          (directory (merge-pathnames "*" (pwd))))
                         ((equal path "..")
                          (directory (merge-pathnames "*.*" (cd path))))
                         (t (directory (merge-pathnames path (pwd)))))))) ; =>LS 
 #+END_SRC

 headも実装していたと思うので、それが使えると思うが、
 行数指定まで出来るようなっているのか忘れた。

 #+BEGIN_SRC lisp
 (defun head (file &key (n 10))
   (with-open-file (in file :direction :input)
     (loop :repeat n :for line = (read-line in nil nil)
           :while line
           :do (format t "~a~%" line))))        ; => HEAD

 #+END_SRC

 うん、行数指定出来るようになっている。偉いぞ、過去の自分笑

 lsでファイル一覧をピックアップし、
 1ファイル毎処理して先頭行を抽出。
 先頭行のタイトルとファイル名を元にlinkの自動作成。


 あと、unioを使って、面白そうな事が出来そうだとは考えている。
 unioはS式単位でキーワードをピックアップしてくれるので、
 コマンドライン上か、emacsのバッファからかとりあえず、
 S式で自由に何かを書いて、データベースファイルにpush。
 で、後ほど、unioを使って過去情報をピックアップするといった
 イメージ。

 現段階ではlispとか農業とかその他みたいにそれぞれの
 カテゴリーに分けて文章を作成し。。。
 と面倒な事をしているが、上記の発想で作成していくとしたら

 #+BEGIN_SRC lisp
   (:date [2022-10-26 水] 
          (:category lisp :tile "hogeを作成した!"
                     :text "これこれこうやって大変だった。")
          (:category agri :title "○○を定植"
                     :text "○○を植えた")
          (:category others :title "こういう事を考えた"
                     :text "かくかくしかじか"))

 #+END_SRC

 こんなイメージか。まぁ、実際は何行も書いたりするから
 こんなスッキリなものにはならないと思うけど、
 トップページに書いたarticleの構造体とかを
 活かしながら、うまく書いていけないか?と
 漠然と考えている。