Symdon Blog
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でオブジェクト指向プログラミングをするためのユーティリティやフレームワークを提供する。COLS(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
programming
スコープについて考える
まずはWikipediaから、その定義を確認してみる。 プログラミングにおけるスコープ(英: scope, 可視範囲)とは、ある変数や関数などの名前(識別子)を参照できる範囲のこと。通常、変数や関数が定義されたスコープの外側からは、それらの名前を用いるだけでは参照できない。このときこれらの変数や関数は「スコープ外」である、あるいは「見えない」といわれる。 出典: フリー百科事典『ウィキペディア(Wikipedia)』 ...
所要時間: 約 3分, 作成: 2022/2/15, 更新: 2023/11/13
comment
netlifyとprivate submoduleの相性はあまりよくない事を理解した。
所要時間: 約 1分, 作成: 2023/11/13, 更新: 2023/11/13
comment
結局、帰る事にした。片道キップでここまで来て焼け野原に辿り付いたら、帰るための片道キップが用意されてた気分だ。この焼け野原の風景は忘れないようにしよう。
所要時間: 約 1分, 作成: 2023/11/12, 更新: 2023/11/12
qemu linux tinycore debian
QEMUでGNU/Linuxを動かす
QEMUはプロセッサエミュレータであり、コンピュータの動作をまるごと仮想化する。そのため、様々なOSをハードディスクやSSDにインストールすることなく、また今使用しているシステム(ホスト側のOS)を再起動する事なく、起動させたり動作させたりできる。またハイパーバイザーとしても動作させる事ができる。 今回は、QEMUを用いてGNU/Linuxを色々と起動させてみようと思う。 事前準備 QEMUをインストー ...
所要時間: 約 5分, 作成: 2023/1/10, 更新: 2023/11/12
comment
Debian GNU/LinuxのISOファイルのチェックサムとその署名を確認する
結局ダウンロードの後って何をしたら良いんだろう。チェックサムを計算して一致しているかを確認するべきだろう。そのチェックサムファイルの署名があるなら、それも正しいかを確認する。署名は、大抵の場合 OpenPGP だろう。配布元の公開鍵を入手する必要がある。どこかにある鍵サーバーから公開鍵を取得する。 Debian GNU/Linuxを例に考えてみる。Debianが使用している鍵の一覧はhttps://www.debian.org ...
所要時間: 約 4分, 作成: 2023/11/11, 更新: 2023/11/11
evogym
Evolution Gymステップバイステップ
Evolution Gymは進化的アルゴリズムやその実装を検証するためのプラットフォームとして作られている。OpenGLで実装された環境内を、エージェントと呼ばれる動くモノが、アルゴリズムに従い活動する。 Evolution GymはOpenAI Gymを利用して実装されており1、それらの機能を利用できる。またNEAT-Pythonといったアルゴリズムを実装するライブラリを組み込む事で、アルゴリズムの品質を確認できる。 僕はしばらく前から ...
所要時間: 約 11分, 作成: 2023/5/14, 更新: 2023/11/10
comment
この仕事をしていると、どうしても力が入らなくなる時がある。あまり理解してもらえないかもしれないけれど、どうなんだろう。頭が煮えたような状態になって、簡単な作業でさえ難しくなる。頭の中を切り替えるために、カフェインと、移動という気分転換の応酬で、無能な僕でもなんとかやってこれた。 そういう働き方を選んだのも自分だし、そういう選択肢しかなかったというのはそうだけど、どうも今日は頭が引っ張られて手が付かな ...
所要時間: 約 2分, 作成: 2023/11/10, 更新: 2023/11/10
comment
配信イベントと日々の所感
昨日、neat-pythonの配信イベントをやった。事前準備も大変だったし、本番も緊張したけれど、それでも何とかやりきった。connpassでは80名以上の人が登録してくれた。実際に来てくれたのは半分ぐらいだったみたいだけれど。それでもやりきった事は良いと思う。何より嬉しかったのは、数名が会場に応援に来てくれた事だった。本当に心強かった。 資料の作成や、発表練習にも時間を使っていた。自分からやると言 ...
所要時間: 約 2分, 作成: 2023/11/10, 更新: 2023/11/10
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
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ブラウザとしても使用できるようになった。きっとこれからも、ますま ...
所要時間: 約 20分, 作成: 2020/10/11, 更新: 2023/10/30
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() このサーバーを起動してお ...
所要時間: 約 12分, 作成: 2022/5/22, 更新: 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