並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 1891件

新着順 人気順

wasmの検索結果281 - 320 件 / 1891件

  • Making JavaScript run fast on WebAssembly - Bytecode Alliance

    JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations. Today, we’re starting work on optimizing JavaScript performance for entirely different environments, where different rules apply. And this is possible because of WebAssembly. We should be clear here—if you’re run

      Making JavaScript run fast on WebAssembly - Bytecode Alliance
    • 2022年の Flutter ロードマップ【要約】 - Qiita

      最近、Flutterのロードマップが更新され、2022年のものが追加されました。 Flutterの最新情報は追いかけたい、でも英語読むのはめんどくさい! そんな方に向けて、本記事ではこのロードマップの要約を記載します。 あくまで個人の要約ですので、細かいニュアンスや詳細を知りたい方は、 下記の元記事を読んでください。 時間がない人向け 短くまとめると、以下の内容でした。 開発者体験向上させる デスクトップのサポートをstableチャンネルにする Webも色々向上、ページ埋め込み機能を実装予定だ Material 3のサポートとか色々予定 Dartに静的メタプログラミングの追加予定 全文の要約 2022年、尽力する部分 開発者体験 開発者が愛するSDKを作りたい。 例えば、 共通の問題を解決するwidgetやプラグインの追加 現状のAPIの整理 単純に多く使われるパターンのAPIの導入 エラ

        2022年の Flutter ロードマップ【要約】 - Qiita
      • Swiftのみを使って、今Qiitaを作るとしたら - Qiita

        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Swift は iOS アプリを作るための言語というイメージが強いと思います。しかし、実際にはサーバーサイドプログラムや機械学習、コマンドラインツールの開発など、 多様な目的で利用できる汎用言語です 。 2015 年にオープンソース化され、 Linux でも動作し、近々 Windows もサポートされる予定です。 Swift は Apple の言語ですが、それは TypeScript が Microsoft の、 Go が Google の言語だというのと同じ程度の意味しか持たないと思います。 Swift Core Team には Go

          Swiftのみを使って、今Qiitaを作るとしたら - Qiita
        • WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった

          WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった きっかけ(となったtweetの訂正) もう1ヶ月以上も経ってしまったが、こちらのtweetの公約どおり、WebAssembly (Wasm)におけるDOMの操作について知っている限りのことを書こう。 まずこの節の見出しのとおり、上記の発言は大きく間違えている。私はReference Typesがもたらすパフォーマンス的なメリットや、JavaScriptのオブジェクトを直接Wasmで渡すことが(一応)可能になったということを根拠に上記のtweetをした。しかし下記のtweetでも否定されているとおり、この観点は穴だらけなので、実際のところ多くの人が「直接操作できる」と実感できる状態ではないだろう。 詳細は後述するとして、我ながらひどい凡ミスを犯してしまった。JavaScriptのことを十

            WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
          • 都会の星の撮り方本を出版しました。WebAssembly を使っています

            先日、都会で撮る 星の軌跡の撮影術 〜はじめて撮る人から上級者まで比較明合成による撮影の完全ガイドという本を出版しました。 この本は、比較明合成という画像処理によって都会の星の軌跡の撮り方を紹介している本ですが、それを WebAssembly を用いてブラウザ内で実現する Web アプリ を作りました(そしてその使い方を本の中で解説しました)ので、この記事では WebAssembly による移植周りについて少し解説したいと思います。 なぜ WebAssembly が必要だったか 今回 WebAssembly を、LibRaw というオープンソースソフトウェアをブラウザ上で利用するために使いまいた。 比較明合成をわかりやすく説明すると、複数の画像を比較して、最も明るい点を選択する合成方法です。星は日周運動により地上からは動いているように見えますが、カメラを固定して連写で何百枚と写真を撮り、そ

            • @Hiroki__IT が目の前にやってきて私にIstioのこと教えてくれた。- Istio in Action の読書感想文 - じゃあ、おうちで学べる

              はじめに マイクロサービスアーキテクチャの台頭により、サービスメッシュ技術は現代のクラウドネイティブ環境において外せない選択肢の一つとなっています。 その理由は明確です。マイクロサービスに求められる非機能要件の多くは類似しており、これをアプリケーション側で個別に実装すると、開発者やインフラエンジニアの負担が増大するからです。 ここで登場するのがサービスメッシュです。サービスメッシュの採用により、これらの非機能要件をインフラ層で一元管理することが可能となり、アプリケーション開発者とインフラエンジニアの責務を明確に分離できます。つまり、各エンジニアが自身の専門領域にフォーカスできるのです。これは単なる効率化ではなく、イノベーションを加速させるためサービス開発する上での労苦をなくします。 そして、サービスメッシュの世界で圧倒的な存在感を放っているのがIstioです。その包括的な機能と広範な採用で

                @Hiroki__IT が目の前にやってきて私にIstioのこと教えてくれた。- Istio in Action の読書感想文 - じゃあ、おうちで学べる
              • RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita

                概要 静的ウェブページ向け検索エンジンtinysearchをrust_icuのトークナイザ(icu::BreakIterator)を使って日本語対応させてみた。 また、これをmdBookに組み込み、The Rust Programming Language 日本語版へ適用してみた (chromiumのみ対応。その他は従来どおりの検索性能) 実装: https://github.com/tamuhey/tinysearch/tree/japanese mdBookへの適用: https://github.com/tamuhey/mdBook/tree/tiny_search The Rust Programming Language 日本語版への適用例: https://tamuhey.github.io/book-ja/ tinysearch tinysearchは静的ウェブページ向け検索

                  RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
                • WebAssemblyランタイム「Wasmer」がiOSをサポート、iOS上でWebAssemblyを実行。「Wasmer 5.0」正式版リリース

                  WebAssemblyランタイム「Wasmer」がiOSをサポート、iOS上でWebAssemblyを実行。「Wasmer 5.0」正式版リリース 米Wasmer社はスタンドアロンなWebAssemblyランタイム「Wasmer 5.0」の正式リリースを発表しました。 Wasmer 5.0では、iOSのサポート、WebAssemblyランタイムのバックエンドがV8やWAMRなどに変更可能になるなどの新機能が加わりました。 Introducing Wasmer 5.0. Experimental V8, Wasmi and WAMR backends iOS support Enhanced Performance Upgraded LLVM and Cranelifthttps://t.co/wpwcmMT0tg — Wasmer (@wasmerio) October 29, 2024

                    WebAssemblyランタイム「Wasmer」がiOSをサポート、iOS上でWebAssemblyを実行。「Wasmer 5.0」正式版リリース
                  • WebAssembly対応でRubyは何が出来るようになったのか?

                    はじめに Ruby 3.2よりWASIベースのWebAssemblyサポートされました。 これによってRubyをブラウザ上で実行できるようになるわけですが、実はWASMはブラウザの外での動作も可能になっており、OSに依存しないライブラリを作ったり、Edge Computingで実行させたり、シングルバイナリの実行可能ファイルにしたりと色々な事が出来るようになります。 今回はRubyのWASM対応でどんなことが出来るようになったかをまとめたいと思います。 WebAssemblyとは? WASMに関して少しおさらいをしておきましょう。 WebAssemblyは仮想命令セットアーキテクチャです。WASMとも言います。RustやCをはじめとした多くの言語からコンパイルする事が出来、Webブラウザの中で高速にそしてセキュアに処理を実行するための仕組みとして登場しました。 元々ブラウザ向けに登場した仕

                      WebAssembly対応でRubyは何が出来るようになったのか?
                    • Denoの分散ホスティング「Deno Deploy」ベータ2公開。FiIe System API追加、クラッシュレポートなど

                      Denoの分散ホスティング「Deno Deploy」ベータ2公開。FiIe System API追加、クラッシュレポートなど Node.jsの作者であるライアン・ダール(Ryan Dahl)氏が新たに立ち上げた企業「Deno Company」は、サーバサイドでJavaScript/TypeScriptを実行するためのオープンソースのフレームワーク「Deno」と、その分散ホスティングである「Deno Deploy」を提供しています。 Denoは、ライアン・ダール氏がNode.jsを開発した経験を活かし、より優れたサーバサイドのJavaScriptランタイムとして新たに開発しているものです。V8 JavaScriptエンジンをベースにしており、JavaScriptだけでなく、TypeScriptとWebAssembly(WASM)にも対応します。 Deno Deployは、その名前の通りDen

                        Denoの分散ホスティング「Deno Deploy」ベータ2公開。FiIe System API追加、クラッシュレポートなど
                      • WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita

                        WebAssembly(WASM) は JavaScript より計算処理が速いという話題がしばしば聞かれます。 では、単純な数値計算ではないけれど、JavaScript を利用した通常のフロントエンド開発だと時間がかかる処理を移植するとどうなるのでしょうか1。本記事ではその一例として、巨大画像(4K~)を指定したピクセル数までリサイズする処理を書いてみました。 リポジトリ: https://github.com/yokra9/wasm-image-resizer JavaScript + Canvas API でリサイズしてみる まず、比較のため JavaScript でリサイズ処理を書いておきましょう。とはいえ、TypeScript からコンパイルして生成します。 const url = "./img/sample.jpg"; const resp = await fetch(url)

                          WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita
                        • 2021年のOSS活動を振り返る|mathetake|note

                          こんにちは、マスタケ(@mathetake)と申します。現在はTetrate.ioという米国のスタートアップで、日本からFull Remoteで働いています。特にこれと言って今のロールに名前があるわけではありませんが、Open Source EngineerとかSoftware Engineer(Open Source)という職種が正しく説明できているかなと思います。(弊社はタイトルもないので、Senior EngとかStaff Engのような区別はありません) ロールがそんな感じなので、仕事のほぼ100%がオープンソースで、GitHubの僕のプロフィールページで全て公開されています: というわけで2021年どんな仕事をしてきたのか、せっかく(?)オープンなのでオープンに振り返ってみたいと思います(プライベートなものも含みます)。最後にOSSを仕事とすることの所感もちょっと書きます。 En

                            2021年のOSS活動を振り返る|mathetake|note
                          • DuckDB/DuckDB-Wasm と Postgres と S3 を組み合わせるメモ

                            モチベーション Postgres は OLTP として利用したい DuckDB は OLAP として利用したい 集計を Postgres でやらず、独立した DuckDB でやりたい データ保存は S3 を利用したい 保存先として一番安い 一定期間経ったら削除が簡単にできる 細かいデータ処理は DuckDB-Wasm を利用してクライアント側のリソースを利用したい 一度前処理したデータは S3 に Parquet 形式で置いておきたい 転送量ボトルネックに寄せる Cloudflare R2 などを利用すれば転送量はかからなくなる 概要 DuckDB は Postgres に直接アクセスできる仕組みを持っている PostgreSQL Extension – DuckDB Postgres のテーブルを DuckDB に持ってこれる COPY でテーブルを Parquet ファイルにすることが

                              DuckDB/DuckDB-Wasm と Postgres と S3 を組み合わせるメモ
                            • フロントエンドエンジニアたちが語る、Tips【23選】 - RAKUS Developers Blog | ラクス エンジニアブログ

                              こんにちは、技術広報のyayawowoです。 フロントエンドエンジニアの皆様、今のフロントエンドを楽しんでおりますでしょうか? 変化の多いフロントエンド領域を楽しむために・・・ ラクスが開催している 「フロントエンド LT会」で発表された資料をご紹介します! フレームワークや開発言語別にまとめておりますので、興味があるところだけを少し摘まむのも大歓迎です。 9月に開催した「フロントエンドLT会 - vol.4」は、参加者が500名越えとなるイベントなりました。 2022/1/19(水)に「フロントエンドLT会 - vol.5」を開催しますので、ご興味ある方は是非登壇/視聴申込よろしくお願いいたします! rakus.connpass.com では、早速見ていきたいと思います! イベント詳細はこちらからご確認ください。 ・フロントエンドLT会 vol.1 -2020夏祭り- ・フロントエンドL

                                フロントエンドエンジニアたちが語る、Tips【23選】 - RAKUS Developers Blog | ラクス エンジニアブログ
                              • フロントエンドエンジニアがスキルアップのために意識する「素振り」の仕方と求められる役割 | Offers Magazine

                                ▲登壇時の写真 はじめまして、フリーランスエンジニアとしてフロントエンド開発をメインに行っている、小林(@neo6120)と申します。 もともとはインフラやサーバサイドも扱っていましたが、独立時にフロントエンドに絞り、現在もフロントエンドメインでエンジニアをしています。 変化が激しいと言われるフロントエンド界隈ですが、今回はフロントエンド特化のフリーランスエンジニアとして、スキルアップのために普段どのような点に気をつけているか、また注目している技術はなにか、について紹介したいと思います。 広がるフロントエンドのカバー範囲 サーバからテンプレートエンジン等を使ってHTMLを組み立てて返すだけで済んでいた頃は、今日のフロントエンドとバックエンドの境界はかなり曖昧でした。フロントエンドといえばマークアップを書いたり、ちょっとしたインタラクションをつける役割のことを指していたように思います しかし

                                  フロントエンドエンジニアがスキルアップのために意識する「素振り」の仕方と求められる役割 | Offers Magazine
                                • Rust 1.51を早めに深掘り - OPTiM TECH BLOG

                                  こんにちは、R&Dチームの齋藤(@aznhe21)です。書きたい記事がいっぱいあるのに時間が取れません。悲しい。 さて、本日、日本時間3/26(金)、Rust 1.51がリリースされました。 この記事ではRust 1.51での変更点を詳しく紹介します。 3/26は普通選挙法成立の日 ピックアップ ジェネリクスの引数として定数を使えるようになった 配列要素の所有権を奪いつつイテレート出来るようになった featureの新しい解決機構が使えるようになった 安定化されたAPIのドキュメント Arc::decrement_strong_count 安全性 サンプル Arc::increment_strong_count 安全性 サンプル Once::call_once_force サンプル Peekable::next_if_eq サンプル Peekable::next_if サンプル Seek:

                                    Rust 1.51を早めに深掘り - OPTiM TECH BLOG
                                  • Node.js v18 の主な変更点 - 別にしんどくないブログ

                                    Node.js v18がリリースされました 🎉 nodejs.org この記事では Node.js v18 の主な変更点を抜粋して紹介します! fetch() がフラグ無しで実行可能に (experimental) HTTP requestTiemout()のデフォルト値の変更 node:test モジュール(テストランナー)の追加 (experimental) V8 アップデートによる新しい JavaScript の API の追加 Array#findLast(), Array#findLastIndex() Intl.supportedValuesOf() その他の改善 Web Streams API のグローバルへの追加、実行時の警告の削除 (experimental) まとめ fetch() がフラグ無しで実行可能に (experimental) github.com Node

                                      Node.js v18 の主な変更点 - 別にしんどくないブログ
                                    • ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー

                                      WebAssemblyはブラウザ上で機械語を実行可能し、JavaScriptを補完してパフォーマンスを高める技術です。そのWebAssemblyのバイナリ形式で動画処理ソフトウェア「FFmpeg」をコンパイルし、ブラウザ上での動画生成や変換を行えるソフトウェアが「ffmpeg.wasm」です。 FFMPEG.WASM https://ffmpegwasm.github.io/ GitHub - ffmpegwasm/ffmpeg.wasm: FFmpeg for browser and node, powered by WebAssembly https://github.com/ffmpegwasm/ffmpeg.wasm 「ffmpeg.wasm」の「wasm」はWebAssemblyの略称で、JavaScriptからFFmpegを利用可能にすることでブラウザやNode.js上で動画の

                                        ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー
                                      • Rust 製の全文検索システム Tantivy を Ruby で使える Tantiny を導入した

                                        過去記事ページの UI 考察 ずっと過去記事をどうやって効率よく見せるか(自分自身が効率よく読むか)ばかり考えている。一つ前の記事では絞り込み UI について書いた。ブログというものが生まれたとき、誰も 10 年以上にわたっ... portalshit.net ブログのアクティビティダッシュボード Archive ページにこだわってしまう理由、グラフを表示させてみて(ブログ過去記事をカテゴリーごとに集計してグラフ化 - portal shit!)何となくわかった気がする。過去記事ページとい... portalshit.net このブログの維持管理で一番時間を割いているのが Archives ページだ。しかしアクセスログを見ると自分以外はほとんど利用していない。完全に自己満なのだが、過去の自分を振り返ることができてとても自分には有意義なページだ。 過去記事を振り返るときには検索をしたくなる。

                                          Rust 製の全文検索システム Tantivy を Ruby で使える Tantiny を導入した
                                        • mozaic.fm v3 リリースと Podcast の PWA 化 | blog.jxck.io

                                          Intro mozaic.fm をリニューアルし v3 としてリリースした。 今回の更新は以下のような変更/修正を実施している。 PWA 化 before install prompt Background Fetch Periodic Background Sync Content Index API Badging API Player UI の刷新 Pure Webcomponents Media Session API WAI-ARIA Portal Preview Screen Wake Lock Security CSP v3 (not Report-Only) Cross Origin Resource Policy Cross Origin Opener Policy Cross Origin Embedder Policy Expect-CT NEL Referrer P

                                            mozaic.fm v3 リリースと Podcast の PWA 化 | blog.jxck.io
                                          • UnityでモバイルWebGLゲーム開発を頑張る話 - Mirrativ Tech Blog

                                            こんにちは。ミラティブUnityエンジニアの菅谷(tetsujp84)です。 ミラティブのライブゲームはUnityで開発し、MirrativアプリのWebGLで動いています。 ライブゲームを支える仕組みと実際のライブゲーム開発で使用した技術については過去の記事で紹介しています。 tech.mirrativ.stream tech.mirrativ.stream UnityはWebGL向けにもビルドでき、モバイルのWebGLであってもUnity製プロダクトが動くようになっています。一方で、Unityは正式にはモバイルWebGL対応をサポートしておらず、ネイティブのモバイル開発と比べると開発の難易度は高いです。その難易度の高さは具体的にどこにあったのか、実際にモバイルWebGL向けのゲームを開発した経験を元に知見を共有します。 パフォーマンス編 モバイルWebGLの開発は常にパフォーマンスの意

                                              UnityでモバイルWebGLゲーム開発を頑張る話 - Mirrativ Tech Blog
                                            • ご報告

                                              █ 月に ██████████████, ███████████, ███████ から誕生日を祝ってもらったのですが、そのときにマッチングアプリ代金を誕生日プレゼントとしてもらいました。とても生々しいですね。誕生日プレゼント何が欲しいか聞かれたときにふざけて「█████ が欲しい」とか言ってたらまさかこのような形でもらうことになって驚きました。今日は █ ヶ月マッチングアプリをしてみた結果をご報告しようと思います。 マッチングアプリにワクワクまずマッチングアプリに入ると女性がずらっと並んでいて「もしかして結婚相手と出会えるのかもしれない」という気持ちになって、ワクワクしました。とりあえずマッチングのためには魅力的な ███████████ が大事であるとのことで、その場に居合わせた ██████████████, ███████████, ███████ に書いてもらったり、登録する写真

                                              • Python 3.13がリリース!AIと機械学習に変革を齎す! - Qiita

                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? みなさんこんにちは!私は株式会社ulusageの、技術ブログ生成AIです!これからなるべく鮮度の高い情報や、ためになるようなTipsを展開していきます。よろしくお願いします!(AIによる自動記事生成を行なっています。システムフローについてなど、この仕組みに興味あれば、要望が一定あり次第、別途記事を書きます!) Python 3.13がAIと機械学習の世界を変える理由 Python 3.13がついにリリースされ、数多くの重要なアップデートが盛り込まれています。機械学習、データサイエンス、そしてAIの分野で最も広く使用されているプログラミン

                                                  Python 3.13がリリース!AIと機械学習に変革を齎す! - Qiita
                                                • SVMを使った類似 embeddings 検索 - kNN ではない類似検索の選択肢 - A Day in the Life

                                                  LangChain v0.0.141 に SVM Retriever という実装が入った。これは embeddings(集合)から、単一 embedding と類似しているもの top-K を SVM を使って見つけるという実装で、えっどうやってるの?と追っかけてみたら、知らない知識で面白かったのでメモ記事に。 kNN vs SVM この実装の元となった、knn_vs_svm.ipynbというnotebookがあって、冒頭を機械翻訳すると以下となる。 よくあるワークフローは、あるデータを埋め込みに基づいてインデックス化し、新しいクエリの埋め込みがあれば、k-Nearest Neighbor検索で最も類似した例を検索することです。例えば、大規模な論文コレクションをその抄録に基づいて埋め込み、興味のある新しい論文を与えると、その論文に最も類似した論文を検索することが想像できます。 私の経験では

                                                  • 【画像】 鬼滅の映画とGoToイートが感染を広げたという意見が多かったのでグラフにしてみた : 痛いニュース(ノ∀`)

                                                    【画像】 鬼滅の映画とGoToイートが感染を広げたという意見が多かったのでグラフにしてみた 1 名前:シューティングスタープレス(光) [US]:2020/11/24(火) 12:45:13.01 ID:APv41+2l0 ふわふわ🌽 @fuwauwamodern 鬼滅の映画とGotoイートが感染を広げたという意見が多かったのでグラフに追加。 皆さんは何が原因で感染拡大したと思いますか? 画像 午後9:00 · 2020年11月23日·Twitter for Android スクショ https://i.imgur.com/waSM81V.jpg https://twitter.com/fuwauwamodern/status/1330843640013357057 2: 毒霧(ジパング) [FR] 2020/11/24(火) 12:47:00.11 ID:kg2OLLeH0 >>1 お

                                                      【画像】 鬼滅の映画とGoToイートが感染を広げたという意見が多かったのでグラフにしてみた : 痛いニュース(ノ∀`)
                                                    • Cloudflare Developer Week 2024 まとめ! - ゆーすけべー日記

                                                      今年もこの一週間がやってきて終わりました。Cloudflareを使って開発をする開発者大歓喜のDeveloper Weekです。 新製品、新機能の発表や、既存製品のアップデート、技術的解説などをブログで行うというものです。 4月1日(月)〜4月5日(金)に行われました。 すごい。数えてみたら21個のブログ記事がありました。各記事について雑な箇条書きをしてみます。 4/1 (月) 1. Welcome to Developer Week 2024 https://blog.cloudflare.com/welcome-to-developer-week-2024 まずはプロダクトディレクターのRitaから開始宣言 Cloudflareのプラットフォームは200万人が使っている 5つの「Cloud」を提案する Full-stack Cloud、Connectivity Cloud、Experi

                                                        Cloudflare Developer Week 2024 まとめ! - ゆーすけべー日記
                                                      • 私たちはKubernetes SchedulerにWasm拡張の夢を見るか | メルカリエンジニアリング

                                                        この記事はMercari Advent Calendar 2022の21日目の記事です。 こんにちは。メルカリのPlatform Infraチームで働いている @sanposhiho といいます。 個人的にKubernetesやその周辺のOSSにコントリビュートをしていて、特にKubernetesのコントロールプレーンのコンポーネントのうちの一つであるスケジューラー周りを触ってることが多いです。 この記事では、現状のスケジューラーにおける拡張性の課題と、スケジューラーに現代の汎用バイナリとも言えるWasm(WebAssembly)ランタイムを通した拡張性を持たせることができるのかどうかを検証してみます。 Kubernetes Scheduler とは スケジューラーはPodをどのNodeで実行するかを決定しているコンポーネントです。 その時の様々なリソースの状況を見たり、ユーザーが指定した

                                                          私たちはKubernetes SchedulerにWasm拡張の夢を見るか | メルカリエンジニアリング
                                                        • Using WebAssembly threads from C, C++ and Rust

                                                          Learn how to bring multithreaded applications written in other languages to WebAssembly. WebAssembly threads support is one of the most important performance additions to WebAssembly. It allows you to either run parts of your code in parallel on separate cores, or the same code over independent parts of the input data, scaling it to as many cores as the user has and significantly reducing the over

                                                            Using WebAssembly threads from C, C++ and Rust
                                                          • 第4のWebブラウザ用言語「WebAssembly」、誰がどのように使っているのか

                                                            第4のWebブラウザ用言語「WebAssembly」、誰がどのように使っているのか:他の言語から呼び出して使う ソフトウェアコンサルティング会社のScott Logicが第4のWebブラウザ用言語「WebAssembly」の使用状況について、調査結果を発表した。WebAssemblyアプリケーションの作成に使われている言語やWebAssemblyの使用目的、今後大きな影響を与える分野、改善を要する分野などが明らかになった。 WebAssemblyとは WebAssembly(「Wasm」と略される)は、Webブラウザを含むモダンな実行環境での効率的なコード実行とコンパクトなコード表現を実現するために設計された、安全でポータブルな低レベルフォーマットだ。 企業の独自規格ではなく、World Wide Web Consortium(W3C)が2019年に標準化を完了し、コア仕様をW3C勧告とし

                                                              第4のWebブラウザ用言語「WebAssembly」、誰がどのように使っているのか
                                                            • NaNのビットパターンを使ってWebAssemblyからCPUの命令セットを推測する

                                                              浮動小数点数にはIEEE 754という標準規格がありますが、規格の範囲内であっても僅かに実装による差異が認められています。その一つがNaNのビットパターンです。 WebAssemblyはNaNのビットパターンに関しては実装依存の結果を許容しており、Wasmランタイムは特に深い理由がなければホストCPUの浮動小数点命令をそのまま用いると考えられるため、結果として「WasmからNaNのビットパターンを観測することでホストのCPUの命令セットを推測する」ことができます。 ここでは、「x86(_64)」「RISC-V」「その他(Armなど)」の3択で判定することを目指します。 判定コード 判定するコードは以下です: #include <inttypes.h> #include <stdio.h> #include <string.h> float u32_to_f32(uint32_t x) {

                                                                NaNのビットパターンを使ってWebAssemblyからCPUの命令セットを推測する
                                                              • JavaScript Bloat in 2024

                                                                JavaScript Bloat in 2024 Translations: Korean Russian I was a bit out of touch with modern front-end development. I also remembered articles about web bloat, how the average web page size was approaching several megabytes! So all this time I was living under impression that, for example, if the average web page size is 3 MB, then JavaScript bundle should be around 1 MB. Surely content should still

                                                                  JavaScript Bloat in 2024
                                                                • C言語へのFFIを含むRustをWASM化するのは難しすぎる

                                                                  つらみ PlantUMLをwasm化するためにGraphvizへの依存をどうしたものか考えていました。すべてRustで書き直せればそれがいちばん手堅いのですが、Graphvizのソースコードは中々に大きく、それをRustで書き直すのは現実的ではありません。そこで考えたのが、RustからFFIでGrapvizのC++コードを呼ぶようにして、それをwasm化すればいいじゃないかというアイデアです。 こんなことを言いましたがツラい・・・この道はツラいです。もう諦めようと思っています。私の力では限界を感じました。 というわけで、やり散らかしたままにしておいても時間の無駄になるので何らか学びを得るためにまとめてみようと思います。 RustでCのライブラリにFFIするのは簡単だ RustはそもそもFFIの機構を持っている Rustはにはexternキーワードがあり、以下のようにC言語の関数をRustか

                                                                    C言語へのFFIを含むRustをWASM化するのは難しすぎる
                                                                  • Rubyを手軽にブラウザ上で動かすことが可能に WebAssemblyを使って解消する、Rubyの動作環境問題

                                                                    プログラミング言語Rubyの国内最大級のカンファレンス「RubyKaigi」。「RubyKaigi 2022」のKeynoteで登壇したのは、齋藤優太氏。「Ruby meets WebAssembly」のテーマで、WebAssembly上でRubyが動くようになった経緯、テクニック、ユースケースについて発表しました。全2回。前半は、なぜWebAssembly対応をするのか、そのモチベーションと経緯について。 登壇者の自己紹介とアジェンダ紹介 齋藤優太氏(以下、齋藤):いやぁ~、緊張しますね(笑)。みなさんおはようございます。 会場:おはようございます。 齋藤:「Ruby meets WebAssembly」ということで、今日は最近少し話題になっているRubyとWebAssemblyの話をしようと思います。よろしくお願いします。 (会場拍手) RubyがWebAssembly上で動くようにな

                                                                      Rubyを手軽にブラウザ上で動かすことが可能に WebAssemblyを使って解消する、Rubyの動作環境問題
                                                                    • Pure Rustな近似最近傍探索ライブラリhoraを用いた画像検索を実装する - Stimulator

                                                                      - はじめに - 本記事は、近似最近傍探索(ANN: Approximate Nearest Neighbor)による画像検索をRustを用いて実装した際のメモである。 画像からの特徴量抽出にTensorFlow Rust bindings、ANNのインデックス管理にRustライブラリであるhoraを利用した。 RustとANNの現状および、実装について触れる。 - はじめに - - RustとANN - - pretrainモデルによる特徴量化 - - 画像特徴のインデックスと検索 - - 検索結果 - - おわりに - - RustとANN - Rustの機械学習関連クレート、事例をまとめたリポジトリがある。 github.com この中でも、ANN関連のクレートは充実している。利用する場合は以下のようなクレートが候補になる。 * Enet4/faiss-rs * lerouxrgd/

                                                                        Pure Rustな近似最近傍探索ライブラリhoraを用いた画像検索を実装する - Stimulator
                                                                      • 自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog

                                                                        このエントリは言語実装 Advent Calendar 2020の1日目の記事です。 次はsisshiki1969さんで「RustでつくるRuby、その後の進捗」です。 κeenです。 昔からちまちま作ってるSML処理系をブラウザ上で動かすことができたのでその進捗報告です。 ちまちま作ってるSML処理系とはこれのことです。 KeenS/webml: A Standard ML Compiler for the Web 今回実装したオンラインコンパイラは以下で試すことができます: WebML Online Compiler まあ、ブラウザで動くのでここに貼ることもできるんですけどね。 こういうのどうやって作ったの?っていうのを話していけたらなと思います。 設計 そもそもの話、WebMLはブラウザで動かすために設計、実装されています。 スタートから違うじゃんと思うかもしれませんが、スタートから

                                                                          自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
                                                                        • 細かすぎるけど伝わってほしい脆弱性診断手法ドキュメント

                                                                          細かすぎるけど伝わってほしい脆弱性診断手法ドキュメント #始めに #本書は、ISOG-J WG1の新技術に対する診断手法分科会によってまとめられたさまざまな技術に関する脆弱性診断手法ドキュメントです。 クロスサイトスクリプティングやSQL Injectionなどの著名な脆弱性は診断手法や対策なども浸透し、日本語で読める良質なドキュメントが複数あります。 本ドキュメントでは、これらの脆弱性ではなく、一般に診断が困難であったり特有の確認方法が必要となるような脆弱性についてターゲットを絞って記載しています。 脆弱性診断員はもとより開発者の方々も、本ドキュメントを参考に、自身のアプリケーションに脆弱性が紛れ込んでいないか確認していただければ幸いです。 執筆者一覧 (敬称略、順不同) #三井物産セキュアディレクション株式会社 廣田 一貴三井物産セキュアディレクション株式会社 山本 健太三井物産セキュ

                                                                          • Yuta Saitoさん「RubyはWebAssemblyと出会った」 〜RubyKaigi 2022 1日目キーノート | gihyo.jp

                                                                            RubyKaigi 2022 キーノートレポート Yuta Saitoさん「RubyはWebAssemblyと出会った」 〜RubyKaigi 2022 1日目キーノート 9月8日から9月10日までの3日間RubyKaigi 2022が三重県津市で開催されました。今年はRubyKaigi 2019以来、3年ぶりの現地開催で非常に盛り上がったカンファレンスとなりました。 初日のキーノートではRubyコミッターのYuta Saitoさんが「Ruby meets WebAssembly」というタイトルで発表しました。 Saitoさんはインターネット上では主に@kateinoigakukunという名前で活動しており、Swiftコミッターとしてもよく知られたエンジニアです。CRubyのWebAssembly移植を進め、2022年1月にRubyコミッターとなっています。今回のキーノートはCRubyのW

                                                                              Yuta Saitoさん「RubyはWebAssemblyと出会った」 〜RubyKaigi 2022 1日目キーノート | gihyo.jp
                                                                            • nehan(縦書き文庫の組版エンジン)をWebAssembly化することで、約3倍の高速化を達成しました - anti scroll

                                                                              縦書き文庫の組版エンジンであるnehan(js製)をRustで書き換え、WebAssemblyで実行したところ、約3倍の高速化に成功しました。 現時点ですでに運用されています。 感想としては「本当は10倍ぐらい速くなって欲しかったけど、そこまでは速度が出ずにトホホ…」という感じです。 3倍なら良いではないか、と思われる方もいるかもしれませんが、青空文庫の長編小説なんかは、だいたい40万字ぐらいあり、そのjsでの組版時間は(すごく遅い端末だと)27秒に達することもあります。 ちなみに手元のノートPC(メモリ8G)でjsに組版させると5秒ぐらいです。 この5秒が1.7秒ぐらいになるのは嬉しくても、27秒が9秒になっても、あんまり嬉しくないですよね。 だから、ずっと10倍を目標にしてきたのですが… まあこれから頑張って、Rust側のソースを最適化していこうと思います。 ビューアーの変更点 全ペー

                                                                                nehan(縦書き文庫の組版エンジン)をWebAssembly化することで、約3倍の高速化を達成しました - anti scroll
                                                                              • Rust + wasmでJS向けの形態素解析ライブラリを作ってnpmで公開する

                                                                                この記事はRust Advent Calendar 2021 (カレンダー1)の8日目の代打記事です。 この記事でわかること 💪wasm-pack最強💪 lindera-jsというライブラリを作った経験を通じて、既存のRust製ライブラリをnpmのパッケージにして公開するまでの手順がわかります lindera-jsはパッケージサイズの問題があるのでまだ、限られたケース(読み込みの時間が気にならないケース)でしか使えなさそう 出来上がったもの Rust製の形態素解析ライブラリであるLinderaをjavascript/typescriptから呼び出すことが出来るライブラリを作ってnpmで公開しました。 npmからインストールしたら、 import * as lindera from "lindera-js"; console.log(lindera.tokenize("関西国際空港限定ト

                                                                                  Rust + wasmでJS向けの形態素解析ライブラリを作ってnpmで公開する
                                                                                • Writing a C compiler in 500 lines of Python

                                                                                  A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python1, after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog