htilcs1115のブックマーク (326)

  • WasmerはどのようにWasmからネイティブバイナリを作っているのか?

    WasmerはどのようにWasmからネイティブバイナリを作っているのか? 最近Wasmランタイムの1つであるWasmerのバージョン3.0.0がリリースされ、色々と機能が追加された。 その中でも個人的に特に気になったのが、Support for creating native executables for any platformという記載。(ニュースでも取り上げられていた) どうやら、WasmバイナリからOSのネイティブバイナリを生成できるようになったらしい。 そもそもどうやって生成してる?とか、CやRustのコンパイラから直接生成したときと比べてパフォーマンスはどうなる?バイナリサイズは?などなど、色々と気になった。 これは調べるしかないということで、今回は**WasmerはどのようにWasmからネイティブバイナリを作っているのか?**を深堀りしていこうと思う。 とりあえず作ってみる

    WasmerはどのようにWasmからネイティブバイナリを作っているのか?
  • ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか

    新しい高性能で汎用的なシステムコールフックの仕組みを作ってみました。 モチベーションとして、システムコールをフックしてユーザー空間でエミュレートしたくなったのですが、現状、性能と汎用性を両立する仕組みがなさそうだったので、新しい方法を考えました。 今回のシステムコールフックの仕組みは以下のような特徴があります。 ptrace より 100 倍以上高速 LD_PRELOAD や既存のバイナリ書き換えツールより確実 カーネルへの変更なし、かつカーネルモジュールを使わない プログラムのソースコード、プログラムの再コンパイル不要 eBPF でトレーシングをしているけれど、できれば制約が少ないユーザー空間でトレーシングツールを作りたい。もしくは、gVisor のようなサンドボックスを作りたいけれど、ptrace による性能劣化が大きいので、他の高速なシステムコールフックの仕組みが使いたい、というよう

    ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか
    htilcs1115
    htilcs1115 2022/10/27
    すごい
  • RubyKaigi is 世界最高のコミュニティ 2022 - SmartHR Tech Blog

    こんばんは、ぷよぐやまーのkinoppydです。 さよなら、絶対また来るよ #rubykaigi pic.twitter.com/epzRiHdVM8— kinoppyd (@GhostBrain) 2022年9月11日 SmartHRでは、RubyKaigiにスケジュールアプリスポンサーとして協賛しており、当日はブースとかも出していました。アイコン付きマスクやトートバッグを受け取りに来てくれた皆さん、ありがとうございます! 想像以上のペースでトートバッグが消えていき、思ったより足らなかったなと反省しました。トラブルがあり1日で終わってしまった人労打に参加してくれた方々もありがとうございます、現在景品発送に向けて集計中です。 この記事はRubyKaigi振り返りレポートですが、セッションの詳細レポートや会場の雰囲気的なところは多くの個人の方や企業のテックブログで既に紹介されているので、私は

    RubyKaigi is 世界最高のコミュニティ 2022 - SmartHR Tech Blog
    htilcs1115
    htilcs1115 2022/10/27
    いい話。来年は絶対に行くぞ!と思った
  • YAPC::KyotoをRebootします - YAPC::Japan 運営ブログ

    YAPC::Kyoto 2020実行委員会の id:papix です. 2020年3月に開催予定だったYAPC::Kyoto 2020は, 新型コロナウイルス感染症(COVID-19)の流行を理由として, 残念ながら開催を延期するという判断を下しました. blog.yapcjapan.org あれから2年が経過し, 新型コロナウイルス感染症(COVID-19)の流行状況や, 各種カンファレンスやイベントなどの開催/運用の状況を鑑み, いよいよYAPC::KyotoをRebootすることを決定いたしました. 開催日は2023年3月19日(日曜日), 場所はYAPC::Kyoto 2020と同じく京都リサーチパーク(KRP)での開催となります. 久々のオフライン開催ですが, YAPC::Japan::Onlineなどを通して得た知見を生かして, 会場の模様を配信の形で全国にお伝えすることも計画

    YAPC::KyotoをRebootします - YAPC::Japan 運営ブログ
    htilcs1115
    htilcs1115 2022/10/27
    わい!
  • Rustに貢献してみませんか?コントリビューターたちが語る開発の裏側とOSS活動の魅力 - Findy Engineer Lab

    「効率的で信頼できるソフトウェアを誰もが作れる言語」を提唱するプログラミング言語・Rust。その優れたパフォーマンスやプログラムとしての信頼性・生産性の高さなどから、近年非常に人気を集めています。 Rustのようなオープンソースソフトウェア(以下、OSS)の開発を支えているのは、機能開発やドキュメント整備など、プロジェクトに何らかの形で貢献をするコントリビューターたちです。今回はRustのコアコミッターである大櫛佑貴さんとTaKO8Kiさんに、知られざるRust開発の裏側とOSS活動に携わる魅力について聞きました。 * … 取材はリモートにて実施しました。 Rustに触れたきっかけ ――今回のインタビューでは、お二人のコントリビューターとしての活動内容を伺います。まずは、ユーザーとしてRustを書くようになったきっかけを教えてください。 大櫛:Rustとの出会いは2018年頃でした。私がま

    Rustに貢献してみませんか?コントリビューターたちが語る開発の裏側とOSS活動の魅力 - Findy Engineer Lab
    htilcs1115
    htilcs1115 2022/10/25
    いい話
  • Facebookが開発した圧縮アルゴリズムZstandardについて調べた(非常に高速)(今日から使えます) - Lambdaカクテル

    Common Lispの処理系であるSBCLをインストールしようとしたら、追加でlibzstd-develというのを新たに要求されるようになっていた。見るからに圧縮系のライブラリだけれど聞き慣れないのでちょっと調べてみた。 ちょろっと調べたところ、以下のことが分かった: Zstandard(ゼットスタンダード?)というのが正式な名前。 Facebookが開発した。 Deflateよりも速いことを主眼においている。 BSDライセンス。 Linuxカーネルまわりで使えるようになっているほか、一部のディストロではパッケージの圧縮フォーマットとして使われているようだ。 Webというよりはどちらかといえばバックエンド的な箇所で使われている印象がある。 facebook.github.io zstd コマンド使ってみた 他の名だたる圧縮アルゴリズム同様、Linuxで直接ファイルに対してこれを実行して圧

    Facebookが開発した圧縮アルゴリズムZstandardについて調べた(非常に高速)(今日から使えます) - Lambdaカクテル
  • キャリアを時間・空間軸で考える / Thinking about your career from both time and space viewpoints

    type エンジニア転職フェア ONLINE2022年9月3日) https://type.jp/s/fair/online/

    キャリアを時間・空間軸で考える / Thinking about your career from both time and space viewpoints
    htilcs1115
    htilcs1115 2022/10/06
    いい話
  • 10Xが”検索”と”推薦”に心を燃やすワケ - 10X Product Blog

    はい、こんちゃーす(eyden)、Stailerのプロダクト責任者の矢です。この記事はCEO/創業者という立場ではなく、一人のプロダクトに関わる人間として書いています。この記事の焦点はStailerのエンドユーザーでもある、お客様の”買い物体験”です。 早速ですがこの記事の結論をお伝えします。 スーパーでの買い物体験は多量の”意思決定”で構成されています Stailerはお店の買い物体験を補完するプロダクトです ネットスーパーの買い物体験を支えるのは”検索”と”推薦”という技術です つまり、検索エンジニアや、推薦を支えるMLエンジニア、推薦のアルゴリズムを作る Data Scientist、MLをプロダクト価値に落とし込んでいくテクニカルプロダクトマネージャー、これらを多数の制約からプロダクトデザインへ落とし込むデザイナーも強く募集しています。ここまででピンと来た方は10XのMLエンジニ

    10Xが”検索”と”推薦”に心を燃やすワケ - 10X Product Blog
  • アウトカムの最大化へ。開発組織の変遷と向き合い方 - Gaudiy Tech Blog

    こんにちは。ファンと共に時代を進める、Web3スタートアップのGaudiyでプロダクトマネージャーをしている@kaa_a_zuです。 開発組織は、ITサービスを提供している企業にとって「エンジン的な存在」であり、プロジェクトや各メンバーの生産性に大きな影響を及ぼします。そんなエンジンは、事業の成長に伴って柔軟に変化させていく必要があると考えています。 Gaudiyでも、これまでに数度、開発組織のアップデートを重ねてきました。今のエンジンは、「仕様策定から開発、リリース、効果測定までをひとつのチームが行い、そのチームメンバー全員が責任を持ってアウトカムの最大化を図ることができる」ものになっています。 そこで今回は、2022年7月に行われた開発組織の体制移行を中心に、これまでの開発組織の変遷から今回の体制に至った背景、体制移行にあたって考慮した点などについて書こうと思います。 事業や人員拡大に

    アウトカムの最大化へ。開発組織の変遷と向き合い方 - Gaudiy Tech Blog
    htilcs1115
    htilcs1115 2022/09/29
    素敵な話
  • フルタイムOSSコミッタを始めて2か月経った - k0kubun's blog

    Shopifyに入社してRubyのJITコンパイラを書く仕事を始めてから2か月経った。 前職の退職エントリ では今後やりたいことを書いたりしたが、実際OSS開発を仕事にしてみてどうだったかみたいなことを書いておく。 シリコンバレーでのリモート生活 3年前にアメリカ移住し、今年永住権も取得した。 Shopifyは社はカナダにあるし2020年5月からフルリモート企業なのだが、 前職の社があったシリコンバレーのあたりからそのまま引っ越さずに暮らしている。 なぜシリコンバレーに住み続けるのか フルリモートである以上はカナダ移住のためのビザのサポートを会社がする動機もないため、 現職においても住む国の選択肢は基的に日アメリカになると思っている。 飯が安くて美味いのを主な理由としても僕も住むならアメリカより日の方が好きなのだが、 住む地域ベースで多くの企業が給料に傾斜をかけてくるこ

    フルタイムOSSコミッタを始めて2か月経った - k0kubun's blog
  • Rust製パターンマッチングマシンDaachorseを使ってPythonパイプラインを高速化する話 - エムスリーテックブログ

    エムスリーエンジニアリンググループ AI機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 今回は文字列界隈を賑わせている高速なRust製パターンマッチングマシンDaachorseをPythonで呼び出して既存の文字列パターンマッチロジックを高速化したお話をします。 Daachorseとは なぜPythonから呼び出したいのか パターンマッチングのみのベンチマーク python-daachorseだけオートマトン構築込みのベンチマーク まとめ We are Hiring! その他 Daachorseとは DaachorseはLegalForceさんで開発運用されている文字列パターンマッチを行うRust製ライブラリです。 github.com 技術的なトピックに関してはLegalForceさんの記事が全て解説しているののでそちらを参照してくだ

    Rust製パターンマッチングマシンDaachorseを使ってPythonパイプラインを高速化する話 - エムスリーテックブログ
  • Goのdefer文を使うときに気をつけること - Yappli Tech Blog

    サーバーサイドエンジニアの @shuymn です。 Yappliではサーバーサイド領域で利用するプログラミング言語のうちの1つとしてGoを採用しています。 Goには様々な言語機能がありますが、その中の1つにdefer文(defer statement)と呼ばれる機能があります。 記事ではdefer文の簡単な紹介と実際にプロダクトコードで利用する際に気をつけるべきことを紹介します。 defer文の紹介 defer文を使う時に気をつけること defer文の中身が実行される順番を把握する os.Exitするとdefer文は実行されない defer文で発生するエラーをどうするか defer文に渡した関数の引数は即時評価される forループでループごとにdefer文を実行する方法 defer文はエラー処理より先に書かない さいごに 参考記事 defer文の紹介 defer文はifやforなどの制御

    Goのdefer文を使うときに気をつけること - Yappli Tech Blog
    htilcs1115
    htilcs1115 2022/09/22
    面白かった
  • Rust for Linuxでは独自のallocライブラリを使っている

    Rustを第二言語として採用してデバイスドライバなどのモジュールをRustで書けるようにする「Rust for Linux」が近々マージされる予定だともLinus氏自身が発言しています。 そんな期待のかかるRust for Linuxですが、提案された当初は期待こそされていたものの、様々な懸念点も指摘されていました。 その1つが標準ライブラリの一部であるallocクレートの設計です。 このクレートはヒープ領域を扱うBox、Vec、StringなどRustではお馴染みの構造体を提供しています。 Rustの標準ライブラリはOSのサポートを前提とした構造体も多くあります。そのため、OSそのものを書くようなベアメタルプログラミングにおいて標準ライブラリをそのまま使うことはできません。 使えるのはcoreと呼ばれる依存関係のない全く無いライブラリがありますが、allocはOSのサポートが必要なヒープ

    Rust for Linuxでは独自のallocライブラリを使っている
    htilcs1115
    htilcs1115 2022/09/22
    んー。なるほど。おもしろい
  • 45分間で「ユーザー中心のものづくり」ができるまで詰め込む

    2022年8月9日 ある企業さまでの研修「45分間で『ユーザー中心のものづくり』ができるまで詰め込む」のスライドです。登壇枠が45分という限られた時間のなかで、UXデザインUXリサーチのもっとも大切なエッセンスを凝縮してお伝えするようにしました。Read less

    45分間で「ユーザー中心のものづくり」ができるまで詰め込む
  • Linuxカーネルが難しい?Rustで実装できそう!

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

    Linuxカーネルが難しい?Rustで実装できそう!
  • Why Containers and WebAssembly Work Well Together | Docker

    htilcs1115
    htilcs1115 2022/07/07
    コンテナとwasmは解決している領域が異なるので置き換え可能ではないよーという話。
  • WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう!|ハイクラス転職・求人情報サイト AMBI(アンビ)

    ハイクラス求人TOPIT記事一覧WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう! WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう! WebAssemblyWasm)は、ブラウザー上で直接動くプログラミング言語として、JavaScriptを置き換える期待が寄せられますが、実際にWasmが果たすべき役割や適したユースケースとはどういったものでしょうか? Wasmの動作を体験するチュートリアルとあわせて、山悠滋(igrep)さんが解説します。 WebAssembly(以下、略称の「Wasm」と呼びます。「キャズム」や「~イズム」などからの類推なのか「ワズム」と発音するようです)とは、ブラウザーをはじめとするさまざまな環境で動作する、仮想マ

    WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう!|ハイクラス転職・求人情報サイト AMBI(アンビ)
    htilcs1115
    htilcs1115 2022/07/05
    分かりやすくまとまってて良かった
  • Webブラウザのレンダリングの仕組みを理解する

    どうもフロントエンドエンジニアのoreoです。 今回はWebブラウザのレンダリングの仕組みについてまとめたいと思います。あまり意識していなくても開発はできますが、知っていればパフォーマンスの改善やAccessibilityの向上に役立ちそうですね。 1 レンダリングとは? 普段私たちは、WebブラウザにURLを指定することで、そのリソースをブラウザ画面に表示できます。この時の 「指定したリソースをブラウザ画面に表示すること」を「レンダリング」と言います。 Webブラウザは、下記のように多くの機能を搭載していますが、この中でRendering engineが、レンダリングを実行します。 参考:https://web.dev/howbrowserswork/ ちなみに、ブラウザごとのRendering engineは下記になります。 Rendering engine Browser 参考:ht

    Webブラウザのレンダリングの仕組みを理解する
  • Rust 1.62を早めに深掘り - あずんひの日

    こんにちは、あずんひ(@aznhe21)です。最近は標準ライブラリを持続的に翻訳する仕組みを考えてますが難航中です。 さて、日7/1(金)にRust 1.62がリリースされました。 この記事ではRust 1.62での変更点を詳しく紹介します。 7/1は郵便番号制度がスタートした郵便番号記念日 ピックアップ 列挙型で#[derive(Default)]できるようになった 浮動小数点数で全順序による比較ができるようになった LinuxにおいてMutexなどの実装がfutexに切り替わった cargo addコマンドが追加された 安定化されたAPIのドキュメント bool::then_some サンプル f32::total_cmp サンプル f64::total_cmp サンプル Stdin::lines サンプル windows::CommandExt::raw_arg 変更点リスト 言語

    Rust 1.62を早めに深掘り - あずんひの日
    htilcs1115
    htilcs1115 2022/07/04
    cargo-addが標準に入ったのかー
  • git add の対話モード

    すると、対話モードが開始されます。対話モードでは、git statusと似た「どのファイルがステージに追加されているか・されていないか」といった情報と、この対話モードで実行できるコマンドの一覧が表示されています。 ❯ git add -i staged unstaged path 1: unchanged +4/-0 Cargo.lock 2: +1/-0 nothing Cargo.toml *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> status は git status とほぼ同等の目的を達成できますが、ステージした変更が左側、ステージしていない変更が右側に表示されます。直感的ですね。 update は、実行後ファイ

    git add の対話モード