
きになるなるなる
I made an eInk newspaper - Greg Raiz
I took a 32″ eInk display and turned it into a digital newspaper that updates every day. It’s silent, wireless and can run for months without being plugged in. The display is based on the Visionect 32″ place and play display. This works by running two components. The eInk display acts as a thin client […]
Bitcoin as Battery
One of my favorite things about crypto is that, every so often, your conception of what it is changes. Bitcoin at first was "weird internet money" and then it was "a protocol" and then it was "digital gold". Ethereum is "ICOs", or maybe "DeFi", or maybe "Web3", or maybe all three, or maybe something else.…
GoのWASMがライブラリではなくアプリケーションであること | Kabuku Developers Blog
はじめに がんばって書いた書籍が低評価で少々しょんぼりしているあんどうです。まぁ、つい力が入りすぎて袋小路に思い切り突っ込んだ結果抜けられなくなることってあるよね。あるある。そんなわけで今日はできるだけ力を入れずテンション低めにサクッと行きます。 で、GoのWASM。大道の真ん中をまっすぐに歩まれているみなさんはWASMするときはRustかいっそC/C++をemscriptenでってことになると思いますが、私はしょせん路傍の石の下で低評価が目に入らないように丸まっているダンゴムシ。せっかくだからオレはこのGoでWASMを選ぶぜって感じなんですが、ぶっちゃけあれ、めんどくさいすよね。 あ、ちなみに今回の話は「このめんどくささをまるっと解決!」みたいな気持ちのいい話ではなくて、ただただ「めんどくさいよね」っていうだけの話です。あーめんどくさい。 Rustの場合 まず比較のためにRustの例をあげます。Rustで2数を足し算するWASM関数を定義するとこうなるみたいです。 #[no_mangle] pub fn add(a: i32, b: i32) -> i32 { a + b } コンパイル結果がadd.wasmだとすると、JavaScriptから呼び出すときはたぶんこんな感じ。 WebAssembly.instantiateStreaming(fetch("add.wasm")).then(result => { const add = result.instance.exports.add const val = add(1, 2) console.log(val) }) 顧客が本当に欲しかったもの。めんどくさくない。 Goの場合 めんどくさ1 Goだとこうなります。 func add(this js.Value, args []js.Value) interface{} { return js.ValueOf(args[0].Int()+args[1].Int()) } 引数や返り値を特殊なオブジェクトでラップしてやる必要があります。ちょっとめんどくさい。とはいえ、まぁ異なる言語間で情報をやり取りするんだから仕方ないとしましょう。
本当に怖い、Babelの更新 - Chatwork Creator's Note
こんにちはー。突然ですが、聞いてくださいよー。 Babelのバージョンアップしたら「Chatworkのルーム切り替えが重くなった」と社内で言われてしまいました。 みんなの仕事の効率を悪くするわけにもいかないので、戻すしかありません。Babelの更新って、本当に怖いですよねー。 そんなわけで、こんにちは。フロントエンド開発部のひむら(id:eiel)です。 さて、この話自体は少し前のことなのですが、その際に原因を特定する余裕がなく、Babelの更新は後回しになっていました。 ルーム切り替え自体が歴史的経緯もあって、「とーっても」*1難易度が高くなっていて、最悪これを改善すれば更新できるだろうと期…
5000万件越えのRDS大量データをFirestoreに移行する勘所 - ANDPAD Tech Blog
はじめまして、開発部の@taikishiinoです。 2020年3月にアンドパッドにジョインし、約一年が経ちました。 現在、チャットサービスの開発・運用をするチームに所属しており、その中で最近、RDSからFirestoreへのデータ移行を行いました。 本記事では、その際の課題やそれに対して実際に行ったことなどを中心にご紹介していきます。 データ移行の背景 僕たちのチャットサービスを開発するチームでは、現在、プロダクトのデータベースをRDSとFirebase RealtimeDatabaseのミックスからFirestoreに移行する大規模プロジェクトが行われています。 以下の仕組みを用意しており…
Windows Updateの「開始と再起動の期限」をコントロールする新しいポリシーの使い方:企業ユーザーに贈るWindows 10への乗り換え案内(95) - @IT
Windows 10 バージョン1709以降では、Windows Updateの開始と再起動に猶予期限を設定できる新しいポリシーが利用可能になっています。この新しいポリシーをうまく利用すると、しばらく電源がオフにされていたデバイスを起動した直後に、更新プログラムのインストールや再起動が始まってしまうという、ユーザビリティを悪化させる挙動を防止するなど、より適したタイミングでデバイスを更新できます。