« ^ »

Symdon Blog


  • comment

    認証機能付きで静的サイトホスティングしたくなった。もしGithubのProアカウントを持っているなら、プライベートリポジトリのGithub Pagesがちょうど良いかもしれない。 今回はCloudflare Pagesを使って同じような事をしてみる事にした。つまりCloudflare Pagesを使い静的サイトホスティングし、ホスティングしたページへのアクセスにはGithubの認証が必要になるようにした。 ...

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


  • comment

    リチャード・ストールマン:子を持たないことの重要性について を読んだ。これはWhy it is important not to have children.を翻訳している。翻訳の記事に原文も掲載されていたので、原文の方はさらっと眺めた。少し考える事もあったけれど、それを書いた時に傷付けてしまう人いるかもしれないので、それはしないでおこうと思う。人の考え方は変化するし、だから今書いておいた方が良いかもしれないけれど今はしない。周りにいる人が明日 ...

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


  • comment

    DynamoDBのテーブルのバックアップを今すぐ(1時間以内)に作成を開始する

    DynamoDBのテーブルは、簡単にバックアップを作成できるし、スケジュールを設定して計画にバックアップも取れる。AWS Consoleから実行する場合、DynamoDBのテーブルを選択すると、「バックアップ」タブがある。バックアップタブを表示して「作成」ボタンから進めば、特に難しい事もなくバックアップを作成できるだろう。注意する点としては、即座に作成が開始される訳ではないという事だろう。「今すぐ作 ...

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


  • comment

    Netlifyのビルドフローでは、submoduleをcloneせずビルドを進める事ができない。 https://answers.netlify.com/t/clone-repo-without-checking-out-submodules/4089

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


  • comment

    Pythonのsslモジュールを使ってSSL/TLS通信する

    自己証明書を作成する openssl req -x509 -newkey rsa:2048 -nodes -keyout private.key -out cert.pem -days 365 サーバを実装する import ssl from socket import * context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) context.load_cert_chain("./cert.pem", "./private.key") soc = socket() soc.bind(("localhost", 8181)) try: soc.listen(1) with context.wrap_socket(soc, server_side=True) as ssoc: while True: conn, addr = ssoc.accept() data = conn.recv(10) print(data) conn.close() finally: soc.close() クライアントを実装する import ssl from socket import * context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) context.load_cert_chain("./cert.pem", "./private.key") soc = socket() soc.bind(("localhost", 8181)) try: soc.listen(1) with context.wrap_socket(soc, server_side=True) as ssoc: while True: conn, addr = ssoc.accept() data = conn.recv(10) print(data) conn.close() finally: soc.close() ワーニングは出るけれど、SSL/TLSでの通信ができる。

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


  • python logging json

    Pythonのログ出力を自分でJSON形式にする

    Pythonのログ出力は、デフォルトでは1つのログが複数行に渡って出力される。これはターミナル上で手動で実行する場合は見易いが、ログ収集のシステムと連携してしようとすると各行が1つのログとして扱われてしまう。これはログの集計の結果にも影響を与えてしまうし、なにより検索しにくくなってしまう。そのため、PythonのloggerのフォーマッターをJSON形式用のフォーマッターに差し替えて使う。stru ...

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


  • comment

    xwidget-webkitでJavaScriptの実行結果を取得する

    Emacsには xwidget-webkit という機能がある。これは端的にいうとWebブラウザの機能で、Emacsのバッファ上にWebブラウザを配置できる。EmacsのWebブラウザは他にも eww などあるけれど、こちらはどちらかというテキストベースのWebブラウザで、JavaScriptエンジンもないし、レンダリングエンジンも自前の独自実装だったりする。 xwidget-webkit は webkit と名前に入っている通り、 Webkit をEmacsのバッファに Xwidget として組み込む。そ ...

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


  • comment

    ファイルを保存する時にブラウザを更新する

    フロントエンドを実装する時、webpack(およびwebpack-dev-server)や、それと同様の機能をもつツールを使って実装を進める事が多い。リアルタイムでブラウザが切り替わり確かに便利だけれど、本当にそれって必要なのかとも思う。確かにTypeScriptを使っていたり、ReactやVueなどを使っている場合には、トランンスパイルをする必要があるから、この手のツールは必要になる。SaSSを ...

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


  • comment[WIP]

    ImageMagicで画像を結合しCloudinaryにアップロードする

    画像の統合 SVGファイルを統合していこうと思ったが、これが結構難しかった。そこでSVGファイルをPNGに変換し、そのPNGファイルを統合する事にした。 SVGからPNGを生成する まずSVGファイルからPNGファイルを生成する。 magick convert testing1.svg testing1.png もう1つの画像も同じように行う。 magick convert testing2.svg testing2.png testing1.pngとtesting2.pngを生成できた。 2つのPNGを統合し1つのPNGを生成する magick convert +append testing1.png testing2.png merged.png 画像をアク ...

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


  • cmake homebrew

    CMakeとGLEWについて考える

    CMakeを使っていた所、CMakeのバージョンが原因でGLEWを検索できない問題に出会った。こういう出会いは大切にしたい。そこでCMakeについて考える事にした。 WebでアクセスできるCMakeの情報をざっくりまとめる CMakeはビルド自動化のためのツールであり、様々な所で使用されている。CMake自体については、公式のWebページ1やWikipedia2を読む方が良いため、ここで詳しくは触れな ...

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


  • comment

    RDS落とし忘れてAWSから高額請求のメール来た。これが不幸の手紙ってやつか。

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


  • comment

    記事の一覧をhugoで取得する

    hugoで記事を書いていると書きかけのファイルが結構できるようになった。"書きかけの" の状態には、1つは書きかけだけれど公開してしまうもの、もう1つは公開しないものの2種類があった。公開しないものはページ属性のDRAFTをtrueにしてあり、書きかけだけれど公開してしまうものはDRAFTを設定しない代わりにWIP属性をtrueにしている。WIP属性はhugoとは関係なくて勝手にペー ...

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


  • comment

    今日も本当に頑張った。力を尽せたと思う。欲しい物を手に入れるために、全てのエネルギーを投入していたい。そしてそう出来たと思う。心残りはあるけれど、今日はもう諦める。

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


  • comment

    少し休んだから、ちょっとだけ頑張れそう。最近、こういう日が多いように思う。篩い落されないように力を尽して、準備を進めよう。

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


  • comment

    なんだか疲れてしまって、もうライフは0になったも知れない。

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


  • comment

    持ち物が多すぎて、3日に一度は必ず何かを忘れて出掛けてしまう。

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


  • comment

    「ユニコーンが虹の橋を渡って無料のアイスクリームを配る」というくだり、好きだな。そういうのを目指したい気がする。

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


  • comment

    Pythonのmysqlclientパッケージのインストール時にpkg-configでmysqlclientを探せず失敗する

    https://qiita.com/kon-sato/items/ef7eb497b6154de909b9 と同じ問題に遭遇した。この記事では解決策としてバージョンを落として書いてあるけれど、これは問題を踏むバージョンを使わないようにしている。これ自体は悪い事ではない。 ログを見ると pkg-config でパッケージが探せていない事によりエラーしている事が分かる。なぜ pkg-config でパッケージが探せなくなったのか、今まで探していたのかどうか、このあたりの事情は分からない。 pkg-configはPKG_CONFIG_PATHを指定する事 ...

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


  • comment

    Emacsの文字とフォント

    Emacsは様々な事を行えるけれど、本来はテキストエディタであって、ファイルを画面に表示し、ファイルのデータを書き換える事が役目だったりする。文字の表示にはフォントのデータを使用する。当たり前の事と言えば当たり前の事だ。他のテキストエディタも、他のツールでもフォントを使用する。 しかしEmacsではフォントの変更ですらハマり込む事がある。他のツールでは、こんな所で躓く事は普通はない。この原因はどこに ...

    所要時間: 約 7分, 作成: 2023/7/21, 更新: 2023/7/28


  • comment

    TLSのハンドシェイクを確認する

    TLSの処理を自分で実装する事はまあない。世の中に良い実装が沢山あって、それ以上のものを作れる事なんてそうそうない。そういった実装を使う時、その実装の事や使い方について、それなりに知っておく必要がある。製品として提供するような機能であれば、そういった作りを学んで利用していく方がクオリティもコスパも良い。自分が使うための、ちょっとした機能を実装したいと思った時、そこまでできるかと言われると、そうでな ...

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


  • comment

    今日はもう終わりにしよう。

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


  • github gh

    Github CLIを使う

    Githubは幾つかの機能をCLIから利用できるように、Github CLIというツールを提供している。Emacsは外部の機能と強調する事を前提としている節があるため、こういう機能があるとEmacs自身にとても組み込みやすく高感度が高い。今回は、Github CLIを使ってみる。 Github Issue Github Issueはバグトラッカーやチケットといった機能を提供する。課題管理などを行う事を想定している。私が関わっているプロジ ...

    所要時間: 約 6分, 作成: 2021/4/14, 更新: 2023/7/24


  • comment

    焦らず1つずつやろう

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


  • comment

    決算が終わった。昨年度は今までで一番頑張った年になった。頑張ってよかった。褒めてもらえるかと思ったけれど「足元をすくわれないように」とのお言葉を頂いた。実際にそうだと思う。体調は相変わらず一進一退を繰り返しているけれど、落ち着いて目の前の事に全力で取り組もうと思う。良い姿勢を続けられようにしたいと思った。そして、今年度もいっぱい働こうと思う。

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


  • comment[WIP]

    コードハイライトについて考える

    プログラム等のテキストを表示する際、白い背景に黒い文字で全て表示されていると、どの部分が、どんな意味を持っているのかを、目で見て判断する事は難しい。シンプルなプログラムであれば難しくないものも、中規模や大規模のソフトウェアである場合や、複雑なアルゴリズムが組み込まれている場合には、テキストの理解やエラーの発見が難しくなる。そのため、プログラムの見やすさを向上させるために、プログラムの構文や意味に基 ...

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


  • comment

    ようやく動けそうだ。ひさしぶりに寝込んだ

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


  • location

    Latitude: 35.688426556029945 Longitude: 139.70068242240288

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


  • comment

    新宿にいる。 Latitude: 35.68801815778751 Longitude: 139.70023530354055

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


  • comment

    今日、無限にterraformしてた。昨日もだけれど。いつになったらテラをフォームできるのだろうか。というかこの手の作業、時間かかる。

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


  • comment

    IaCをちまちまやりたい訳じゃなくて、現行の構成をダンプする事と、ダンプしたデータから構成を再生成するという事を、公式がサポートしている方法でやりたいだけなんだと思う。決してTerraformを使用したい訳じゃないし、tfファイルやモジュールについて知りたい訳じゃない。それができないから、各種ツールが作られているのだとは思うし、それをほぼ実現できる Terraform や Terraformer はとても素晴らしいツールなんだけれど、ツール ...

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


  • comment

    久し振りに東京駅に来たな Latitude: 35.679729586017544 Longitude: 139.7707017671585

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


  • comment

    IAMについて考えを整理した。 IAMユーザとは、それが誰なのか IAMロールとは、なんという役割なのか IAMポリシーとは、何ができるのか について宣言しているという把握をした。

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


  • comment

    手で作成したAWSのリソースをTerraformerを使ってTerrraformに落し込む

    クラウドのリソースを最初からTerraformのような構成管理ツールを使って構築していくのは結構難しい。必要なリソースが何なのかもわからないし、構成自体を試行錯誤していきたいのに、その都度構成管理のファイルを修正し適応するとなると、構成管理ツールでの記述方法を調べる必要もあったり、時には使いたい機能がサポートされていなかったりする。最初の構成は手動で作成し、その後構成管理のファイルとして出力し、そ ...

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


  • comment

    七夕なのでEmacsをビルド仕直した。

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


  • orgmode emacs

    Emacsのorg-modeのINCLUDEを使って外部のファイルの内容を差し込む

    org-modeは #+INCLUDE: を使うことで外部のファイルの内容を取り込む事ができる。今回はこの機能の色々な指定方法を試す。展開される 基本的な使い方 ブロック種別を指定する example export src それ以外 コンテンツフォーマットを指定する 一部分をインクルード 行番号指定 名前を指定 見出しを指定 見出しの中身を指定 org-modeとINCLUDEとorg-export まとめ 参考 基本的な使い方 先頭の引数には取り組むファイルへのパスを指定する ...

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


  • comment

    コメントの記述方法について調べる

    記事にコメントを付ける方法を考えてみる。動的なサーバーを使用したり、又はSaaSを利用すれば特に難しい事はない。ただ今回はそういう事ではなく、これらの記述自体を静的なファイルとして保持し、Gitで管理する事を考えようと思う。=org-mode= には外部文書の取り込み機能があるため、それらを上手く利用できれば良い。文書の変換にはHugoを使用しているので、go-orgを使う事を前提として実施した。た ...

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


  • comment

    特にこの土日はAWSばかり触っていた。だいたい、こういう作業は時間がかかる。

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


  • comment

    仕事以外の事はできるだけ考えないようにしないと、周りに追い付いていけない。

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


  • comment

    もう20年ほど前に書かれたバッドノウハウと「奥が深い症候群」という技術エッセイがある。私はこの文章がとても好きだ。Emacsユーザーの私にとっては耳の痛い話でもあるし、同時にいろいろと考える機会を与えてくれる。この文章を読むと「バッドノウハウ」というなんだか怖い情報があって、それを有り難がったりする事にちょっとした恐怖を覚える。また「奥が深い症候群」という、これまたなんだか怖い病があって、罹患する ...

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


  • comment

    まだやらなければいけない事があるから、もう少しだけ頑張ろうと思う

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


  • lisp scheme gauche

    LispでTCPエコーサーバーを書く

    私はEmacsユーザーでEmacs Lispを毎日のように書いている。Lispは好きな言語だと思っているけれど、実際にはCommon LispもSchemeもそれほど使う訳じゃない。Clojureは少しだけ使う。そんなにわかLisperだが、常々もっと知りたいとは思っている。今回はその一環としてSchemeでTCPエコーサーバーを実装する。 Lispは言語仕様が文書化されているものもあれば、されていない ...

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


  • comment[WIP]

    scskkdを使う

    scskkdは、Lisp方言の一つであるSchemeで実装されたSKKサーバーだ。Gauche上で動作する。最終リリースは2003.12.21のようなので、現在が2023年である事を考えると、20年前という事になる。今さらこんな古いものを引っ張り出す必要はないのかもしれないが、SKKサーバのScheme実装を探していて、これが手頃で丁度良かった。そもそもSKKを今さら使用するのは、どうなのかという ...

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


  • dynamodb aws

    DynamoDBのデータ更新処理方法をいくつか検討する

    • DynamoDBのデータの更新についてUpdateItem、条件付きUpdateItem、BatchWriteItemといった方法があり、それぞれの挙動を確認した。
    • DynamoDBのデータの扱いには、件数やサイズに制限があるため注意が必要なことがわかった。
    • この他にPartiQLを用いることもできる。

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


  • comment

    日に日に難しい事を考えられなくなってる。簡単な事しか考えられない。

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


  • comment

    声をかけられて知らない人と2時間ぐらい話していた。普段と全く異なる話題で話したので良い気分転換になった。

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


  • comment

    誰かが遊んでいる間も努力を続けよう

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


  • comment

    picle化したデータは後方互換性が保証を保証しているのか。なるほど。 いっぽう pickle の直列化形式は、互換性のあるプロトコルを選ぶという条件のもとで Python リリース間の後方互換性が保証されます。また処理すべきデータが Python 2 と Python 3 の間で非互換な型を含む場合も、 pickle 化および非 pickle 化のコードはそのような互換性を破る言語の境界を適切に取り扱います。 https://docs.python.org/ja/3/library/pickle.html

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


  • comment

    Gitリポジトリの年毎のコミット数を集計する

    このGitリポジトリの年毎のコミットの数を集計する事にした。 git log --oneline --date=format:%Y --pretty=format:%ad | sort | uniq -c 26 2012 208 2013 52 2014 52 2015 202 2016 439 2017 12 2018 196 2019 741 2020 1374 2021 3748 2022 2036 2023 このリポジトリを作成したのは、たしか2019年か2020年あたりだったはず。ただし管理しているリポジトリ数を削減する取り組みの一環で、古いリポジトリを履歴ごと git subtree で飲み込んでいるため、2012年や2013年のような太古の時代のコミットも含まれているため、それらが集計結果に ...

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


  • comment

    もっと頑張らなくちゃな。

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


  • comment

    オーバーレイを表示して3秒後に消す

    EmacsのClojureの開発時に使うCIDERの使用感が良いため、同じような機構を他の言語でも対応できないかと考える事がしばしばあった。その一環として、オーバーレイの挙動を確認する事にした。 ここでやっている事は、オーバーレイを表示して3秒後に消すという事をしている。考えた記録として残しておく。 (setq overlay-display-second 3) (setq overlay-display-foreground "white") (setq overlay-display-background "black") (let ((result "Ok") (ov (make-overlay (point) (point-at-eol) (current-buffer) nil t))) (kill-new result) (run-at-time overlay-display-second nil #'delete-overlay ov) (overlay-put ov 'after-string (propertize (format " => %s" result) 'face '(:foreground overlay-display-foreground :background overlay-display-background ) )))

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


©TakesxiSximada