読者です 読者をやめる 読者になる 読者になる

壁に優しいHTC Viveのセットアップ (+メイキングもあるよ)

ベースステーションが落ちてくる! (記事の最後の方にDMM.makeのリンクがあるので欲しい人はそこから買ってください) 半月ほど前にHTC Vive買いました。Oculus Touchが発売されてない現状、Viveは普通に買える最もハイエンドなVRデバイスなわけですが、コン…

EC2(g2.2xlarge)でOpenGLを使う方法

EC2上でGPUを使って何かをさせるというのを比較的よく見かけるようになりました。 CUDA/OpenCLを使う例は多いですが、OpenGL(のオフスクリーンレンダリング)を使いたい場合もあると思います。例えば、WebGLを使う3Dコンテンツのサムネイル画像をサーバー側で…

PNaClでOpenCVを使う方法

2014年の初めぐらいにOpenCVがPNaCl(つまりPPAPIを使うLLVM IR)用にコンパイルできるようになったという話題がありました。たしかにOpenCV公式サイトの1/9のニュースが存在しているのだけど、実際に動かしてみたという例は2ヶ月ほど経った今でも見かけていま…

SublimeのPackage Controlへ自作packageを登録する方法+α

さてSublime TextというとEmacserやvimmerも黙る(?)モダンな大人気エディタですが、その人気の結構な部分はPackage Controlにあるでしょう。 というのも、だいたいの紹介記事では「まずPackage Controlを入れましょう」と書いてありますし、見かけたpackage…

Ricoh THETAのEXIF (回転を読むためのPythonコード付き)

