ブログ目次

decafish signature

ごちゃごちゃ書いてきてどれがなにかわからなくなった。これではほんとうに「Write-Only-Memory」になってしまってメモの意味がない。so-net blogの「マイカテゴリー」は階層表示できないし。しょうがないので思い出しながら内容分類を作ることにした。

献立やその場限りの話題を除いて、「マイカテゴリー」の分類ではなくて内容ごとに分類して内容に対するコメントとリンクを置いておく。内容によっては重複して現れる項目もある。同じ分類内部では古いものが先に、新しいのが後に並んでいる。ブログとは逆。でも順番としてはこちらが正しい。

大分類

物理/数学関係 プログラミング パソコン関連 音楽 ギター 読書 その他


中分類

物理/数学関係

プログラミング

パソコン関連

音楽

ギター

読書

その他


小分類

物理学関係 - 光の偏光に関する計算

偏光の光学的な取り扱いをまとめた。偏光素子を通したときの偏光状態の変化を計算するためのMathematicaパッケージを書いた。

物理学関係 - フラウンホファ回折の計算

回折計算では一番簡単なFraunhofer回折の計算に関する話題。
それと、収差の表現にはいろいろあるけど回折計算と相性のいいZernike多項式についてちょっとだけ。

物理学関係 - 電磁場の解析

FDTDの実装をしようと思って始めたけど、それ以前の物理学の基礎のところで疑問がわいてきた。これはまだ途中。

物理学関係 - 光学薄膜

光学薄膜設計ソフトを書こうと思ったので、数学をまとめておくことに。これには結果しかないのでちょっといまいち。

物理学関係 - FFT(Fast Fourier Transform)のアルゴリズム

いきがかりで始めたFFTのアルゴリズムのまとめ。任意点数のFFTにはいろいろあって面白い。
まず、すっぴんの離散Fourier変換。

それから各種FFTのアルゴリズムのまとめ。

物理学関係 - 複雑系

スチュアート・カウフマンの「自己組織化と進化の論理」を読んでいくつかを自分なりに考えたことなど。

物理学関係 - その他(どっちかと言うと数学、というのも含む)


プログラミング - Mac OSX/Cocoa Objective-C

NSSetとライフゲーム

これはFoundationフレームワークにあるNSSetの勉強のため。昔はコレクションと言えば配列しかなかった。これはこれでおもしろい。

  1. NSSetとは
  2. スパースな平面でのライフゲーム
  3. NSSetのためのハッシュ実装
  4. 外部編集可能なNSColorのUserDefaults形式
  5. NSImageBitmapRep
  6. XLifeの*.lファイルの読み込みとなんちゃってクラスクラスタ
  7. 実装の詳細とそのソース
  8. ハッシュによる効率化のベンチマークちょっと気がついたこと

XMLのCocoaでの読み込み

foundationフレームワークにMac OS X10.4から組み込まれたXML読み書き用のクラス群のおさらい。

  1. CocoaでのXMLの取り扱い
  2. NSXMLDocument
  3. NSXMLDocument実験

vDSPについて

数値計算を簡単に効率化するためのvDSPライブラリ。ちょっと存在意義が薄れている。

  1. ベクタユニットとAccelerateフレームワーク
  2. vDSPとは
  3. vDSPの関数群
  4. ベンチマークとgccの自動ベクトル化
  5. プロセス時間を計る

複素数計算について

物理系の数値計算にはつきものの複素演算のCocoaでの取り扱い。

  1. 複素演算の独自実装その見直し
  2. C99複素数型とObjective-Cメソッドとの共存の問題

