概要 先日ふと自分のPCのフィンガープリントを取ってみたところ「IPアドレス」など様々な項目が並ぶ中に「Math.tan」という変な項目を見つけました。 「なぜ三角関数が出てくるの?」と気になって調べてみたところ、**三角関数の値はブラウザやOSの実装により微妙に異なることがあり、特定の式をブラウザに計算させることで利用者を識別する手段になり得る1**という話でした。 面白そうだなと思ったので、本記事ではその手法で実際どの程度までブラウザ/OSを判別できるのか調査してみました。 検証方法 今回は様々な文献12の情報を参考に、以下の式を各OSの各ブラウザに計算させました。 tan(-1e300) cosh(10)(厳密には三角関数の類似ですが) これら以外も10数種類ほど試したのですが、判別に使えたのはこの2つのみでした。 試したOSとバージョン macOS Catalina (ver.10
以下はOptimization killersの日本語訳です。 Optimization killers Introduction このドキュメントには、あなたが非常に悪いコードを量産するのを避けるためのアドバイスが含まれています。 具体的には、Node.js、Opera、Crhomium等のV8 JavaScriptエンジンが最適化コンパイルを行えないパターンを列挙しています。 vhfは他にも、同じようにV8の全ての最適化キラーをリストアップしようとしてる別のプロジェクトにも取り組んでいます。 Some V8 background V8はインタプリタを持っておらず、かわりに2種類のコンパイル機能を持っています。すなわち汎用 ( generic ) と最適化 ( optimizing ) です。 従ってJavaScriptは常にコンパイルされ、ネイティブコードとして実行されることになります
Imagine the countless mornings I’ve spent tinkering with spreadsheets, or the quiet moments spent choosing the perfect jacket that balances… Read More
前提環境 node ver.12以上 WebAssemblyをnode.js上で動かすために必要な大まかな知識 動機 自作のコンパイラの吐き出すwasmから,rustで生成したwasmバイナリからexportされている,メモリを操作する関数を呼び出したい. 要約 instantiate(wasm [, obj]): 指定したwasmファイルを読み込み,インスタンス化して返す関数とします.objはオプショナル引数です.[1] from_rust.wasm: rustから生成したwasmバイナリとします local.wasm: 手元で作成したwasmバイナリとします exported_fn(): rustで作成した関数名とします const from_rust = await instantiate('from_wasm'); const importObj = { from_rust: We
What does Bundlephobia do? JavaScript bloat is more real today than it ever was. Sites continuously get bigger as more (often redundant) libraries are thrown to solve new problems. Until of-course, the big rewrite happens. Bundlephobia lets you understand the performance cost ofnpm install ing a new npm package before it becomes a part of your bundle. Analyze size, compositions and exports Credits
Twind is a small compiler that converts utility classes into CSS at runtime. The goal of this project is to unify the flexibility of CSS-in-JS with the carefully considered constraints of the Tailwind API. Utility-first CSS without any build step right in the browser or any other environment like Node.js, deno, workers, ... 📖 Study the documentation 🤖 Try the playground 🧭 Explore the examples
Tesseract.js is a pure Javascript port of the popular Tesseract OCR engine. This library supports more than 100 languages, automatic text orientation and script detection, a simple interface for reading paragraph, word, and character bounding boxes. Tesseract.js can run either in a browser and on a server with NodeJS. Check out the Example code and API docs on GitHub.
この記事は、JavaScript で Flash Player の実現を頑張った(もしくは現在進行系で頑張っている)人たちの集う Flash Advent Calendar 2020 に参加しております。 皆さん、JavaScript で VM を実装する経験をお持ちでしょうか?私は過去に Java VM と ActionScript VM を JavaScript で実装したことがあります。Flash Player において VM は最も重い場所になることが多く、ここの高速化は Engine 全体の性能に大きく寄与します。この記事では、私が Pex.js にて導入し、素晴らしい成果をあげた VM の高速化手法をご紹介しましょう。 とはいえ今更 ActionScript の VM の話をされても困ると思うので、この記事では簡単な Java VM のサブセットをターゲットにして説明をします。
Turbo uses complementary techniques to dramatically reduce the amount of custom JavaScript that most web applications will need to write: Turbo Drive accelerates links and form submissions by negating the need for full page reloads. Turbo Frames decompose pages into independent contexts, which scope navigation and can be lazily loaded. Turbo Streams deliver page changes over WebSocket or in respon
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く