タグ

ブックマーク / medium.com (32)

  • Rustで作るLinuxデバイスドライバ

    だれでもできるシリーズとして、Rustでカーネルモジュールを実装しながら学んできましたが(役に立たないキャラクタデバイスドライバなど)、そろそろ実際に使える機能を実装したいころですよね! 今回は、筆者が実装したネットワークPHYドライバが、Rustで実装された初めてのデバイスドライバとしてLinuxカーネルに採用された話を紹介します。 誤解:LinuxカーネルがRustをサポート「LinuxカーネルがRustをサポートした」というニュースを見て、Rustのコードがどんどん採用されていると誤解している方もいるようです。このニュースは、「LinuxカーネルをRustでも書けるようになりましたが、実際に何かを実装するかどうかは未定」という意味です。Linuxカーネルは、メモリマネージメント、ネットワーク、暗号など、数多くのサブシステムで構成されており、それぞれのメンテナが、コードの採否を判断しま

    Rustで作るLinuxデバイスドライバ
    einherjar
    einherjar 2024/01/16
  • Backup and restore InfluxDB database into a docker container

    einherjar
    einherjar 2022/08/16
  • Linuxカーネルが難しい?Rustで実装できそう!

    「ついに、RustLinuxカーネルを実装できる!」 待ち望んだ感を出してみましたが、2年前に記事を書いてから、すっかり忘れていました。LinuxカーネルのRustサポートについての意見を求められたら、「技術的には面白いけど、実用レベルではないね。」と、上から目線の回答でエンジニアレベルの高さをアピールするつもりでしたが、2年間の間、誰にも聞かれませんでした。 近々、LinuxカーネルにRustサポートが取り込まれそう、ということで、デバイスドライバを実装してみました。 Rust対応カーネルのコンパイルまずは、Rust対応を有効にしたLinuxカーネルをコンパイルする必要があります。「カーネルってコンパイルするものなの?」という読者は、ネットの長老たちに叡智を求めましょう。「インストール直後に、メモリ削減のために不要な機能を無効にして、カーネルコンパイルしたんじゃ。」というような、太古の

    Linuxカーネルが難しい?Rustで実装できそう!
    einherjar
    einherjar 2022/07/12
  • Hello World for JavaScript with npm modules in the browser

    einherjar
    einherjar 2021/11/20
  • RustでWebAssemblyやってみた。

    The goal of this tutorial is to introduce you to the rust-webpack-template and the wasm-pack workflow by building the… テンプレートの用意まずはnpm initコマンドを使って公式が用意しているtemplateを展開します。 $ npm init rust-webpack your-package-nameHello Worldするぞ展開すると以下のコードがsrc/lib.rsにあるはずです。 use wasm_bindgen::prelude::*; // When the `wee_alloc` feature is enabled, this uses `wee_alloc` as the global // allocator. //// If you don't

    RustでWebAssemblyやってみた。
    einherjar
    einherjar 2021/01/06
  • Rust: How to build a Docker image with private Cargo dependencies

    einherjar
    einherjar 2020/10/06
    cargo build docker private repository
  • Dynamic themes in Angular Material

    einherjar
    einherjar 2020/10/06
    angular テーマ theme
  • Chromium Embedded Framework on the Raspberry Pi

    einherjar
    einherjar 2020/09/22
  • Rustのasyncをgoroutineよりも高速に

    RustgRPCの速度がGoよりも遅いため、デファクトの並列処理方法のasyncではなく、システムコールを直接使うという歪んだ愛の形で、Goよりも高速化を達成した前回。 私たちのRustへの愛は裏切られたのか?私たちがRustの愛を裏切ったのか?2つの思いの間を行き来しながら、asyncでも、goroutineよりgRPCを高速に実行できるか試してみましょう。 システムコールよりもランタイム前回は、ソケットをブロックしないように設定し、epollシステムコールでイベントを待つような、C言語のような実装でした。クラウドネイティブ時代に、Rustに加えて、そんな知識を習得している時間はないですよね!語り部を目指しているなどの特殊な理由で、epollについて知りたい場合は、前時代的な人に聞けば、Kqueueとepollの戦い、などの物語を朝まで聞くことができるでしょう。 非同期プログラミングの

    Rustのasyncをgoroutineよりも高速に
    einherjar
    einherjar 2020/09/18
  • FUJITA Tomonori – Medium

    RustLinuxカーネルモジュールを実装しようと張り切ってきましたが、カーネルがサポートする大半のCPUアーキテクチャでRustは使えません。Rustの公式コンパイラがサポートするアーキテクチャが少なすぎるので、別のRustコンパイラを試してみました。

    FUJITA Tomonori – Medium
    einherjar
    einherjar 2020/09/11
    ntt rust
  • RustのgRPCがGoよりも遅い?

    夏のある日、GogRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Gogrpc-goRustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

    RustのgRPCがGoよりも遅い?
    einherjar
    einherjar 2020/09/11
  • 「Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する」を1年掛けて整理した

    こんにちわ。rwle1212です。 記事は JAWS Days 2020 で話す予定でしたが、昨今の事情によりオンライン開催となったため、登壇予定の内容を記事にしたものになります。 登壇していれば諸般の事情により左手首を骨折したネタが使えたのですが、ブログでは伝わらないので非常に残念な思いをしております。という話はどうでも良いので題に入ります。 50分の登壇内容なので少々長くなりますが、お付き合いください。 JAWS Days 2019で登壇した内容の振り返り昨年の JAWS Days 2019 で「Infrastructure as Codeに疲れたので、僕たちが来やりたかったことを整理する」という内容で登壇しました。 まずは上のリンクに添付されているスライドを5分位で読めると思うので一読頂いて、下の文に進んで頂ければと思います。 そもそもInfrastructure as Cod

    einherjar
    einherjar 2020/03/30
  • Rustで、Hello Worldを卒業した?次は、gRPCだよね!

    こんにちは、NTTの藤田です。 Rustには公式なgRPCサポートがありません。gRPCAPIがないなら、何も実装する気になりません、クラウドネイティブ時代ですからね。公式なgRPCサポートがない代わりに、4種類も非公式な実装がありますので、安心です。安定性や、コミュニティの活発度など、様々な比較の観点がありますが、今回は、Rustへの信仰の強さ、という観点で比較しました。 Rustには公式なgRPCサポートがない信仰の強さの評価軸他言語への依存度Rust以外は言語にあらず。他言語の存在を許容するようでは、信仰が強いとはいえません。全てをRustで再実装するべきです。 最新の非同期処理への対応今、Rust界の大きな話題といえば、11月のasync/awaitを利用した非同期処理を実現するためのFuture APIの安定化です。古い異端のコードを捨て、迅速に、定められた、正統な非同期処理の

    Rustで、Hello Worldを卒業した?次は、gRPCだよね!
    einherjar
    einherjar 2019/12/13
  • Googleアシスタント開発入門 2019

    どうも、Japan Digital Design, Inc. で Technology & Design Div. に所属している石(@t32k)です。 受付くんβ(社内受付システム)というものを作って、Voice UIについて調査していたので、今回は、その裏側の技術であるGoogleアシスタント(SiriやAlexaなどのAIアシスタント)について、共有したいと思います。 受付くんβThe States of Assistant in 2019Amplify your Web ContentsUser your Android AppBuild a Custom ExperienceThe States of Assistant in 2019 Googleアシスタントと聞くと、家で使うスマートスピーカーやNest Hubのようなスマートディスプレイを思い浮かべがちなのですが、Goog

    Googleアシスタント開発入門 2019
    einherjar
    einherjar 2019/10/24
  • コンテナ技術を捨て、 WASIを試す

    こんにちは、NTTの藤田です。 Dockerfileを書くのに疲れた?イメージサイズの縮小で1日が終わった?コンテナの起動が遅すぎる?コンテナ技術と悪戦苦闘する皆様のための新技術、アーキテクチャに依存しないポータブルなバイナリフォーマットと数十μsで起動するsandbox環境を実現する、WebAssembly System Interface(WASI)を試してみました。 WebAssembly System InterfaceとはWASIは、 WebAssemblyWASM)をウェブブラウザ以外の環境で実行するため、 ホストのファイルやネットワークなどの資源に安全にアクセスさせるための仕様です。 具体的には、POSIXに似たAPIが定義されており、WASMのバイナリが、OSが管理する資源にアクセスできるようになります。 WASMは、ネイティブコードなみの速度で動作する、ポータブルなバイ

    コンテナ技術を捨て、 WASIを試す
    einherjar
    einherjar 2019/05/13
  • Google Cloud Next 2019 in SF , サーバーレス関連発表まとめ

    [18 分 20 秒 ~] Cloud Runの概要とデモ、特に [34 分 00 秒 ~] のオートスケーリングのデモはCloud Runの優位性が分かる内容ですさらに Cloud Run に全振りしたセッションとしては以下がオススメです。Cloud Run のリソースモデルや、またCloud Tasks や Cloud Scheduler との連携、さらに具体的なユーザー事例まで盛り沢山です。また、このセッションを見る限り東京でも Cloud Run がすぐに使えるようになりそうです。 [36 分 50秒 ~] VELOLIA 社の事例紹介現状は何に使えそう?Knative をベースにしているものの、今のところ Eventing は Cloud Run と Cloud Run on GKE 両方ともにサポートされておらず、当面は Web や APIホストする環境として使うことになる

    Google Cloud Next 2019 in SF , サーバーレス関連発表まとめ
    einherjar
    einherjar 2019/04/16
  • gRPC を使って1万接続を達成するまでの話

    先日、Wata で1万接続を達成した という記事を書きましたが、gRPC で1万接続するにあたって引っかかったところを纏めました。 Wata サーバは簡単に言えば PubSub サーバです。今回達成したのは Publisher が 1 で Subscriber が 10,000 の配信です。Wata の詳細については Wata プロジェクトについて を参照してください。 gRPC C++ の非同期 API をストリーミングで扱う方法が分からない番での Wata クライアントは Unity のアプリケーションになるわけですが、テスト時に1万の Unity アプリケーションを立ち上げるのはかなり辛いものがあります。 なので gRPC で通信するテスト用の Wata クライアントを書くわけですが、少ない台数でやるためには、1台で大量の接続を捌く必要があります。 1スレッド1クライアントだと死ぬ

    gRPC を使って1万接続を達成するまでの話
    einherjar
    einherjar 2019/03/25
  • How to run Electron JS in Software Rendering Headless

    As some of you know, I am working at Microsoft in AI and Research. In my previous project, we wanted a way to take realistic screenshots of 3D glTF 2.0 models in scale in the cloud in a headless way. What I propose here is a pretty cool hack, that works today in our production for testing. I thought it would be nice to share the technique I used here with Electron to help others who require server

    einherjar
    einherjar 2019/03/13
    embedded electron
  • Google神格化キット. Googleを神格化し、使用者に神の要素を与えるChrome拡張 | by 甲南女子大学文学部メディア表現学科/編集・インターネット研究ゼミ | Medium

    1.はじめに「Google神格化キット」は、Google[1]を既存の神に変わる存在とし、普段我々が日常的に行う。インターネット上の行為である「検索」を演出した作品である。 現在コミュニケーションや、商取引などあらゆる役割が集約されたインターネットは、社会に既存の施設やコミュニティなどのあらゆる要素を取り込み、我々の生活になくてはならないものとなっている。欲しい商品についての情報を検索し、購入までの行為を全てインターネット上でいつでもどこでも行える他、日にいながらリアルタイムで海外情勢知ることができ、友人と情報共有が手軽にできる。今やインターネットは新たなライフラインとも言えるべき存在である。 インターネットに集約されたあらゆる要素の中には宗教も入っている。島田裕巳は『スマホが神になる』で、宗教要素の一因である「コミュニティ形成」や「救済」をインターネットが担いつつある現象について「神に

    Google神格化キット. Googleを神格化し、使用者に神の要素を与えるChrome拡張 | by 甲南女子大学文学部メディア表現学科/編集・インターネット研究ゼミ | Medium
    einherjar
    einherjar 2019/01/17
  • GraphQLをプロダクトに採用した所感 – SOELU Developers – Medium

    SOELU[ソエル] はオンラインのライブヨガスタジオです。空いた時間におうちでヨガを楽しめ、インストラクターとライブで繋がってレッスン受講できるのでおうちでもヨガが続きます。ヨガ初心者の方も歓迎!まずは無料体験から! GraphQLが発表されて3年、日語の紹介記事が出回りはじめてから約1年ほど経過しました。プロダクション採用例もカンファレンスやブログでちょこちょこ見かけます。 私たちSOELU開発チームもGraphQLをサービス開発に採用し、使い勝手などを探ってきました。このエントリーでは、採用してみた所感をまとめます。 題に入る前に、先日GraphQLの入門勉強会を行いました。そのときの資料と、GraphQLを使った簡単なアプリケーション実装例を公開します。GraphQLをまだキャッチアップできていない人はまずこの資料に目を通していただくと理解が深まるかと思います。 資料

    GraphQLをプロダクトに採用した所感 – SOELU Developers – Medium
    einherjar
    einherjar 2018/11/05