« ^ »

Symdon Blog


  • 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: ;;;###autoload (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


  • comment

    DeadsnakeのPython3.8をUbuntuにインストールする

    Deadsnakeは古いバージョンのPythonのdebパッケージをPPA上でホスティングしている。そのため、Deadsnakeからパッケージをインストールするには、そのリポジトリを設定する必要がある。公式には登録されていないリポジトリを登録するには add-apt-repositor を使用していたが、このコマンドはどうやら非推奨になったようだ。ではどうするのかというとOpenPGPの公開鍵をダウンロードしておき、その鍵の設定を /etc/apt/sources.list ...

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


  • comment

    https://www.symdon.info をcloudflare pagesに引っ越しした。

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


  • comment

    仕事をクビになったから、これからの身の振り方を考えないといけない。

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


  • comment

    OpenPGPの鍵の用途

    OpenPGPの鍵の用途をまとめた。 用途(Capability) 英語表記 備考 鍵を署名する。 certification 主鍵に付ける用途。 署名する。 signing 暗号化する。 Encryption 認証する。 authentication SSHの認証などで使用する。

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


  • comment

    networkxはGraphvizに依存していない

    networkxを使用するにあたりgraphvizに依存しているかどうかを調べる必要が出てきた。とりあえずGraphvizがない状態でnetworkxとmatplotlibを使い、描画できるか確認した。 import matplotlib.pyplot as plt import networkx as nx G = nx.DiGraph() nodes = { "1": ("testing1", {'color': [0.3,0.3,0.3], 'node_size': 150, 'label': '', 'edgecolor': [0.9, 0.5, 0.2], 'linewidth': 1}), "2": ("testing2", {'color': [0.3,0.3,0.3], 'node_size': 150, 'label': '', 'edgecolor': [0.9, 0.5, 0.2], 'linewidth': 1}), } conns = { ("1", "2"): ("testing1", "testing2", {'color': [1, 1, 1], 'weight': 1, 'arrowsize': 1}), } position = { "testing1": [1,3], "testing2": [2,4], } G.add_nodes_from(nodes.values()) G.add_edges_from(conns.values()) fig, ax = plt.subplots(figsize=(5, 5)) nx.draw_networkx_nodes( G, position, ax=ax, node_color=[node['color'] for node in G.nodes.values()], node_size=[node['node_size'] for node in G.nodes.values()], linewidths=[node['linewidth'] for node in G.nodes.values()], edgecolors=[node['edgecolor'] for node in G.nodes.values()]) nx.draw_networkx_labels( ...

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


  • comment

    いろんなモデルを試しているんだけれど、PCのスペックが低すぎて、モデルやデータをロードしている時に処理系自体がクラッシュする。とんでもなくメモリを食い潰して、一応swapも発生しているみたいだけれど、間に合ってはいないらしい。ハイスペックなマシンに買い替えようかとも思ったけれど、リソースが足りなかったり故障とかの事を考えると、手元のマシンはショボいマシン(といってもメモリ8GBはある)でよくて、ハ ...

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


  • comment

    blog.symdon.infoは、元々はマイクロブログ的な使い方をする事と、多ユーザー展開的な構想もあったため、www.symdon.infoは個人のプロフィール情報などを掲載するサイトとし、blog.symdon.infoとは分離していた。ただ、多ユーザー展開構想にはもうあまり熱量がない。そうであれば、www.symdon.infoとblog.symdon.infoは統合した方が良い。 blog ...

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


  • comment

    マイナポータルの就労証明書作成コーナーというWebシステムがあるのだけれど、かなりレイアウト崩れしたPDFが生成される。一応これで作成したPDFを用意したけれど、このPDFについては、就労証明書の雛形をダウンロードし、自分で編集する方が、レイアウトが崩れないPDFを生成できるので、そうする事にした。 PDFを何を使って生成しているかは分からないけれど、PDFを生成するコードは自由ソフトウェアとして公 ...

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


  • comment

    Elementを使う

    https://kushview.net/element/ brew install boost git clone https://github.com/kushview/element.git cd element https://github.com/kushview/Element/blob/develop/docs/building.md#toc2 に従いビルドしようとするとエラーが発生した。 bash-5.2$ BOOST_ROOT="/usr/local/include" meson setup --native-file="tools/machine/osx.ini" builddir Could not find any valid candidate for native files: tools/machine/osx.ini ERROR: Cannot find specified native file: tools/machine/osx.ini tools/machine/osx.ini のファイルが何なのかよくわからないけれど、ファイルがないと言っているので空のファイルを作成する事にした。 mkdir -p tools/machine/ touch tools/machine/osx.ini またboostがないというエラーも発生した。boostはインストールしてあったがunlinkした状態だったため brew link した。 brew link boost BOOST_ROOT="/usr/local/include" meson setup --native-file="tools/machine/osx.ini" builddir The Meson build system meson compile -C builddir meson install --destdir="." -C builddir アプリケーシ ...

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


  • comment

    KMSは難しい。というか、もうあらゆる事が僕にとっては、とても難しい。 boto3を用いてKMSを用いたシンプルな暗号化と復号化の方法を確認する。 Pythonとboto3を使って暗号化と復号化を確認する import base64 import boto3 key_arn = "arn:aws:kms:REGION:111111111111:key/KEY_ID" kms = boto3.client('kms') enc_resp = kms.encrypt(KeyId=key_arn, Plaintext="yay") # 暗号化 cipher_data: bytes = enc_resp['CiphertextBlob'] # 暗号文 cipher_text = base64.b64encode(cipher_text).decode('utf-8') dec_resp = kms.decrypt(CiphertextBlob=cipher_data) # 復号化 plain_data: bytes = dec_resp["Plaintext"] plain_data.decode() GoとAWS SDK for Goを使って暗号化と復号化を確認する package main import ( "fmt" "encoding/base64" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials/stscreds" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/kms" ) func main() { var ( profile = "DUMMY" key_arn = "arn:aws:kms:REGION:ACCOUNT_ID:keyKEY-ID" ) c := aws.NewConfig() o := session.Options{ Config: *c, Profile: profile, ...

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


  • comment

    AWSのスイッチロールのためのAWS CLIの設定は、少しややこしい。 https://dev.classmethod.jp/articles/switch-role-with-awscli/ この記事を見ながら設定した。mainが主アカウント、subがスイッチロール先のアカウント とする。 [profile main] region = ap-northeast-1 output = json [profile sub] region = ap-northeast-1 source_profile = main role_arn = arn:aws:iam::111111111111:role/SWITCH_RILE # スイッチ先のロール mfa_serial = arn:aws:iam::000000000000:mfa/DUMMY # 主アカウントのMFAのARN ~/.aws/config [main] aws_access_key_id = DUMMY aws_secret_access_key = DUMMY [sub] mfa_serial = arn:aws:iam::000000000000:mfa/DUMMY source_profile = main ~/.aws/credential

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


  • comment

    今日も結構頑張ったけれど、あんまり成果らしい成果を得られていない。

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


  • comment

    Web of Trustは本当に信頼できるのかという事について、少しだけ考えた。 https://www.nic.ad.jp/ja/newsletter/No82/NL82_0220.pdfでは著者の鈴木さんが、当時と今のご自身のWeb of Trustについての評価を少しだけ記載されていた。これが、とても印象に残ったので引用する。 しかし、シンプルに考えると今も昔もWeb of Trustは、「友達の友達は友達だ」という ...

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


  • comment

    Llama 2 Community Licenseの日本語の要約があった。 https://note.com/kyutaro15/n/ned7bcd2df2b1

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


  • comment

    最近は大規模言語モデルをいろいろと試してみている。今回はELYZA-japanese-Llama-2-7bを試してみる事にした。基本的には、ここで書かれている事をそのまま確認する。 https://huggingface.co/elyza/ELYZA-japanese-Llama-2-7b model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype"auto")= でモデルをダウンロードされる。貧弱なマシンだと、ここでダウンロードできなかったり、SIGKILLを受けて死んだりする。 import torch from transformers import AutoModelForCausalLM, AutoTokenizer B_INST, E_INST = "[INST]", "[/INST]" B_SYS, E_SYS = "<<SYS>>\n", "\n<</SYS>>\n\n" DEFAULT_SYSTEM_PROMPT = "あなたは誠実で優秀な日本人のアシスタントです ...

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


  • comment

    論文内の文章の対応関係というのが、とても参考になった。 https://twitter.com/ceekz/status/1697875729772671019/photo/1 なのでAAで描いて残しておく事にした。一部、こっちの方が良いのではという手直しをした。 +-----------------------+ | | | 背景・問題意識 | | | +------+----------------+ | v +------+----------------+ | | +------ 問い | | | | | +------+----------------+ | | | v | +------+----------------+ | | | | | 目的 +-----------+ | | | | | +------+----------------+ | | | | | +-----------+ | | | | | | v v | | +------+--+ +----+----+ | | | | | | | | | 調査A | | 調査B | | | | | | | | | +------+--+ +----+----+ | | | | | | v v | | +------+--+ +----+----+ | | | | | | | | | 結果A | | 結果B | | | | | ...

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


  • comment

    個人的に使うためのChatGPTが欲しかった。特別な認証を入れたり、UI側をカスタマイズする等だ。使う人を身内に限定するようにもしたかった。Chatbot UIをデプロイした。 https://chatbot.symdon.info/ja 私は普段静的サイトジェネレータをよく使う。そして、それはホスティングサービスを使用してビルド/デプロイし、Web上からアクセスできるようにしている。 使っているサービスは4つある。 Github Pages CloudFlare Pages Netlify Vercel このサイトはNetlifyでホステ ...

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


  • java

    Java関連の用語を整理する

    Java製のプロダクト JavaはWebシステム、銀行系、業務系、組み込みなど多くの分野で使用されている。Javaで実装されているサービスやソフトウェアは無数にある。実装の仕方等を学ぶ時に、既に良く実装されたソフトウェアを眺めてみると、とても参考になる事がある。こういう時、Github等で「awesome-xxx」のように検索してみると、参考になるページを見付けられるかもしれない。xxxの部分は検索 ...

    所要時間: 約 4分, 作成: 2021/7/16, 更新: 2023/9/2


  • comment

    できることはいまだに少ないな

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


  • comment

    OpenPGPの主鍵の秘密鍵は絶対に漏洩させても紛失させてもいけないため、取り扱いが難しい。よく行われる方法として以下の方法があるようだ。 ネットワークから遮断された状態のストレージに保存する。 紙に印刷する。 そしてこれを実施した後、普段使用しているGnuPGのデータベース内からは削除してしまうようだ。普段使いしている機械は、様々なリクスを抱える事になるから、重要な情報は保存しないという事なのだろう。 ...

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


  • openpgpg gnupg pgp cryptography

    PGPとOpenPGPとGnuPGに対する理解を深める

    暗号化関連の話はただでさえややこしいが、PGP関連の話は更にややこしくなる。きちんと理解できている訳ではないけれど、少しずつ整理して理解を深める事にする。 ざっくりとした公開鍵暗号方式 暗号化の話をする時には大体アリスや、ボブが登場する1。それに合わせて、ここでもその登場人物を使う。 アリス メッセージを送る人 ボブ メッセージを受け取る人 イブ メッセージを盗み見る人 アリスはボブにメッセージを送りたい。そしてイ ...

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


  • comment

    PDFをもう少しだけ掘り下げる

    PDFの理解を深めるため、PDFをもう少しだけ掘り下げようと思う。簡単なPDFをorg-tangleで生成できる事が今回のゴールだ。 PDFの構造 ヘッダ ファイルの先頭にはPDFのバージョンを指定する。最新は2.0のようだった。 %PDF-2.0 ボディ 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Kids [4 0 R] /Count 1 >> endobj フォントを設定する。フォントは埋め込む事もできるが、この場合は、埋め込まれている訳ではないため、指定したフォントが、 ...

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


  • comment

    西暦と和暦と年度

    日本には和暦という暦があって、今は天皇陛下が崩御された時に元号が変わるようになっている。これは、ある意味ではある日突然元号が変わる事になっていて、西暦のキリが良い1月1日で切り変わるわけではない。これはまあ仕方がない事なんだけれども、それでもある程度のややこしさはある。ただ更に年度というものもあって、これは4月1日に切り替わったりするし、更に言うと他のものもある。暦や年や年度の数え方について、とて ...

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


  • pdf emacs lisp pdf-tools poppler c c++

    EmacsでPDFを扱うために右往左往する

    • pdf-toolsを使ってEmacsでのPDFの操作性を向上する。
    • PDF上のテキストをコピーしやすくする機能を追加した。
    • pdf-toolsでは注釈へ返信できないことが分かった。
    • Poppler、epdfinfo、pdf-toolsを拡張し、注釈への返信を実現した。

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


  • comment

    MySQLのバイナリログをPythonで読み出す

    MySQLのバイナリログをPythonのmysqlreplicationを使って読み取る。データベースドライバにはPyMySQLを使用する。 MySQL Serverを起動する。今回はDockerを使う。 export MYSQL_ALLOW_EMPTY_PASSWORD=1 docker run -it --rm \ --privileged=true \ --publish="127.0.0.1:3306:3306" \ --expose="3306" \ --workdir="/workdir" \ --volume "$(pwd):/workdir" \ --volume "mysql-server-8-data:/var/lib/mysql" \ --name="mysqld" \ --env-file="${SCRIPT_DIR}/.env.mysqld" \ mysql:8.0.2 MySQLにテスト用のデータベースとテーブルを作成する。 CREATE DATABASE page_1686018833; use page_1686018833; CREATE TABLE dept ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY(id) ); 依存パッケージをインストールする。 pip install mysqlreplication pymysql MySQLに接続し、 ...

    所要時間: 約 5分, 作成: 2023/6/6, 更新: 2023/8/29


  • comment

    詳細で体系立ったドキュメントはなるべく書かない方がいいかもしれない。粗雑で書き捨てられた文章があれば、それとコードを手掛かりに理解を進められるし、そういう文章は保守する必要もないから、そういう点でも気楽だ。ただgrepできるような形態(つまりテキストファイル)になっていて、一括でダウンロードできる状態であれば文句はない。Gitで取得できたり、そうでなくてもファイルサーバにあればいい。 開発者ひとりず ...

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


  • comment

    半年前の自分にできてた事が、もうできないようになっているし、何が問題なのかもよくわからない。その調査で今日1日が消滅した。

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


  • comment

    AWSのアカウントがのっとられた場合に、アカウント全体を無効化するような手段を用意したいんだけれど、そういう事ってできないのかな。ルートユーザーだけは温存できていると仮定して、IAMユーザーを一気に無効化するようなスクリプトがあれば良いのかな。その後、稼動中のリソースが一覧で確認できれば、手動で停止していく事もできそうではあるけれど、このあたりの方法を手順として準備しておきたい。

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


  • comment

    できるかぎり頑張っているつもりだけれど、1日にちゃんと活動できる時間はそんなに長くない。その他の時間は、なんだかぼんやりしてしまっていたり、考えている事がまとまらなかったりする。 気が付けばもう8月も終盤になってた。本当にあっという間に時間が過ぎる。少し前に、とある配分について少し考えていた。松プラン、竹プラン、梅プランとしょんぼりプランの、4つのプランを作った。竹プランまでは完了していて、松プラン ...

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


©TakesxiSximada