私がハリウッドで仕事をしていてすごくモヤモヤしたのが、白人の先輩co workerにどうアジア人らしく振舞うか指導されたとき。ファッションショーでアジアンテイストの衣装を2人で着るときにアジア人はこう挨拶するから、このポーズをしましょうと指導された。
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
サーバ不要でバックエンドAPIのモックを実現する「Mock Service Worker 2.0」正式リリース。Fetch API、ストリームAPI対応など新機能 Webアプリケーションのクライアントを開発する際に、本来ならばサーバ上で稼働するWebアプリケーションのバックエンドのAPIを呼び出してデータを受け取って表示するといった動作を作り込みたいけれども、まだバックエンドのAPIも開発中であったり、何らかの理由でバックエンドを稼働させる環境を用意できなかったりすることは、しばしば起こりえます。 そうしたときにサーバを立てることなく、バックエンドのAPIをモックとして簡単に設定し提供してくれるソフトウェア「Mock Service Worker」の最新版「Mock Service Worker 2.0」が正式にリリースされました。 Announcing MSW 2.0! Migratio
Wasm Labsが「Wasm Workers Server」をオープンソースで公開。Node.jsやDenoのようにWebAssemblyのWorkerをイベントドリブンに実行 VMware Wasm Labsは、WebAssemblyのWorkerをNode.jsやDenoのようにサーバサイドでイベントドリブンに実行できる「Wasm Workers Server」をオープンソースで公開しました。 インストールも簡単で、わずか5分で使い始められると説明しています。 Today, we are excited to announce Wasm Workers Server, a self-contained server to run your workers in #WebAssembly. It assigns an HTTP endpoint to wasm modules base
Which APIs are supported in Web Workers and Service Workers? This chart shows the breakdown for each browser, based on automated testing. Note that the goal is not for browsers to reach 100% on all tests. Some APIs are intentionally not exposed to workers. This site is for informational purposes only.
HonoというWebフレームワークを作っています。 当初はCloudflare Workers向けに作っていたのですが、同じCDNであるFastlyのエッジランタイム、Compute@Edgeでも動くことが分かりました。また、Next.jsのEdge MiddlewareもしくはEdge API RoutesとしてVercelの環境でも動きます。そして、少々手を加えるとDenoでも動きました。もちろんDeno Deployにもデプロイできます。さらに、先程レポジトリが一般公開されたYet AnotherなJavaScriptランタイムのBunでも手を加えず動きました。 この「CloudflareでもFastlyでもVercelでもDenoでもBunでも動いた件」が、なかなか面白かったのでそれについて書きます。 Web標準のAPI これらの環境で同じように動くのは、JavaScriptでかつ
サーバサイドのJavaScriptランタイム「WinterJS」登場。Rustで書かれ、WebAssembyにコンパイル可能なService Workerサーバ WebAssemblyランタイム「Wasmer」の開発元として知られているWasmer社は、新しいサーバサイドのJavaScriptランタイム「WinterJS」を発表しました。 Announcing WinterJS: a blazing-fast Javascript Service Workers server written in Rust powered by SpiderMonkey ❄️https://t.co/kX7jjJj6qv — Wasmer (@wasmerio) October 27, 2023 WinterJSはRustで書かれた高速なService Workerサーバであり、オープンソースとして公開さ
今回の話はWasmというよりもService Workerの話がメインになりますが、WasmとService Workerを組み合わせることで、ブラウザー上でサーバー処理をリアルに再現することができるので、このタイトルにしています。 まずは動画をご覧ください。 見ていただくと分かるように、ブラウザー上でPHPのコードを書くとその実行結果が右側に表示されています。 特に面白い点が、お問い合わせフォームのPOST後の処理までもブラウザー上だけで実行できているという点です。 これはWasmとService Workerを組み合わせて実現しています。 大体以下のようなプロセスで実現しています。 Wasmはブラウザー側でも実行可能ですが、あえてService Worker上で実行しているのは、URLへのリクエストに対してそのリクエストにインターセプト(介入)することで、POST後の処理などもブラウザ
フロントエンドの開発時に仮の API を使いたいってシチュエーションはわりとあると思います。 そんな時に、Mock Service Worker を使うと便利だったのでまとめます。 Mock Service Worker とは? Mock Service Worker は、ネットワークレベルで API リクエストをインターセプトして mock のデータを返すためのライブラリです。API リクエストを含む処理のテストや、開発時の mock サーバーの代替として利用出来ます。 テストでの利用については以前こちらの記事でまとめました。 今回は開発時のモック API としての利用について書きます。 開発用の API というと、JSON Serverが有名ですが、Mock Service Worker では Service Worker を使ってリクエストを返すため、別プロセスでローカルサーバーを立
BOXILでエンジニアをやっている永井です。前回は入社エントリを書きましたが今回は技術的な記事を書こうと思います。 今回はCloudflareにおける画像の最適化処理のコストカットをした話をします。ざっくりいうとCloudflare内のKVという機能を使い、最適化をした画像をキャッシュしました。似たような問題で悩んでいる方は参考にしてもらえると嬉しいです。 TL;DR Cloudflareで画像のリサイズ(形式変更)を行っていた リサイズ後の画像はデフォルトではキャッシュされず、都度リサイズの処理が実行されていた Cloudflare内のWorker KV機能を使いキャッシュの実装をしたところ、コストがおよそ97%削減できた TL;DR 前提 問題 対策 Workers KVとは 注意事項とか サンプル 事前準備 KVのnamespace作成 KVをworkerに登録 流れ Keyについて
import { http, HttpResponse } from 'msw'import { setupWorker } from 'msw/browser' // Describe the network.const handlers = [ http.get('https://acme.com/product/:id', ({ params }) => { return HttpResponse.json({ id: params.id, title: 'Porcelain Mug', price: 9.99, }) }),] // Enable API mocking anywhere.const worker = setupWorker(...handlers)await worker.start() Omit implementation details Intercept
フィードバックを送信 Service Worker によるセッション管理 コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 Firebase Auth では、Service Worker を使用して Firebase ID トークンを処理し、セッション管理を行うことができます。この方法には、次のような利点があります。 追加の作業を行わずに、サーバーからの HTTP リクエストに ID トークンを渡すことができます。 追加のラウンド トリップやレイテンシを発生させずに、ID トークンを更新できます。 バックエンドとフロントエンドのセッションを同期できます。この方法は、Realtime Database や Firestore などの Firebase サービスや、外部サーバーサイドのリソース(SQL データベースなど)にアクセスする必要のあるアプリケーションで
こんにちは。開発本部 認証連携チームでエンジニアをしている id:ruru8net です。前回はこちらの記事を書かせていただきました。 tech.classi.jp 現在は認証基盤再建というプロジェクトの中で、主にフロントエンド開発を担当しています。この記事ではフロントエンド開発においてAPIのモックのために「Mock Service Worker」を使ったところスムーズに開発を進めることができたので、使い方を紹介したいと思います。 mswjs.io ツールの導入 弊社ではフロントエンドのフレームワークにAngularを採用しているのでAngularでの導入手順を記します。 基本的にはドキュメントの手順通りです。 1. インストール $ npm install msw --save-dev # or $ yarn add msw --dev 2. モックを定義 src/mocks/hand
こんにちは。メルカリのNotification teamでソフトウェアエンジニアをしている@naruseです。 この記事は、Mercari Advent Calendar 2021 の19日目の記事です。 はじめに 私が所属しているBusiness Platform Notification teamでは、2つの役割で通知周りの基盤を担当しています。 1つ目はアプリケーションとしての役割の通知です。メルカリでは、アプリ内でのお知らせや個別メッセージ、やることリストなどを提供しています。私たちはそれらの膨大なデータを管理し、作成や取得のリクエストに応えています。これらの膨大なデータに対する私たちのチームの過去の記事として、昨年のAdvent calenderの一部である本番稼働中の Spanner にダウンタイム無しに57時間かけてインデックスを追加して得た知見をぜひご覧ください。 2つ目は
Worker Tools are a collection of TypeScript libraries for writing web servers in Worker Runtimes such as Cloudflare Workers and Deno Deploy. ToolsServicesHow to UseExamplesQuestionsWhat niche do Worker Tools fill?Tools🧭 Worker Router — Complete routing solution that works across CF Workers, Deno and Service Workers🔋 Worker Middleware — A suite of standalone HTTP server-side middleware with TypeS
サーバーが自分自身と同じプログラムを配信して、それをブラウザがロードして、どちらでも同じコードが実行され、サーバーだけではなくブラウザからもレスポンスを返す魔法「Service Worker Magic」を紹介します。 Service Worker Magic こういうことです。 サーバーはCloudflare Workers、ブラウザはService Workerのプログラムを指す サーバーのプログラムはsw.js、ブラウザで動くプログラムもsw.js 全く同じ内容かつ同じリソースを参照して、同じように動く サーバーsw.jsが自分自身のコードsw.jsを/sw.jsというパスで配信する /にアクセスするとsw.jsがService Workerとして登録される /sw/*をService Workerのスコープにする /server/helloにアクセスするとサーバーからレスポンスが返
現在、Ruby 製 worker を作成することを業務で行っているのですが、継続的にメモリ使用量が増加する現象に遭遇してました。 (グラフの値が下がったタイミングが数回ありますが、それぞれでデプロイが行われてリセットされただけ) ObjectSpace.allocation_sourcefile や ObjectSpace.allocation_sourceline を利用してどのファイルのどの行でメモリ確保が多くなるのか調べれるようにしました。 以下のようなコードを worker に追加しました。 require 'objspace' class MemoryProfiler INTERVAL = 5 * 60 DISPLAY_COUNT = 20 def self.start Thread.start do loop do memory_usages = {} ObjectSpace.
2023-03-06 Mon Service WorkerとCache APIによるWebサーバーの負荷軽減とテスト実装について-後編 ニコニコQセクションのHajime-san(GitHub)です。 本記事は、Service WorkerとCache APIによるWebサーバーの負荷軽減とテスト実装について-前編の続きとなります。 テストについて さて、前編のService Workerスクリプトの実装はローカル開発環境および検証環境での確認を経て本番環境にデプロイされているのですが、このままでは「なんとなくキャッシュが動いている」という状態がブラウザ上に構築されていることになるので、Service Workerの振る舞いの仕様書となるテストコードが欲しいというのが本稿のもう1つの主題になります。 Service Workerのテストについては筆者が知る範囲ではインターネットにはあまり知
昨日、「CDN のエッジで実行する系」として、Vercel Edge Functions や Cloudflare Workers、Faslty Compute@Edge などを紹介した。 CDN のエッジで実行する系が面白い - ゆーすけべー日記 これらが提供する機能とそれを書くための API は、当然ながらプラットフォームごと異なる。 そのため我々は今まで触れたことのないプラットフォームのスクリプトを書くとなれば API リファレンスを読む必要がある。 ただ、共通する点が 2 つある。 1 つはほとんどのエッジサービスは JavaScript で記述できるという点だ。 Fastly Compute@Edge は WebAssembly へ最終的にコンパイルされるが、とにかく JavaScript で書ける。 あるいはトランスコンパイルの環境があれば TypeScript で書ける。 も
Transparent API Write code once, run it everywhere – in web workers and node worker threads. Call workers transparently, await results. It's never been easier. // master.js import { spawn, Thread, Worker } from "threads" const auth = await spawn(new Worker("./workers/auth")) const hashed = await auth.hashPassword("Super secret password", "1234") console.log("Hashed password:", hashed) await Thread
WATCH huge concert hall ceiling collapse in St. Petersburg, one worker has been killed A construction worker has been found dead after a St. Petersburg concert hall collapsed as it was being demolished. Footage shows tragic moment a worker desperately scrambled to reach a crane as the structure broke apart. Drone footage shows a huge cloud of dust coming from the St. Petersburg Sports and Concert
Web Workers APIを使うのは初めてなので、この使い方で問題ないのかはよくわかっていない。これから学んでいきます。 動機 会社でtextlintを便利に使っており、ユーザーさんからのお問い合わせ窓口を自社開発しているので、返信内容を送信前にlintにかけたいというのも自然な流れ。などと思っていたら、azuさんがこういうのを用意してくれていた。 textlint 12リリース、ブラウザで動くtextlint editorをベータリリース | Web Scratch GitHub - textlint/editor: textlint editor project. 内部での利用だからtextlintをサーバーで動かして結果を受け取るのでもいいけど、これのためにWebサーバーにNode.js入れて動かすのもなんかやりすぎ。かといってJobサーバーで動かす構成にするのはもっとやりすぎ。
Partytown とは GitHub - BuilderIO/partytown: Relocate resource intensive third-party scripts off of the main thread and into a web worker. 🎉 今Partytownがヤバい。JavaScript Sandboxの未来はどっちだ? 要は 3rd party script を安全に隔離するため、 WebWorker + DOM の mock で動かす。 GitHub - ampproject/worker-dom: The same DOM API and Frameworks you know, but in a Web Worker. この DOM がすごい2018: worker-dom - mizchi's blog worker-dom との一番の違
2023-02-27 Mon Service WorkerとCache APIによるWebサーバーの負荷軽減とテスト実装について-前編 こんにちは。ニコニコQセクションのHajime-san(GitHub)です。 当記事では所属部署で開発に携わっている「ニコニコオーディション」の既存システムにService WorkerとCache APIを用いて、 Webサーバーからのレスポンスを一定期間保存し、キャッシュ(CacheStorage)からレスポンスを返すことによってWebサーバーへの負荷軽減を実現するまでの経緯や実装などを紹介します。 オーディションシステムの紹介 システムの概要 まず初めに本稿の主題となるシステムが抱える課題について、先ほどサラッと単語が登場した「ニコニコオーディション」というシステムの前提があるとより理解が明瞭になるのでこちらを紹介します。 ニコニコオーディションとは
CloudflareのD1がAlpha版として使えるようになったしWorkerやHonoの練習も兼ねて何か作ってみたい、ということで今回はLINE Botを作ってみることにする。 まず最初はHono + Workerを使ってLINE Botからのイベントを取得するだけの最低限の挙動をするLINE Botを作るところから始める。 次にBotとメッセージのやりとりができるメッセージをおうむ返しするBotを作る。 さらに最後はもう少し意味のあるBotとしてD1とOpenAIも使って英会話の練習相手となるような会話ができる友達Botを作ってみる。 最低限の挙動をするLINE Botを作る 参照: Messaging APIの概要 チャネルを作成する そもそもチャネルとは下記。 チャネルは、Messaging APIやLINEログインといったLINEプラットフォームが提供する機能を、プロバイダーが開
Ruby 3.2 から WASI ベースの WebAssembly がサポートされるということで、すでに Preview 版も公開されています。 この記事は、正直 WebAssembly とか WASI とかよく分かっていない1人間がブラウザ上で Ruby を色々動かしてみる記事です。とりあえず動けばいいという感じなので、おそらく無駄な記述も多いかと思います。ご了承ください。 作るもの テキストボックス等に記述された任意の Ruby スクリプトをブラウザ上で動かして、その実行結果を得られるようなもの。 要するに RubyOnBrowser とか TryRuby とかの二番煎じを作りたいのです。 とりあえず Ruby スクリプトを動かす ruby.wasm の github 上に Quick Start (for Browser) が載っているので、まずはこれをほぼそのまま。 <html>
mizchi/minlink: Minimum(> 1kb) and isomorphic worker wrapper with comlink like rpc. というライブラリを作った。自分で使ってみて、とても便利だったので紹介する。 概要 Browser WebWorker / Node worker_threads を同じ API でラップして、関数呼び出しのように使える Magical なことをしない軽量 comlink みたいなもの 双方向で API をラップできる Web Worker を使う思想的な背景は off-the-main-thread の時代 - mizchi's blog にて。 使い方: Browser WebWorker をラップする。 // browser worker.js import { expose } from "minlink/dist/b
Deno Deploy とは Deno Deloy は Node オリジナル作者であり、 Deno 作者の Ryan Dahl が作った会社のサービス Announcing the Deno Company | Deno Blog 面白いのは、 Vercel の Guillermo Rauch が出資してる In order to vigorously pursue these ideas, we have raised 4.9 million dollars of seed capital. Our investors are Dan Scholnick from Four Rivers Ventures, Guillermo from Rauch Capital, Lee Jacobs from Long Journey Ventures, the Mozilla Corporatio
Rensselaer Polytechnic Institute filed a million-dollar lawsuit against a cleaning company after a custodian, seeking to stop an "annoying" beep, allegedly turned off a lab freezer and killed decades of "groundbreaking" research. The school in Troy, New York, had contracted with Daigle Cleaning Systems Inc. to clean the Cogswell Building lab between Aug. 17, 2000, and Nov. 27, 2020, according to a
Intro Podcast を PWA 対応するために、待望だった機能の 1 つが Background Fetch だ。 これにより、通常 Range Request で取得するような、大きなファイルを事前にダウンロードしておくことができるようになる。 この API と、 Service Worker およびブラウザにおける Range Request/Partial Response の扱いについて記す。 background fetch Podcast は大きな音声ファイルがメインコンテンツとなる。 PWA のキャッシュ戦略典型例としては install 時に全てキャッシュする request 発生時にキャッシュする といった方法がある。 しかし、この方法は一般的な Podcast としては少し使いにくい。 install 時に全てのファイルをキャッシするのは現実的ではない requ
Reuters documented at least 600 previously unreported workplace injuries at Musk’s rocket company: crushed limbs, amputations, electrocutions, head and eye wounds and one death. SpaceX employees say they’re paying the price for the billionaire’s push to colonize space at breakneck speed. One windy night at Elon Musk’s SpaceX facility in McGregor, Texas, Lonnie LeBlanc and his co-workers realized t
The best “Application programmers” are cultured to focus on business requirements and they typically don’t always factor in the need for concurrency — and that’s the way it should be. We don’t think of concurrency first — we think of “business requirements first”. Often the complexities involved in writing concurrent code are abstracted inside a Go library or a third-party package (e.g. HTTP serve
本稿では、Node.jsのWorker Threadsとその基本的な使い方について説明します。 本稿で知れること Worker Threadsの概要 Worker Threadsとは何か? それが解決してくれる問題は何か? worker_threadsモジュールの基本的な使い方 スレッド起動時にデータを渡すにはどうしたらいいか? 3秒かかる処理を、並列処理で1秒に短縮する方法。 Worker Threadsとは? CPUがボトルネックになる処理を、別スレッドに負荷分散し、効率的に処理する仕組み。 マルチプロセスではなく、シングルプロセス+マルチスレッドのいわゆる「本物のスレッド」です。 Worker Threadsが解決する問題 Node.jsはシングルプロセス、シングルスレッド。 シングルプロセス、シングルスレッドは、シンプルさという利点がある。 一方で、CPUに高い負荷がかかる処理は、
TL; DRCloud Run の Always on CPU を使うと、Cloud Pub/Sub から Pull する Worker を Cloud Run で実行出来ます。ただし、スケーリング等にいくつか諸注意があります。 はじめにCloud Run の Always on CPU が Preview でリリースされて、バックグラウンド タスクや非同期処理で使えると Twitter で宣伝したところ、私の tweet 史上、一番の反響を頂きました。ありがとうございます。また同僚の Shingo-san が素敵な解説記事を書いてくれたり、同じく同僚の Pottava-san も素敵なサンプルコードを書いてくれてたり。「tweet してるだけでいいのかい?本当に?」という私のエンジニアとしての良心の呵責があったため、私もこうして記事を書いています。 試したこと以前、お客様から Cloud
Service Worker は独自のライフサイクルを持っている。ブラウザにインストールされ、有効化され、そして新しい Service Worker に置き換えられる。 Service Worker を正しく使うためには、このライフサイクルに対する理解が不可欠である。これを理解していないと、意図した通りに動かせず、古い Service worker が動作し続けてしまうなどの不具合を起こしてしまう恐れがある。 そのためこの記事では、Service Worker はどのようなライフサイクルを辿るのかを見ていく。 また、Service Worker の挙動には「スコープ」という概念も影響してくるため、スコープについても説明する。 プッシュ通知やオフライン対応などの、Service Worker を使うとどんなことが出来るようになるのか、といったことについては扱わない。それらの機能の基盤である
Why Google Sheets ported its calculation worker from JavaScript to WasmGC Stay organized with collections Save and categorize content based on your preferences. Google Sheets is one of the first products at Google to use WasmGC on Chrome. The move was announced in 2022, and the Sheets and Chrome teams partnered on standardization, engineering, and tooling to provide real-time feedback on optimizat
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く