Keyball44のファームウェアを変更してみる

前回の記事の続きです。 suzuki-navi.hatenablog.com この記事の内容は、先月のKeyball制作直後にためしにKeyball44のファームウェアを変更してみた作業メモです。 以下の記事で紹介されているファームウェアを入れてみます。 zenn.dev ファームウェアのソー…

RemapでKeyball44をいじってみる

Remapは自作キーボードのキー配置をカスタマイズできるツールです。KeyballシリーズはRemapに対応しており、Keyball44を接続したPCでRemapを開けばキー配置をカスタマイズできます。 この記事はKeyball44を制作して最初にRemapに接続したときの記録です。制…

Keyball44のためにそろえた部品たち

自作キーボードKeyball44制作のために買ったパーツや道具の一覧を掲げておく。道具に関しては一部もともと保有していたものも含まれる。 Keyball44キット本体 キットに含まれないパーツ ProMicro Cherry MX互換キースイッチ choc互換ロープロファイルキース…

Keyball44のパーツを遊舎工房で買う

自作キーボードのお店に行った。 秋葉原にある遊舎工房というお店である。 前回の記事 suzuki-navi.hatenablog.com キースイッチとキーキャップを買いに実店舗に行った。キースイッチとキーキャップ以外もなにかあれば買う。 お店に行ってわかったこと概要 …

Keyball44という自作キーボードキットを作ることに決めた

自作キーボードを作ることにした。 経緯は前回の記事参照 suzuki-navi.hatenablog.com 私はRemapというツールでカスタマイズ性を確保したいだけなので、自作といっても完全にゼロから設計するのではなく、自作キットで十分である。 自作キーボードを調べてい…

これまでのキーボードにまつわる経歴

久しぶりにブログを更新する。 最近PCのキーボードを新しくした。その経緯と新しいキーボードに関することをこれからいくつかの記事に分けて書こうと思う。まずはこれまでの経緯を書く。 以前私はPC98用のキーボード を使っていた。PC98というのは20世紀にNE…

JavaScriptのブラウザ上でのデバッグログをconsole.logのかわりにHTMLに表示

スマホ実機での動作確認時などで、開発者ツールが使えない状態で、画面上に気軽にJavaScriptオブジェクトをログ出力させます。HTMLに <div id="log"></div> という要素を配置しておき、JavaScriptから任意のオブジェクトの内容をHTMLに表示させます。 console.logとまではいかな…

textareaの高さを自動調整する仕組みをNuxt.jsアプリに実装してみる

入力されているテキストの行数に応じて、textareaの高さが自動調整される仕組みです。改行を入力したり折り返しが発生するたびにリアルタイムに高さが変化します。 CSSだけで高さ調整をしており、JavaScriptはほとんど使いません。 HTMLソースは以下の通りで…

MarkdownのHTMLレンダリングをNuxt.jsのアプリに実装してみる

Nuxt.jsのアプリにMarkdownを表示させてみます。MarkdownからHTMLへの変換です。Nuxt 2です。 パッケージインストール $ npm install @nuxtjs/markdownit package.json の依存性の記述には以下が追加されました。 "@nuxtjs/markdownit": "^2.0.0", nuxt.conf…

Twitterで星空botを運用しています

毎日の星空の様子や天体の位置などをTwitterでツイートするbotを作って2年前から運用しています。 @hoshizora_today 開発した当時にこのブログで紹介するのを忘れていたのでいつか書こうと思っていたのですが、Twitterの経営方針が変わって今後のTwitterのbo…

セルオートマトンによるCPU作成

CPUを自作しました!(って言ってもバーチャルなものです) 世の中CPUを自作している人はたくさんいます。汎用のICチップを組み合わせて作る人もいれば、トランジスタを大量に組み合わせて作る人もいます。 この界隈ではバイブルのような「CPUの創りかた」と…

AtCoder参戦日記 ABC185 2020/12/13 12回目

AtCoderの12回目の参加となった2020/12/13のABC185の記録です。9か月も下書きのまま放置してしまっていましたが、前回記事に引き続き、AtCoderの感を取り戻すための復習記事です。 100分の競技時間ぎりぎりで5完でした。 Dまでは35分ほどで完了しました。Eは…

AtCoder参戦日記 ARC110 2020/12/05 11回目

AtCoderの11回目の参加となった2020/12/05のARC110の記録です。9か月も下書きのまま放置してしまっていましたが、前回記事に引き続き、AtCoderの感を取り戻すための復習記事です。 65分ほどでA, B, Cの3完でした。 20分ぐらいでA, Bまで終わったところで、C…

AtCoder参戦日記 ARC108 2020/11/21 10回目

AtCoderの10回目の参加となった2020/11/21のARC108の記録です。10か月も下書きのまま放置してしまっていましたが、久しぶりにAtCoderの感を取り戻したくて復習がてらブログ記事に公開します。 65分ほどでA, B, Dの3完でした。Cはとっかかりが全然わからず、…

SORACOM S+ Camera Basicの開発環境をUbuntuに構築

以下の公式ドキュメントの「PC の開発環境の構築」のセクションに手順が載っていますが、pip installに手こずったので、記録しておきます。 使用方法: アルゴリズムの更新方法 | SORACOM Mosaic | SORACOM Users pyenvを入れて、venvでactivateするところま…

HTMLメールに添付ファイルの画像を埋め込む

