タグ

関連タグで絞り込む (243)

タグの絞り込みを解除

javascriptに関するsh19910711のブックマーク (1,944)

  • Rust製JavaScriptエンジン『Boa JS』を試してみた

    主要なJavaScriptエンジンのTest262を毎日実行して結果を載せているtest262.fyiというサイトがあります。 (Test262とは最新のECMAScriptを実装できているかどうかのテストです。) このサイトの、2024/6/5現在の実装率ランキングはこちらです。 test262.fyiの画面キャプチャ(2024/6/5) V8(ChromeやNode.js、Deno等)、JavaScriptCore(SafariやBun等)、SpiderMonkey(Firefox等)という、大手エンジンとほぼ横並びで4位にい込んでいるBoaとは何者でしょうか。 Boaは公式曰く『Rustで書かれた実験的なJavascriptのレキサー、パーサー、コンパイラー』です。これだけ揃えば、JavaScriptエンジンと言って差し支えないと思います。RustアプリケーションにJavaScri

    Rust製JavaScriptエンジン『Boa JS』を試してみた
    sh19910711
    sh19910711 2024/06/12
    "ユーザーが自分でJavaScriptを書いて使えるプラグインのような機能を提供したい / Boa: Rustさえあれば、Cargo.tomlに1~数行書くだけで使い始められ + 簡単に組み込めることをアピールしています"
  • AWS Lambda特化のJavaScriptランタイム「LLRT」を紹介 - maybe daily dev notes

    最近にわかに話題沸騰中のJavaScriptランタイム LLRT を紹介する記事です。 github.com LLRTとは LLRT (Low Latency Runtime) は、軽量なJavaScriptランタイムです。サーバーサイド向けのJavaScriptランタイムはNode.js、DenoBunなどが有名ですが、それらにまた一つ加わった形になります。主にLambdaでの利用が念頭に置かれているようです。その他必要な情報は README.md にまとまっています。以下は抜粋です。 AWSのソリューションアーキテクト Richard Davison さんにより開発されています。リポジトリがAWSGitHub organization (awslabs) で公開されているため、実験的ではありますが、AWS公式のプロジェクトと言って良いでしょう。 ここ5日間ほどでとんでもない勢いでG

    AWS Lambda特化のJavaScriptランタイム「LLRT」を紹介 - maybe daily dev notes
    sh19910711
    sh19910711 2024/06/12
    "LLRT: QuickJSをRustから呼び出す rquickjs というライブラリを利用 + Node.js特有のAPIをRustで独自実装することで、Node.jsとの互換性を高めています / Lambdaのコールドスタートが最大で10倍短くなることが謳われ"
  • テストコード品質を高めるためにJS向けMutation Testingライブラリ・Strykerを実戦導入してみた

    はじめに 株式会社hitocolorのKanonとしてはお初にお目にかかります。実は2024年2月からhitocolor様に副業先としてジョインさせていただいてます。 hitocolor様ではkokoroeというeラーニングサービスの開発をお手伝いしています! hitocolor様にjoin後、最初に着手した格的な案件が今回の記事で書くStrykerの導入です。 Stryker自体は業[1]の方の社内勉強会で登場したTOPICSで、その時から関心を持っていました。 業の方ではそれよりも優先度の高いタスクがたくさんだったので導入の目処がなかったのですが、hitocolor様の方で提案したところ「いいね!」とおっしゃっていただき導入する運びになりました。 そして導入にあたっていろいろやったことを、「せっかくなので記事として公開してみよう!」とお話をいただき今に至ります。 Mutation

    テストコード品質を高めるためにJS向けMutation Testingライブラリ・Strykerを実戦導入してみた
    sh19910711
    sh19910711 2024/06/09
    "Mutation Test: コードを意図的に変更しバグを植え付け + a===0をa!==0のように改変する(=変異させる) / 正しくテストが書かれていたとすれば、結果は変異前と変わるためテストが失敗するはず"
  • プロンプトからREST APIを作るサービス『Hanabi.REST』の技術構成

    Hanabi.REST AIにHonoJSのバックエンドを書かせて遊ぶ、Hanabi.RESTというサービスを一般公開します。それに際して、この記事では、Hanabiの紹介と簡単に技術スタックを解説していきます。 皆さんは、AIがプロンプトからUIを生成する、V0というサービスをご存じですか?僕はあれを見たときに、ある妄想が膨らみました。 「V0のAPI版があれば、プロンプトからWebアプリケーションを作れるやん!!」と。 当初はハッカソン用の小プロジェクトとして始めましたが、想定以上に面白い結果が得られたため、開発を継続することにしました。技術的な制約、様々な黒魔術による不安定な挙動、LLMの劣化など、数多くの壁を乗り越えながら、約半年をかけてようやくリリースに至りました!! 次のリンクから実際にAIが生成したTwitter風のAPIを試すことが出来ます! また、会員登録すれば誰でもAP

    プロンプトからREST APIを作るサービス『Hanabi.REST』の技術構成
    sh19910711
    sh19910711 2024/05/29
    "速く、面白く、動くをコンセプトに開発 / プロンプトを元にAIがAPIの仕様を決めて、SQLを書き、HonoJSで実装 / 生成されたAPIは、ブラウザ上でそのまま試すことが出来る上に、ローカル環境にクローンしたり"
  • SharedArrayBuffer とクロスオリジン分離の問題への対処の記録

    Legalscape (リーガルスケープ) アドベントカレンダー 2021 の 12/20 (月) のエントリです。日のエントリは、Legalscape が遭遇した SharedArrayBuffer とクロスオリジン分離の問題についてお送りします。 「何もしていないのに Legalscape が壊れました」 それはある夏の暑い日のことでした。 あるお客様からのお問い合わせで「Legalscape が突然使えなくなったんですが…」というご連絡をいただいた我々は「あれ? 今日って何かプロダクション環境にデプロイしましたっけ? フロントエンドかな? それともバックエンドの API サーバかな?」などと Slack で会話しながら、どういう問題が発生しているのかを具体的に知るために調査に取り掛かりました。 このときの我々は何も知りませんでした。何もしていないのに Legalscape が壊れた

    SharedArrayBuffer とクロスオリジン分離の問題への対処の記録
    sh19910711
    sh19910711 2024/05/21
    "あるメンバーの環境では確かに問題が再現するが、他のメンバーの環境では再現しない / かの Chrome 92 で必須となった、SharedArrayBuffer 利用時のクロスオリジン分離 (cross-origin isolation) 有効化の影響" 2021
  • PEG Parser Generator + Packrat Parserを実装してみた

    詳しい解説はネット上に沢山存在するので割愛しますが、ご覧のようにEBNFの表現の一つに(EBNFはいくつかの表現方法があるようです。例えばこれはW3Cが定義しているものです)似ています。違いは先に述べたようにChoiceの働きが異なるのと、文法上に先読みが存在することです。 このPEGを使って四則演算を受理するシンプルなルールを書くとすると、例えばこのようになります。 # expressionからパースが始まるとする expression <- additive additive <- multitive ("+" multitive / "-" multitive)* multitive <- primary ("*" primary / "/" primary)* primary <- "(" expression ")" / number number <- digit+ digit

    PEG Parser Generator + Packrat Parserを実装してみた
    sh19910711
    sh19910711 2024/05/05
    "PEGを知ったのは5、6年前で、CoffeeScriptとかelmとかTypeScriptとか、AltJSが実用的なものとして認知され始めた時期 / PEG.jsを久しぶりに触っているうちにPEG Parser Generatorそれ自体を実装してみたいという気になって" 2018
  • WebHID APIを使ってJoy-ConとChromeを簡単コネクト - Qiita

    Joy-ConとChromeがツナガル こんな感じでJoy-Conをクネクネ動かしたりスティックをグリグリしたりすると、Chromeに表示されたJoy-Conが連動して動きます。Joy-Conって、普段はNintendo Switchゲームする時に使うコントローラーなので、こうしてブラウザのChromeと連動して動くだけでワクワクします。 このアプリはGoogleエンジニアの方が作られたもので、以下のGitHubで公開されています。 https://tomayac.github.io/joy-con-webhid/demo/ https://github.com/tomayac/joy-con-webhid どうやっているの? WebHID APIという技術が使われています。 このAPIを使うことで、Webアプリケーションからニンテンドースイッチのジョイコンやプレイステーションのデュア

    WebHID APIを使ってJoy-ConとChromeを簡単コネクト - Qiita
    sh19910711
    sh19910711 2024/04/26
    "WebHID API: キーボードやマウス以外のさまざまなデバイスを制御 + Chrome89ではWebHIDがデフォルトで有効 / Joy-Conをクネクネ動かしたりスティックをグリグリしたりすると、Chromeに表示されたJoy-Conが連動" 2021
  • lumeで個人サイトを作り直した - はいばらのブログ

    フロントエンド技術に触れる機会を作るために、定期的に個人サイトを作り直している。 今回はVue.jsのSPAから、Deno向け静的サイトジェネレータであるlumeを使った構成にごっそり変えた。 lume.land SSGをしっかり触るのは初めてだったこともあり、ひとまずlumeの公式サイトにあるドキュメントを読んだ。 こういう文書が整理されているのは当にありがたい。 手を動かしながらチュートリアルを進めてみて、最近のNext.jsやNuxt.jsよりずっとシンプルで、Jekyllなどよりも取り回しが良く拡張性が高い、というような感触があった。 今回はこのような構成で作ってみた。 静的サイトジェネレータ: lume テンプレートエンジン: JSX CSSフレームワーク: Tailwind CSS ホスティング: Cloudflare Pages またTailwindの実装集であるHyper

    lumeで個人サイトを作り直した - はいばらのブログ
    sh19910711
    sh19910711 2024/04/25
    "フロントエンド技術に触れる機会を作るために、定期的に個人サイトを作り直している / lume: Deno向け静的サイトジェネレータ + Next.jsやNuxt.jsよりずっとシンプルで、Jekyllなどよりも取り回しが良く拡張性が高い" 2023
  • 社内で使う npm パッケージの作成に Deno を採用した話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちわ。フロントエンドエキスパートチームの@nus3_です。 最近、社内用の npm パッケージを作る必要があり、そのパッケージは依存が少なく、実装もシンプルだったので、npm パッケージの作成には Deno と dnt を採用しました。 dnt とは dnt は Deno で実装したモジュールを CJS、ESM に対応した npm パッケージに変換してくれるビルドツールです。 使い方も簡単で、次のように dnt が提供するbuild関数にエントリーポイントや出力先などの必要な情報を渡すだけです。 import { build } from "https://deno.land/x/dnt@0.38.1/mod.ts"; await build({ entryPoints: ["./mod/index.ts"], // Denoで実装したモジュールのエントリーポイント outDir:

    社内で使う npm パッケージの作成に Deno を採用した話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sh19910711
    sh19910711 2024/04/24
    "dnt: Deno で実装したモジュールを CJS、ESM に対応した npm パッケージに変換してくれるビルドツール / Deno: Linter や Formatter、tsconfig の設定をせずにすぐに開発を始められる + 実装したい機能に集中できた" 2023
  • Vercel AI SDK で Ollama を使う方法

    はじめに Vercel AI SDK (React 等から LLM の API をいい感じに stream で呼び出せるようにするやつ) から Ollama (OSS の LLM をローカルで動かすやつ) を呼び出す方法を調べました。 参考 課題 Vercel AI SDK の サンプルコードを、OpenAI から Ollama の langchain のモデルを使って、置き換えて動かそうとしたけど、なぜかうまくいかなかった。 解決方法 ここのディスカッションにいろんな解決方法が記載されている。その中からいくつか試した。 解決方法 1 OpenAI Compatibility API を使う OpenAI API と同じ API で呼び出す方法。呼び出せるモデルに制約がある。マルチモーダルの llava は呼び出せない。 URL 変えるくらい。シンプル。すんなり動いた。 解決方法 2 la

    Vercel AI SDK で Ollama を使う方法
    sh19910711
    sh19910711 2024/04/23
    "Vercel AI SDK: React 等から LLM の API をいい感じに stream で呼び出せる / OpenAI Compatibility API (Ollama): OpenAI API と同じ API で呼び出す + 呼び出せるモデルに制約 / 最近、langchain のライブラリの一部が、coreとcommunityにわかれた"
  • Babylon.js で簡単 WebXR

    sh19910711
    sh19910711 2024/04/23
    "Babylon.js: シンプルなコードで3Dシーンを簡単にWebXR対応コンテンツにできる / Babylon.js 5.0ではWebXR LayersやLightning Estimation、Image Trackingにも対応 / WebXR Device API: ChromiumベースのEdgeとChromeは標準対応" 2022
  • GatsbyJS v2 はじめの一歩 (5) GraphQLによるデータ管理 - mottox2 blog

    今までの記事 GatsbyJS v2 はじめの一歩 (1) 開発環境の立ち上げ GatsbyJS v2 はじめの一歩 (2) 実際にページを作る GatsbyJS v2 はじめの一歩 (3) ページにスタイルを当てる GatsbyJS v2 はじめの一歩 (4) gatsby buildとデプロイ Webページを構成するのに必要なのは、HTML, CSS, JSとDataです。Dataというのは stringという文字列だったり、42という数字だったり、{ pizza: true }のようなオブジェクトで表現できます。データはReact Componentの外にあるべきという考えに基づいており、マークダウンやCSVファイル、一般的なデータベース、Web APIなども含めてデータ層で持っておき、そういったデータを簡単に扱えるようにしています。 GatsbyJSではデータ層からReactコンポ

    GatsbyJS v2 はじめの一歩 (5) GraphQLによるデータ管理 - mottox2 blog
    sh19910711
    sh19910711 2024/04/18
    "Webページを構成するのに必要なのは、HTML, CSS, JSとData / GatsbyJS: データとファイルを同列に扱えることによってよりマイクロサービス志向でコンテンツとビューの分離が実現できている" 2018
  • WebGLからWebGPUにステップアップしよう! - Qiita

    はじめに この記事はHIKKYアドベントカレンダー2023の10日目の記事です。 こんにちは、 @emadurandal と申します。HIKKYのエンジン開発部でメタバースエンジンの開発に従事しています。 今回は、WebGLからWebGPUへのステップアップについての記事を書いてみようと思います。 なぜWebGPUが登場したのか WebGLはOpenGL ESのAPI体系をブラウザに移植したものです。 そのOpenGLですが、歴史的経緯により、GPUCPUの性能を完全に引き出しきれないレガシーな部分を引きずっていました。 詳しくはこちらの記事をご覧ください。 そのため、WebGL2の次はWebGL3というわけにはいかなかったようです。 よりGPUの性能を引き出せる、よりモダンなAPI体系が必要でした。ネイティブにはVulkan APIがありますが、それをそのままブラウザに持ってくるには、

    WebGLからWebGPUにステップアップしよう! - Qiita
    sh19910711
    sh19910711 2024/04/13
    "WebGPU: Metal、DirectX12、Vulkanそれぞれの特徴をうまくまとめ、その共通項となるAPI / Compute Shaderがサポートされ、GPUを汎用計算に使える / TensorFlow.jsなどがWebGPUのCompute Shaderを活用するように対応を始めている" 2023
  • Supabase+pgvector+OpenAI API+Remixで類似度検索を実装してみる

    はじめに こんにちは、健常者エミュレータ事例集の管理人をしているcontradiction29です。 「健常者エミュレータ事例集」は、「個人の属性に寄らず、誰もが暗黙知を投稿でき、閲覧でき、評価できるプラットフォームを作る」をコンセプトに開発が進められているプロジェクトです。以下のリンクからアクセスできるので、よかったら閲覧してみてください。 ユーザーはテンプレートにそって経験を整理し、知識として共有し、自由に評価し、コメントで議論ができます。GPL3.0ライセンスの元、コード自体も公開されています。詳しくは以下のレポジトリをご覧ください。 健常者エミュレータ事例集には、今読んでいる記事と関連した記事を表示する機能が実装されています。例えば、記事事中に料理の味を悪く言うのはよくないの関連記事は以下のようになっています。 ※ 2024-04-12時点です 今回は、この関連記事の推薦機能の裏

    Supabase+pgvector+OpenAI API+Remixで類似度検索を実装してみる
    sh19910711
    sh19910711 2024/04/12
    "Supabase: 様々なバックエンド機能の集合体ですが、その中にマネージドPostgresSQL + pgvectorを利用することができるため、ベクターストアとしての利用が可能 / インデックスを作成することを推奨: USING hnsw (embedding vector_ip_ops)"
  • CoffeeScriptは自分にとっては有益だった

    programming notes. mainly about JavaScript / jQuery. [@Takazudo] [takazudo@gmail.com] Hint: alt + / CoffeeScriptは是か否かという話は、CoffeeScriptを調べていれば否応なしに引っかかる話題で、自分もそれについてはかなり考えさせられた。何回かこのブログでも書いたとおり、CoffeeScriptいいなーと思ってはいて、ここ1,2ヶ月はずっとCoffeeScriptでJavaScriptを書いているんだけども、いい点はもちろんあるにせよ、書いているうちに、最初は見えてなかった問題も見えてきたりした感じがするので、その点について少し書きます。 なぜ CoffeeScript がよいか - 0xff.toBlog()なぜ CoffeeScript がダメか - 冬通りに消え行く制服

    sh19910711
    sh19910711 2024/04/04
    "CoffeeScript + Backbone.jsの組み合わせでコードを書くことで、実際に実務をこなすためにかかった時間を、かなり短縮できた / 自分のCoffeeScriptに対する認識は、「フレームワークが一枚かまされたJavaScript」という感じだ" 2012
  • SVG勉強した流れを残したよ - syonx

    zenn.dev SVGのベジェ曲線の基礎から試しながらだんだん応用して進化していく様子をステップごとに区切って残しました。 その中身はこの Zenn の記事にまかせて、ここでは苦労ポイントみたいなのを書いておきます。 こういうのをつくりたい QuartzComposer UnrealEngine Blueprint 懐かしの QuartzComposer …。こういうのを使ってできるインタラクティブグラフィックやゲームではなく、このGUI自体をつくりたい、というお話です。 どうやるか このワイヤーというかコネクターの曲線をどう実現するかが一番悩ましかった。 とりあえず慣れてるVueでノードコンポーネントのところだけ作ってみたりしたけど、配置するにはキャンバスみたいな概念が必要そう。 いろいろ試行錯誤したりしていると、やっぱりSVGじゃね?となって久方ぶりのD3.jsも試してみたけどなんか

    SVG勉強した流れを残したよ - syonx
    sh19910711
    sh19910711 2024/03/10
    "やっぱりSVGじゃね?となって久方ぶりのD3.jsも試してみたけどなんか違う / SVGとVueは相性が良い: Reactもいっしょだと思うけど。グラフィックがリアクティブに動作すると面白い" 2022
  • Remixはこれから間違いなく伸びていくので、2025年頃が楽しみ - Life is Really Short, Have Your Life!!

    気が変わった。T3 Stackそのものは推して行くが、Theoさんの推す構成ではない。 aroundthedistance.hatenadiary.jp フルスタックはReact前提に RailsでフルスタックWebフレームワークの扉が開いた。Rails,Cake.Django等は、MVCのMCがメイン。Vが弱い。Vにテンプレートエンジンを使い、jQueryを使ってインタラクティブなUIを作っていたけど、もうそれが最適な時代ではない。ReactUIをプログラミングする前提に立つと、ルーティングとrevalidateがルート単位で可能なFWが一番開発生産性が高くなる。可能であれば、ビジネスロジックもそこに入れて、だ。 Theoさん提唱のT3 Stackでは、Next.js + tRPCがコアのコンセプト。UINext.jsで書いて、スキーマを決めてtRPCでエンドポイントを生やし、サーバ

    Remixはこれから間違いなく伸びていくので、2025年頃が楽しみ - Life is Really Short, Have Your Life!!
    sh19910711
    sh19910711 2024/03/09
    "RailsでフルスタックWebフレームワークの扉が開いた + MVCのMCがメイン。Vが弱い / T3 Stack: UIはNext.jsで書いて、スキーマを決めてtRPCでエンドポイントを生やし、サーバー通信を行ってUIを更新する" 2023
  • Oramaという検索エンジンでブログ検索を作ってみた

    この記事は、情報検索・検索技術 Advent Calendar 2023の15日目の記事です。 昨年に続き2回目の情報検索のAdvent Calendar参戦です。 今年は、夏にオンライン参加したBerlin Buzzwordsの「The Debate Returns (with more vectors) Which Search Engine?」というセッションでPhilippさんが話題に出したOrama searchという検索エンジンを紹介してみようと思います(Oramaが正式名称なのかな?)。 Oramaという検索エンジン 公式サイトのトップにも記載がありますが、エッジで動作する全文検索&ベクトル検索エンジンというもののようです。 なにそれ?という感じがしますが、オープンソース版のドキュメントを見るともう少しわかりやすい説明になっています。 Orama is a fast, bat

    Oramaという検索エンジンでブログ検索を作ってみた
    sh19910711
    sh19910711 2024/02/24
    "Orama: TypeScriptで書かれた、依存なしで利用できる検索エンジン + エッジで動作する全文検索&ベクトル検索 / tokenize関数を変更できる + 形態素解析ライブラリとして、wakachigakiというライブラリを利用" / 2023
  • Array.prototype.with による不変の配列の更新  |  Blog  |  web.dev

    最近、配列に対して呼び出すことができる新しい相互運用可能なメソッド Array.prototype.with() がブラウザに追加されました。 この記事では、このメソッドの仕組みと、元の配列を変更せずに配列を更新する方法について説明します。 Array.prototype.with(index, value) の概要 Array.prototype.with(index, value) メソッドは、指定された新しい value に index を設定して、呼び出された配列のコピーを返します。 次の例は、年齢層の配列を示しています。配列の新しいコピーを作成し、第 2 の年齢を 15 から 16 に変更します。 const ages = [10, 15, 20, 25]; const newAges = ages.with(1, 16); console.log(newAges); // [1

    Array.prototype.with による不変の配列の更新  |  Blog  |  web.dev
    sh19910711
    sh19910711 2024/02/21
    おお、並べ替えも非破壊的にできるようになったのか / "配列に対して呼び出すことができる新しい相互運用可能なメソッド Array.prototype.with() がブラウザに追加 / Array.prototype.toSorted(): 元の配列を変更せずに配列を並べ替え"
  • Latest topics > JS開発のつらみ - outsider reflex

    Latest topics > JS開発のつらみ 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « 「まんがでわかるLinux シス管系女子」から「ITエンジニア1年生のための まんがでわかるLinux」への改題の意図 Main 理解の不可能性と断絶について » JS開発のつらみ - Nov 20, 2023 JavaScript界隈はソフトウェアのトレンドの移り変わり・流行り廃りが激しい、とはよく聞く。 「だから辛い」とはどういうことなのか、について考えたことのあれこれをXに垂れ流したのを、再編集してまとめた。 流行り廃りの何が辛いのか きっとすでに誰か偉い人も言ってそうだけど、今のWeb技術、特にJavaScriptのつらみは、「プロダクトやサ

    sh19910711
    sh19910711 2024/02/18
    便利そう / "仮に「このフレームワークは2025年に開発放棄します」と最初から明記されてれば、2023年から開発を始めて10年もたせる前提のシステムでは使わないでおこうって判断できる" / 2023