静電容量無接点方式分割キーボードを自作した

9月半ば頃に今は静電容量無接点方式(以降 静電容量式 と略す)のキーボードも自作できる時代なのだと知り、そこから自分でも作ってみようとちょこちょこ進めていましたが、ようやく完成させることが出来ました! ちなみにキーボード名は「小石」(英名: miniEC…

keyball39 を組み立てた

組み立てについて キーマップについて modifier key の配置 マウスレイヤー OLED の表示を変更 テント キーボードが認識されないことへの対処 原因探索 keyball39 の左右判定方法 検証1: はんだ付けをやり直してみる 検証2: MASTER_LEFT で固定してしまう 検…

キーボードを基板から設計して作ってみた

静電容量式のキーボードをゆくゆくは自分で設計して作ってみたいなと思ったものの、初っ端静電容量式はハードルが高そう。ということでまずは PCB 注文の練習がてら情報の多いメカニカルキーボードの基板を作ってみました。 基板の色は5色くらいから選べたの…

静電容量 Helix を組み立てた

Manta40 を作って以来なので、3年ぶりに自作キーボードを作りました。 goropikari.hatenablog.com 今回作ったのはスイッチがメカニカルでなく、HHKB Professional や REALFORCE と同じ静電容量無接点方式のキーボードです。昔から静電容量無接点方式の分割キ…

DMOJ を使ってオンラインジャッジシステムを構築する

DMOJ という OSS のオンラインジャッジシステムの環境を整えたので使い方をメモしておく。 環境はコンテナ化し、image も Docker Hub に上げたので MySQL や Redis のイメージが消されない限りは動くと思う。(動作確認は Linux 環境でのみ行っている) github…

Database Design and Implementation を Go で実装した

DBMS をフルスクラッチで作る Database Design and Implementation: Second Edition1 を読みながら、この本で作る DBMS(SimpleDB) を Go で実装しました。始めてからちょうど5ヶ月くらいかかりました。 去年も DBMS を自作していましたが、当時は DBMS の理…

Go のカバレッジ計測結果を GitHub Pages にデプロイする

Go

github.com coveralls や codecov を使わずにローカルでもカバレッジを見たい、ついでにそれをそのまま GitHub Pages をつかって見れるようにしたいと思ったのでやってみたログ。 Go 標準機能のカバレッジレポートをデプロイする Go の標準機能の範疇でやる…

VSCode Remote Container 間を 172.17.0.1 経由で通信する

TL;DR ~/.config/Code/User/settings.json に "remote.localPortHost": "allInterfaces" を追加すると 172.17.0.1 でコンテナ間の通信ができる。 github.com Remote Container だと 172.17.0.1 で他のコンテナに接続できない 普通に Docker を使っているとき…

Python 風の自作言語を作ってみた

最近 Crafting Interpreters という interpreter を作る本を読んでいて、とりあえず本通りにやって Lox という言語の tree-walk interpreter を作りました。 作り終わって、この手の言語処理系を作る本では大抵ブロックを { } で表現するけれど Python のよ…

Graph Database を読んだ

最近 Graph Database に興味を持ったので Graph Databases: New Opportunities for Connected Data を読んだ。graph db の一つである Neo4j のサイトから PDF をダウンロードできる。 Graph Databases: New Opportunities for Connected Data (English Editi…

fish で "fatal: not a git repository (or any of the parent directories): .git" と出るようになった

2021/8/12 追記 本家の fishline にて修正された github.com fish, version 3.3.1 fish を立ち上げると以下のようなエラー文が常に出るようになってしまった。 git で管理されたディレクトリに移るとまた別のエラー文が出る。 fatal: not a git repository (…

PostgreSQL 互換の DBMS を自作してみた

WEB+DB PRESS Vol.122発売日: 2021/04/24メディア: Kindle版 ※ この記事では「PostgreSQL 互換」を「PostgreSQL client から接続できる」という意味で使っています。 最近はやりの自作 DBMS というものを私もやってみたので忘れぬうちに感想を書いておきます…

PostgreSQL Client から自作 DBMS に接続する

最近、Go の練習がてら書いていた自作 DBMS に PostgreSQL client で接続できるようになったので、そのやり方を残しておきます。(これから紹介するサンプルコードはすべて Python ですが) github.com psql --version psql (PostgreSQL) 13.2 pgcon の資料と …

AWS Lambda Runtime Interface Clients / Emulator とはなにか

AWS

以前の記事を先に読むと理解が進むかも(?) goropikari.hatenablog.com AWS Lambda がコンテナイメージをサポートしたのと時を同じくして Runtime Interface Clients (RIC) と Runtime Interface Emulator (RIE) というツールが公開されました。 New for AWS …

AWS Lambda で任意の言語を実行する

AWS

Lambda は標準で Go や Python などが使えますが、これらの言語以外でも自分で runtime を作りさえすればあらゆる言語で使えるようになります。 Custom AWS Lambda runtimes 今まで runtime を自作するのは難しそうだなぁと思っていましたが、昨年12月のアッ…

sops で localstack の KMS key を使う

AWS

sops を使っていて、これ localstack の KMS key を使うことできないかなぁとふと思ってみたので試してみました。 endpont-url を受け取れるように修正すれば一応動かせました。 github.com 特に実用性はないのですけど、備忘録的に残しておきます。 localst…

2020年 振り返り

勉強記録を見直すと2020年は低レイヤの勉強と雰囲気で使っていたものをちゃんと学び直した1年だったようだ。 読んだ・受講した Compiler, edX 2019年11月から受講し始めて6ヶ月かけて受講した。(その頃は edX ではなかったけれども)今まで受講した講義のなか…

AWS Lambda をコンテナイメージで動かすときの Terraform の書き方

AWS Lambda がコンテナイメージをサポートするようになりましたが、Terraform で Lambda のリソースを定義するのにてこづったので書き方を残しておきます。 aws.amazon.com 動作確認時のソフトウェア awscli 2.1.11 terraform 0.14.2 terraform-provider-aws…

RubyでつくるRuby を読んだ

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門作者:遠藤 侑介発売日: 2017/03/31メディア: 単行本(ソフトカバー) nand2tetris が終わってヘビーな本を読むのはちょっと時間をおきたかったので、電子積ん読していた「RubyでつくるRuby」を読…

The Elements of Computing Systems を読んだ

約1ヶ月かけて The Elements of Computing Systems (通称 nand2teris) を読む & 演習のすべてを完遂しました。 約130時間費やしましたが、実に有意義な時間を過ごすことができました。今まで読んだ本の中でトップ10には入る良書と断言できます。 The Element…

X Protocol 準拠の MySQL Client を自作してみる

最近自作 MySQL Client にハマっています。どういう原理で MySQL につながっているのか知りたいなと思って始めましたが、MySQL Client についてはもちろんのこと、ネットワークの勉強にもなって結構楽しいです。 現在の MySQL では MySQL Client/Server Prot…

ThinkCentre M75q-1 Tiny で Arch Linux と Windows 10 をデュアルブート

goropikari.hatenablog.com 作業する前に Windows のリカバリーUSBを作っておく USB リカバリードライブを作成して、Windows 10のリカバリーに利用する - NZ Arch Linux の Live USB がブートでできるように secure boot を disable にする。 推奨するBIOSの…

ThinkCentre M75q-1 Tiny を購入: SSD・メモリを増設

コスパが良いと評判の ThinkCentre M75q-1 Tiny を買ってみた。 価格コム限定モデルで HDD 1TB、メモリ8GB、WiFi・Bluetooth なし、キーボード・マウスなし、縦置きスタンド、Display Port 追加で税込み34320円(送料無料)。 4コア8スレッドの CPU (AMD Ryzen…

Arch Linux の Docker Image を作る

Dockerhub に ArchLinux のイメージがあるので自分で作る必要はないものの base image を作ったことがなかったので勉強がてら作ってみた。 hub.docker.com 環境 OS: Arch Linux $ mkdir archlinux-docker $ cd archlinux-docker $ wget http://ftp.jaist.ac.…

Julia - Terminal で 1文字ずつ入力を受ける (raw mode)

環境 Julia v1.4.2 OS: ArchLinux read や readline を使うと EOF を入力 (Ctrl-D) したときや Enter を押したときにキーボードから入力したものを取得することができるが、何かしらのキーをタイプする度に入力を取得する方法を紹介する。 # ex.jl using REP…

AmazonLinux 2 で parquet-tools をビルド

ビルドに必要なものを用意する yum install -y wget git tar gcc gcc-c++ boost-devel make maven wget -nv http://archive.apache.org/dist/thrift/0.12.0/thrift-0.12.0.tar.gz && \ tar xzf thrift-0.12.0.tar.gz && \ cd thrift-0.12.0 && \ chmod +x ./…

4bit CPU TD4 を作った

GW をフルに使って自作界隈では有名な「CPUの創りかた」の TD4 を作ってみました。 CPUの創りかた作者:渡波 郁発売日: 2003/10/01メディア: 単行本(ソフトカバー) 実は2年前にすでにパーツ類は購入済みだったのですが、当時はアセンブリや機械語の経験がな…

自宅ではじめるDocker入門 を読んだ

自宅ではじめるDocker入門―人気のコンテナ型「仮想化ソフト」を使ってみる! (I・O BOOKS)作者:尚, 浅居発売日: 2019/02/01メディア: 単行本 日々、Docker を使っているものの今まで体系的に学んだことがないと気付いたので1冊買って勉強してみた。 約5時間で…

Compiler | Stanford Online を受講した

11月の頭から受講を始めて、5ヶ月弱かけてようやく受講しきりました。 何度か心が折れかけましたがどうにか完遂できました! https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/aboutlagunita.stanford.edu この講義は COOL (classroom…

「なぜプログラムは動くのか」を読んだ

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識作者:矢沢久雄出版社/メーカー: 日経ソフトウエア発売日: 2007/04メディア: 単行本(ソフトカバー) ふと立ち寄ったブックオフで安く売っていたので買ってみました。200円とやけに安いと…