前回の記事の続きです。 suzuki-navi.hatenablog.com この記事の内容は、先月のKeyball制作直後にためしにKeyball44のファームウェアを変更してみた作業メモです。 以下の記事で紹介されているファームウェアを入れてみます。 zenn.dev ファームウェアのソー…
Remapは自作キーボードのキー配置をカスタマイズできるツールです。KeyballシリーズはRemapに対応しており、Keyball44を接続したPCでRemapを開けばキー配置をカスタマイズできます。 この記事はKeyball44を制作して最初にRemapに接続したときの記録です。制…
自作キーボードKeyball44制作のために買ったパーツや道具の一覧を掲げておく。道具に関しては一部もともと保有していたものも含まれる。 Keyball44キット本体 キットに含まれないパーツ ProMicro Cherry MX互換キースイッチ choc互換ロープロファイルキース…
自作キーボードのお店に行った。 秋葉原にある遊舎工房というお店である。 前回の記事 suzuki-navi.hatenablog.com キースイッチとキーキャップを買いに実店舗に行った。キースイッチとキーキャップ以外もなにかあれば買う。 お店に行ってわかったこと概要 …
自作キーボードを作ることにした。 経緯は前回の記事参照 suzuki-navi.hatenablog.com 私はRemapというツールでカスタマイズ性を確保したいだけなので、自作といっても完全にゼロから設計するのではなく、自作キットで十分である。 自作キーボードを調べてい…
久しぶりにブログを更新する。 最近PCのキーボードを新しくした。その経緯と新しいキーボードに関することをこれからいくつかの記事に分けて書こうと思う。まずはこれまでの経緯を書く。 以前私はPC98用のキーボード を使っていた。PC98というのは20世紀にNE…
スマホ実機での動作確認時などで、開発者ツールが使えない状態で、画面上に気軽にJavaScriptオブジェクトをログ出力させます。HTMLに <div id="log"></div> という要素を配置しておき、JavaScriptから任意のオブジェクトの内容をHTMLに表示させます。 console.logとまではいかな…
入力されているテキストの行数に応じて、textareaの高さが自動調整される仕組みです。改行を入力したり折り返しが発生するたびにリアルタイムに高さが変化します。 CSSだけで高さ調整をしており、JavaScriptはほとんど使いません。 HTMLソースは以下の通りで…
Nuxt.jsのアプリにMarkdownを表示させてみます。MarkdownからHTMLへの変換です。Nuxt 2です。 パッケージインストール $ npm install @nuxtjs/markdownit package.json の依存性の記述には以下が追加されました。 "@nuxtjs/markdownit": "^2.0.0", nuxt.conf…
毎日の星空の様子や天体の位置などをTwitterでツイートするbotを作って2年前から運用しています。 @hoshizora_today 開発した当時にこのブログで紹介するのを忘れていたのでいつか書こうと思っていたのですが、Twitterの経営方針が変わって今後のTwitterのbo…
CPUを自作しました!(って言ってもバーチャルなものです) 世の中CPUを自作している人はたくさんいます。汎用のICチップを組み合わせて作る人もいれば、トランジスタを大量に組み合わせて作る人もいます。 この界隈ではバイブルのような「CPUの創りかた」と…
AtCoderの12回目の参加となった2020/12/13のABC185の記録です。9か月も下書きのまま放置してしまっていましたが、前回記事に引き続き、AtCoderの感を取り戻すための復習記事です。 100分の競技時間ぎりぎりで5完でした。 Dまでは35分ほどで完了しました。Eは…
AtCoderの11回目の参加となった2020/12/05のARC110の記録です。9か月も下書きのまま放置してしまっていましたが、前回記事に引き続き、AtCoderの感を取り戻すための復習記事です。 65分ほどでA, B, Cの3完でした。 20分ぐらいでA, Bまで終わったところで、C…
AtCoderの10回目の参加となった2020/11/21のARC108の記録です。10か月も下書きのまま放置してしまっていましたが、久しぶりにAtCoderの感を取り戻したくて復習がてらブログ記事に公開します。 65分ほどでA, B, Dの3完でした。Cはとっかかりが全然わからず、…
以下の公式ドキュメントの「PC の開発環境の構築」のセクションに手順が載っていますが、pip installに手こずったので、記録しておきます。 使用方法: アルゴリズムの更新方法 | SORACOM Mosaic | SORACOM Users pyenvを入れて、venvでactivateするところま…
HTMLメールに画像ファイルを添付して、メール文面にその画像を表示させるには、次の2点に気を付ければよいようです。 HTMLのimg要素には src="cid:image.jpg" のように指定 添付の画像ファイルに Content-ID ヘッダを付与 img要素 画像の添付ファイルのヘッ…
前回(AWS SESでPythonからメール送信してみる)、AWS SESを使ってメール送信をしてみました。今回はAWS関係なしに、SMTPサーバを使ってみました。 と言っても、以下のようなサンプルコードで簡単にできました。 メール送信のPythonコード import smtplib from…
Serverless Frameworkは ~/.aws/config に書いたAssume Roleの設定を読んでくれないようなので、先日、EC2にアタッチされたIAM Roleからassume roleして、一時クレデンシャルを取得して、Serverless Frameworkを実行するスクリプトを書きました。 credential…
Excelの一番下の行にレコードを追加する処理のPythonコードです。 openpyxlパッケージを使います。 $ pip install openpyxl Pythonのサンプルコード import openpyxl # 表の一番下の行に newRecord を書き込む # rowIdx, colIdxは表の左上のセルの位置を指定…
Pythonとopensslコマンドの2つの方法で、Helloという文字列のデータとsecretという秘密鍵からHMAC-SHA256を計算してみます。結果のバイナリはコンソールでは見づらいので、BASE64でテキストにしています。 Pythonで計算 import base64 import hashlib import…
AWSのSNSは通知先としてメールやLambdaなどを指定できます。 SNSはベストエフォートなStandardタイプと、順番と通知回数を保証されたFIFOタイプの2タイプあります。 が、FIFOタイプの通知先はSQSしか指定できず、メール送信には使えない。知らなかった。。。…
EC2にアタッチされたIAM Roleからassume roleして、一時クレデンシャルを取得して、Serverless Frameworkを実行するスクリプトを書きました。 serverlessコマンドのラッパーとして機能する簡易的なスクリプトです。 --aws-profile が指定されていた場合に ~/…
約1年前にはてなブログを始めた時に、数式の書き方がわからなくて試行錯誤していました。(このときの記事→ はてなブログでのMarkdownでの数式の書き方 その2) 私は下書きにKibelaのサービスを使っています。Kibelaは数式を書くのも比較的わかりやすいです…
区間 ] の に対して、 をチェビシェフ多項式でフィットさせた係数 が与えられているとします。 係数から、以下の手順で を計算できます。 手順 を区間 に正規化したものを とします。 チェビシェフ多項式(Chebyshev polynomials) を次の漸化式に従って計算し…
AWSのEC2インスタンスにアタッチされたIAM Roleから別のIAM Roleにassumeできるようにしてあって、assume先の権限でServerless Frameworkを動かす必要がある場合、 ~/.aws/config にRoleを書いてもできませんでした。→前回の記事 手動でassumeして、一時クレ…
EC2インスタンスにアタッチされたIAM Roleから別のIAM Roleにassumeできるようにしてあって ~/.aws/config に以下のように書いてある場合、 [profile admin] role_arn = arn:aws:iam::123456789012:role/sample-admin credential_source = Ec2InstanceMetada…
AWSのSES (Amazon Simple Email Service)を初めて使ってみました。 使い方は以下の公式ドキュメントがわかりやすかったです。 AWS SDK for Python (Boto) を使用して E メールを送信する - Amazon Simple Email Service 1. メールアドレス登録 2. メール送信…
Amazon Elastic Container Registry(ECR)を初めて触ってみます。 (前回Google Container Registryを触ってました。) Dockerコンテナイメージ作成 AWSのECR(Container Registry)にpush AWSのECR(Container Registry)からpull バージョン情報 Dockerコンテナ…
S3ファイル作成をトリガーにしてLambda起動させてみて、どんなオブジェクトがLambdaに渡されるのかを確認しました。 Lambda作成 S3イベント設定 試してみる Lambda作成 Runtimeは今回は Node.js 14.x を選択しました。 ソースコードはこれだけ。 exports.han…
Google Compute Engineのstartup scriptsを取得するコマンド。(INSTANCE_NAMEのところはインスタンスの名前を入れます) $ gcloud compute instances describe INSTANCE_NAME --format json | jq '.metadata.items|from_entries."startup-script"' -r 説明 gc…