追記 (2014/2/12) 2014/1/30のアップデート(https://theta360.com/ja/info/news/2014-01-30-2/)で、Sphere XMPフォーマットでも回転情報が埋め込まれるようになったようです。Photo Sphere XMPはAdobeのメタデータ形式であるXMPをGoogleが拡張したもの(https…

三次元回転の確率分布

唐突ですが、三次元空間内での回転の確率分布というのを考えてみます。回転の距離、回転の表現、超球面上の分布、回転の分布、という順番に見ていきます。 回転の距離の定義 まず、単一の回転の角度、というのを考えてみましょう。不変な場合は0になって欲し…

しょぼいネットワークのレイテンシーについて

さて、oculus riftみたいなデバイスが手元にあると、いろんな場所から部屋の様子を(深度)カメラで撮りたいなーと思ったりするわけです。順当に考えると有線LANを使うのがよい気がしますが、気になるのは遅延です。そこで今回は1日ぐらいpingしつづけた結果を…

Leap Motion + Kinect

Leap Motionが届いたので、前からやってみたかったkinectのスケルトンデータとの統合をやってみた。 Leap Motion? ちょっと早めに届いてたひとのレビュー http://blog.livedoor.jp/k_yon/archives/52452827.html http://blog.impartech-lab.org/?p=114 を見…

手動エスケープは有害である

多くのプログラミング言語は文脈自由文法を使って文法を定義している。その結果、ソースコードは綺麗な階層構造を持つことになる。そして意味が抽象構文木に対して定義される・・・・本当にそれだけだろうか? def add(x,y): """ 2数を足す """ return x+y …

スケールと記述体系の階層構造

ここ半年ほど、わりと数字の計算をもりもりする用途でPythonを使っていまして、思ったことをつらつら書きます。 numpy Pythonにはnumpyというライブラリがありまして、これは裏でLAPACKみたいな黒魔術産物を呼んで高速に計算しつつ、いわゆるPython風な書き…

グラフィカルCUIの可能性

こういう感じのシェルを書いてました。格子の1マスを占めるタイルが単一の機能に相当し、角にある白(出力)と黒(入力)の三角を結んでデータをやりとりします。左上にあるのが新規プロセス作成タイルで、残りは左下から流れに沿って、 ls 文字列バッファ grep …

指から文字がどんどん出てくる:5日目

さて、しばらく日が空いてしまいましたが、ようやく光通信でプログラムを更新できるようになりました。 クレードル こんな感じで、書き込みはarduinoに制御させてます。ちなみに二枚目の写真に写ってる指輪は、デバッグ用のために同じ回路でISPコネクタを付…

指から文字がどんどん出てくる:4日目

色々と要素を検証してきた結果、ようやく指輪のスペックが固まって来ました。 左の部品群をなんとかリング状にまとめれば(たぶん)完成です。右はデバッグ用。 電力 2日目ではフレキシブルなパネルを試してましたが、切断すると断面でショートしてしまうのか…

指から文字がどんどん出てくる:3日目

1日目にはスロットという概念を導入し、接触による交換を基本とした(というかそれしかできない)操作モデルをつくりました。が、同じ文字列を何回も入力するのはどうするか?とか、使わずに破棄するにはどうするか?といった問題が発生します。そこで、操作は…

指から文字がどんどん出てくる:2日目

指輪型で問題になるのはなんといっても電源確保でしょう。いわゆるエナジーハーベスティングです。貯蔵には電気二重層キャパシタを使うことになるでしょうが、耐圧3Vなら1Fぐらいまで詰め込める可能性はあります。が、Vccに直接ぶらさげるとある電圧幅でしか…

指から文字がどんどん出てくる:1日目

ちょっと具体化してみます。 デバイスの形態 さて、とりあえず外せない条件を並べてみます。 指輪型デバイス 指先で触ることで文字列をやりとりする そして触る先ですが、見せかけは指先を通じて文字列が移動しているが実際はwifiを使っているとか、そういう…

指から文字がどんどん出てくる:0日目

最近、音声・動画の使用はずいぶん増えましたが、テキスト形式のデータの重要性が低まったということはありません。そもそも、人間にはいわゆる五感があって大量のデータを処理できるのに対して、出力は驚くほど貧弱で、基本的にどこかの筋肉を動かすしか無…

一日のクリック回数

普段PCを使っていて一日に何回ぐらいクリックしてるのか気になったことはありませんか?ということで調べてみました。 調査方法 /dev/input/mouse0にマウスのイベントが流れてくるので、それを解釈してクリックのログを取ります。フォーマットはどこかのフォ…

π算法とIO

ここでは次の記法を使います。 並行: P Q 入力: channel>(arg) P 出力: channel 複製: replicate P 制約: new(arg) P 空のプロセス: 何も書かない 同じインデントで並んでるのがconcurrencyで、インデントを下げた部分は時間経過+新しいスコープを表している…

静的型付けとeval

いわゆるweb系のものをHaskellで書いていて感じる窮屈さの理由はやはりevalが無いことに起因するんじゃないかと思うのでevalについて考えてみる。 命令型・動的型付け言語におけるeval こういう言語で提供されているeval(の類)はかなり強力で、モジュールの…

意味の広がりと通信

さて、以前の記事(自己複製系と意味)では、はっきりとした区切りのない場に、ある共通の意味*1を運用できる個体群が含まれる*2場合がある、ということを、エントロピーの観点から見てました。今回は逆に、実際よく使われている通信の概念を、自己複製に寄せ…

自己複製系と意味

ある系の環境からの独立性は、環境の変化に対する安定性で測れます。例えば結晶の成長過程は、結晶がその環境から必要な物質を引っ張ってきて、単位格子が増殖している、とも見れます。しかし温度変化や不純物に敏感で、通常は自己複製系としては扱いません…

写真内の相互情報量

さて、画像処理では区分的に滑らかであるという仮定をよく用います。これは我々から見た世界が大方はっきりした境界を持つ物体と透明な空気によって成りなっているという(まっとうな)前提から導かれます。で、多くの場合(主にCG)もっとてきとうに、とりあえ…

3dプリンタつくりました

さて、3dプリンタつくる宣言*1 してから早1.5ヶ月が経ち、ようやく「これは3dだ!」という感じの物体が印刷できるようになったので報告します。 (モデルはThingiverse*2の3D Knot)・・・うーん。やけに凸凹してますが紛れもなく結び目に見えますね!以下では…

3dプリンタ経過報告〜押出

さて、以前に3dプリンタつくる!と宣言してからひと月、最も懸念していたフィラメントを高温で押し出す部分が安定動作するようになりました。構成は PC (仮想COM / USB) STBee mini (UART)*3 X軸制御 Y,Z軸制御 ヒータ・押し出し制御 という感じで、今はSTBe…

3dプリンタ作り始めました

さて、以前にSLS方式(レーザで粉末を固めるタイプ)で失敗したりもして、その後3dプリントからは離れていたのですが、近頃iModelaなどを見ていると、やっぱり手元に欲しいな〜という気持ちが強くなってきました。そこで、今回はFDM方式(溶かしたプラスチック…

Minecraftにみる世界の「完全性」

さて、所謂箱庭ゲームで重要なのは 適度な自由度(世界へ局所的にしか干渉できないものの、その痕跡は残せること) 作ったものを眺める楽しみ などだと思うのですが、これらを実現するひとつの方法として、何らかの(それほど複雑でない)規則でシミュレーション…

グラフ彩色とパス表現

無向グラフについて、k色のうちいずれかをそれぞれの頂点に割り当てたとき、全ての辺の両端が異なる色ならばそのグラフをk-彩色可能といいます。平面埋め込み可能なグラフは全て4-彩色可能というのが、有名な四色定理です。 さて各頂点がある埋込みの中の位…

備忘録: 「空間」の用法

記事を書いた時点での、筆者のイメージによる空間の使い分け。定義を意識して使っているわけではないが、これらには考えの方向性の違いがある。 物理 古典的な物理学における解析的な場 上記に時間をつけ加えたもの 一部が離散化されたand/or確率的な場 上記…

HTMLのクライアントサイドマークアップ

さて、最近は『電脳コイル規格書』( http://www.xanxys.net/dc/ )というちょっとしたコメンタリを書いていたのですが、10パラグラフ以上あるような文章だとHTMLを完全に手書きするのは見通しも悪く、ちょっと面倒です。もちろん十分長いものや続き物であれば…

なぜ主観時間は単方向に流れるか?

これを実時間の非可逆性に求めるのは釈然としない。なぜならそれは検証ができそうにないし、可逆な系内で構築した計算機によりどんな法則の空間であれエミュレート可能だからである。 そこで、可逆で決定的な系の内部における観測者がなぜある種の現象を、そ…

連続系と計算機のちょっと近い関係

はじめに 非常に多くの物理現象は場の相互作用によってよく表されます。そして、その相互作用は絶対座標に依存しない局所的な時間発展を示す偏微分方程式で表されることになります。これらの経験的あるいは解析的な簡略化として、何らかの離散化が行われます…

ムーア近傍とノイマン近傍のセルオートマトンの相互変換

いわゆる二次元セルオートマトンで用いられる格子として、4つの近傍を持つノイマン近傍と8つの近傍を持つムーア近傍が有名ですが、状態や遷移関数を操作して、同じ「振る舞い」を維持しつつそれらを互いに変換できるか考えてみました。

λ計算の乱択評価

さて、いわゆる関数型言語の基礎となっているλ計算ですが、一部の言語(eg. Haskell)では厳しく副作用を禁止することでパワフルでありながら参照透過性を維持し、非正格な評価を可能にしています。*1こうするとうまく評価戦略を選べば*2、λ抽象でない正規形を…

Scene Completion Using Millions of Photographs

はじめに http://graphics.cs.cmu.edu/projects/scene-completion/ のような物を実装してみました。そのときに苦労した点など書いていこうかと思います。*1 紹介 元の論文を読めば分かるのですが、違いもあるかもしれないので私の(再)実装の概要を書いておき…

それはとっても難しいなって

如月のある日、なぜか突然キュゥべえのフィギュアを作ることを思い立ちました*1。キュゥべえ(以下QB)のことはご存知の方も多いと思いますが、幼気な少女達を詐欺同然の手口で怪しげな魔法の世界に連れ込もうとする淫獣愛らしい小動物です。ちなみにフルスク…

Haskellでのマルチメディアの取り扱い

(この記事はHaskell Advent Calendar 2010の25日目です)さてHaskell Advent Calendarもいよいよ最終日となりましたD*1とは違うんです。これまでとちょっと毛色の違う話題として、Hackageで画像・音声・動画のコーデックを調べてみました。コンテンツ編集ソフ…

HMDつくりました〜ハード編

前々から作っていたHMDがとりあえず形になったので報告します。いきなりですが、これがその写真です。 ごてごてしてますね。96.4g*1で、正面のカメラ二台で撮った映像をPCに送って、(加工した後)QVGAのディスプレイ二枚に表示できるといういかにもAR用な仕様…

FT2232Hの落とし穴

FT2232HのチャンネルAとBのMPSSEを同時に使おうとして嵌ったというお話。 環境 2.6.34.6-54.fc13.x86_64 libftd2xx.0.4.16 libftdi.1.17.0 本編 http://www.ftdichip.com/のチップはUSBシリアル変換によく使われますが、複数のチャンネルを同時に使う例はな…

MetaAlbum - twitpicからpicasaに写真をコピー

twitpicの経営状況が不安、twitpicは後から見返すには不便なインターフェースなので Picasaのアルバムにコピーできるサービスを作ってみました。 バックアップやまとめ等に利用できるかと思います。http://meta-album.appspot.com/

Haskellでjsonを楽に扱う方法

Haskellから、twitter APIなどJSONを使いたい場面でどう書くかという話。 よくある書き方 data Tweet=Tweet {text :: String ,user :: User ,id :: Int , ... } data User=User {screen_name :: String ,name :: String ,id :: Int , ... } jsonToTweet :: J…

DesignSpark+pcbcart

http://www.designspark.com/ で無料の回路図/PCBエディタが公開されたので、最近作っているHMDの基板をこれで設計してpcbcartに発注してみました。 DesignSparkの特徴 今のところ 無料で使える (要登録) ガーバー出力可能 Eagleからのインポートに対応(らし…

ファンクションジェネレータつくりました

かなり以前に0.5mmの壁として作り始めて放置していたファンクションジェネレータですが、ようやく完成したのでここにまとめておきます。 概略 前々から何かとファンクションジェネレータがあれば・・・と思う場面があって、機会があれば作ってみたいと思って…

3dプリンタのようなもの、を作っていた

(これは過去のプロジェクトを供養するためのエントリです) はじめに 最近世間では3dプリンタが個人レベルでも使えるようになってきて、arduinoなどのブームとともにちやほやされているようです。 そこで放棄してしまった3dプリンタプロジェクトを思い出した…

回路図の配線を機械に委ねる、という考えかた

(注: このエントリは個人が趣味として行うような小規模プロジェクトを想定して書いています。)さて突然ですがよくある回路図エディタで何か書こうと思った場合次のようなステップを踏むことが多いのではないでしょうか: 使う部品(主にIC)を作成する 大きな部…

3.3V版USBaspの製作

JTAGの無いAVRに書き込む必要があったのでUSBaspを作りました。 また、適当なツェナーダイオードを手持ちに無かったので3.3Vで動作するよう変更を加えてあります。 ファームウェアを書き込む http://www.fischl.de/usbasp/から最新版をダウンロードしてATmeg…

Hawitter - en

日本語が読める方はHawitter - jaをご覧ください。hawitter[hawɪtə] - A simple twitter client hackageDB: http://hackage.haskell.org/package/hawitter It is not hatwitter! 0.4 (beta) changes: added popup menu (post/quit) to tray icon. OAuth supp…

Hawitter - ja

If you don't read japanese, see Hawitter - en. hawitter(はうぃったー) - シンプルなtwitterクライアント hackageDB: http://hackage.haskell.org/package/hawitter 0.4 (beta) 変更点: トレイアイコン右クリックでメニュー(書き込み,終了) OAuth対応 TLM…

hs2bf - 0.5 - 終章?

最近hs2bf関連のエントリを上げていなかったのは、別のプロジェクトに取り組んで(いた|いる)ためです。実のところhs2bfへの興味が薄れたことが原因なので、このままになる可能性も高いです。とはいえ需要はあるかもなので、とりあえず現状のままで公開してお…

振動モータの中身

携帯電話によく使われている小型の振動モータを壊してしまったので分解してみました。 ロータはコアレスで中は空洞になっています。 ステータの磁石は小さい割には強力です。感覚的にはネオジム磁石ぐらいの強さです。 この中に穴が開いていてすべり軸受けが…