数値計算とイベントループ処理

  1. 対応手段その1
  2. 対応手段その2

  • ガベージコレクションに関する実験

  • NSOperationそれに関する実験若干の修正NSAutoreleasePoolとの関係
  • 数値計算用ライブラリ

    1. gslのインストール最新アップデート多次元最適化関数の使い方12
    2. fftwの使い方最新バージョンについて

    QTKit Captureを使ってみる

    10.5からQTKitに入った動画取り込みのためのクラス群の使い方。簡単でいいけど、IIDCの機能はカバーできていないのが残念。

    1. 勉強の動機
    2. QTKit Captureの主なクラス
    3. QTKit Captureの概念
    4. 主なクラスの使い方
    5. 音声の扱い
    6. 次のステップ、表示品質の向上の方法
    7. QTCaptureDecompressedVideoOutputを使ったpreviwerの独自実装
    8. Core Videoによる表示
    9. 表示品質の比較
    10. Core Imageフィルタ
    11. Core Videoを経由したOpenGLによる表示

    ドローブラシのようなBezier曲線を描く

    これも思いつきで始めた検討。Bezier曲線のお勉強が主な話題。これはまだ途中。

    1. 動機大まかな方針
    2. 描画モデル
    3. Bezier曲線の数学のまとめ
    4. Bezier曲線による楕円の近似
    5. ひとつのBezier曲線をふたつに分割する
    6. Bezier曲線の曲率
    7. Bezier曲線の微分
    8. Bezier曲線の交点 - Bezier Clipping法
    9. Bezier曲線の凸包とAABB
    10. Bezier曲線の極値の取得
    11. Bezier曲線のオフセットカリグラフィへの応用
    12. マウスドラッグの取得
    13. 微分可能な一般の曲線のBezier曲線による近似と3次Bezier曲線での例近似の収束
    14. スプライン補間について
    15. スプラインの改良と、まったく異なる補間「AGG」方式「AGG」とスプラインの比較
    16. 「AGG」方式によるNSBezierPathのスムージング
      1. NSBezierPathElementによる制御点の取得
      2. スムージングの方針
      3. カテゴリによる実装その詳細
      4. スムージングの具体的なコード
      5. その動作確認

    光学薄膜設計ソフトの設計

    これも突然始めてまだまだ先は長い。もう実装に入りたいんだけど。

    1. 全ページへのリンク
      0123456789
      10111213141516171819
      20212223242526272829
      30313233343536373839
      40
    2. その動機大まかな仕様
    3. 内部構造のラフ設計方針
    4. gslの最適化関数とのインターフェイス
    5. GUIの設計イメージ
    6. 実装の方針
    7. 変数変更管理とその実装クラス構造実装例若干の仕様変更
    8. オブジェクトの同一性
    9. 屈折率データベース外部データの取り込み
    10. 薄膜を表すオブジェクトその上位オブジェクト
    11. 薄膜データのXML表現12

    マック用プロットライブラリの設計

    これは僕が本当に欲しいと思うものを作ろうとしている。じっくりちゃんとしたものにしたい。

    1. 動機大まかな仕様APIの形式
    2. Primitiveの構造Primitive以外のデータ形式
    3. 座標系
    4. 内部構造
    5. Layer構造それぞれの仕事
    6. 座標変換にまつわる問題「はみ出し処理」Mathematicaが対応している様子
    7. 「はみ出し処理」問題の具体例数学的な整理
    8. 「はみ出し処理」と線形計画法
    9. 「はみ出し処理」のためのシンプレックス法のお勉強
      1. 行列表現
      2. シンプレックス法のアルゴリズム
      3. 問題整理と収束性、精度など
    10. 3次元プロットの問題
      1. 3次元での前後処理
      2. 隠面消去
      3. ベクトル描画での隠面消去の難しさ
      4. 半順序集合へのオブジェクトへの整列
      5. さらなる問題
      6. オブジェクトの重なり判定そのアルゴリズム

    曲がった壁を持つ迷路の生成

    「ドローブラシのようなBezier曲線を描く」から思いついて始めた。こっちはさくっ、と仕上げて話を戻したい。

    1. 動機
    2. 迷路の構造の一般論
    3. 迷路生成のアルゴリズム
    4. 曲がった壁を作る方針
    5. 衝突回避ポテンシャル
    6. ポテンシャル計算低減のための検討
    7. スペックルパターンの利用
    8. スペックルパターンからどうやって壁を生成するか
    9. スペックルパターンを計算で生成する
    10. 離散的なポテンシャルの補間
    11. Bezier曲面によるポテンシャルの補間の検討
    12. 衝突回避のためのポテンシャル形状
    13. バイキュービック補間間違ってる数学まとめ正しい数学的な意味
    14. 一様でない乱数の発生とそのレイリー分布の実装
    15. 壁の端位置の決定アルゴリズム
    16. ふたつの1次元最適化手法、はさみうち法黄金分割法
    17. 迷路完成の判断の方法そのアルゴリズム
    18. 迷路の出入り口の指定のしかた
    19. 実装の概要ユーザインターフェイスの設計およびいくつかの注意
    20. 動作する最初のバージョンバイナリとソースの公開使い方とパラメータ設定
    21. 迷路表示の問題とその解決
    22. Multi thread化のためのNSOperation
    23. fftwからの脱却のためのDFT独自実装
    24. 方針とノーテーションの整理
    25. 2の基数のFFT(K-T型FFT)それに対する注意
    26. Chirp z変換を利用したFFTその1その2それに対する注意
    27. 混合基数のFFTアルゴリズムとその実装上の問題
    28. 各種アルゴリズムの使い分け
    29. Objective-Cでの実装の方針クラスクラスタについて
    30. 定義式通りのDFTの実装
    31. 2の基数のFFTの実装
    32. Chirp z変換によるFFTの実装
    33. 混合基数のFFTの実装
    34. MacOS XライブラリであるvDSPによる2の基数のFFTの実装
    35. それぞれの実装のパフォーマンス比較 その1その2および任意点数FFT実装の結論
    36. ver.1.0Aリリース
    37. AppleのDownloadsページに登録
    38. Appleの日本語サイトにも登録されていた

    Mac用USBデバイスを作る

    USBデバイスの開発にはWindowsなら山ほどあるけど、まとまっているのはAppleのドキュメントぐらいでMac用としてはほとんどない。Cypress社のEZ-USB FX2を載せたボードをMacから使えるようにする。どうせならMac用USBのリファレンスをめざそう。

    1. いきさつと準備
    2. 部品のハンダ付けと「USB Prober」による確認
    3. USBと他の通信規格の簡単な比較
    4. USBでのデータ転送の構造
    5. もうちょっとハンダ付けとUSBの転送モード
    6. USBのホスト側プログラミングモデル
    7. USBデバイスクラス
    8. unixのデバイスファイルとその限界
    9. MacOS Xでのデバイスアクセスの基本「I/O Kit」
    10. EZ-USB FX2を繋いだけどサンプルコードが動かない
    ここまできてI/O Kitがわからないと話にならなくなったので「Accessing hardware from Applications」意訳に突入。
    1. 「Device Access and the I/O kit」
    2. 「I/O Kit Driver-Stack Building」
    3. 「Communicating With the I/O Kit」
    4. 「Getting Keys and Values for a Device-Matching Dictionary」
    5. 「Setting Up a Matching Dictionary to Find Devices」
    6. 「Setting Up a Matching Dictionary to Find Device Files」
    7. 「Getting Notifications of Device Arrival and Departure」
    8. 「Putting It All Together: Accessing a Device」
    9. 「Getting a Device-File Path」
    10. 「The IOKitLib API」
    11. 「Creating Matching Dictionaries」
    12. 「Iterating Over Matching Devices」
    13. 「Getting Information About I/O Registry Objects」
    14. 「Determining Busy States」
    15. 「IOConnectMethod Functions」
    16. 「Handling Errors」
    これで意訳は終了。訳したことでわかったことをまとめて、EZ-USB FX2のサンプルコードを動かすことに再挑戦。
    1. 「自分なりのまとめ」
    2. 「ファームウェアを探す」
    3. 「Intel Hex形式」
    4. 「ホスト側のコードを読む」
    5. 「コード読みの続きと、実行ループソース」
    6. 「デバイスが見つかったときに呼ばれる関数」
    7. 「ファームをダウンドードする関数」
    8. 「ダウンロードされたファームで起動したとき呼ばれる関数」
    9. 「ダウンロードされるHexファイルの中身について」
    10. 「bulkloop動作確認完了」
    とりあえず、動いたんだけど、それよりもI/O Kitの方が面白くなってしまった。こんどはFireWireのSDKをまさぐる。
    1. 「FireWire規格のおさらい」
    2. 「FireWire規格のおさらい2」
    3. 「FireWire Device Interface Guideの抄訳開始」
    4. 「抄訳その2 デバイスマッチング」
    5. 「抄訳その3 アイソクロナス転送」
    6. 「抄訳その4 チャンネルとポート」
    7. 「抄訳その5 疑似アドレス空間」
    8. 「抄訳その6 エンディアン問題」
    FireWireのdevice interfaceを理解するためにIIDCカメラのドライバを書いてみる。
    1. 「IIDCカメラとは?」
    2. 「IIDCカメラのレジスタ構造」
    3. 「IIDCカメラをアクセスしてみる」
    4. 「アイソクロナス転送用コマンドDCLとは」
    5. 「アイソクロナス転送の手順」
    6. 「アイソクロナスパケットとフレーム」
    7. 「DCLのプログラミングその1」「その2」「その3」
    8. 「DCLのプログラミングの上位設計」
    9. 「DCLのスレッド分離」
    10. 「pthreadについて」

    数値計算にまつわるその他の話題

    1. FORTRANを使うべきか

    プログラミング - Mathematica

    プログラミング - その他の話題


    パソコン関連 - PowerBook G4のトラブル

    PowerBook G4はまだ現役です。でも今年の夏を乗り切れるか...

    パソコン関連 - 玄箱Debian

    玄箱はファイルサーバというよりはDebianの乗ったおもちゃと化してしまっている。でもLinuxは膨大で難しい。

    パソコン関連 - iMac

    1年半前買ったiMacもゆっくりと新陳代謝していってる。

    パソコン関連 - LaTeX, Lilypond

    なんでこんな便利なLaTeXをみんな使わないのか。特有の難しさはあるけど、ワード、ぱわぽんのチップスの集積を作るよりずっと生産性は高いはず。


    音楽 - コンサート評

    仙台に来てから全然コンサートに行かなくなった。さみしい。

    音楽 - 作品について

    音楽 - クラシックCD/放送番組評

    音楽 - ロックCD評

    音楽 - ジャズCD評


    ギター - バッハリュート曲の編曲

    ここにあるバッハのリュート曲のギター編曲はすべて変調弦を使用している。
    その動機と技術的な問題に関する検討12345678

    ギター - その他の編曲

    ギター - 曲について


    読書 - 漫画

    読書 - SF

    読書 - SF以外の小説

    読書 - エッセー

    読書 - ノンフィクション


    その他 - 昔話

    その他 - もっとどうでもいいこと