Symdon Blog
emacs spacemacs doomemacs
Spacemacs/Doom Emacsを飲み込む
Emacsには良く設定された設定群に固有の名前を付けて配布するということがある。 通常それらはディストリビューションやスターターキットと呼ばれるらしい。 ここではそれらをプリセットと呼ぶことにする。 例えばSpacemacsやDoom Emacsが該当する。他にも実はいくつかある。 他にどのようなものがあるかについてはawesome-emacsのStarter Kitの項目を参照すると、 いろいろと紹介されてい ...
所要時間: 約 5分, 作成: 2022/2/20, 更新: 2024/2/22
comment
もしかしてAWS CodeCommitのために紐付けるsshの公開鍵に ed25519 の鍵は指定できない?バリデーションエラーになる。
所要時間: 約 1分, 作成: 2024/2/22, 更新: 2024/2/22
comment
ssh_config (~/.ssh/config)の IdentityFile には公開鍵ファイルも指定できる。例えば秘密鍵を暗号化しておく場合、暗号化されたファイルは IdentityFile には指定できない。そのため ssh-add を使って秘密鍵を ssh-agent に登録して使用する事になる。登録した鍵が複数あった場合、どの鍵を使うのかを指定しなければならないけれど、秘密鍵ファイルは暗号化されているし指定できる訳ではない。 IdentityFile には公開鍵ファイルを指定できるため、どのホストではどの鍵を使うかと ...
所要時間: 約 1分, 作成: 2024/2/22, 更新: 2024/2/22
aws vpc acl
AWS VPCのネットワークACLに許可(Allow)と拒否(Deny)のルールが共存する理由
AWSのVPCには、 Network ACL という機能があり、通過する通信に対して、許可または拒否を設定できる。見ると以下のように全ての通信に対して、許可(Allow)と拒否(Deny)の両方を設定している事がある。特に珍しいものでもなく、良く見る設定だろう。これはどういう意味になるのか確認する事にした。 インバウンド Rule number Type Protocol Port range 送信元 Allow/Deny 1 All traffic All All 0.0.0.0/0 Allow * All traffic All All 0.0.0.0/0 Deny アウトバウンド Rule number Type Protocol Port range 宛先 Allow/Deny 2 All traffic All All 0.0.0.0/0 Allow * All traffic All ...
所要時間: 約 1分, 作成: 2024/2/21, 更新: 2024/2/21
comment
ついに秘書を導入した。
所要時間: 約 1分, 作成: 2024/2/21, 更新: 2024/2/21
comment
仕事とかEmacsの整備とかやってたら、土日が消滅した。AWSのネットワークまわりについて、実装したり調べたりといった作業、OpenAI APIについての調査と、それを利用する機能の実装などをやっていた。両方とも、とても多くの時間を消費した。 最近このままで本当に良いのかという気分になる。こういう生活が1、2年続くと、心がおかしくなるのは、実体験で分かっているので気を付けないといけない。今日はじゅうぶ ...
所要時間: 約 1分, 作成: 2024/2/18, 更新: 2024/2/18
chatpgt openai
OpenAI APIを使う
最近、たくさんの人がChatGPTをはじめとした、生成系AIのSaaSを利用している。しかしその機能は多岐に渡り、また使い方も様々だ。例えばChatGPTを使用する場合、素直にWeb UIを使用する方法がある。他にもOpenAI APIを利用する方法や、Webkitを用いてWeb UI全体を組み込むことも検討できるだろう。今回はOpenAI APIを使って、ChatGPTの機能を試す事にする。 実は以前、E ...
所要時間: 約 21分, 作成: 2023/8/5, 更新: 2024/2/18
comment
最後ぐらいは、豪遊してもいいと思う。残しておいても意味ないからな。
所要時間: 約 1分, 作成: 2024/2/15, 更新: 2024/2/15
mysql python pymysql
PyMySQLでバルクINSERTする
MySQLでバルクINSERTしたい場合 cursor.executemany() を使う。 テスト用のテーブルを作成する。 show create table foo; +-------+-----------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+-----------------------------------------------------------------------------------------------------------------+ | foo | CREATE TABLE `foo` ( `id` int DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +-------+-----------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) cursor.executemany() を呼び出すコードを実装する。 main.py import pymysql from pymysql.cursors import DictCursor MYSQL_HOST = "localhost" MYSQL_PORT = 3306 MYSQL_USER = "" MYSQL_PASSWORD = "" MYSQL_DATABASE = "testing" mysql_conn = pymysql.connect( host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER, password=MYSQL_PASSWORD, db=MYSQL_DATABASE, charset="utf8mb4", use_unicode="true", cursorclass=DictCursor, ) try: with mysql_conn.cursor() as cursor: res = cursor.executemany( """ INSERT INTO foo ( id ) VALUES (%s) """, [ [1], [2], [3], [4], ] ) mysql_conn.commit() finally: mysql_conn.close() コードを実行する。 python main.py 結果を確認する。 mysql> SELECT * FROM foo; SELECT * FROM foo; +------+ | id | +------+ | 1 | | 2 | | 3 | | 4 | +------+ 4 ...
所要時間: 約 1分, 作成: 2024/2/15, 更新: 2024/2/15
comment
何度も読み返したくなるWebの文章
たくさんWeb上の文章を読んでいると、その中には何度も読みかえしたくなるような、素晴らしい文章に出会うことがある。心に訴えかけ、感情を揺さぶられるような表現力のある文章であったり、学ぶ事の多い文章であったりといったような文章がある。それらの文章の素晴しさには、様々な理由がある。 時間が経つと、いつかどこかで読んだその文章を、どこで読んだのか思い出せなくなる。そんなもどかしい思いをしないために、読み返 ...
所要時間: 約 3分, 作成: 2022/5/7, 更新: 2024/2/12
comment
システムは監視するのに、自分自身は監視しないのはおかしい。まずは、死活監視から始めたほうがいいし、パフォーマンスもモニタリングした方がいい。
所要時間: 約 1分, 作成: 2024/2/12, 更新: 2024/2/12
task
目標未達の原因を探る
しばらく前から知人3名でチームを組んで活動している。皆それぞれに片手間だったり、遊び半分だったりして、本気度がとてつもなく低い。動画の制作本数も少ないし、クオリティも低い。クオリティの話で言えば、ほとんど編集もせず撮影した素材をそのままアップロードしているに過ぎないし、タイトルも適当に付けてたり、サムネイルも自動で付くものを使っている。グループの概要に書いている説明も、本当に適当な文章になっている ...
所要時間: 約 4分, 作成: 2024/2/10, 更新: 2024/2/10
comment
諸事情により、スマホアプリの開発講座をしばらく前から作っている。この手の作業は、コンテンツ部分については今までやった事あるけれど、コンテンツ以外の部分については他の人がやってくれる事が多かったから、分からない事だらけだ。自分にできる事が本当に少ないけれど、今ある力を尽そうと思う。今までもそうやってやってきたから、形にする事はできるはず。
所要時間: 約 1分, 作成: 2024/2/10, 更新: 2024/2/10
emacs lisp
シングルファイルのEmacs Lispをダウンロードして読み込む
Emacsを使っていると小さなEmacs Lispがどんどん増えていく。通常は ~/.emacs.d/init.el に記述したり、 ~/.emacs.d にディレクトリ(例: ~/.emacs.d/lisp )を作り、そのパスをload-pathに追加する事で、利用できるようにする事が多い。 そこそこ育ったEmacs LispはMELPAに登録し、そこからインストールして使用するという方法もある。その方法は、多くの人が使うものであれば望ましいけれど、自分だけの要求を満すだけのLispであれば ...
所要時間: 約 4分, 作成: 2023/10/5, 更新: 2024/2/10
krita
縁のある文字をkritaで書く!
動画のサムネイルなどで、縁のある文字が使われているのを、よく目にする。一般的な画像編集のソフトウェアには、「縁」なる機能が付いており、縁ありの文字をすぐに挿入できる。きっとkritaにも同じような機能があるはずだとは思うけれど、見つける事は出来なかった。 その代りにkritaの文字ツールには、文字の挿入にSVGを指定できる。どこにあるか分からないソフトウェアの機能を探すよりも、直接SVGを指定する方 ...
所要時間: 約 1分, 作成: 2024/1/8, 更新: 2024/2/9
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