KEXT、DriverKit、USBDriverKit、IOUSBHost [プログラミング]
Raspberry Pi Picoを手に入れてA/Dコンバータを接続するためだけに使っているPi Zero Wとかを置き換えたい、と思った。ところがmacOS側でVender specificなclassのUSBデバイスを接続するやりかたがよくわからない。Pi Pico側はドキュメントやサンプルコードがすでに揃ってるのに。昔なら使い方は超難しいI/O Kitを呼べばユーザ空間からアクセスできた。今でもI/O Kitは有効らしいけど、どうもプログラマからは隠蔽される方向になってるように思える。またいつ突然使えなくなるとも限らない。Appleにはそうやっていままで何度も煮湯を飲まされた。
なかなかまとまったドキュメントがなくて困ってるんだけどなんとなく雰囲気はわかってきた....
なかなかまとまったドキュメントがなくて困ってるんだけどなんとなく雰囲気はわかってきた....
「Eject for Windows」ちょっとだけリバイズ [プログラミング]
ブロックのおかしな動作 [プログラミング]
前回完成した球面非球面のBezier曲線近似。思ったよりうまくできたので、さっそく会社の資料の中に入れた。先日それを会社の別の人が自分の資料のためにpdfからコピーしてぱわぽに貼った。それがなぜかZEMAXのビットマップよりぐにゃぐにゃして醜い。しかもたんなるpdfのビットマップスナップショットよりも汚い。縦横比も微妙におかしい。見せてもらってびっくりした。
ぱわぽってどうなってるんだ????おかしいんじゃないのか?
もう、ぱわぽでの問題はうんざりなので放っておくとして、OS Xのブロックでのおかしな動作について....
ぱわぽってどうなってるんだ????おかしいんじゃないのか?
もう、ぱわぽでの問題はうんざりなので放っておくとして、OS Xのブロックでのおかしな動作について....
コーディングスタイル [プログラミング]
こないだからやり始めたBezier曲線による近似。もともとは光線追跡の自分の古いコードを見直さなければならなくなったからなんだけど、古いといってもたかだか2年とちょっとほど前のCocoa/Objective-Cのコード。僕は偏屈で頑固な年寄りなのでたかだか2年前なら違わないだろうと思っていたら、今の自分のコーディングスタイルと全然違っていて、見直すのが煩わしくなって、全部書き直すことにした。どこが違うかというと、自分でも面白いぐらい....
ポリゴンレンダラ - その14 [プログラミング]
こないだからやってたポリゴン表示アプリの実装をそろそろ始めたい。そのアプリではモデリングやその編集はできない(もちろんするつもりはない。そんなの大変)ので、なんらかのできあがったモデルをファイルから読み込むことになる。最初はそのファイル形式を適当に決めようと思ってたんだけど、ちょうどいいファイル形式があることをたまたま知った。そこでじぶんかってな形式ではなく、そのすでにあるファイル形式を読み込めるようにすることにした。そのファイル形式の話。
ポリゴンレンダラ - その13 [プログラミング]
一番最初に座標変換をまとめたけど、あれではまずいことがわかった。
あれ自身は間違っていないのだけど、今回のアプリにはふさわしくない点があることがわかった。なぜふさわしくないか、は出来上がったときに説明する。ちょっとやり直し。
なぜブロックなのか? - 後編 [プログラミング]
昨日GCDでブロックを使うといかに簡単になるか、というのをコードの例を使ってブロックを使わない場合との比較で示してみた。
今日はその続きで、ブロックを動かすためにコンパイラが何をしているか、ということからプログラマにとってのブロックの位置づけを考えてみる。
今日はその続きで、ブロックを動かすためにコンパイラが何をしているか、ということからプログラマにとってのブロックの位置づけを考えてみる。
なぜブロックなのか? - 前編 [プログラミング]
OS XとiOSでマルチスレッドなアプリを作るためにGCD(Grand Central Dispatch、Appleによる日本語pdf)というCから呼べる機能がOS Xでは10.6から追加された。これはdispatchというライブラリとC言語に「ブロック(Appleによる日本語pdf)」という仕様を追加して実現されている。GCDは便利なんだけど、Cの文法にいわゆる「クロージャ」というCとは異質な仕様を追加してまでやるべきことなのか?という疑問が湧いた。
「ブロック」について今日ともう1回かけて考えてみる。今日は例を使ってシングルスレッドなコードをGCDとブロックを使ってマルチスレッドにすること、そしてもしGCDがブロックを使わないとしたらどうなるか、ということを考えてみる。
「ブロック」について今日ともう1回かけて考えてみる。今日は例を使ってシングルスレッドなコードをGCDとブロックを使ってマルチスレッドにすること、そしてもしGCDがブロックを使わないとしたらどうなるか、ということを考えてみる。
ポリゴンレンダラ - その12 [プログラミング]
こないだのベンチマークでは倍精度浮動小数点(double)を主に比べて単精度はおまけにしたのか、最終的に画面に表示するだけなら単精度で十分で、そっちのほうがメモリ効率も高いので単精度をメインにすべきではないか、という意見は当然である。
これがなぜかというとそれはOS Xのせいである。
これがなぜかというとそれはOS Xのせいである。
ポリゴンレンダラ - その11 [プログラミング]
前回vDSPやCBLASの効率の単純比較をした。比較したのはN×NとN×Mのマトリクスの積のうちNが4という非常に小さな場合だった。今回のポルゴンレンダラにはこれで十分なのでこの結果だけで判断して実装すればいい。でもそれだけでは面白くないのでNがもっと大きい場合も比較してみた。そうするとマトリクスの積なんていう単純な計算なのに思いがけない結果が出た。
やっぱりBLAS/CBLASはすごい。
やっぱりBLAS/CBLASはすごい。