« ^ »

Symdon Blog


  • comment

    termuxの設定でソフトウェアキーボードを無効にすれば、termuxで動作させているEmacs上ではSKKを使用し、それ以外ではソフトウェアキーボードを使う事ができるようだった。今までは、Androidの設定自体を毎回変更していたが、これからはその必要は無くなった。

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


  • comment

    現在取り組んでいる作業の管理方法を見直す

    僕は、タスクの管理をEmacsのorg-modeを使って行っている。org-modeはかなりアナログな実装のドキュメンテーションシステムだけれど、そのお陰でとても柔軟性で強力にカスタマイズできる。これといった正解はたぶんないので、自分が納得行くようにカスタマイズしているし、それも楽しい。複数のorgファイルに分割し、それぞれのファイルにTODOを手で書き込んでおり、org-agendaとorg-s ...

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


  • emacs lisp

    custom-set-variablesを上手く扱うにはどうすれば良いんだろう?

    Emacsには custom-set-variables という関数がある。これはEmacsのカスタマイズ時に使われる。僕は長い間、この機構についてよく分かっていなかった。今もよく分かっているとは言い難いのだけれど、以前よりはマシになったので再考し、今の認識をメモとして残す事にした。 M-x customizeでカスタマイズした値はcustom-set-variablesで設定されるよう初期化ファイルに自動挿入される Emacsは M-x customize を実行すると、 ...

    所要時間: 約 5分, 作成: 2022/5/30, 更新: 2024/4/20


  • comment

    ポートフォワード用のコマンドを書いた

    (defun port-forward-local (ssh-command remote-host remote-port local-port) (interactive (list (completing-read "SSH Command: " nil) (completing-read "Remote Host: " nil) (completing-read "Remote Port: " nil) (completing-read "Local Port: " nil))) (let ((shell-command-buffer-name-async "*Port Forward*")) (async-shell-command (format "ssh -L %s:%s:%s %s" local-port remote-host remote-port ssh-command ))))

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


  • comment

    org-agendaの一覧をASSIGNEEでフィルタリングする

    こんな感じの設定をした。 (setq org-agenda-custom-commands '(("s" "Symdon's Task" tags-todo "+ASSIGNEE=\"symdon\"")))

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


  • comment

    最新のorg-modeをインストールする方法が分からない。 package.el ではビルトインのパッケージを入れ替える事ができなそう。今までできていたような気がするんだけれど、気のせいだろうか。気にした事がなかったから、分からない。

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


  • comment

    調べた事、考えた事をこれまで文章にまとめてきた。この活動を続けて来られた理由の一つは、執筆に対するハードルを下げる工夫をした事にある。執筆のハードルを下げるために、Emacsのorg-modeを拡張し、essay.elを実装した。これは素早く執筆用のバッファを作成して切り替える事ができ、保存と同時にバージョン管理システムへのコミットを行う。そして公開可能な文章は、自動的に公開されていく。こういった ...

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


  • comment

    カットモデルやってきた

    先日、街中を歩いていたら声をかけられた。話を聞いてみると、カットモデルをやって欲しいとの事だった。カットモデルというのは、美容師さんが練習するための練習台に位置する人の事だ。僕は普段、髪が伸びてうっとうしくなったら、1000円カットで適当に切ってもらっている。髪型にそれほどこだわりもないので、素早く切ってくれてるのも嬉しいし、掃除機のような何かで頭を吸われる事にも抵抗はない。ちょうどその頃、髪の毛 ...

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


  • comment

    文章の語尾に絵文字、顔文字、句点(マル)、感嘆符(エクスクラメーションマーク!)を付ける事で、おじさん構文、おばさん構文、マルハラといったように、文体に対して命名をしているらしい。 僕は、今も別にちゃんとした文章を書けるようになったわけではないけれど、本の監訳、翻訳、執筆の仕事に関わるようになって、できるだけきちんとした文章になるように心掛けている。 句点はきちんと打つようにしている。感嘆符や疑問符は ...

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


  • comment

    ここ半年の間に、いろいろな人、もの、事が僕から離れて行った気がする。なんだかしんどい気分になる事もある。では以前はどうだったかを考えると、1年前も2年前も3年前も、テーマは違えど、何かに悪戦苦闘していた。何かしら悩みはあったし、やっぱりしんどかった。そんな状況でも、僕に仕事を投げてくれたり、頼ったり慕ったりしてくれる人はいた。そしてそういう人は今もいる。だから少し休憩したら、また目の前の事に全力で ...

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


  • comment

    QRコードを扱う

    QRコードを出力したり、読んだりしてみた備忘録。 QRコードで自分自身にアクセスさせる PCでスマホ対応のWebサイトを開発していた。PCに簡易のWebサーバーを立てて、そこにアクセスする形で実機のスマホでの確認をしたくなる事がある。 そんな時、PC側のアドレスをQRコードで表示させ、そのQRコードをスマホのカメラで読み取る事でアクセスできると、アドレスを手打ちする必要がなくなる。今回はそれを実現したい ...

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


  • aws sqs localstack

    SQSを使う

    準備 今回は localstack というダミーサーバを起動し、SQSの代わりとして利用する。また localstack はDockerを用いて起動する事にする。 docker run -it --rm \ --publish="127.0.0.1:4566:4566" \ --publish="127.0.0.1:4571:4571" \ --publish="127.0.0.1:8080:8080" \ --expose="4566" \ --expose="4571" \ --expose="8080" \ --workdir="/workdir" \ --volume "$(pwd):/workdir" \ --name="localstack" \ localstack/localstack:0.12.6 SQSの料金はとても安いため、動作確認時においてもAWSにリソースを作った方が、効率的である事が多い。ただし例えばunittest用など諸般の事情でローカルにダミーのSQSを用意して、動作確認したい事もある。 localstack はAWSのダミーサーバで ...

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


  • minetest

    MinetestにModをインストールする

    • MinetestサーバーにModを入れる
    • 3D Armor, Forgotten Monsters, 3D Armor Flyswim, Throwing Redoをインストールする。

    所要時間: 約 8分, 作成: 2022/10/27, 更新: 2024/3/25


  • transformers[WIP]

    音声から文字を起こす

    様々なAI関連のサービスが増えたが、情報漏洩などのセキュリティリスクの問題から会社の稟議が通らないなど、サービスを使用できない事もある。しかしHugging Faceには既に様々なモデルやデータセットが公開されているため、ローカルで動作する自分用のツールを開発する事もそれ程難しくはないはずだ。元々は日本語話者同士の会議の議事録を取る事を目的としていて、マイク音声とデスクトップ音声の両方をFFmpeg ...

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


  • macos コード署名

    macOSにインストールしたプログラムをコード署名する

    macOSでgdbを使うとすると以下のエラーが出ることがある。 Starting program: /srv/aee369d717aea571e8360afd3741432d/main.out Unable to find Mach task port for process-id 18347: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8)) これはgdbがコード署名されてないためにエラーが発生している。codesignとはソフトウェアに対する署名に関連する操作を行うコマンドで、macOSではセキュリティ上の理由から署名されていないソフトウェアによるデバッグ操作(プロセスへのアタッチ)を禁止している。 野良ビルドされたプログラムを配 ...

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


  • emacs macos mic tcc ffmpeg

    macOSにインストールしたEmacsからマイクにアクセスする

    普段macOSにEmacsをインストールし、それを起点にして様々な作業をしている。文書の編集作業もそうだけれど、シェルでの作業であったり、データベースの操作であったり、メールやタスクの管理であったり、作業の種類は多岐に渡る。 オーディオデバイスからの入力を、FFmpegを用いて録音しようとした所、オーディオデバイスからの入力を上手く受け取れず、空の音声ファイルが作られる事象に遭遇した。他の環境ではど ...

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


  • png[WIP]

    小さいPNGを手で作りながらPNGについて考える

    • PNGを手で作りながら仕様を学んだ。
    • 各種チャンクのデータをどのように生成すればよいか分かった。
    • CRCの計算には自分で計算するのは大変だったためPythonのbinasciiを使用した。

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


  • fargate aws ecs exec

    AWS ECS Execを使用してFargate上のコンテナとのセッションを開始する

    AWS ECS Execがを使用してFargate上のコンテナとのセッションを開始する。同様ことができる従来のSSMセッションマネージャーとの比較を行う。タイムアウトでセッションを閉じないようにするためのEmacs Lispを書く。

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


  • comment

    以前入れていたけれど使わなくなったパッケージの覚え書き

    メモしておく。 (el-get-bundle elnode :type "git" :url "[email protected]:collective-el/elnode.git") (el-get-bundle foreman-mode :url "[email protected]:collective-el/foreman-mode.git" :type "git") (el-get-bundle gist:05de904cd0c320733cae:org-file-table :type "git") (el-get-bundle gist:10985431:go-template-mode :type "git") (el-get-bundle gist:beb8e1944af406c3fb4f74b6e0e3b5fe:require-to-install-executable :type "git") (el-get-bundle gist:d451221dc2a280b7e35d:kpt.el :type "git")

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


  • emacs macos

    macOS用のユーティリティ

    macOS関連のコマンドをどうしても覚えられない。たいていはEmacsから起動するため、Emacsから呼び出しやすいようなユーティリティを実装する。今のところ、以下の機能を提供している。 macOSのアプリケーションをEmacsから起動する。 オーディオデバイスの一覧を表示する。 アプリケーションのバンドルIDを表示する。 マイクの音声をffmpegで録音する ;;; macos --- macOS Utility. -*- lexical-binding: t -*- ;; Copyright (C) 2024 TakesxiSximada ;; Author: TakesxiSximada <[email protected]> ;; Maintainer: TakesxiSximada <[email protected]> ;; ...

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


  • emacs lisp aws

    AWS CLIのEmacs用ユーティリティ aws.el を作る

    AWS CLIのEmacs用ユーティリティを作る事にした。このライブラリはAWS CLIをスケルトンファイルを用いて、Emacsから実行する機能を提供する。ここではこのライブラリが提供する各機能を説明する。 変数 aws-cli-command AWS CLIとして実行するコマンドを設定する。通常は aws を用いる。例えばAWSのダミーサーバー群であるlocalstackなどに対して実行する場合 --endpoint-url を指定しなければならない。そのように値を変更することで ...

    所要時間: 約 4分, 作成: 2022/12/3, 更新: 2024/3/14


  • emacs macos pmset clamshell

    macOSの電源操作をpmsetで行う

    macOS は pmset というコマンドを提供している。このコマンドは macOS の電源管理を行う。僕はmacをクラムシェルモード1で使用する事がある。そういう時はコマンドの使い方をだいたい忘れているため、その都度 pmset のサブコマンドの意味を調べて実行していた。そのコマンドをまとめる。 MacBookを閉じてもスリープさせない スリープさせないようにする(つまり閉じてもスリープしない) sudo pmset -a disablesleep 1 スリープさせないようにしない(つまり閉じ ...

    所要時間: 約 2分, 作成: 2023/4/24, 更新: 2024/3/14


  • emacs http restclient network orgmode babel

    EmacsのHTTPクライアント事情について考える

    Emacs にはHTTPリクエストを送信する方法はいくつかある。それぞれ目的や想定している状況が異なる。これを使えばよいというものは本来無いので、自分の頭で考えて選択していく事にする。 ダミーサーバー HTTPクライアントを使うには、当然リクエストを送信する先のサーバーが必要になる。今回は yay と返すだけのシンプルなサーバーを Python で実装した。 from socket import socket soc = socket() soc.bind(("localhost", 8000)) try: soc.listen(1) while True: (conn, addr) = soc.accept() print(conn, addr) print(conn.recv(10000)) conn.send(b"HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nyay") conn.close() finally: soc.close() このサーバーを起動して ...

    所要時間: 約 9分, 作成: 2022/5/22, 更新: 2024/3/10


  • emacs sql explain rdbms

    Emacsでリレーショナルデータベースを扱う

    Emacsに梱包されている lisp/progmodes/sql.el は、リレーショナルデータベースを扱うための機能を提供している。それらの殆どは独立して動くのではなく、リレーショナルデータベースへアクセスするクライアント用のコマンドをサブプロセスとして起動し、そのサブプロセスとやりとりする事で、リレーショナルデータベスを操作する。今回は、それらの機能について見ていく事にする。 サーポートしているデータベース Emacsは様々なRDBMSに対 ...

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


  • comment lisp

    生成系AIのAPIを使ってクロスレビューしてみている

    OpenAI APIとGoogle Gemini APIで、互いの指摘をクロスレビューしているけれど、Emaacsの指摘についてはOpenAI APIの方が正確なようにも思う。まあこのあたりは、使っているモデルが何かにもよるので、暫く試しながらチューニングしていきたい。 OpenAI API https://blog.symdon.info/emacs/1708258091/ Google Gemini API https://blog.symdon.info/posts/1709362485/ DeepL https://blog.symdon.info/posts/1708668537/ ;;; ai --- Generative AI SaaS Utility -*- lexical-binding: t -*- ;; Copyright (C) 2024 TakesxiSximada ;; Author: TakesxiSximada <[email protected]> ;; Maintainer: TakesxiSximada <[email protected]> ;; Repository: ;; Version: 1 ;; Package-Version: 20240301.0000 ;; Package-Requires: ((emacs "28.0") ;; Date: 2024-03-03 ;; This file is not part of Emacs. ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License ...

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


  • emacs google gemini api

    Google GeminiをAPI経由で使う

    Googleの生成系AI「Gemini」をAPI経由で使用する事にする。 他の実装済みのライブラリを検討する EmacsからGeminiを使用するための拡張機能は、自分で実装しなくても既に十分な実装がある。簡単な調査の結果、次のライブラリが適していそうだ。 https://github.com/karthink/gptel gptelは複数の生成系AIのサービスに対応している。特に理由がない場合は、これを使うと良さそうだ。 なぜgptelや他の実装済みの拡張を使わないか ...

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


  • comment

    DeepL APIを使う

    Google翻訳が出てきた時にはこんな便利なものがあるのかと思ったが、不自然な文章に翻訳されるといった事もしばしばあった。そこから時が経ち、DeepLが出てきた。とても自然な文章に翻訳されて凄いと関心した。その頃にはGoogle翻訳も進化していて、不自然な文章は、ほとんど出力されなくなっていた。最近はChatGPTをはじめとした生成系AIのサービスの方が、翻訳の精度も高いような気もする。「翻訳して ...

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


  • comment

    OpenAI APIに追加の支払いをした。

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


  • emacs org org-agenda task

    どんなふうにタスクを管理すれば効率を上げられるのだろう?

    仕事やプライベートのタスクのほぼ全てを書き出して管理している。そうすると一人の社会人が関わるタスクがいかに多いかが分かる。それらのタスクは全て処理される訳ではないけれど、書く事で記録が残り後で見返す事ができる。それと引き換えにして、タスクの管理コストが増える。そのコストを下げるために、Emacsを使っている。Emacsにはorg-modeというドキュメントシステムがある。org-modeはドキュメ ...

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


  • comment[WIP]

    edを使う

    開始 ed FILE.txt 終了 q で終了する。 q 挿入 a で挿入を開始し、 . で終了する。 a text1 text2 text3 . 保存 ファイル名を指定してedを開始した場合は w で保存する。 w ファイル名を指定せずedを開始した場合は w FILE.txt のようにファイル名を指定する。 w FILE.txt ファイルの中身を全て削除する 1,$d w q

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


  • comment

    plist-storeに入れていたデータがなぜか消えてしまった

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


  • emacs lisp

    雑多で中途半端なEmacs Lisp集

    諸事情によって、というより途中で力尽きて、完成する事のないEmacs Lispをここに集める事にした。 (defun netcat (host port) "ncを実行する" (interactive (list (read-from-minibuffer "Host: ") (read-from-minibuffer "Port: "))) (make-process :name "*NETCAT*" :buffer "*NETCAT*" :command `("/usr/bin/nc" ,host ,port) :sentinel (lambda (process event) (when (not (process-live-p process)) (message event) (print (process-exit-status process)))))) (defun curl (url method) "curlを実行する" (interactive (list (read-from-minibuffer "URL: ") (completing-read "Method: " '("GET" "POST" "PUT" "PATCH" "DELETE" "OPTIONS")))) (make-process :name "*cURL*" :buffer "*cURL*" :command `("/usr/bin/curl" ,url "-X" ,method) :sentinel (lambda (process event) (when (not (process-live-p process)) (message event) (print (process-exit-status process)))))) (defun process-send-string-from-minibuffer (process string) "ミニバッファから入力したデータをプロセスに送信する" ...

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


  • emacs plstore

    Emacsで取扱注意のデータを安全に扱うためにplstoreを使う

    今回はEmacsで取扱注意のデータを安全に扱う、保管する方法について考える事にする。自前実装を辞め、 plstore を使う方法について調べる。 取扱注意のデータの扱いは悩ましい ソフトウェアの開発の作業をしていると、取り扱いに注意が必要なデータに触れる事がある。 個人情報となるような氏名や住所もあれば、WebサービスのIDやパスワード、会社の内部情報など、一言で 取り扱いに注意が必要なデータ と言っても、様々な種類や危険 ...

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


  • gmail emacs

    Gmailについて考える

    Eメールを使用する時、メールサーバーを自前で運用している猛者達もいるだろうけど、多くの人は、Gmail、Outlookなどのサービスを使っているだろう。僕は、主にGmailを使っている。Webブラウザでhttps://mail.google.comにアクセスしログインすれば、メールの閲覧や送信ができる。殆どそれで問題はない。だけれど僕はGmailもEmacsから使いたい。そんな事を考えていたけれど ...

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


  • openai chatgpt emacs sever-sent-envent

    EmacsからOpenAI APIをつかう

    「OpenAI APIを使う」でチャットの機能のためのAPIの使い方について調べた。結果を一括で取得する方法と、 Server Sent Events を用いて結果を徐々に受け取るストリーミングのような方法を調べた。 Server Sent Events を受け取るためにはリクエストのBODYのパラメータ stream に true を設定する必要がある。 今回はこの方法を使い、ChatGPTと似たような使用感になるように、Emacsを拡張する事にした。 openai-chat-question でチャットを開始する時に、前置きの部 ...

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


  • emacs ssh askpass[WIP]

    SSH_ASKPASSを取り扱う方法を考える

    Emacsから ssh-add - を使い標準入力に鍵を渡そうとした時、その鍵にパスフレーズが設定されている場合、パスフレーズを渡す手段が必要になる。tty経由で渡したかったけれど、上手く渡す事ができなかったため、仕方がないからファイル経由で渡す事にした。 ただしパスフレーズは重要な値だから、暗号化して保存する。 askpass.el ;;; askpass --- askpass utility -*- lexical-binding: t -*- ;; Copyright (C) 2023 TakesxiSximada ;; Author: TakesxiSximada <[email protected]> ;; Maintainer: TakesxiSximada <[email protected]> ;; Repository: ;; Version: 1 ;; Package-Version: 20240224.0000 ;; Package-Requires: ((emacs "28.0") ;; Date: 2024-02-24 ;; This file is part of askpass.el. ;; This program is free software: you can ...

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


  • emacs

    子プロセスに定期的にリターンキーを送るEmacs Lisp

    プロセスに定期的にリターンキーを送るEmacs Lispを、自分の都合上必要だったので書いた。こういう事が雑に出来る所がEmacs Lispの好きな所でもある。今後という意味では何の役にも立たなそうだけれど、一応残しておく。 (setq my-vterm-proc (get-buffer-process (get-buffer "ここにバッファ名を入れる"))) (defun send-custom-return-key () (process-send-string my-vterm-proc " ")) (setq my-timer (run-with-timer 180 t 'send-custom-return-key))

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


  • 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


©TakesxiSximada