タグ

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

タグの絞り込みを解除

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

  • Gio.jsを使って地球儀を表示してみた話

    はじめに 前々から気になっていたGio.jsを使ってみました。 技術記事というよりは感想やメモの記事になります。 Gio.jsとは Gio.jsは、Three.jsで構築されたWeb3Dグローブデータ視覚化用のオープンソースライブラリです。Gio.jsの違いは、Gio.jsを使用して、宣言的な方法で3Dデータ視覚化モデルをカスタマイズし、独自のデータを追加して、それを独自の最新のWebアプリケーションに統合するのが簡単なことです。 (Gio.js READMEの翻訳を引用) 文章だとイメージが掴みづらいですが、要するに地球儀の3Dモデルを表示できます。 またデータを登録することでデータを地球儀上で可視化できるので、以下画像のような地球儀の表示ができます。 Gio.jsの特徴 Gio.jsは以下の3点を特徴として挙げています。 ①導入のシンプル性 最低4行のJavaScriptコードで3Dの

    Gio.jsを使って地球儀を表示してみた話
    sh19910711
    sh19910711 2025/04/21
    2022 / "Gio.js: 3Dの地球儀を描画でき、データを追加することで国同士の関係を可視化できる"
  • Vitestを使った型テストの始め方

    WeJS @ 42nd https://wajs.connpass.com/event/293440/

    Vitestを使った型テストの始め方
    sh19910711
    sh19910711 2025/02/23
    2023 / "型テスト: Vitestを走らせなくても、テスト結果をリアルタイムに確認できる + 慣れればランタイムのテストよりクイックに書ける / 「あるpropが指定された場合はchildrenを持てない」といったテスト"
  • TypedArray のサイズが可変になる ES2024 Resizable ArrayBuffers

    今までの ArrayBuffer の問題 今まで JavaScript の ArrayBuffer はサイズが変わることを想定していませんでした。そのためサイズを変える必要がある API の仕様を作るとなると ECMAScript サイドではなく、その API サイドでの対応が必要な状況になっていました。 例えば WebAssembly.Memory を見てみましょう。 [LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] interface Memory { constructor(MemoryDescriptor descriptor); unsigned long grow([EnforceRange] unsigned long delta); readonly attribute ArrayBuffer bu

    TypedArray のサイズが可変になる ES2024 Resizable ArrayBuffers
    sh19910711
    sh19910711 2024/09/21
    "これが ECMAScript に入ることによって WebAssembly.Memory で grow メソッドが呼ばれても、 buffer プロパティが detached されず常に同じ ArrayBuffer オブジェクトを返すようになることが期待" '23
  • npm パッケージが独立して管理されているモノレポ環境に npm workspaces を導入する | DevelopersIO

    こんにちは、製造ビジネステクノロジー部の若槻です。 npm workspacesを導入することで、モノレポ環境において npm パッケージを効率的に管理することが可能となります。 今回は、npm パッケージが独立して管理されているモノレポ環境に npm workspaces を導入する機会があったので、その手順をまとめてみました。 手順 導入前の環境 backendおよびfrontendの 2 つの各サブリポジトリで npm パッケージが独立して管理されており、package-lock.jsonおよびnode_modulesがそれぞれ存在しているという環境です。 $ tree -L 3 . └── packages ├── backend │ ├── index.js │ ├── node_modules │ ├── package-lock.json │ └── package.json

    npm パッケージが独立して管理されているモノレポ環境に npm workspaces を導入する | DevelopersIO
    sh19910711
    sh19910711 2024/06/26
    "npm workspaces: node_modules および package-lock.json はルートディレクトリで集約して管理される / 各ワークスペースに対してそれぞれのパッケージがインストールされ / いちから npm 環境を作り直す必要が無い"
  • JSON.parseはなぜanyを返すのか

    はじめに TypeScriptを始めた頃からanyは悪だと教わってきましたが、それなのになぜanyを返すんだ!? なぜJSON.parseがanyを返すのか気になったので、原因を調べたり推測しました。 anyを使うのは当に適切? なぜanyを返すかを調査する前に、TypeScriptのanyとunknownについておさらいしましょう。 any どのような値でも代入を許す型、コンパイラーが型チェックを行わない型 私は後者の意味が重要だと考えています。 unknown TypeScript 3.0から導入された対象の値の型が何かわからないときに使用する型 unknownの値を絞り込むことによって型安全に使用することができます。 kyのresponse.json 少し話が逸れてしまいますが、ここでkyというFetchをより使いやすくしたライブラリの話をします。 kyでは、レスポンスのコンテンツ

    JSON.parseはなぜanyを返すのか
    sh19910711
    sh19910711 2024/06/24
    "TypeScriptを始めた頃からanyは悪だと教わってきましたが、それなのになぜanyを返すんだ / unknown: TypeScript 3.0から導入された対象の値の型が何かわからないときに使用する型"
  • JavaScriptにSchemeを実装する - Qiita

    この記事は完成していません 更にコードに誤りがあったりして修正されていなかったりするので、一度整理されるまで落とすかもしれません この記事の内容 プログラマが美しい言語を求めて最終的にたどり着く言語、LISP。 プログラミング言語を作るということは、難しいと思われがちですが、実際のところ読み取った文字列を解釈するプログラムを作成するだけで独自の言語を作ることができます。 ただし、プログラミング言語として利便性を実用レベルまで持っていくのは通常、容易ではありません。しかし、Schemeであれば比較的実装が簡単かつ高度な言語を作ることができます。 Schemeはシンプルさとパワフルさの両方を兼ね備えたLISP方言の言語であり、ミニマルな仕様から世界で最も実装される言語です。今回はそんなSchemeをJavaScriptに実装します! 最終的な目標は、ブラウザにCUIを表示して対話形式でSche

    JavaScriptにSchemeを実装する - Qiita
    sh19910711
    sh19910711 2024/06/18
    "読み取った文字列を解釈するプログラムを作成するだけで独自の言語を作ることができます / ただし、プログラミング言語として利便性を実用レベルまで持っていくのは通常、容易ではありません" 2018
  • 【統計学】MCMC サンプリングを JavaScript によるアニメーションで実装しながら理解する - Qiita

    Summary JavaScript(TypeScript) で MCMC ・メトロポリス・ヘイスティング法を実装して解説してみる記事です。 概ね こちらの記事 の JavaScript 実装版です。 この節の内容を実感するために一番良い方法は、どんな計算機言語でもいいから、 ここで述べたことを白紙から実装してみることである。 という訳で実際にやってみました。 手元でアニメーションで動いてくれるものが出来て理解が深まりました 😉👌 作ったもの まずは 成果物 をご覧ください。 最初の50回を Burn-in 期間として、棄却含め250回までのサンプリングを散布図にプロットしています。 薄い灰色でプロットされているのは Burn-in 期間です。受容されたサンプルは青い丸印で、棄却されたサンプルは赤いバツ印でプロットしています。 画面の下半分には、受容されたサンプルだけ使ってトレースライ

    【統計学】MCMC サンプリングを JavaScript によるアニメーションで実装しながら理解する - Qiita
    sh19910711
    sh19910711 2024/06/17
    "薄い灰色でプロットされているのは Burn-in 期間です。受容されたサンプルは青い丸印で、棄却されたサンプルは赤いバツ印 / 画面の下半分には、受容されたサンプルだけ使ってトレースラインとヒストグラムを描画" 2020
  • VSCodeのExtensionをMarketPlaceにリリースする方法 - Qiita

    VSCodeのExtensionを作成したら(こちらの記事参照)、次のステップはMarketPlaceにリリースですね。リリースまでの対応についてまとめたので参考にしてください。 VS Codeの拡張機能をマーケットプレイスにリリースするには、以下の手順で行いました。これには、拡張機能のパッケージ化、Visual Studio Code Publisherの設定、拡張機能の公開などが含まれます。 転載元 当記事は以下ブログからの転載です。 TECH BACK Azure DevOpsアカウントの作成とPublisherの登録 アカウント作成 azure.microsoft.com にアクセスしてアカウントを作成します。 このウインドウはそのままContinueでOK この画面まで来たらアカウントの作成はできています。 そのままプロジェクトを作成してしまいましょう。 プロジェクト作成 適当な

    VSCodeのExtensionをMarketPlaceにリリースする方法 - Qiita
    sh19910711
    sh19910711 2024/06/17
    "Azure DevOpsアカウントの作成とPublisherの登録 / VSCE: VSCodeのExtensionをパッケージングし、MarketPlaceに公開するためのツール + Node.jsとnpmがインストールされていること"
  • JSON SchemaのanyOfをTypeScriptの型で表現する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JSON SchemaのanyOfをTypeScriptの型で表現する - Qiita
    sh19910711
    sh19910711 2024/06/16
    "JSON Schema: JSON をバリデーションする (または 型をつける)もの + 身近なところでは OpenAPI などのレスポンス型定義など / テキストエディタ上で補完が効くものは内部的に JSON Schema が使われている" 2022
  • CodeceptJSにトライしてみた。 - Qiita

    最初に 記事はGitHub: GOAMI-Takaaki/codeceptjs-hotel-planisphereの転記になります。 概要 自動化練習サイト「HOTEL PLANISPHERE」を対象に、Gherkin記法のテストを、CodeceptJS で実装したサンプルコードを紹介します。 対象 サービス HOTEL PLANISPHERE - 自動化練習サイト シナリオ testplanisphere/hotel-example-webdriverio-ja 構成 自動化フレームワーク CodeceptJS + Playwright プログラミング言語 TypeScript テスト記法 Gherkin 環境 ライブラリ Node.js OS WSLg + Ubuntu 22.04.2 LTS 基 CodeceptJS とは E2Eテストフレームワークである。 Node.jsプロジ

    CodeceptJSにトライしてみた。 - Qiita
    sh19910711
    sh19910711 2024/06/16
    "CodeceptJS: E2Eテストフレームワーク + Gherkin記法をサポート / コードが直感的で分かりやすい + 対応しているテストツールが多い + プラグインが豊富 / Gherkin: 自然言語で記述するシナリオ・フォーマットの1つ" 2023
  • 【JavaScript】ここがしんどかったよTauri開発【Rust】 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【JavaScript】ここがしんどかったよTauri開発【Rust】 - Qiita
    sh19910711
    sh19910711 2024/06/15
    "Tauri側のコンセプトがRustを最低限書けばあとはJSを書くだけで動くというのがあるのでしょうが明らかにRust側のサンプルが少なすぎる / WRYで対応していないタグやCSSがあって動かない"
  • ruby.wasmでRubyからJavaScriptのメソッドを呼び出すしくみ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    ruby.wasmでRubyからJavaScriptのメソッドを呼び出すしくみ - Qiita
    sh19910711
    sh19910711 2024/06/15
    "ruby.wasmのJS.globalはJavaScriptのglobalThisを表す変数 / JS.global[:document]でglobalThis.documentと同じオブジェクトが取得できます / wit-bindgenをつかってバインディングの実装を生成" 2023
  • WebAssemblyを利用してJavaScriptアプリケーションのパフォーマンスを向上させる方法 - Qiita

    ウェブアプリケーションのパフォーマンス向上は、ユーザーエクスペリエンスの向上に直結します。そこで、記事ではWebAssemblyを使用してJavaScriptアプリケーションの実行速度を向上させる方法を紹介します。 1. WebAssemblyとは WebAssembly(通称Wasm)は、ウェブで高速な実行を実現するためコードです。。これは、ウェブブラウザ内で実行できる低レベルのバイナリフォーマットであり、JavaScriptの補完として設計されています。WebAssemblyの主な目的は、ウェブでの高性能なアプリケーションの実現を支援することです。これにより、C、C++RustGoなどの言語で書かれたプログラムをウェブアプリケーションで直接実行することが可能になります。 Amazon Prime Videoで動画再生にWebAssemblyを採用されている実例があるようです。 2

    WebAssemblyを利用してJavaScriptアプリケーションのパフォーマンスを向上させる方法 - Qiita
    sh19910711
    sh19910711 2024/06/15
    "AssemblyScript: TypeScriptに似た構文を持つ、WebAssembly向けの言語 + 静的型付けやモダンな構文を提供しつつ、WebAssemblyの特性に最適化されたコンパイラを提供 / 単純な計算では、実行速度の差がほとんど感じられない"
  • Hono[炎]っていうイケてる名前のフレームワークを作っている

    Cloudflare Workersは「CDNのエッジで動く」という特徴だけでなく「サーバーレス」の環境としても非常に優秀です。プロジェクトの作成からデプロイまで「4ステップ」で出来ます。 自動的に {project-name}.{user-name}.workers.dev といったURLを発行してくれて、すぐさま公開されます。この手軽さとスピード感はヤバい。スクリプトのサイズが1MB以内、使えるAPIが極端に限られているなど制約がありますが、それはそれで単一機能のシンプルなアプリケーションを作る気にさせてくれます。 さて、このCloudflare WokersでWebアプリを作っていたのですが、だんだんとCloudflare Workersに特化した「Webアプリを作るためのフレームワーク」を作りたくなってきました。手段の目的化です。ということで作り始めました。「Hono[炎]」という

    Hono[炎]っていうイケてる名前のフレームワークを作っている
    sh19910711
    sh19910711 2024/06/14
    "Cloudflare Workersは「CDNのエッジで動く」という特徴だけでなく「サーバーレス」の環境としても非常に優秀 / だんだんとCloudflare Workersに特化した「Webアプリを作るためのフレームワーク」を作りたくなって ~ " 2022
  • kuromoji.js + UniDic で形態素解析(辞書のビルド) - Qiita

    UniDic の matrix.def のサイズが間違っていたので修正しました: 59G → 5.9G kuromoji.js (日形態素解析器 Kuromoji の JavaScript実装)と React でブラウザアプリを作っています。kuromoji.js はデフォルトでは IPADic (mecab-ipadic-20070801) を利用していますが、IPADic は現時点では更新が止まっており、辞書は新しいのがよい…… ということで、今回は UniDic 最新版(unidic-cwj-202302)を kuromoji.js 用にビルドして使ってみることにしました。 結果として、ブラウザアプリで UniDic 最新版を使って形態素解析を動かすことができました。 ただし、UniDic は IPADic に比べてデータ量が多いことに注意が必要です。パソコンのブラウザ(自分の

    kuromoji.js + UniDic で形態素解析(辞書のビルド) - Qiita
    sh19910711
    sh19910711 2024/06/13
    "kuromoji.js: デフォルトでは IPADic + IPADic は現時点では更新が止まって ~ / UniDic: IPADic に比べてデータ量が多い + スマホでは、トークナイザのロードにめちゃくちゃ時間がかかったあと、形態素解析がうまく動きませんでした"
  • 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