管理画面作る上で便利なCSSテンプレート紹介
はじめての自作キーボード -redox ビルドログ-
毎年ゴロゴロダラダラいつの間にか終わっているお正月ですが、 2019年はキーボードを自作して有意義なお正月を過ごすことにしました。
そもそもキーボードを自作しようと思ったきっかけは、周りで分離キーボードが流行っていて、「肩こりにいいですよ〜」と勧められ、分離キーボードを探したら、かわいい自作キーボードがたくさん出てきた → 「作ろう!」、というわけです。
作成したのは、こちらの redox という 7×5 Column-Staggered のキーボードです。
忘れちゃいそうなので、備忘録を兼ねて
基本的に動画広告で必ず指定する項目
映像コーデックは H.264 (mpeg4)で、音声コーデックは AAC
moov atom、プログレッシブ対応
-movflags faststart
ブランド ftyp (mp4であれば、mp42指定)
-brand mp42
映像フレームレートは29.97fps固定
-r 29.97
互換性 プロファイル
-profile:v baseline -level 3.0 とか
-profile:v baseline -level 3.1
上記は互換性が高いが、ファイルサイズも大きくなるので、スマホのWEB用の動画であれば指定しない事が多い(デフォルトhigh)
レーザー・カッターで自作キーボードのケースをつくった時の失敗談
世間の波に乗り、私もキーボードの自作をはじめました✌
選んだキーボードは、左右分離型 Ergodoxインスパイア系の redox keyboard です。
MITライセンスで公開されているため、柔軟に弄れそうで良いなと思いこちらにしました。
(いずれフォークしてバツイチ・キーボードを作ろうという目論見もあり、、、)
このキーボードを作成する上で、何が一番大変だったかというと、 とにかく、
ケース作成
です。
ようやく完成したケース↑です。
アクリサンデー 乳白色 3mmを切り出しました。
たかがこれしきと思われるかもしれませんが、私がレーザーカッターを舐めていたこともあり、ここまで数回の試行がありました。
(業者に発注した方が数倍楽安だった説があります…)
actix_web は Actorモデルでどのようにwebリクエストを捌いているのか
actix_web は Actor モデルを採用した Rust の web frameworkです。
「Actor モデルでwebリクエストを捌く」仕組みを雑に想像すると、
TCPリスナーがHTTPリクエストをメールボックスに貯め、それをワーカーであるActorが拾ってレスポンスを返す?
この仕組だと複数のActorで1つのメールボックスを共有する機構が必要になってきます。
しかし、Actorシステムを提供する actix にはこの機構はなさそうに見えます。
それに、恐らくこの仕組みでパフォーマンスを出すのは難しいでしょう。
そこで、actix_web がどのようにHTTPリクエストを捌いているのか、ソースコードを追ってみることにしました。
※ 読み間違え等ありましたらコメント頂けると大変嬉しいです… 🙏
2018年版: Jupyter Notebook で Scala を動かす
Jupyter Notebook 便利ですよね!
REPL感覚で使えるけれど、REPLより使い勝手良いし、セルごとに何度もやり直しできるし、リンクを共有すればコードもさくっと共有できます。
Scala にも spark-notebook や Apache Zeppelin などの ノートブック形式Webアプリケーションがいくつかありますが、いつも使っている Jupyter Notebook で Scala を動かしたかったので、今回 Jupyter Notebook のカーネルに Scala を追加しました。
この記事を書いた経緯なのですが、「jupyter-scala」 の名称が変わっていたりインストールの仕方が変化していたため、一旦まとめた次第です。
※ この記事を書いているのは 2018.11.01であり、今後も変更の可能性は大いにあります。。。
Rust の Web Framework、 actix_web は TechEmpower のベンチマークでは、すごいパフォーマンスを示しています。
しかし、業務で使おうと思ったときに、本当のところどうなの?というのは気になるところです。
特に私の所属するアドテク界隈では、ミリ秒単位のパフォーマンス・チューニングが求められます。
実際、当初actix_webで要求レイテンシを満たせませんでした。
しかし、同僚の非常に有用なアドバイスにより打開することができたため、ブログにて公開しようと思った次第です。
パフォーマンスの測定及びチューニングは、下記のケースで行いました。
- 固定文字列を返すだけ
- 100msスリープしてから固定文字列を返す
- 外部サーバにgRPC通信し結果を返す
※ 実は上記以外のケースでもベンチマークを取っております。結果とソースコードはGithubにて公開しました。
https://github.com/x1-/actix_web_benchmark
結果だけ知りたい方はこちらをご覧になられた方が良いかもしれません。
2018.11.01 追記
actix_web は HTTPコネクションが正しく閉じない問題が未だ解決しておりません(TT)
Connection not closed correctly #439
昨日(10/31)、 @legokichi さんから TCP FIN が正しくされていないのでは?とご指摘が入っています。