« ^ »

Symdon Blog


  • emacs pandoc lua

    マークダウン等のマークアップ言語で書いた文章を読み上げ機能でより良く推敲する

    最近は特に書籍に関連する仕事をさせて頂く事が多くなってきた。その中で記述した文書のチェックをする時、文を黙読するだけではなく音声読み上げ機能を使って正しい文章になっているかを確認している。モニターやスマホを使えない場所でも作業ができる為、とても効率的なチェック方法だ。また、おかしな表記になっている箇所は、おかしく読み上げてくれる為、問題のある箇所を発見しやすい。この方法をやっていない人はぜひ試して ...

    所要時間: 約 8分, 作成: 2023/6/17, 更新: 2024/2/9


  • pdf emacs pdf-tools poppler

    PDFの注釈に対する返信注釈をEmacsで挿入する

    EmacsはPDFの表示が可能だが、表示が若干ぼやけたり、注釈の操作ができない等の問題がある。サードパーティのライブラリ pdf-tools を使用することで、それらの操作性の問題を解消できるが、注釈の扱いが完全ではなく、注釈に対する返信注釈を挿入できない。これは、pdf-toolsがPDFの操作の為に使用しているライブラリPopplerに起因する問題で、Poppler自体が返信注釈を完全に考慮できていなめ、それに依 ...

    所要時間: 約 1分, 作成: 2024/2/9, 更新: 2024/2/9


  • chatgpt emacs lisp doctor

    Emacsの対話セラピー機能doctorをChatGPTに対応させる

    できあがり 最近の機械学習の進歩により、自然言語を生成する機能が劇的に進化しているように思う。例えばチャットボットは、英語や日本語等の自然言語を使用して対話をする機能のことで、最近はウェブページの左下にチャットボットとの対話インターフェースが埋め込まれているのをよく目にする。ユーザーはそのチャットボットに英語や日本語で質問し、サービスの使い方を知ったり問題を解決するというような使い方をする事が多い。 ...

    所要時間: 約 4分, 作成: 2023/1/10, 更新: 2024/2/8


  • django migration squash emacs lisp dired

    Djangoのマイグレーションファイルを効率良くスカッシュする

    EmacsのdiredでマークしたDjangoのマイグレーションファイルをスカッシュし、マイグレーションを実行及び動作することで、マイグレーションのスカッシュを効率化した。

    所要時間: 約 4分, 作成: 2023/1/19, 更新: 2024/2/8


  • comment

    自分が必要としていたのは、空調が効いていて、机と椅子しかない空間だったらしい。それこそ物置とか屋根裏部屋みたいな場所が必要なものらしい。たまに、そういう場所に出会う事があるんだよな。場所であったり、時間帯によってはとてもひっそりしている事もある。お気に入りの場所を見付けていきたい。

    所要時間: 約 1分, 作成: 2024/2/8, 更新: 2024/2/8


  • emacs lisp weasyprint

    WeasyPrintでhtmlをPDFに変換するEmacs用の拡張を実装した

    WeasyPrintを用いていろいろと作業する機会があった。そこでWeasyPrint関連の作業をEmacs上でしやすくする試みを行う。 WeasyPrint WeasyPrintはHTML、CSS、画像といったWebの技術でレアウトし、それらを元にしてPDFを生成する。 Pythonで実装されておりインターフェースとしてPython用のAPIとCLIツールとしてのweasyprintコマンドを提供している。 デモ Weas ...

    所要時間: 約 2分, 作成: 2022/6/4, 更新: 2024/2/8


  • emacs wakatime

    どのような時間配分でプログラミングや仕事をしているのだろう

    僕はソフトウェア開発と書籍の執筆、翻訳、監訳を生業としている。そのため日常的にプログラミングをするし、コンピュータ上の文章を書いたり触れたりする時間は長い。作業効率を考える上で、具体的に作業のどの部分に時間をかけているかを知る必要がある。そこで今回は作業時間を計測し、計測した結果を分析できるように工夫してみる事にする。 org-clockとwakatime ソフトウェアの開発というと、代表的な作業はプ ...

    所要時間: 約 10分, 作成: 2024/2/4, 更新: 2024/2/4


  • comment

    明日の自分へのメッセージとして文章を残している

    このブログは、僕が考えた事を記録しておくためのものとして続けている。技術的な内容が多くはあるけれど、完全に正しいものを書こうとしている訳でもないし、主観を排除しようともしていない。むしろ、主観を盛り込もうとさえしている。ジャンルとしてはテクニカルエッセイに近いものだろう。しかし技術的な内容に拘っている訳でもなくて、ただ単純にプログラミングとかソフトウェアが好きだから、そういう内容が自然に多くなって ...

    所要時間: 約 5分, 作成: 2023/7/28, 更新: 2024/2/4


  • nodejs

    EmacsでNを使う

    Node.js のバージョン管理のため、Nを使用していた。Emacsでそれらを使えるように以下の設定をしていた。 (setenv "N_PREFIX" (expand-file-name "~/.local")) (add-to-list 'exec-path (expand-file-name "~/.local/bin")) 今はNを使わなくなってしまったので、この設定は削除した。

    所要時間: 約 1分, 作成: 2024/2/3, 更新: 2024/2/3


  • comment

    今、進めている企画のエレベーターピッチを作成した。こういった作業は慣れていないから、結構大変に感じるし疲れる。

    所要時間: 約 1分, 作成: 2024/2/3, 更新: 2024/2/3


  • hugo

    hugoで作成しているWebサイト内でページを移動したらALIASESを宣言してリダイレクトさせる

    hugoで生成しているWebサイト内でページを移動した場合、移動元のURLから移動先のURLに遷移させたい。その場合、新しいページのフロントマターとして ALIASES を指定する事で、移動元のURLから移動先のURLに遷移させられる。 org-modeの場合は以下のようになる。 #+TITLE: DUMMY #+ALIASES[]: /posts/1671331641 マークダウンだと以下のようになる。 --- title: DUMMY aliases: - /posts/1671331641 ---

    所要時間: 約 1分, 作成: 2024/2/3, 更新: 2024/2/3


  • emacs lisp

    コマンドパスをコピーするユーティリティwhich-command.elを実装した

    CLIコマンドへのパスを取得したい時、whichコマンドを使用するとパスを表示できる。そのwhichコマンドのためのユーティリティを実装した。検索したいCLIコマンドへのパスを取得し、クリップボードにコピーする。 M-x which-command RET ls RET のように実行するとlsコマンドへのパスが、クリップボードにコピーされる。 なお、このライブラリはMelpaなどのリポジトリに登録していない。そのためインストールするためには、Git ...

    所要時間: 約 1分, 作成: 2022/12/18, 更新: 2024/2/3


  • emacs github

    GitHubをEmacsで操作する

    GitHub に Git リポジトリをホスティングして開発をする場合、通常は Git の機能だけではなく、イシューやプルリクエストといった GitHub の機能も合わせて利用する事が多い。これらの機能は Git の機能ではないから、当然 Git クライアントには、それらに相当する操作はない。 git コマンドを使い CLI で操作していると、ブランチの push まではできても、プルリクエストを作るにはブラウザを開いてWeb UIで操作する必要がある。これは出来れば CLI で完結したい。 ...

    所要時間: 約 2分, 作成: 2024/1/31, 更新: 2024/1/31


  • python

    1ヶ月毎の期間をPythonで取得する

    指定した期間の日付の開始日時と終了日時を取得したいとする。例えば、2024年01月01日00時00分00秒から1ヶ月毎の、開始日時と終了日時をペアにして取得したい。ただし、終了時間をミリ秒単位で完全に終了時間を得るのは難しいため、次の期間の開始日時を終了日時とする。つまり次のような情報を取得したい。 ( (2024年01月01日00時00分00秒, 2024年02月01日00時00分00秒), (2024 ...

    所要時間: 約 5分, 作成: 2024/1/31, 更新: 2024/1/31


  • minetest mob[WIP]

    mobの仕組みを調べる

    minetestのmobの仕組みを調べる事にした。 mobs mobs では、モブのベースとなる実装をModとしてLuaで実装している。しかし、このModには実際のモブは含まれていない。モブを導入したければ、このModを利用して、モブを実装したModを別途入れる必要がある。 https://codeberg.org/tenplus1/mobs_redo.git READMEを翻訳する Built from PilzAdam's original Simple Mobs with additional mobs by KrupnoPavel, Zeg9, ExeterDad and AspireMint. PilzAdam のオリジナルの Simple Mob に、KrupnoPavel、Zeg9、ExeterDad、Aspire ...

    所要時間: 約 3分, 作成: 2024/1/6, 更新: 2024/1/28


  • python pygame

    PyGameの動きを確認する

    PyGameの動作を確認した。 import pygame # 画面のサイズを設定 WIDTH = 640 HEIGHT = 480 # キャラクターの初期位置を設定 x = 100 y = 100 # Pygameの初期化 pygame.init() # 画面の作成 screen = pygame.display.set_mode((WIDTH, HEIGHT)) # キャラクターの描画 def draw_character(x, y): pygame.draw.rect(screen, (255, 0, 0), (x, y, 50, 50)) # ゲームループ running = True while running: # イベントの処理 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 画面の背景色を設定 screen.fill((255, 255, 255)) # キャラクターの描画 draw_character(x, y) # キーの入力を取得してキャラクターの位置を更新 keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: x -= 5 elif keys[pygame.K_RIGHT]: x += 5 elif keys[pygame.K_UP]: y -= 5 elif keys[pygame.K_DOWN]: y += 5 # ...

    所要時間: 約 1分, 作成: 2024/1/28, 更新: 2024/1/28


  • emacs translation

    書籍の翻訳のためのユーティリティを自前で実装している

    翻訳作業を行うため、翻訳用のユーティリティを自前で実装している。 #+TITLE: trans.el - Translation utility. #+CATEGORY: trans.el trans.el is translation utility using by [[https://github.com/soimort/translate-shell][translation-shell]]. [[https://github.com/soimort/translate-shell/blob/develop/google-translate-mode.el][translate-shell has emacs extention]]. But this package do not use google-translate-mode.el. Becouse it is created as a emacs lisp plactice. * How to use. ** Start process =M-x trans-start RET= ** Translate 1. Mark region 2. =M-x trans-region RET= If the translation is successful, the text will be displayed in =*Trans*= buffer. ** Stop process =M-x trans-stop RET= * Install 1. Download trans.el 2. M-x package-install-file RET /PATH/TO/DOWNLOADED/trans.el RET This package is not yet melpa packaging. * Testing This package has no test yet. * Bug report and Contributing We haven't prepared those flows yet. For the time being, please write the steps to reproduce the bug in this gist comment, or attach the patch file in diff format. Welcome them. * License GPL v3 * Releases ** Version 3 (2023-04-09) - support to change lang-mode function ** Version 2 (2023-01-26) - Support Emacs 29.1 ** Version 1 (2021-04-03) - First implements. - Supported ...

    所要時間: 約 2分, 作成: 2024/1/28, 更新: 2024/1/28


  • comment

    一日の内で考えられる量は決められている気がする。しかも、それは時間にも関係あるけれど、時間以外の複雑さにも関係しているような気がする。複雑さというか、考えた事があるかというかそういうの。口の上手いやつ、要領が良いやつは、上手くものごとを進めていく。じっくり考えたら足枷にならないかと言われるとそうではないから、さっさと答えを出して、その答えを調整する方が正しいんだろうな。

    所要時間: 約 1分, 作成: 2024/1/28, 更新: 2024/1/28


  • emacs skk ddskk aquaskk[WIP]

    インプットメソッドの辞書の指定を見直す

    僕は、SKK系列のインプットメソッドが好きだ1。EmacsユーザーでありmacOSユーザーだから、EmacsではDaredevil SKK、それ以外ではAquaSKKを使用している2。しかし各SKKで正しく辞書を設定できていなかった。そこで今回は、各SKKの設定を見直し、入力や変換の挙動を改善する事にした。 背景と前提 日本語の入力方法に何を使うのかという問題は、日本語の文章を書いていると必ず付いて回る ...

    所要時間: 約 6分, 作成: 2024/1/28, 更新: 2024/1/28


  • macos

    macOSのバージョンをCLIで確認する

    sw_vers で調べる事ができる。 sw_vers ProductName: macOS ProductVersion: 13.6 BuildVersion: 22G120

    所要時間: 約 1分, 作成: 2024/1/19, 更新: 2024/1/19


  • comment

    Emacs用の拡張置き場を作った。今後は、ここに置いていく事にする。 https://blog.symdon.info/emacs

    所要時間: 約 1分, 作成: 2024/1/14, 更新: 2024/1/14


  • emacs lisp org-mode org-agenda task-management

    作業をまんべんなくバランス良く進める

    これまで持っているタスクをどのように管理し、どの順番で処理するのかという事について様々な工夫をしてきた。現時点ではEmacsを使ってタスクを管理している。 Emacsには Org-mode というドキュメントシステムがある。これは軽量マークアップ言語であり、それらを統合的に扱うための仕組みだ1。他の軽量マークアップ言語との違いを考えると、 Org-mode 自身が様々な機能を取り入れていれている大きなシステムになっている。例えば表計算 ...

    所要時間: 約 2分, 作成: 2024/1/8, 更新: 2024/1/8


  • lisp commonlisp sbcl slime

    Common Lispの環境を構築していく

    今回はSBCLを使う。OSはmacOS、SBCLのインストールには手軽なのでHomebrewを使う。 sbclのインストールからSLIMEの起動まで brew install sbcl SBCLのインストール 簡単なプログラムを書いて実行してみる。 sbcl --script main.lisp Ok 良さそうだ。 SLIMEはpackage.elでも入れられるが、今回はGitHubからcloneする。 git clone [email protected]:slime/slime.git load-pathを通し、諸々の設定を行う1。 (add-to-list 'load-path "/opt/ng/slime") (setq inferior-lisp-program "/usr/local/bin/sbcl") (require 'slime) (slime-setup '(slime-repl slime-fancy slime-banner)) 設定 ...

    所要時間: 約 2分, 作成: 2021/1/7, 更新: 2024/1/4


  • comment

    ここ数年の間、生活や活動の仕方を見直してきたから、少しずつでも作業を進められるような状態になっている。スピードはそれほど早くはないけれど、少しずつでも確実に物事を進められる。 息が浅くなって、どうしようもない気持ちになる時もあるけれど、暫くじっとして耐えれば、また元の状態に戻って集中できる。状況は特に変わらないけれど、自分自身の状態は良くなっている。自分のペースややり方を乱す事なく、取り組んでいこう ...

    所要時間: 約 1分, 作成: 2024/1/3, 更新: 2024/1/3


  • comment

    以前、身近だった人が僕を貶めようとしている。とある事実を僕の「妄想」だと言っているらしい。その事実は、本人から証言も得ているから妄想では全くない1。本当に人の足をひっぱるのが好きな人達だ。 1 証言動画もある。

    所要時間: 約 1分, 作成: 2024/1/2, 更新: 2024/1/2


  • emacs gnupg openpgp pdf mupdf png

    GnuPGで暗号化されたPDFファイルをEmacsで表示できるようにする

    Emacsではdoc-view-modeが標準で提供されているため、画像やPDFはファイルを開くだけで描画される。この当たり前の機能は、オーバーレイによって実装されており、表示を切り替える事で生の状態のデータをバッファに表示する事もできる。そのため、ファイルのデータ自体を直接編集する事もできる。 PDFでのdoc-view-modeの挙動を確認してみた所、概ね以下のような順序で処理が行われていた。 P ...

    所要時間: 約 3分, 作成: 2024/1/2, 更新: 2024/1/2


  • あれからn年経った ふりかえり

    あれから10年経った

    1年に1度、その1年の仕事や個人的な出来事を「あれからn年経った」というタイトルで記事にしている。2023年は昨年に引き続き実りの多い年だった。ただ個人的な事では、それ以上に悲しい事もあった1。今年は10年の節目だから10年間の総括もしたいが、それはまた別の記事で行う事として、ここでは2023年の総括をする。 過去分 〜2012 - (会社員時代) 2013 0年経過 - なし 2014 1年経過 - なし 2015 2年経過 - あれから2年経 ...

    所要時間: 約 16分, 作成: 2023/12/15, 更新: 2023/12/30


  • comment

    2023年も沢山勉強したし、いろんな事を考えた。そういう時間を意識的に確保したし、大切にしてきた。そして内容を文章にしてきた。大抵はこのブログに書いたけれど、プルリクエストの説明や、README、チャットでの受け答えでも、文章を丁寧に書いた。文体や語尾を丁寧にしたという意味でなくて、自分が何を考えているのか、なぜそのように考えるのか、という事を丁寧に説明した。多少冗長な部分はあっただろうけれど、今 ...

    所要時間: 約 1分, 作成: 2023/12/27, 更新: 2023/12/27


  • comment

    これは本当に苦すぎるけど、また明日も頑張ろう。

    所要時間: 約 1分, 作成: 2023/12/24, 更新: 2023/12/24


  • minetest

    minetestで用意されている関数をざっと集める

    minetestのmodを実装する時に使う事になる関数を集める事にする。実際のmodから拾ってきただけなので、網羅的ではない。 minetest.register_alias アイテム名のエイリアスを追加する。 minetest.register_alias と minetest.register_alias_force がある。既に登録されたエイリアスがある場合、 minetest.register_alias は何もしないが、 minetest.register_alias_force は古いエイリアスを解除し、新しいエイリアスに置き換える。よくある用途としては、この機能は下位互換を維持するために使用する。 minetest.register_alias("example:one_alias", "example:one") minetest.register_biome バイオームを登録する。登録に成功すると、 ...

    所要時間: 約 2分, 作成: 2023/12/23, 更新: 2023/12/23


  • emacs docker

    EmacsでのDockerイメージのビルド方法を改善する

    以前「Emacsのdockerfile-modeでimageのデフォルト値が入力されるようにカスタマイズする」という取り組みをした。今はもう少し改良して次のようなコードを .emacs.d/init.el に含めている。 (use-package docker :ensure t :defer t) (use-package docker-compose-mode :ensure t :defer t) ;; (use-package dockerfile-mode :ensure t :defer t) ;; (el-get-bundle dockerfile-mode :url "[email protected]:TakesxiSximada/dockerfile-mode.git" :type "git") (el-get-bundle gist:73383aaf81656737fa533dd39dcb27a8:docker-compose-up-services :type "git") dockerfile-modeでvternを使用するため関数を上書きする。 (require 'dockerfile-mode) (defun dockerfile-get-docker-image-from-inbuffer () "# iamge: DockerImageName" (interactive) (let ((image-name-line (save-excursion (goto-char (point-min)) (buffer-substring-no-properties (point-at-bol) (point-at-eol))))) (s-trim (car (cdr (s-split ":" image-name-line)))))) (defun dockerfile-read-image-name () "Read a docker image name." (ido-completing-read "Image name: " dockerfile-image-name-history nil nil nil nil ...

    所要時間: 約 2分, 作成: 2023/12/21, 更新: 2023/12/21


  • comment

    今日も全力で頑張った。もう頑張る意味もなくなってしまったんだけれど、それでも環境や習慣が、むりやりにでも頑張らせてくる。これがこの3年の努力の成果だ。またしっかり寝て、明日も力を尽したい。

    所要時間: 約 1分, 作成: 2023/12/20, 更新: 2023/12/20


  • comment

    状況がクソすぎるけれど、これまで継続的に準備したり微調整したりして環境を作ってきたから、働く事はできている気がする。今日もできる事に対して1つずつ取り組んでいこうと思う。

    所要時間: 約 1分, 作成: 2023/12/20, 更新: 2023/12/20


  • comment

    クリスマス企画を考えて、みんなで物資を集めはじめた。あと1週間しかないけど。進歩のスピードは遅いけれど、確実にできる事が増えててよい。去年と比較すると、それがよくわかる。

    所要時間: 約 1分, 作成: 2023/12/19, 更新: 2023/12/19


  • comment

    今日も全力で頑張った。少し疲れた。

    所要時間: 約 1分, 作成: 2023/12/17, 更新: 2023/12/17


  • comment

    粛々とできるかぎりの事をやろう。

    所要時間: 約 1分, 作成: 2023/12/16, 更新: 2023/12/16


  • comment

    久しぶりに勉強会に来た。がんばるぞ。

    所要時間: 約 1分, 作成: 2023/12/16, 更新: 2023/12/16


  • comment

    Github ActionsのYAMLをactionlintで静的解析する

    Github ActionsのYAMLを静的解析するactionlintというツールがある1。今回はそれを使ってみる。 READMEに従い go install でインストールする。 go install github.com/rhysd/actionlint/cmd/actionlint@latest $HOME/go/bin 配下に actionlint というコマンドが生成される。 $HOME/go/bin にはパスを通しておく。 export PATH=$HOME/go/bin:$PATH Usage: actionlint [FLAGS] [FILES...] [-] actionlint is a linter for GitHub Actions workflow files. To check all YAML files in current repository, just run actionlint without arguments. It automatically finds the nearest '.github/workflows' directory: $ actionlint To check specific files, pass the file paths as arguments: $ actionlint file1.yaml file2.yaml To check content which is not saved in file yet (e.g. output from some command), pass - argument. It reads stdin and checks it as workflow file: $ actionlint - To serialize errors into JSON, use -format option. It allows ...

    所要時間: 約 3分, 作成: 2023/12/15, 更新: 2023/12/15


  • comment

    とんでもない悪意に晒されて気が滅入りそうだ。こんな酷い話があるのか。おそらく人生でも断トツのワースト1の悪意だ。20年の間、悪い夢でも見ていたらしい。事実が酷すぎて、今は直視できないけれど、いずれ書こうと思う。 本当に何のために頑張って働いているのか分からなくなる。でも、僕自身は邪悪になる事なく、力を尽くそうと思う。今できる事を全力でやる。今までそうしてきたし、これからもそうする。

    所要時間: 約 1分, 作成: 2023/12/14, 更新: 2023/12/14


  • comment

    昇順と降順

    昇順、降順をしばしば間違えそうになるので整理する。 昇順と降順 昇順は小さいものから順番に、降順は大きいものから順番に並べる。昇や降の漢字が当てられているから、昇るとか降るとかと考えて見た目上の位置関係と勘違いしてしまい混乱するが、そうではない。先頭から数えた時の大小関係を考えるのが正しい。 以下のくだものの価格表は、価格の一番小さいりんごから順に並べているので昇順となる。 くだもの 価格 りんご 100 みかん 200 す ...

    所要時間: 約 2分, 作成: 2023/12/13, 更新: 2023/12/13


  • comment

    しんどい

    所要時間: 約 1分, 作成: 2023/12/13, 更新: 2023/12/13


  • comment[WIP]

    TeXを最初から学ぶ

    唐突にTexLive 2023の環境を使う。 パスを通して使いやすくする 各種コマンドは、私の環境では以下のディレクトリにインストールされている。 /usr/local/texlive/2023/bin/universal-darwin Emacsから使用しやすくするためパスを通す。 (add-to-list 'exec-path "/usr/local/texlive/2023/bin/universal-darwin") (setenv "PATH" (string-join exec-path ":")) 最小のTeX まずは小さな TeX 形式のファイルを作成する。 Hello, world! \end \end は常に必要だ。おそらくこれが最小の TeX のように思う。 この最小の TeX を変換してみよう。 tex というコマンドがある。このコマンドを使い、texファイ ...

    所要時間: 約 3分, 作成: 2023/12/5, 更新: 2023/12/5


  • comment

    diredで選択したPDFのパスワードを除去する

    diredからファイルを選択し、そのファイル名やパスを指定してコマンドを実行したい事がある。例えば dired-do-rename は、 dired のバッファ上で R を入力すると呼び出され、ファイル名を変更する。ファイル名の変更だけじゃなくて、削除や権限の変更などのコマンドも用意されているが、自分の要望に合うコマンドを追加したくなる事もある。 今回はPDFファイルに設定されたパスワードを除去するEmacs Lispを実装した。 shell-command などを使っている ...

    所要時間: 約 1分, 作成: 2023/11/25, 更新: 2023/11/25


  • comment

    diredの詳細表示を切り替える

    dired は、ディレクトリ名やファイル名の他にユーザーや権限、ファイルサイズ等の情報を表示する。 ただ、この表示は情報量が多く視界に入るとノイズのように感じる。私は目に入る情報は少ない方が好みなので、この情報を減らす事にする。 dired は dired-hide-details-mode というマイナーモードを提供しており、シンプルな表示と詳細表示を切り替えられるようになっている。 dired-mode-hook にこのマイナーモードを設定すると、初期表示ではシンプルな表示が採用されるようになる ...

    所要時間: 約 1分, 作成: 2023/11/25, 更新: 2023/11/25


  • comment

    まだ本調子ではないけれど、もう少しだけ休んだら、また以前みたいに一生懸命働きたいと思う。

    所要時間: 約 1分, 作成: 2023/11/23, 更新: 2023/11/23


  • comment

    eieio

    Emacsに梱包されているLispに eieio.el がある1。 lisp/emacs-lisp/eieio.el.gz としてアプリケーションに含まれているこのLispは、Emacsでオブジェクト指向プログラミングをするためのユーティリティやフレームワークを提供する。CLOS(Common Lisp Object System)をベースにし、Emacsのために拡張されている2。docstringの日本語訳を掲載する。 EIEIO is a series of Lisp routines which implements a subset of CLOS, the Common Lisp Object System. In addition, EIEIO also adds a few new features which help it integrate more strongly with the Emacs ...

    所要時間: 約 2分, 作成: 2023/11/22, 更新: 2023/11/23


  • comment

    EmacsとCSVと表

    EmacsにはCSVファイルを扱うための csv-mode と csv-align-mode メジャーモードがある。これはこれで便利ではあるのだが、僕の要求する使い勝手とは微妙に使用感が異なる。今回は、この使い勝手について考える事にする。 最近良くあるケースはWebサービスへデータを投入するために、CSVファイルにデータを記述しておき、そのファイルをアップロードするものだ。このような機構を持つWebサービスはよく見かける。そして、そのCSVのフォ ...

    所要時間: 約 6分, 作成: 2023/11/17, 更新: 2023/11/21


  • comment

    たまたまSNSで流れてきたアノニマスダイアリーを読んだ。実家で飼っていた犬が死んでしまい、その犬に対しての弔事という内容だった。このアノニマスダイアリーの作者が、その犬を大切にしていた様子が伺えた。 作者はその犬の死に目には立ち会う事はできず、実家に帰る事もできなかったようだ。犬は戻らない飼い主について、どんなふうに考えていたのだろう。僕には分からないけれど、長く帰ってくる事を待っていたんじゃないか ...

    所要時間: 約 2分, 作成: 2023/11/20, 更新: 2023/11/20


  • comment[WIP]

    EmacsからMySQLに接続する

    Emacs には lisp/progmodes 配下に sql.el があり、 SQL クライアントのためのフロントエンドを提供している。通常はそれを用いたり、カスタマイズしたりして、データベースに接続する。 sql.elの使い方をおさらいする。 使い方は概ね docstring に記述されている。翻訳しながら、説明を追加していく。 Run mysql by TcX as an inferior process. TcX で mysql を下位プロセスとして実行します。 なるほど。TcXとは何の事だろう1。 Mysql versions 3.23 and up are free software. Mysql バージョン 3.23 以降はフリー ソフトウェアです。 な ...

    所要時間: 約 4分, 作成: 2023/11/19, 更新: 2023/11/19


  • comment

    約20年の間賭けてくれたのだから、その分の配当は得て当然だと思う。どういう状態なのかもう全く分からないけれど、一人負けにならないように動いて欲しいし、ちゃんと配当を受け取って欲しい。問題は、その配当を今の僕の力で支払えるかどうかだけだ。

    所要時間: 約 1分, 作成: 2023/11/18, 更新: 2023/11/18


©TakesxiSximada