memo.yammer.jp

常に完成形
2020-09-29 03:35
積読本だった"Webを支える技術"を読んだ感想と、本を読むための心がけ
「Webを支える技術 HTTP, URI, HTML, そしてREST」を改めて読み直した。 年始に買って途中まで読んでいたものだ。 書籍 "Webを支える技術" について 本を選んだ背景と読んだ感想 書籍購入当時はスマホアプリのWeb APIを開発しており、URIの設計の参考にしたくて手にとった。 RESTという考え方やAPI設計についてとても参考になり、 良い設計とは何かを知ることが出来た。 これまでは用意されたWeb APIを使う側で、URI設計について意識することがなく無意識に良くつくられたURIのAPIを使っていた。 一方で設計するためにはまず利用者として当たり前だったことを言語化し
2020-09-25 12:53
2020年9月のキーマップ for lily58
以前記事に書いたとおり、分割キーボード lily58を使っている。 自作してから1ヶ月以上経つが、何度かキーマップを書き換えており、順調に配列沼にハマっている。 丁度、しばらく使っていてしっくり来ないところを昨日書き換えたばかり。 せっかくなので記録がてら記事に残しておく。 https://twitter.com/yammerjp/status/1309153335530848256 3レイヤーで、最下段の内側から2つめのキーを押している間はレイヤーが切り替わる。 この配列は次のような方針で作られている。 基本はqwertyのUS配列に寄せる ホームポジションとそれに隣接するキーでなるべく完結
2020-09-17 16:31
Makefileの中で名前付きパイプ(bash記法)を使いたかった。2つのコマンド実行結果を比較する。
今日は小さな Tips。 make は1970年代に生まれ、C言語のビルドなどでよく用いられるビルドツールだ。 Makefileにビルド手順を記述しておき $make で一連の流れを実行できる。 古からあるビルドツールであるから、インデントがタブ文字でないといけないなどの制約があるが、環境に依存しづらいので最近はよく使うようにしている。 Makefile にはシェルスクリプトのように実行するコマンドを記述するが、この中ではbash独自の拡張記法には対応していない。(Makefile独自の記法があったりする) 2つのコマンドの実行結果を比較したい時、bashでは次のように名前付きパイプを使うと簡
2020-08-14 22:55
LoveLabのAPIサーバをAWS EC2上にセットアップする
以下過去の自分用のメモを移動。 昨冬、チーム開発で ToDo 管理の iPhone アプリ LoveLab を開発していた。 LoveLab API サーバは、docker-composeでまとめられている。 AWS の EC2 上で立ち上げるための手順を以下に示す。 EC2 instance作成後の作業 80番ポートを開放 sshでログイン 関係ソフトウェアをinstall $ sudo yum install -y docker $ sudo service docker start $ sudo usermod -a -G docker ec2-user $ sudo docker in
2020-08-14 19:13
LALR(1)構文解析を行いながら、コンパイラの構文解析を学ぶ
以下、過去の自分向けのメモの移動。 コンパイラの主要な処理に構文解析がある。 前回はLR0文法構文解析を行った。 今回は与えられたLALR(1)文法規則に基づいて構文解析するオートマトンを作り、構文解析の手法について整理する。 問題の文法規則 次のLALR(1)文法規則を受理するオートマトンと構文解析表をつくり、構文解析を行う。 E -> E + T E -> T T -> T * F T -> F F -> i F -> ( E ) First集合 First集合とは First(K) ... Kの還元前の終端記号列において、先頭に来る可能性のある終端記号の集合 First集合の求め方 最初
2020-08-14 19:04
LR(0)構文解析を行いながら、コンパイラの構文解析を学ぶ
以下、過去の自分向けのメモの移動。 コンパイラの主要な処理に構文解析がある。 今回は与えられたLR(0)文法規則に基づいて構文解析するオートマトンを作り、構文解析の手法について整理する。 問題 次の文法について、次の問を答えよ S -> ( L ) S -> a L -> L , S L -> S 上から順にR1,R2,R3,R4と呼ぶ。 ただし、SとLは非終端記号、(と)と,とaは終端記号とする。 LR(0)正準集合とオートマトンを求めよ 以下の文字列が示された文法から生成されるかどうか、また構文解析の結果を答えよ LR(0)構文解析の方法 LR(k)構文解析とは 上向き構文解析(下向きは
2020-08-14 18:59
Dockerチートシート プログラマのためのDocker教科書 第2版より
以下、過去の自分用メモの移動。 dockerに入門するにあたり「プログラマのためのDocker教科書 第2版より」を読んだ。 Dockerfileを書いてコンテナを走らせるための自分向けのまとめをチートシート的に書き記す。 Dockerfileの命令 命令一覧 FROM .. ベースイメージの指定 RUN .. コマンド実行 CMD .. コンテナの実行コマンド LABEL .. ラベルを設定 EXPOSE .. ポートのエクスポート ENV .. 環境変数 ADD .. ファイル/ディレクトリの追加 COPY .. ファイルのコピー ENTRYPOINT .. コンテナの実行コマンド VOL
2020-08-14 18:55
GitHubにsshでつなぐ
以下、過去の自分用メモの移動。 WindowsやMacでは、GitHubのIDとパスワードを安全に記憶して、HTTPS通信で勝手に使ってくれるのだが、Ubuntuではどうもよい方法がなさそうだった。 そこでHTTPSではなくSSHを使ってgithubと通信するようにして、公開鍵認証により安全を担保しようというわけだ。 鍵ペアを作る $ cd ~/.ssh $ ssh-keygen -t rsa -b 4096 -C "mymail@example.com" # 鍵の名前を id_rsa_github とする # パスワードも聞かれるので入力 $ ls -1 id_rsa_github # 秘
2020-08-14 02:07
Lily58 Pro を Bluetooth 対応し無線化する
前回の記事で作った左右分割型の自作キーボード Lily58 Pro を Bluetooth に対応させ、無線で PC に接続できるように改造した。 その作業記録。 この記事では、無線化にあたり次のことを行う。 USBからキーボードへの給電がなくなるので、別途ボタン電池用の電源基板をつなぐ 有線キーボードの制御用マイコンである Pro Micro を、Bluetooth に対応した BLE Micro Pro に交換する BLE Micro Pro にファームウェアを書き込む 必要なもの Lily58 Pro (遊舎工房) Pro Micro 互換の Bluetooth-LowEnergy 対応
2020-08-14 01:55
Lily58 を作って自作キーボードに入門した (Lily58 Pro Build Log)
https://twitter.com/yammerjp/status/1284673759593418752 数ヶ月前から、自作キーボードが気になっていたのだが、ついに手を出してしまった。 自作キーボードとは 自作キーボードとは、キースイッチやキーキャップ、基板(PCB)等を購入し、自分で組み立ててキーボードを作ることである。 自分の欲しいキーボードを作ることができるのが魅力。 パーツをはんだ付けしたり、マイコンにファームウェアを書き込んだり、場合によっては基板を設計したりすることでつくる。 今回は既に設計, 基板が製造済みで、組み立てキット形式になっている Lily58 Pro を作ること