2025-12-05

新しいプログラミング言語「Sui」誕生の投稿を見て、早速実装、Geo3x3!

Suiは、1行1命令、マシン語のようなシンプル言語。オペレーターは記号1文字、変数名や、関数名は連番で指定する。WebAssemblyに近い。

例えば、下記は変数2つを足し算して、表示するプログラム。

= v0 100 = v1 23 + v2 v0 v1 . v2

(v?は変数。=は代入、+は足し算して代入、.は表示をそれぞれ表すオペレーター)
100 + 23 を計算し、123 と表示される。

Geo3x3を移植するために関数(floor, chr, len, floordiv, find_num)をそれぞれSuiで実装し、Suiに付属するPythonからSuiへのコンバーターで変換したプログラムをSui化した。

; len # 0 1 { = v0 0 : 0 ] v1 a0 v0 ~ v2 v1 0 ? v2 1 + v0 v0 1 @ 0 : 1 ^ v0 } ; floordiv # 1 2 { % v0 a0 a1 - v1 a0 v0 / v1 v1 a1 ^ v1 } ; find_num # 2 1 { = v0 "0123456789" = v1 0 : 0 ] v2 v0 v1 ~ v3 v2 a0 ? v3 1 + v1 v1 1 ~ v3 v1 10 ? v3 2 @ 0 : 1 ^ v1 : 2 ^ -1 }

; floor # 0 1 { % v0 a0 1 - v1 a0 v0 ^ v1 } ; chr # 1 1 { $ a0 0 a0 ; floor ] v0 "0123456789" a0 ^ v0 }

#で始まるのは関数定義、関数のID,引数の数、{ } 内がローカルスコープを持つ本体となる。


Suiをインストールし、コマンドラインから実行、変換成功!

src on GitHub


「Geo3x3」

112のプログラミング言語に対応する、ジオコーディング、Geo3x3。

links
- Web標準の並列プログラミング言語WGSL on Deno、Geo3x3がサポートする111言語目
- 50言語目のGeo3x3実装はIchigoJam BASIC! 固定小数計算ライブラリと伝説の言語COBOL
- 緯度経度に代わる位置をシンプルに表す Geo3x3(ジオスリーバイスリー) パブリックドメイン化!

2025-12-02
#js #qr 
QRコードのアルファニューメリックモード(数値、大文字アルファベット、スペースと記号の一部を効率よくエンコードするモード)を使って、バイナリデータを効率よく埋め込むためのエンコーディング、Base41QRをつくりました。


「Base41QR encoder/decoder」

こちらはテスト用のウェブアプリ。任意の文字列を、数値0-9、大文字アルファベットA-Z、記号5種類($%*+-)の合計41文字種を使った表現と相互変換します。

なぜ41文字かというと、2byteのバイナリデータ65536種類を3文字で表現するためには、3乗した値が68921となる41がちょうどよいからです。QRコードのアルファニューメリックモードで登場する、スペースやコロンなど4文字が不使用となるため、データの区切りなどに使えて便利です。


「code4fukui/Base41QR」

ソースはこちら、オープンソース!

links
- QRコードのアルファニューメリックモード用エンコーディングのJavaScript実装、Base45QR
- QRコードをチャンク分割で効率化しよう!

2025-11-30

札幌駅からまっすぐ伸びる地下道。寒くても吹雪でも安心です。途中にオープンデータの告知を発見!


「札幌市ICT活用プラットフォーム DATA-SMART CITY SAPPORO」

札幌市が公開するいろいろオープンデータが見られます。


「砂箱位置情報 - 砂箱位置情報 平成30年1月公開用 - CKAN」

発見した耳慣れない位置情報付きオープンデータ。「歩道へ散布するための滑り止め材が保管されている砂箱の位置情報を記録したデータ。」と、雪国ならではのオープンデータ。


「砂箱マップ 札幌市」

ひとまず可視化。消火栓のようにまちの中に規則正しく並んでいました。

オープンデータから探る、新しいアイデアもいいですね!

links
- 北海道起業家甲子園にてNICT賞、ラップで認知症を予防する「ラップDE老GO」

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS