
日本ソフトウェア協会「SAJ」、設立40周年記念!

「simple music player」 src on GitHub
40周年記念し、私もSUNOでAI作曲して、オープンデータ公開&オープンソースのプレイヤーと共に公開しました。
創ろうソフトウェア(国)!

AIがテーマな、記念パネルディスカッション、SAJ会長、さくらインターネットの田中さん!

参加者、800人以上!
links
- 一般社団法人ソフトウェア協会


「simple music player」 src on GitHub
40周年記念し、私もSUNOでAI作曲して、オープンデータ公開&オープンソースのプレイヤーと共に公開しました。
創ろうソフトウェア(国)!

AIがテーマな、記念パネルディスカッション、SAJ会長、さくらインターネットの田中さん!

参加者、800人以上!
links
- 一般社団法人ソフトウェア協会

せっかくの美しい4種類、バイナリエンコーディング「Base4DNA」としてつくってみました。

「code4fukui/Base4DNA」
パブリックドメインまたはCC0のオープンソースです。
セパレータとしてハイフン「-」を任意の場所に入れてOKです。
ESMモジュールなので、ブラウザ上やDenoで下記のようにお使いいただけます。
import { Base4DNA } from "https://code4fukui.github.io/Base4DNA/Base4DNA.js"; const rnd = crypto.getRandomValues(new Uint8Array(32)); const s = Base4DNA.encode(rnd); console.log(s); // ex) TATGGTATTTATCCGAGATCTGTCAGGAATCGGTTTGCAAGCAGACGGTGGTCAAAAACACGGCGAATTTTGGATTAGCAGCGCGACATGGTTGGTATCGATTAGTATAGACTATGGTACCAGCTTCG const bin = Base4DNA.decode(s); console.log(bin);
Base62UX、16進法(Base16)、Base64URLとの比較です。
import { Base4DNA } from "https://code4fukui.github.io/Base4DNA/Base4DNA.js"; import { Base62UX } from "https://code4fukui.github.io/Base62UX/Base62UX.js"; import { Base64URL } from "https://code4fukui.github.io/Base64URL/Base64URL.js"; import { Base16 } from "https://code4fukui.github.io/Base16/Base16.js"; const rnd = crypto.getRandomValues(new Uint8Array(32)); console.log(Base16.encode(rnd)); // 1 console.log(Base64URL.encode(rnd)); // 2 console.log(Base62UX.encode(rnd)); // 3 console.log(Base4DNA.encode(rnd)); // 4
4bitでエンコードするので、1byteは4文字になります。8bitでエンコードするBase16の倍!
1. b8197e9908d5626eba370e256cbddd911321daa7db73da21dcd1ddd6d577adaf (Base16)
2. uBl-mQjVYm66Nw4lbL3dkRMh2qfbc9oh3NHd1tV3ra8 (Base64URL)
3. heeR_UzJ3ctmAHScd15TBTTQeL3jn9BEWNxt6mSNsypb (Base62UX)
4. GATTCTAAAGCCGCCCTGATCTTGTTACACATTCAGTGGTTAAAACACGCATGGATTCACATAAGTGGTCGCAAGAGAGCACTTCAAGTAAGAATGCGCACGAAGGGCCAACCTAGCGCTTCGTATAT (Base4DNA)
長いけど、かわいい!そんなエンコーディングです。
links
- コピペフレンドリーなバイナリエンコーディング、Base62UX.js
- Base41QR、QRコードに効率よくデータを埋め込もう
- イ文字で作るBase1024Y、一日一創する2週間、第二期jigインターン2023スタート!
- Base64より効率良いBase122の有効性チェックとbin2js改良によるWASMインポート
- 環境にやさしい開発をしよう!JSONへのバイナリ埋め込み量をBase64より14%削減するBase128
- 50音を使ったバイナリ表現、Base50
- 点字を使ったエンジニアフレンドリーなエンコーディング braille-encode、Base256B.js
- クリエイティビティを刺激しよう、IdeaSyncオープン、jigインターン成果発表会、サイフラ (Base16384)

「code4fukui/Base62UX」
パブリックドメインまたはCC0のオープンソースです。
セパレータとしてアンダースコア「_」を任意の場所に入れてOKの仕様としていて、デフォルトで4文字の後に「_」を入れ、約1500万通りある先頭4文字で簡易識別できるようにしています。
ESMモジュールなので、ブラウザ上やDenoで下記のようにお使いいただけます。
import { Base62UX } from "https://code4fukui.github.io/Base62UX/Base62UX.js"; const rnd = crypto.getRandomValues(new Uint8Array(32)); const s = Base62UX.encode(rnd); console.log(s); // ex) yVd1_g1ljLmxku5s6UjERdMGX7BVHJYT6UE1BWNPyrZT const bin = Base62UX.decode(s); console.log(bin);
16進法(Base16)、Base64URLとの比較です。
import { Base62UX } from "https://code4fukui.github.io/Base62UX/Base62UX.js"; import { Base64URL } from "https://code4fukui.github.io/Base64URL/Base64URL.js"; import { Base16 } from "https://code4fukui.github.io/Base16/Base16.js"; const rnd = crypto.getRandomValues(new Uint8Array(32)); console.log(Base16.encode(rnd)); // 1 console.log(Base64URL.encode(rnd)); // 2 console.log(Base62UX.encode(rnd)); // 3
適度に短くて、ダブルクリックで全選択できることをご確認ください!
1. b8197e9908d5626eba370e256cbddd911321daa7db73da21dcd1ddd6d577adaf (Base16)
2. uBl-mQjVYm66Nw4lbL3dkRMh2qfbc9oh3NHd1tV3ra8 (Base64URL)
3. heeR_UzJ3ctmAHScd15TBTTQeL3jn9BEWNxt6mSNsypb (Base62UX)
links
- Base41QR、QRコードに効率よくデータを埋め込もう
- イ文字で作るBase1024Y、一日一創する2週間、第二期jigインターン2023スタート!
- Base64より効率良いBase122の有効性チェックとbin2js改良によるWASMインポート
- 環境にやさしい開発をしよう!JSONへのバイナリ埋め込み量をBase64より14%削減するBase128
- 50音を使ったバイナリ表現、Base50
- 点字を使ったエンジニアフレンドリーなエンコーディング braille-encode、Base256B.js
- クリエイティビティを刺激しよう、IdeaSyncオープン、jigインターン成果発表会、サイフラ (Base16384)