MIT Schemeでdefine-macroする

yuniのレガシーなビルドシステムと決別する最後の壁になっていたMIT Schemeも、define-macro を手作りすることでサポートできた。というわけで、これで従来のビルドシステムから新しいビルドシステムに置き換えられる。。 新しいビルドシステムではLarceny、…

HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査

平成最後の買い物ということで(Mac miniと)HDMIから光デジタルで音声信号を取り出すスプリッタを買ってきた。というか秋葉原にカレーショップC&Cが有るのにビックリした。アレ京王沿線じゃなくても良いのか。。 mac miniはXcode用に一番安い奴(Core i3、128G…

Amazon FireTV Stick 4K

3台目、スマートTV機器としては5台目。 https://mjt.hatenadiary.com/entry/20150923/p1 Nexus Player https://mjt.hatenadiary.com/entry/20151103/p1 AppleTV gen4 https://mjt.hatenadiary.com/entry/20151220/p1 FireTV Stick (gen1) https://mjt.hatena…

処理系間で共通にできるeval APIのサブセット

小ネタ。処理系毎にevalやそれに与えられる環境の機能性が微妙に違うので共通APIを考える会。 eval APIの移植性 Lisp、Schemeと言えばeval。JavaScriptや他の言語でもAPIとして存在するが、Lispではその場でS式を組み立てて使えるのでそれなりに利便性が高い…

yuniのselfboot

もう当分Racket触りたくねェ... (後述) nmoshの互換ライブラリ層を分離した yuni は、どんなScheme実装でもR6RS風のライブラリシステムとR7RS-smallのサブセットを提供することを目的としている。で、従来はCMakeを使ったビルドシステムで一旦ビルドしないと…

ファイル更新に耐性のあるテキストタグ手法を考える

コンパイラの警告やシナリオのコメント、クラッシュレポートの処理等、"行の特定位置にタグを振りファイルが更新されても追跡したい"という需要がそれなりにある。...需要自体は有るんだけど、実装がバラバラになってしまっているので、ちゃんとモデル化し、…

Subversion、MercurialとGitのセマンティクス差をどう埋めるか

ゲームのビルド環境には未だにSubversionやMercurialからインポートしているリポジトリがいくつか存在している(Perforceはついに撲滅に成功した)。しかし、細かいインフラを作っていく中でVCSはできれば統一したい。VCS毎にUIとかいくつも作っていられないか…

define-macro処理系をできるだけHygieneにする

追記: これsyntax-rulesに展開されるsyntax-rulesがダメなんじゃないかという気がする。もっとも、何度リネームしても実害は無い気がするけど。。 前回( http://d.hatena.ne.jp/mjt/20181209/p1 )、define-macro処理系上のsyntax-rulesでシンボルのリネーム…

"Generic Scheme"仕様を考える

yuniのBiwaScheme対応を進める上で用意した"Generic Scheme"仕様が意外と便利な気がしてきたので一般化してSRFI-96( https://srfi.schemers.org/srfi-96/srfi-96.html )のようなrequirement仕様にできないか考えてみる。 "Generic Scheme"はexpanderが簡略化…

プリチャンはどこに向うか

桃山。 前回( http://d.hatena.ne.jp/mjt/20180401/p1 )の予想は新加入キャラが紫ってのしか当たってない!しかもクロスオーバーは初年度である今年からゲームの方で展開されている。VTuberはアイカツがやった( http://nlab.itmedia.co.jp/nl/articles/1806/…

Anker Soundsync A3341

https://www.ankerjapan.com/item/A3341.html 製品サイト https://k-tai.watch.impress.co.jp/docs/column/todays_goods/1139433.html ケータイWatchの製品レビュー AptX sink機器が手元に無いので購入。Windows10以降は標準でAptX codecがシステムに搭載さ…

オブジェクトベースオーディオのためのE-AC-3拡張の規格書を読む

Dolby AtmosのようなオブジェクトベースオーディオをSTBで動作するアプリから出力するにはE-AC-3くらいしか現状選択肢がない。E-AC-3(いわゆるDolby Digital Plus)上のJOC(Joint Object Coding)は一応AppleTVとAmazon FireTVの両方がサポートしている。 http…

Intensity Pro 4K

Amazonでほぼ定価購入。 https://www.blackmagicdesign.com/jp/products/intensitypro4k Blackmagic Design(BMD)は結局このIntensityのライン、要するに一般消費者向けのキャプチャ製品は最近出していないが、まぁアナログSD/HDソースや2Kソースであればコレ…

ビルドログ保持/分析ポリシのメモ

軽い気持ちで考えてたけどコレ意外と難しいぞ。。 やりたいこと "コンパイラ警告が出現したコミットをO(1)で特定する" → 全リビジョンをビルドしてコンパイラ警告を保存しておき、行番号情報を除いた上でそのblameを取る しかし、現状の開発はGitでやってい…

nginxとLassoを使ってサイトをOpenID Connect(Auth0)で保護する

試験的にQiita版: https://qiita.com/okuoku/items/51e12289061ade156107 ★ 注: Lasso自体はあんまりプロダクションに向いていない印象を受けた。全く同じことはoauth2_proxyでも可能で、oauth2_proxyのforkもいくつかあるので、そちらを検討する方が良い気…

ssh port forwardingとstone経由でLet's encryptのワイルドカード証明書を作成する

Let's encryptではワイルドカード証明書を発行してもらうこともできるが、これにはDNS認証が必須となっている。 ...このためだけに動的なDNSサーバを用意するのもちょっと面倒なので、グローバルIPv4アドレスを持つVPSにUDP port 53のパケットを転送させ、ロ…

BiwaSchemeでReactNativeする

というわけで、BiwaSchemeでReactNativeできるようになった。 左はMS Edgeで動作するreact-native-domで、右はWindows版のReactNative( https://github.com/Microsoft/react-native-windows )となっている。(React Nativeの方に出ている"000 000"はFPSカウン…

BiwaSchemeでReactする

諸般の事情でMithrilではなくReactに乗り換えた。 ...単にMaterial-UI( https://material-ui.com/ )が使いたかっただけだけど、最近のReactNativeにはreact-native-domというかなりアツいプロジェクトが有り( https://github.com/vincentriemer/react-native…

BiwaSchemeでWebアプリを作る の2

とりあえずMithrilでイベントをScheme側に渡し、値を更新してビューをアップデートするところまで実装できた。 https://github.com/okuoku/biwasyuni-editortest/tree/175a298e14ee2e530cbb3ff197573ba8f4c92f23 リポジトリにはyuniとbiwasyuniをsubmoduleと…

"アプリケーションのビルド"をSDKとして抽象化できるのか問題

追記: Racket 7は--embed-dllsで完全にstandaloneな.exeを生成できるようになった https://blog.racket-lang.org/2018/07/racket-v7-0.html 実は意外に多くのScheme処理系が単体アプリケーションのビルドを機能としてサポートしている。 Gaucheは最新リリー…

hashtablesとserializeライブラリ

久々にyuniに新しいライブラリを足すことにした。どちらも他所でライブラリにしていたけどyuni本体に有った方が何かと便利なんじゃないかということで移動。 hashtables https://github.com/okuoku/yuni/commit/8ff3723af6f744e3a63d057e98fc30fe7c811ffc#di…

BiwaSchemeで同期I/Oもしたい

ゲームの細かいデータハンドリングはSchemeで書いているので、Webアプリ側でも同じロジックを使いたい。というわけでBiwaSchemeにyuniを適当に移植した。で、適当に移植してみると、やっぱり普通のScheme処理系としても使えた方が便利...というわけでbytevec…

各種オーディオエンジンの調査

ゲームで使うオーディオエンジンのポータビリティを高めるために、WebAudioのCバインディングを考えて、その移植レイヤを各種オーディオエンジンに対して実装するのが良いような気がしている。 ...というよりは、固定機能で実現されることが多いOpenALのオー…

BiwaSchemeでWebアプリを書きたい

https://github.com/okuoku/biwaapp-test/tree/ac3c4e9503493f5a72b4b0f1af597a8e2d4ca0a9 今回のコード BiwaSchemeでyuniのライブラリシステムを導入する目処が立ったので、BiwaSchemeを使ってWebアプリのロジック部分を書けないか検討することにした。 Biw…

Scheme雑記

なんか今週schemeトピック多くない? 今週のyuni/yunibase 処理系ブリッジフレームワークであるところのyuniではs7( https://ccrma.stanford.edu/software/snd/snd/s7.html )をサポートしてみた。yuniffi等もそのうち入れる予定。 yuniでサポートしている処…

CMakeをSchemeにする -- S式のtokenize

意外な伏兵。。 CMakeはそれなりに高速なスクリプティング機能が有るため、やる気になればそれなりに実用的なScheme処理系にできるんじゃないかという気がしている。が、適当にやったらやっぱり遅かったのである程度は真面目にやる必要がありそうだ。 適当な…

define-macroのみ備える処理系のsyntax-rulesサポートは可能か?

追記: Redditの投稿 https://www.reddit.com/r/lisp_ja/comments/8kttfy で、Common Lispでの実装 http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html に言及がある。 追記: (最後の段はあんまり正しくない。 __ でgensymする場合、単一のsyntax-rulesテン…

ゲーム向けファイルシステムの設計の難しさ

ゲーム向けのファイルシステム抽象化は近年超クッソ激烈に複雑化しており、大分手を付けられない問題になってきた。 ゲーム配布/ストレージ様式の変化 ...とにかく歴史的に様々な方式が使用されている。例えば、ゲームを発売後パッチするにはHDDやSSDのよう…

QKK 800x480 小型プロジェクタ

prev: http://d.hatena.ne.jp/mjt/20120102/p1 先代のNEC NP-L50WJD。 https://www.amazon.co.jp/dp/B078J1XYKP 商品ページ Amazonで9800円、プライム会員タイムセール割引で購入。パネル解像度800x480、LED光源の小型プロジェクタ。 2200ルーメンを謳っては…

Irrlicht EngineをXbox OneのUWPに移植してみた

prev: http://d.hatena.ne.jp/mjt/20160421/p1 CMakeでXboxOneのUWPアプリを作る prev: http://d.hatena.ne.jp/mjt/20170820/p1 ANGLEによるOpenGL ESを静的リンクしてXboxOneで使う prev: http://d.hatena.ne.jp/mjt/20150415/p1 モコモコフレンズの3Dモデ…