タグ

ブックマーク / zenn.dev/mizchi (7)

  • WebAssembly は次世代のコンテナ技術になれるか?

    色々あって WebAssembly の component model を調べていたら、未来が見えた気がしたのでここに書いておきます。 「今の WebAssembly」 とは何か WebAssembly の Web の部分は忘れてください。これは単に JVM version 20xx です。ポータブルなバイナリ仕様です。 実行にあたっては今はホスト言語として JS が使われていますが、実際にはホストがJSである必要すらなく、なんならホストが不要なスタンドアロン環境すらあります。(wasmtime/wasmer) じゃあ WebAssembly は何かというと、サンドボックスで実行される VM の仕様です。比較的高水準なバイナリで、 V8 や Spider Monkey に付属する WebAssembly Runtime や、 Wasmtime や Wasmer といった WebAssemb

    WebAssembly は次世代のコンテナ技術になれるか?
    nagayama
    nagayama 2024/04/23
  • Deno first でやっていく

    去年末ぐらいから Deno を使う割合がグッと増えてきた。最近のJS関連は7割ぐらい deno 環境の VSCode でコードを書いている気がする。 今回はいくつかの実例を示しながら、実際に Deno 使えるじゃんというイメージを持ってもらうためのユースケースを紹介していく。 というか、 deno が普及してくれないと、自分が作ったツールの紹介を全部 deno のインストールから書かないといけなくなる。みんなインストールしといて。 最初に: なぜ Deno を使いたいか 一番の問題点、Node は新しいプロジェクトを一式整えるための手間が非常に重い。 とくに ts で書いたものを他の環境に渡すための方法が未だにしんどい。ある環境で動いたコードをそのままコピーしても、プロジェクト設定の非互換を踏む可能性が非常に高い。 deno にそういう側面がないとは言わないが、非常に少ない。とくに TS

    Deno first でやっていく
    nagayama
    nagayama 2024/04/19
  • Deno CLI コマンド作成 最速 方法 20231218

    この記事は前に書いた記事の抜粋かつ修正版 簡単にライブラリを呼び出すコマンドを作るとなったら、やはり deno + zx(or dux) だと思う。権限管理があって、ファイル単体でモジュールを解決して実行できる。 tl;dr ~/bin/mycmd の単体ファイルでコマンドを作成する shebang に deno permissions を与えて chmod +x する node:util の parseArgs で Deno.args をパース dax でコマンドを実行 実装 ~/bin 等にパスを通してあるとする。 雛形。 #!/usr/bin/env -S deno run -A --ext=ts import { parseArgs } from "node:util"; import $ from "https://deno.land/x/dax@0.36.0/mod.ts";

    Deno CLI コマンド作成 最速 方法 20231218
    nagayama
    nagayama 2024/02/23
  • ChatGPT にHTMLをプレビューさせるChrome拡張を作ってみた

    chat.openai.com 上でマークアップを試行錯誤するための Chrome 拡張を試作してみた。 例えば html+preview のコードブロックを見つけるとその隣に HTML として挿入する。後述するが React Component もプレビューできる。 📎 をクリックすると展開したHTMLを画像としてクリップボードに入れることができる。 いい感じにコードを生成してくれるプロンプトのサンプル集はここに置いてる なぜ作ったか GPT-4 はそこそこ賢いコードを生成できるのだが、細かい修正は行うにはやはりプレビューしながら対話的に行う必要がある。 また、人間がその結果を言語化するより、生成されたHTMLを画像入力として修正プロンプトに使うのが精度がでる。 (備考: まだChatGPT Plus の一部ユーザーに開放されてない機能) react-component の生成: ts

    ChatGPT にHTMLをプレビューさせるChrome拡張を作ってみた
    nagayama
    nagayama 2023/10/14
  • TypeScript 本体のコードを読んでみよう

    みんなお世話になっている TypeScript のコードを読みたいと思ったことはないだろうか。読んだ。 一週間ぐらいかかった。完全に読み切ったとは言えないが、概要は掴んだ。 なかなかに複雑でドメイン知識を得るのが難しかったので、これから読む人向けに、登場人物や概念を整理して紹介したい。 読んだのは 2023/6/8 時点で git clone したコード。 最初に: 自分のゴール設定 複数ファイルにまたがった参照を、 TypeScript の Language Service が提供する findReferences() や findRenameLocations(), goToDefinitions() を使って、インクリメンタルに書き換えたかった。 Terser を使うと、今触ってるオブジェクトが何で、何のメンバを書き換えたかの情報が残らない。これを TypeScript のレイヤーで

    TypeScript 本体のコードを読んでみよう
    nagayama
    nagayama 2023/06/13
  • zig study

    bun を読む前に zig を読むべきだと思ったので、チュートリアルをやっていく まず zig 言語自体のスタンスを確認。 nostd 標準ライブラリなしでもファーストクラスでサポート 上で述べたように、Zigには全くオプションの標準ライブラリがあります。各標準ライブラリのAPIは、それを使用する場合にのみプログラムにコンパイルされます。Zigはlibcとリンクすることも、リンクしないことも等しくサポートしています。Zigはベアメタル開発にもハイパフォーマンス開発にも適しています。 例えば、Zigでは、WebAssemblyのプログラムは標準ライブラリの通常の機能を使うことができ、かつ、WebAssemblyへのコンパイルをサポートする他のプログラミング言語と比較して、最も小さなバイナリを生成することができるのです。 これは自分が必要がほしかった特性 言語仕様の方向性 C++Rust、D

    zig study
    nagayama
    nagayama 2022/07/17
  • Cloudflare D1 がヤバい

    まだ検証足りないけど、マジで想像通りのブツなら魂震えるかもしれん…。 Announcing D1: our first SQL database Cloudflare D1 = Edge SQLite Cloudflare D1 は Cloudflare Worker で、つまり CDN Network 上で sqlite が動きます。これだけなら普通の sqlite ホスティングなんですが、もちろん Cloudflare が出すからにはそれだけではなく、CDN Edge 上に Read Replica がバラ撒かれた sqlite になります。ヤバくないですか? 僕はヤバいと思いました。 このヤバさを知るために、Cloudflare が開発した基盤についていくつか抑えておく必要があります。 Durable Objects は CDN 上の Actor モデルを構築できます。この Acto

    Cloudflare D1 がヤバい
    nagayama
    nagayama 2022/05/12
  • 1