ウェブフロント
- angular
- corewebvitals
- editorconfig
- gatsby
- hls
- html
- javascript
querySelectorAllで取得した要素は配列ではないらしい
JavaScript 配列内のオブジェクトの更新ってどうする?
デバッグ関数とかnullチェック関数をutil/index.tsにおいとけば楽なことに今頃気づいた。
ブラウザからジャイロセンサーを使ってみる
JS 画像のアップロード、プレビュー機能を実装
「数値から各桁の値を取り出す処理」って言われたら数学的な処理が一番に思い浮かぶけど、JSならそんなことなかった。
Callback時代の関数をPromise化する
個人的実装されてほしいECMA Script Proposal
JavaScriptのprototypeを使う
音声をなみなみさせる
AudioWorkletとAudioWorkletProcessorを使って音声のビジュアライゼーション
- next
- nuxt
- playwright
- prettier
- react
- reactnative
- tensorflowjs
- tools
- typescript
- wasm
- websocket
- ポエム
- 開発環境
サーバー
その他
zig言語
インストール
brew install zig
プロジェクトの作成
mkdir zig-playground
cd zig-playground
zig init-exe
build.zig
ファイルを使ってビルドする。自分でビルドコマンドを実行してもよい。実行
zig run src/main.zig
# もしくは
zig build run
ハローワールド
main.zig
const std = @import("std");
pub fn main() anyerror!void {
std.debug.print("Hello, {s}!\n", .{"World"});
}
クイックソート
pub fn quicksort() void {
var array = [_]i32{ 4, 6, 1, 3, 9, 2, 1 };
for (array) |_, i| {
var j: usize = 0;
while (j < array.len - i - 1) : (j += 1) {
if (array[j] > array[j + 1]) {
// swap
const temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
// 出力
for (array) | v | {
std.debug.print("{d}\n", .{ v });
}
}
wasm
export fn add(a: i32, b: i32) i32 {
return a + b;
}
コンパイルする。
zig build-lib src/wasm.zig -target wasm32-freestanding-musl -dynamic -O ReleaseSmall --export=add
HTMLから読み込む。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WebAssembly</title>
</head>
<body>
<script>
WebAssembly.instantiateStreaming(fetch('wasm.wasm'))
.then(obj => {
const res = obj.instance.exports.add(1, 2);
console.log(res)
});
</script>
</body>
</html>
wasmの中身。
(module
(memory $memory (;0;) (export "memory") 1)
(global $global0 (mut i32) (i32.const 65536))
(func $add (;0;) (export "add") (param $var0 i32) (param $var1 i32) (result i32)
local.get $var1
local.get $var0
i32.add
)
)
Thanks you for reading.