HTMLメールに画像ファイルを添付して、メール文面にその画像を表示させるには、次の2点に気を付ければよいようです。 HTMLのimg要素には src="cid:image.jpg" のように指定 添付の画像ファイルに Content-ID ヘッダを付与 img要素 画像の添付ファイルのヘッ…

SMTPサーバでPythonからメール送信してみる

前回(AWS SESでPythonからメール送信してみる)、AWS SESを使ってメール送信をしてみました。今回はAWS関係なしに、SMTPサーバを使ってみました。 と言っても、以下のようなサンプルコードで簡単にできました。 メール送信のPythonコード import smtplib from…

一時クレデンシャルを取得するserverlessコマンドのラッパースクリプト その2

AWS

Serverless Frameworkは ~/.aws/config に書いたAssume Roleの設定を読んでくれないようなので、先日、EC2にアタッチされたIAM Roleからassume roleして、一時クレデンシャルを取得して、Serverless Frameworkを実行するスクリプトを書きました。 credential…

PythonのopenpyxlでExcelの一番下の行に追記

Excelの一番下の行にレコードを追加する処理のPythonコードです。 openpyxlパッケージを使います。 $ pip install openpyxl Pythonのサンプルコード import openpyxl # 表の一番下の行に newRecord を書き込む # rowIdx, colIdxは表の左上のセルの位置を指定…

PythonとopensslコマンドでHMAC-SHA256を計算する

Pythonとopensslコマンドの2つの方法で、Helloという文字列のデータとsecretという秘密鍵からHMAC-SHA256を計算してみます。結果のバイナリはコンソールでは見づらいので、BASE64でテキストにしています。 Pythonで計算 import base64 import hashlib import…

FIFOタイプのAWS SNSはメール送信できない

AWS

AWSのSNSは通知先としてメールやLambdaなどを指定できます。 SNSはベストエフォートなStandardタイプと、順番と通知回数を保証されたFIFOタイプの2タイプあります。 が、FIFOタイプの通知先はSQSしか指定できず、メール送信には使えない。知らなかった。。。…

一時クレデンシャルを取得するserverlessコマンドのラッパースクリプト

AWS

EC2にアタッチされたIAM Roleからassume roleして、一時クレデンシャルを取得して、Serverless Frameworkを実行するスクリプトを書きました。 serverlessコマンドのラッパーとして機能する簡易的なスクリプトです。 --aws-profile が指定されていた場合に ~/…

数式のある記事をKibelaのフォーマットからはてなブログのフォーマットに変換

約1年前にはてなブログを始めた時に、数式の書き方がわからなくて試行錯誤していました。(このときの記事→ はてなブログでのMarkdownでの数式の書き方 その2) 私は下書きにKibelaのサービスを使っています。Kibelaは数式を書くのも比較的わかりやすいです…

チェビシェフ多項式(Chebyshev polynomials)でフィットさせた係数から値を復元

区間 ] の に対して、 をチェビシェフ多項式でフィットさせた係数 が与えられているとします。 係数から、以下の手順で を計算できます。 手順 を区間 に正規化したものを とします。 チェビシェフ多項式(Chebyshev polynomials) を次の漸化式に従って計算し…

一時クレデンシャルでServerless Frameworkを動かす

AWS

AWSのEC2インスタンスにアタッチされたIAM Roleから別のIAM Roleにassumeできるようにしてあって、assume先の権限でServerless Frameworkを動かす必要がある場合、 ~/.aws/config にRoleを書いてもできませんでした。→前回の記事 手動でassumeして、一時クレ…

credential_sourceを使ったAWSのprofileではServerless Frameworkは動かせないのか

AWS

EC2インスタンスにアタッチされたIAM Roleから別のIAM Roleにassumeできるようにしてあって ~/.aws/config に以下のように書いてある場合、 [profile admin] role_arn = arn:aws:iam::123456789012:role/sample-admin credential_source = Ec2InstanceMetada…

AWS SESでPythonからメール送信してみる

AWS

AWSのSES (Amazon Simple Email Service)を初めて使ってみました。 使い方は以下の公式ドキュメントがわかりやすかったです。 AWS SDK for Python (Boto) を使用して E メールを送信する - Amazon Simple Email Service 1. メールアドレス登録 2. メール送信…

AWSのECR(Container Registry)にHello, WorldなDockerイメージを置いてみる

AWS

Amazon Elastic Container Registry(ECR)を初めて触ってみます。 (前回Google Container Registryを触ってました。) Dockerコンテナイメージ作成 AWSのECR(Container Registry)にpush AWSのECR(Container Registry)からpull バージョン情報 Dockerコンテナ…

S3ファイル作成をトリガーにしてLambda起動

AWS

S3ファイル作成をトリガーにしてLambda起動させてみて、どんなオブジェクトがLambdaに渡されるのかを確認しました。 Lambda作成 S3イベント設定 試してみる Lambda作成 Runtimeは今回は Node.js 14.x を選択しました。 ソースコードはこれだけ。 exports.han…

Google Compute Engineのstartup scriptsをgcloudコマンドで取得

GCP

Google Compute Engineのstartup scriptsを取得するコマンド。(INSTANCE_NAMEのところはインスタンスの名前を入れます) $ gcloud compute instances describe INSTANCE_NAME --format json | jq '.metadata.items|from_entries."startup-script"' -r 説明 gc…