« ^ »

Symdon Blog


  • comment

    まずは当日にちゃんと体調を整えて会場入りする事を目標にしよう。

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


  • comment

    ここは個人のブログなのだから個人の意見や所感を書く所であって、それを見たくないなら公式ドキュメントでも読めば良いよ。あと正しい情報を知りたい場合も、公式ドキュメントを読めばいいよ。 Emacsについて書くのと、今日食べたお昼ごはんの味の感想は、同じ階層の内容としてここに書いてる。そういうものってだけ。

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


  • comment

    org-modeの表は結合の仕組みがない。時間があれば、どこかで以下のような対応をしてみたい。 name foo ^ bar ^ baz name > > foo bar baz 0 1 2 3 4 5 6 7 8 9 A B C D E F https://github.com/emacs-jp/issues/issues/3 https://b1san-blog.com/post/vscode/vscode-md-jointable/

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


  • comment

    AWS VPCの設計でVPCのCIDERブロックをどのようにするかという事に以前から気になっていた。AWS VPCのCIDERブロックはIPv4とIPv6で別途設定が可能となっている。同じような事について調べて見解を示している記事もあり、とても参考になる1。その中では以下のように結論付けている。 特にIPv6を使う理由はなく判断しかねるならまだIPv4にしておいたほうが無難。 IPv6だけで行けると確信できる ...

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


  • comment

    Vagrantでcursesと絵文字を使える日本語な環境を作る

    curses を使ったプログラムのデモとハンズオンを行おうと考えていたが、よく考えるとWindows環境で実行する人は curses を使えない。手元のマシンに対してフォントやツールをインストールできず絵文字も表示できない環境だと、デモ用のプログラムの楽しさが半減してしまう。何を前提とできるかは分からないけれど、その問題をとりあえず何とかするために Vagrant で curses が使え、絵文字が表示できる仮想マシンの環境を準備する事にした。 Virt ...

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


  • comment

    体調は本当に一進一退といった感じだ。力が入らない時も時々ある。以前、誰かが「たっぷりと休憩をとってね」と言っていた気がする。誰かも忘れてしまったけれど、最近は「たっぷりと休憩をとる」という事は大事なんだなと思う。当時は、休憩なんてしてたらダメだろと思っていたけれど、とりすぎぐらいに休憩を取って継続的に取り組めるように工夫をする事の方が、長い目で見ると良いんだなと思う。

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


  • comment[WIP]

    Androidを学ぶ

    開発ツールのインストール Android SDK はHomeBrewでインストールできる。 brew install --cask android-sdk Android SDKが不要な場合はplatform-toolsでも良い adbのみが使えれば良い場合には Android SDK を入れる必要はなく platform-tools をインストールする1。 brew install --cask platform-tools adb adb devices -l List of devices attached XX000XX0X device usb:000000000X product:XX-00X model:XX_00X device:XX-00X transport_id:1 デバイスの一覧を表示する adb tcpip 5555 adb connect 5555 restarting in TCP mode port: 5555 デバイスの一覧を表示する adb connect 192.168.242.214 デバイスの一覧を表示する adb shell "am start -a android.intent.action.VIEW -d 'wifi:'" QRコード表示 APK Androidの ...

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


  • comment

    KeePassXCを使う

    今までパスワードマネージャーとして、自作のものやSaaSとして提供されているものを使用してきた。それぞれに一長一短ありどれを使用するのか考えていたが、今回はフリーかつオープンソースであるKeepassXCに移行する事にした。 https://keepassxc.org/ インストール方法は、公式からインストーラをダウンロードしてインストールするのが良さそうだ。 一応KeePassXCはHomebrewを使用してもインストールできる。 brew install --cask keepassxc Ke ...

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


  • comment

    Pythonでクラスのインスタンス化の際にargument after ** must be a mapping

    例えば次のようなクラスがあるとする。 class Testing: def __init__(self, **kwargs): pass 関数やメソッドの引数として ** を使用する場合は、辞書(もしくは辞書と同じような動作をするオブジェクト)である必要がある。 >>> v = None v = None >>> Testing(**v) Testing(**v) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __main__.Testing() argument after ** must be a mapping, not NoneType >>>

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


  • comment

    クソコードなんてものは存在しないと思っている。どんなコードでも、そこにあるだけで何かしらの価値があると思う。またその1行にはたぶん歴史があって、コミットログになっている歴史もあれば、そうなっていない歴史もある。実装のスタイルとか、変数名とか、どうでも良いと思っている訳じゃないけれど、今ある状態の向こう側を想像できるようにはなりたいと常々思う。自分が実装したコードや担当した作業への批判を受けて、心が ...

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


  • game python curses

    クッキーを探す

    諸事情により簡単なゲームを実装する機会を得た。ゲームは強化学習の練習用に扱う事ができる題材であれば、どんなものでもいい。だから単純であればあるほど良い。また必要なライブラリは少なければ少ないほど良い。そこでPythonと標準ライブラリである curses を使って宝探しをするゲームを作る事にした。 cursesでhello world まずは curses の使い方をおさらいするために、ターミナルエミュレータ上に「😃 < Hello, world!」を表 ...

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


  • comment

    Emacsの好きな所は、自分の成長にEmacsが歩幅を合わせてくれる所だ。他のツールは下駄を履かせてくれたり、自分を鍛える必要があったりする。下駄は確かに出来る事が増えて便利ではあるけれど、ちょっとした事から小さな落とし穴にはまり込んで抜け出せなくなる事がある。また自分を鍛える事を強要してくるツールは、やり方を強要してくる傾向にあるから、それに付いていくのに疲れる。 Emacsは下駄を履くような使い ...

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


  • comment

    EmacsのrestclientでWeb APIを呼び出す仕組みをパッと見で分かるようにする

    ローカルで動作する個人的なツールやシステム間連携など、Web APIを呼び出して何かを行う処理を実装する事はよくある。Web APIを呼び出す処理の実装では、通信的な問題、意図しない形式や状態のリクエストを送信した、又は意図しない形式や状態のレスポンスを受信したといった問題が発生する。 そういった問題の解消のため、リクエストを送信し、内容に間違いがないか、状態は正しいか、期待している形式のレスポンスか等 ...

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


  • comment

    Emacs Lispのシンボルを眺めつつfsetを調べる

    Emacs Lispのシンボルの定義を確認したくなった。 struct Lisp_Symbol { union { struct { bool_bf gcmarkbit : 1; /* Indicates where the value can be found. */ ENUM_BF (symbol_redirect) redirect : 2; ENUM_BF (symbol_trapped_write) trapped_write : 2; /* Interned state of the symbol. */ ENUM_BF (symbol_interned) interned : 2; /* True means that this variable has been explicitly declared special (with `defvar' etc), and shouldn't be lexically bound. */ bool_bf declared_special : 1; /* True if pointed to from purespace and hence can't be GC'd. */ bool_bf pinned : 1; /* The symbol's name, as a Lisp string. */ Lisp_Object name; /* Value of the symbol or Qunbound if unbound. Which alternative of the union is used depends on the `redirect' field above. */ union { Lisp_Object value; struct Lisp_Symbol *alias; struct Lisp_Buffer_Local_Value *blv; lispfwd fwd; } val; /* Function value of the symbol or Qnil if not fboundp. */ Lisp_Object function; /* The symbol's property list. */ Lisp_Object plist; /* Next symbol in obarray bucket, if the symbol is interned. */ struct Lisp_Symbol *next; } s; GCALIGNED_UNION_MEMBER } u; }; src/lisp.h name は ...

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


  • comment

    OBSの設定を少しだけ見直した。

    所要時間: 約 1分, 作成: 2023/10/31, 更新: 2023/10/31


  • comment

    世の中から無視されているように感じる。ただし、お金を要求してくる所は無視しないようだ。僕はATMではないし、要求すればお金を払ってくれる何かではない。過去に家族だった何かも、国や自治体も、何もかもが僕をATMのように扱う。僕は目の前の仕事をただ一生懸命やるけれど、それでもちょっとしたタイミングで、全てどうでもよくなる時がある。

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


  • emacs lisp

    Emacs Lispで関数を一時的に上書きする

    プログラムを書いていると呼び出す関数の内部で呼び出される関数を一時的に変更したい事がある。変数であれば let 等を使って一時的に上書きする事ができる。しかしEmacs LispはLISP-2なので変数と関数でシンボル表が分かれている。そのため関数を部分的に変更す事は少し事情が異なる。関数のシンボル表を上書きするには fset を使う。ただし、これは let のように一時的に変更する訳ではない。そこで unwind-protect を使い元に戻す処理を書 ...

    所要時間: 約 2分, 作成: 2023/10/31, 更新: 2023/10/31


  • emacs lisp

    Emacsの好きなところと幾つかのTips

    Emacsは世にあるテキストエディタの中の1つで、以前はViに並んで一時代を築いていた。現在はVisutal Studio Codeに押され、NeoVimに押され、その他のIDEに押され、一時期の勢いはないように感じる。しかし、まだまだ根強い人気があり開発も活発だ。しばらく前からEmacsはWebkitを飲み込んだため、ブラウザとして完全なるWebブラウザとしても使用できるようになった。きっとこれからも、ますま ...

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


  • comment

    Emacs は変数の束縛の仕組みを lexical-binding 切り替える事ができる。この値が nil の場合は、動的束縛として扱われる。非 nil の場合は、字句束縛として扱われる。ラムダ式を評価した時に返されるオブジェクトも異なる。 (setq lexical-binding t) (lambda (r) nil) (closure (t) (r) nil) (lambda (r) nil) (setq lexical-binding nil) (lambda (r) nil) (lambda (r) nil)

    所要時間: 約 1分, 作成: 2023/10/29, 更新: 2023/10/29


  • comment[WIP]

    Gymnasiumを使う

    OpenAI Gymは、OpenAIが管理しなくなり、フォークされたGymnasiumに開発が移行する事になった。 環境を作りながらサンプルプログラムを実行する Gymnasiumの公式のドキュメントを元に、トップページに掲載されているサンプルプログラムを実行する。Gymnasiumには実行環境をインストールコマンドで選択し、インストールできる。トップページに掲載されているサンプルプログラムの場合、Box2d環境 ...

    所要時間: 約 2分, 作成: 2023/3/16, 更新: 2023/10/29


  • comment

    今日はもうむりだ

    所要時間: 約 1分, 作成: 2023/10/26, 更新: 2023/10/26


  • comment

    目の前の事を必死に打ち返してる。疲れてしまう事もあるけれど、やる事が無かった頃よりはずいぶんマシと思える。燃え尽きないようちゃんと余力を残しながら、今日できる事に全力を出す。あと今からやる事以外は一旦全て忘れる。今日はもうちょっとだけ頑張る。

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


  • comment

    ちょっとだけ嬉しい事があった。また、頑張ろうという気持ちになった。

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


  • python mysql

    PyMySQLを使う

    PyMySQLの使い方をおさらいする事にした。 事前準備 テストで使用するデータベースの準備をする。 CREATE DATABASE test_1642051460; テスト用のデータベースを作成する。 use test_1642051460; データベースを切り替える。 テストで使用するテーブルを作成する。 CREATE TABLE dept ( deptno INT, dname VARCHAR(14), loc VARCHAR(13)); CREATE TABLE emp ( empno INT, ename VARCHAR(10), job VARCHAR(9), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT); テスト用のテーブルを作成する。 テーブルが空なのも寂しいので、データを投入する事にした。 INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) VALUES (7369, 'SMITH' , 'CLERK' , 7902, STR_TO_DATE('17-DEC-2005', '%d-%b-%Y'), 800, NULL, 20); INSERT INTO emp ...

    所要時間: 約 3分, 作成: 2022/1/14, 更新: 2023/10/22


  • comment

    Cythonを使う

    Evolution Gym というツールを使おうと思い、依存パッケージをインストールした所、インストールに失敗する状況があるようだ。私の環境では、 h5py は whl をインストールしていたため、ビルドは発生しておらずビルド済みバイナリをインストールしてた。しかしソースコードからビルドする際には上手くいかないようだった。そこで原因となっている h5py の該当のバージョンのソースコードをダウンロードしビルドしてみる事にした。tarballを解凍し ...

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


  • comment

    Evolution Gymの依存パッケージをインストールする時にh5pyのインストールに失敗する

    「Pythonではじめるオープンエンドな進化的アルゴリズム」の出版に関わらせていただいた。この書籍の中では、 Evolution Gym というツールを使って実装例を示している。 Evolution Gym は良くできたツールなのだが、インストールに失敗するケースがいくつかあった。こちらで認識できているものについては本家にプルリクエストを送った。しかし想定していない問題があるようだった。 その問題とは h5py のインストール時に実行されるビルドに失敗するとい ...

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


  • comment

    メール送信のテスト用ダミーサーバーにメールを送信する

    メール送信のテスト用ダミーサーバーとして使用していたMailHogはもう保守されていないらしい。少なくともアクティブに開発はされていないようだ1。新しくmailpitというツールが提案されている。今回はmailpitに対してEmacsからメールを送信する。 コンテナイメージはDocker Hubで提供されている。今回はそれを使用する。まずコンテナイメージをダウンロードする。 docker pull axllent/mailpit mailpitのコンテ ...

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


  • comment

    Debian GNU/Linux上で最新のminetestをaptを用いてインストールする

    現在1minetestの最新バージョンは5.6.xだが、aptでminetestをインストールすると5.3.0をインストールする。5.6系のminetestを利用したい場合、aptリポジトリを追加する必要がある。 リポジトリの追加にはadd-apt-repositoryを使用するが、もしそのコマンドが無ければsoftware-properties-commonをインストールしておく。 sudo apt-get install softw ...

    所要時間: 約 1分, 作成: 2022/8/24, 更新: 2023/10/20


  • comment

    これまでずっと「仕事をちゃんとやる」という事を目標に、様々な事に取り組んできた。こんな簡単そうな事が私とっては結構難しいけれど、また気持ちを切り替えて取り組んでいきたい。

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


  • elasticsearch

    Elasticsearchを使う

    今回は検索エンジンであるElasticsearchを使う。 簡単な操作 docker pull elasticsearch:8.10.2 コンテナイメージを取得する。 docker run --rm --name elasticsearch \ --publish 9200:9200 \ --publish 9300:9300 \ --env="xpack.security.enabled=false" \ --env="discovery.type=single-node" \ elasticsearch:8.10.2 コンテナを起動する。 外部からの通信は基本的に9200ポートで受ける。内部的な通信は9300ポートで受ける。 :ORIGIN = http://localhost:9200 PUT :ORIGIN/book { "acknowledged": true, "shards_acknowledged": true, "index": "book" } // PUT http://localhost:9200/book // HTTP/1.1 200 OK // X-elastic-product: Elasticsearch // content-type: application/json // content-length: 63 // Request duration: 0.143103s インデックスを作成する。 :ORIGIN = http://localhost:9200 GET :ORIGIN/_cat/indices?v health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open aaa mpfUHiC5TCOZVW67_VKcYQ 1 1 0 0 248b 248b yellow open book YtQbUM0MTSO9Fa7quNUErw 1 1 0 0 226b ...

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


  • comment

    この記事は、編集をされている方に推敲を手伝って頂き、書籍のサポートページとして掲載する事になった。 付録6 Evolution Gymのインストールに失敗したら? 一応、元の記事も残してあるけれど、同じような文章がWeb上の2箇所にある事はあまり望ましくないので、こちらの記事のコンテンツは非公開とした。内容はほとんど同じで、言い回しとか誤字とか、日本語としておかしい所が修正されている。

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


  • comment

    Evolution GymのCIが失敗している問題を直す

    TL;DR リポジトリをフォークし全ての修正を含めたdevelopブランチを作成した。 https://github.com/oreilly-japan/evogym Evolution Gymのインストール時のエラーについてまとめた。 Evolution Gymのインストールに失敗したら? Evolution Gymのリリース作業を以前担当させていただいた。その時には特に問題なくGithub Acitions上のUbuntuでテストが実行できる状態になっていた。あの頃はまだ肌寒い初春だった。あれから数ヶ月経ち、春が過ぎ、夏が過ぎ、秋になって、 ...

    所要時間: 約 8分, 作成: 2023/9/23, 更新: 2023/10/19


  • redis python redis-py aioredis

    Redisを使う

    今回は、自由1かつオープンソース2なキーバリューストアであるRedisを使う3。 簡単な操作 docker pull redis:7.2.1-bookworm コンテナイメージを取得する。 docker run --rm --name redis \ --publish 6379:6379 \ redis コンテナを起動する。 docker exec -it redis redis-cli コンテナ内にあるクライアントを使う。 127.0.0.1:6379> SET aaa yay キーとバリューを設定する。 OK GET aaa キーに対応するバリューを取得する。 "yay" Pythonとredis-pyでRedisを使う redis-pyをインストールする。 pip install redis Redisに接続する。 import ...

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


  • comment

    Cassandraを使う

    今回は自由1かつオープンソース2な分散型NoSQLデータベースであるCassandraを使う3。 Docker上にコンテナとしてCassandraをシングルノードで起動し、キースペース、テーブルの作成、データの挿入と照会を行う。Dockerはインストール済みとする。Cassandraのバージョンは 5.0-alpha1 を使う。 簡単な操作 docker pull cassandra:5.0-alpha1 cassandraのコンテナイメージを取得する。 docker run --rm --name cassandra \ --publish 7000:7000 \ --publish 7001:7001 \ --publish 7199:7199 \ ...

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


  • comment

    macOSで画面のキャプチャを動画で撮る

    title: "[READY] macOSで画面のキャプチャを動画で撮る" item_id: 4d44c4c9bde4ce3c065f tags: name: macOS private: True 画面全体を録画する Quick Time Player を起動する メニューから [ファイル] > [新規画面収録] をクリックする 画面収録の赤マルボタンをクリックする クリックして録画開始 停止ボタンをクリックして録画を終了 画面の一部を録画する 画面の一部を録画する場合も、3までの手順は同じ。 この表示が出たら、録画したい範囲をドラッグで矩形選択する。指定した範囲の中心に `収録 ...

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


  • comment

    最近、以前より少しだけ頭の切り替えがマシになった。理由はわからないけれど、考える事が少なくなったからなのかもしれない。

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


  • comment

    Emacsで正規表現にマッチする数を数える

    Emacsで正規表現の確認をするなら、re-builderを使うのが便利かもしれない。 M-x re-builder 正規表現はEmacsの正規表現なので注意が必要。 http://flex.phys.tohoku.ac.jp/texi/eljman/eljman_218.html

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


  • comment

    東京ビッグサイトで10/14、10/15に開催していた、Maker Faireに行ってきた。しばらくずっと取り組んでいて、ようやく出版できた「Pythonではじめるオープンエンドな進化的アルゴリズム」も書籍ブースに置かれていた。実際に陳列されているのを見ると、頑張ったかいがあったと思える。Maker Faireにはしばしば行っていて、毎回大変賑わっている。それぞれのアイディアを実装していて、面白い取り ...

    所要時間: 約 1分, 作成: 2023/10/15, 更新: 2023/10/15


  • comment

    本が完成したのと、仕事をクビになった事で、タスクが減って少しだけ時間に余裕ができた。それの影響かどうかは分からないけれど、認知的な問題も少しずつマシになってきているように思う。相変わらず集中した後には例の症状が出るけれど、まあそれはずっと付き合っていく類のものなのだろう。

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


  • flutter[WIP]

    Flutterのチュートリアルを行う

    Flutterのチュートリアルの以前実施した時の作業ログを見つけた。作業はともかく、文章としては最初の部分しか記載していないが、そのまま掲載する事にした。やった内容は2つで、FlutterとGoogleが提供している文書をそのままやった。 https://flutter.dev/docs/get-started/codelab#step-1-create-the-starter-flutter-app https://codelabs.developers.google.com/codelabs/first-flutter-app-pt2/#0 Flutterアプリケーションを始めるなら、以下に資料が参考になる。 Lab: Write your first Flutter app Cookbook: Useful Flutter samples またオンラインドキュメントも参考にするとよい。 エミュレータでのアプリケ ...

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


  • emacs lisp restclient template

    restclientのテンプレートエンジンの仕組みを調べる

    restclientでは独自の簡易なテンプレートエンジンの機能を提供している。もしかしたら、テンプレートエンジンと呼ぶには機能不足かもしれない。単純に変数を定義し、その変数を展開する。変数定義には文字列とEmacs Lispを利用できる。本当に簡易な機能なのだが、restclient以外でもこの機能を利用したくなる。そこで今回はrestclientの提供するテンプレートエンジンについて調べる事にする ...

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


  • comment

    Schemeを組み込む

    今回はSchemeを自分自身のアプリケーションに組み込んでみる。ビルドする環境はmacOSを使う。SchemeにはGNU Guileを使用し、GNU Guileは3.0をHomeBrewを使ってインストールしたものを使う。 Cのプログラムからリンクする GNU Guileの公式ドキュメントの「5.2.2 A Sample Guile Main Program」に書いてある事を試す1。 #include <stdio.h> #include <libguile.h> void inner_main (void *closure, int argc, char **argv) { scm_shell(argc, argv); } int main (int argc, char **argv) { scm_boot_guile (argc, argv, inner_main, 0); printf("Ok\n"); return 0; ...

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


  • comment

    落ち着いたら帰るというのは、逆に言うと落ち着かなければ帰らないという事でもあるように思う。

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


  • comment

    Emacsで既存のバッファを避けて現時点で新しく使用可能と思われるバッファ名を返す

    同じような実装はどこかにありそうだが、探すのが面倒だったので実装した。 get-new-buffer-name.el ;;; get-new-buffer-name --- Find non-conflicting buffer names. -*- lexical-binding: t -*- ;; Copyright (C) 2023 TakesxiSximada ;; Author: TakesxiSximada ;; Maintainer: TakesxiSximada ;; Version: 1 ;; Package-Version: 20231008.0000 ;; Package-Requires: ((emacs "29.1") (dotenv)) ;; Date: 2023-10-08 ;; This file is part of get-new-buffer-name. ;; This software is free software: you can redistribute it and/or ;; modify it under the terms of the GNU Affero General Public License as ;; published by the Free Software Foundation, either version 3 of the ;; License, or (at your option) any later version. ;; This software is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; Affero General Public License for more details. ;; You should have received a copy of the GNU Affero General Public ;; License along with this program. If not, see ;; <https://www.gnu.org/licenses/>. ;;; Code: (defun get-new-buffer-name (prefix &optional number) & ...

    所要時間: 約 2分, 作成: 2023/10/9, 更新: 2023/10/9


  • comment

    org-modeとhugoで上手くascii artを扱う方法について考えた。 システムの構成図やシーケンズ図等を記述する方法は、最近だと何が人気なのだろう。Mermaidをよく聞く気がする。以前だと、Draw.io、PlantUML、Graphvizもよく聞く事があったが、最近ではあまり聞かない。それぞれ、長所と短所があるけれど、最終的に何を採用するかは好みの問題だ。 私は何を使用しているかというとD ...

    所要時間: 約 3分, 作成: 2023/10/7, 更新: 2023/10/7


  • comment

    Emacsで音声ファイルを再生する

    Emacsを使っていると自分用のコマンドが無数に増えていく。Webブラウザで言えばブックマークが増えていったり、自分用のショートカットが増えていく。BashやZshやその他のシェルを使っていれば自分用のaliasやワンライナーが増えていく。これと同じようにEmacsでは M-x で呼び出すコマンドを日常的に実装する。細かい事を考え出せばきりがないんだけれど、そういう事は一旦忘れて以下のようなコマンドを実装 ...

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


  • comment

    また寝込んでしまった。

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


  • comment

    dotenv.elを新しく実装した

    今までdotenv-mode.elをフォークし、幾つかの関数を追加したり修正したりして使用してきた1。いい加減自分で実装しても良さそうな気がしてきたので実装した。よく考えている事なんだけれど、便利な機能を持つツールがあって、それが沢山の機能を持っている時、大抵はその機能の全てを使う訳じゃない。使わない機能があっても、気にしなければ良い話なんだけれど、使わない機能がたくさんある弊害というのもあると思 ...

    所要時間: 約 2分, 作成: 2023/9/27, 更新: 2023/9/29


  • aws kms

    AWS KMSを使う

    鍵の管理するためのAWSのサービスにKMSがある。これを使用すると、鍵自体を自分で保持する事なく、必要な情報を暗号化/復号化できる。AWS KMSを使用した際に調べた事を記録しておく。 boto3で暗号化する boto3でKMSの暗号化を使うためには以下のようにする。 import boto3 import base64 plain_text: str = "yay" boto3_session = boto3.Session() kms_client = boto3_session.client('kms') resp = kms_client.encrypt( KeyId="11111111-2222-3333-4444-555555555555", Plaintext=plain_text, ) cipher_blob: bytes = resp["CiphertextBlob"] cipher_b64: bytes = base64.b64encode(cipher_blob) cipher_text: str = cipher_b64.decode() return cipher_text 気を付ける点としては、返されるデータはバイト列になっているため、文字列 ...

    所要時間: 約 2分, 作成: 2020/11/6, 更新: 2023/9/28


  • comment

    手を骨折してキーボードを上手く打てない。ここ数年で3回(もしかしたら4回かも)骨折してる。腕、肋骨、そして今回は手だった。HHKBは片手で操作するには不便なデバイスだという事が分かった。

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


©TakesxiSximada