たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

2019-03-01から1ヶ月間の記事一覧

RUST/LLVM/WASM入門

WebAssemblyがずっと気になる、しかしC言語は書きたくない。お?それ以外の方法があるって…?で調べた記事。 概要 高速かつ安全な低級言語Rustは中間表現LLVM IRにコンパイルされる。 LLVM IRはWebAssembly (WASM) へ変換でき (つなわちWASM backendをもち)…

課金・決済・ペイメント ver. 2019

クレカは決済代行業者を挟まなければならない。 Stripe PAY.JP 昔あったサービス WebPay serverless-stack.com news.ycombinator.com stackoverflow.com

Raspberry Pi Zero WをBluetooth経由で操作する

sshみたいなノリで、Bluetooth経由のRPiリモートアクセスを可能にする。 概要 Bluetooth上でシリアル通信をおこない、シリアル通信のRaspberry Pi側終端をagettyにつなぐことでリモートアクセスを可能にする。 BluetoothdのUnitを少しいじり、rfcomm->agetty…

良いAPIを目指す形式たち

概念を削り込んでいったらここまで来てしまった RESTful API GraphQL RPC gRPC browser Workers プログラムから見た外部へのアクセス界面 自由な形式は混乱を産むから、賢いスタイル/形式が考案されてきた RPC ローカルに関数を呼ぶのと同様に、別の計算機に…

契約による設計

Client (Caller) とSupplier (Callee) Obligationとbenefits Design by Contract (契約による設計) はプログラミング技法のひとつ。 Eiffelには言語レベルで直接実装されている1 呼び出し側 (Client, メイン側) と呼び出され側 (Supplier, コルーチン・関数…

定義域と値域 in プログラミング

どうやって担保するか f: X -> Y 関数fは入力/引数 x ∈ 定義域X を取り、出力/返り値 y ∈ 定義域Y を返す 関数fはcallerによって呼び出される. 引数を渡すのはcallerであるから、正しい引数xを渡す責務はcallerにある. 正しい引数を渡された関数は y ∈ Yを返…