0

直交する技術

(タイトルにおもいきり誤字があったので直した)

naoyaのはてなダイアリー – 直交する技術から複数のものを学ぶ

先の結論から行くと、それができるようになると同時に、もうひとつ別のカテゴリの技術を身につけることで、飛躍することができるんだとも思います。そのもうひとつ別の技術が、いま持っている技術と近いほうがいいのか、遠い方がいいのか、需要があるものがいいのか、未開拓の分野のものがいいのか、それは組み合わせのバランスなんでしょうね。

これはメディアデザインとかインスタレーションとかメディアアートと呼ばれている分野ではその通りで、…というかこれが一番技術的には重要で、physical computingと呼ばれてセンサーやアクチュエータが埋め込まれてからはどんどん色々な技術を連結させるのが重要になった気がする。

普通にプログラミングはする。でも昔の様に全部Javaで作るのではなく、ハードウェアはマイコン、画面やカメラはFlash、パソコンの内部の処理は.netやJavaでやるといった感じに複数の処理系を使い分けた方が素早く作れる。なんで素早く作るかというと、やりたいことが伝わるのが一番重要だし、素早く作ればフィードバックが返ってきてデザインが更に洗練されるから。

毎回作り込む必要は無い。

やりたい事に適した処理系を選ぶには2つポイントがあると思う。まずその言語のライブラリを見て何が得意か調べる事と、他の処理系との連携方法を確認する事。

といっても今はそんな風に綺麗に分かれているのではなく、proce55ingやMax/MSPみたいに一つで何でもできるようなのもいる。

おおまかにまとめてみた。

■処理系の特徴

・マイコン(AVR、PIC、H8、ARM、BasicStampなど)

ボタンのON/OFF、センサーの使用、モーターなどの制御、パソコンを中に入れられない程の小さいデバイスを作る時はリアルタイムOSやTCP/IPを積んだりもする。

シリアル通信でパソコンのシリアルポートと通信する。

・Flash

ラピッドプロトタイピング的にGUIを作るなら多分これが最速。ベクターグラフィックとプログラミングを同時に書けるのは速い。昔はVBなどがこの位置にいたと思うが、コンポーネントの見た目そのものを作って配置するのが全部Flashの中でできるので強い。

カメラ入力、画面への出力ができる。Flash8でビットマップデータも扱えるようになり、画素解析もできるようになった。

fscommandでローカルの他のアプリケーションと、LocalConnectionでローカルの他のflashと、LoadVariablesでhttp、XMLConnectorでhttp上でXML通信などができる。

ファイル入出力まわり、特にディレクトリの中のファイルの一覧を取得できないので、単独ではデータの保存・読み込みに弱い。

あと長いstringの処理をすると固まる事がある。

・Director

Flashと同じくMacromediaの環境。昔は多かったらしいが今はあまり見ない。俺も使ったことが無い。

シリアルポートを直接扱えるらしい。

・.net

PCの中の事は全てできる。

ActiveXでMediaPlayerやAdobeAcrobatやFlashPlayerなどなんでも読み込んで操作できる。DirectInputでジョイスティックやマウスやカメラの入力もできる。

既にあるコンポーネントが強力なので、それを配置するだけでコードが書ける。超楽。

・Java

PCの中の事はだいたいできる。でもクラスの階層が深すぎて覚えにくいし、コード書いてると手が疲れる。

・Proce55ing

大体なんでもできる。実体はJava。ピクセルを簡単に扱えるのでカメラと画像解析ができる。

ハードウェア拡張のWireing、携帯機器向けのmobile Processingがある。

シリアルポートが使える。processing自身でwebサーバーも立てられるので大抵の処理系と連携させられる。

・webサーバー+LightWeightな言語(PHP、Perl、Rubyなど)

ローカルにapacheをインストールする。

ファイルや文字列やデータベースの処理に適している。強力な関数が揃っていて、ほとんど書かなくても大したことができる。httpやsocketやSOAPなどで他のアプリケーションと連携できる。Flashと相性が良い。

・python

これも評判の良いLightWeightな言語だが、さらにシリアルポートなどハードウェアも扱える。

・Phidgets、teleo

PCにUSB接続して、ハードウェアを扱える。モータからRFIDリーダまで何でもある。

phidgetsは.net、Java、Flashなどから扱えるライブラリがある。

・LEGO MINDSTORMS

プログラムが書けるレゴ。モーターとかも色々ついている。

SFCでは昔コレを使う授業があったらしい。

・Max/MSP、VVVVなど

音響機器などを扱うための環境だったが色々ハードウェアもソフトウェアもできる。jitterで映像も扱える。

・マウス/キーボード/ジョイスティックhack

分解して、改造してしまう。ジョイスティックのレバーやマウスのホイールをキーボード入力として取り出すソフトもある。実はこれがかなりスマートだったりする。設計も楽になる。

結局、デモは伝えたい事が伝わるのが一番重要。

でまあ、ダイナミックデザインの課題がproce55ingなんですよ。めんどい。

これからこの系統でプログラミングを勉強したいのなら、Flashがオススメ。本やサイトもたくさんあるし、簡単に派手な事ができるし、作った物をwebに公開できるから。

0

Firefox1.5 extension

金曜にFirefox1.5にアップデートしたのだけど、エクステンションが全て消えてしまったのでメモ。

設定ファイル自体は残っていた様で、エクステンションをインストールする毎に前の設定で復活してくれて助かった。

ただ、いくつかはダウンロードが集中していて手に入らない。

s.h.log: 使ってるFirefox extension

s.h.log: 使ってるThunderbird&Firefox extension

Tabbrowser Extension

ContextMenu Extension

Sage

Bookmark Synchronizer

Bookmark Backup

Download Manager Tweak

Web Developer

OpenBook

ScrapBook

GrepSidebar

FlagFox

Google Pagerank Status

ime.nu relinker

翻訳パネル

Foxylicious

Greasemonkey

hatenabar

Resizable Textarea

IEView

Forecastfox

foxPose

0

2進数計算機

ダイナミックデザインの課題で2進数の足し算計算機を作った。朝8時に登校して必死こいてやって、13時半までかかった。

8535はでかくて扱いにくいと思ってたけど、意外とマイコン裏のスペースが使えるから取り回しが楽な気がした。

動いている所(動画) / ソースコード(AVR-GCC)

足し算の繰り上がりがわかる。

2進数計算機・筆算側

マイコン側

2進数計算機・マイコン側

中身

2進数計算機・内部

電池が飛び出た

電池飛び出た

来週に向けて足し算に加えて、引き算、掛け算、割り算もできるようにした

1

DynamicDNSで自宅サーバ

そろそろネットワークの勉強をしたいな、と思って某ドメイン取ってから早1年。今日、ムームードメインをさらに1年延長したので、MyDNS.jpで自宅のIPにドメインを結びつけた。

■ムームードメイン側の設定

ユーザ登録してドメインを取る。大体一年で800円程度。

ログインして、「コントロールパネル」の「DNS設定」から「上記以外 のネームーサーバーを使用する」を選び、「ネームサーバ1」と「ネームサーバ2」にns0.MyDNS.JPとns1.MyDNS.JPを設定する。

■MyDNS側の設定

ここは無料で、しかも日本語でサイトが書かれていて良い。

ユーザ登録するとユーザ名とパスワードが送られてくるので、ログイン。

「DOMAIN INFO」でドメイン名にドメインを書く。「zanmai.org」など。

「ホスト名」は www とか書いておくと、www.zanmai.orgでもアクセスできるようになる。

「MXレコード」は mailとでも書いておく。

「IP ADDR DIRECT」で、確認くん診断くんで自分のホスト名(IPアドレス)を調べて設定する。

DNS設定が浸透するまで5分程度待つ。

これで、ドメイン名(ムームードメイン)→DNSサーバ(MyDNS)→IPアドレス(自宅)と繋がる。

ちなみにうちはzanmai.orgではありません。

あとIPアドレスの更新にはSirBiffが便利。

2

blogに一年前の記事を表示

完成した。

こんなふうに、1年前の記事がある日は右側に表示される。

ヨシムさん曰く3年手帳とかいう3年間の同じ日付を同じページに書く手帳があるらしい。そんな話をしていたら萌えてしまって作ってみた。

よく”他人の視点を~”というのでdifferent viewを得るプロダクトはあったりするが、まあ過去の自分も他人だな。(ORFにはsiggraphにポスターで出したそういう奴を持っていく予定です)

結局1年中、何か作ったり残留したりしてる。

■やり方の説明

すぐデザインを元に戻せる方法です。結構簡単なので試してみて下さい。

(あまり居ないと思いますが、permalinkを「日別」にしている人は出来ません)

MovableTypeの[管理]→[テンプレート]で、[新しいアーカイブ・テンプレートを作る]をクリック

template.gif

「個別+去年のエントリーアーカイブ」という名前でコレ

「日付アーカイブJavaScript版」という名前でコレを作成。

ちゃんとスクリーンショットと同じ状態になるのを確認して下さい。

また、「個別+去年のエントリーアーカイブ」の248行目の http://web.sfc.keio.ac.jp/~shokai/archives/ となっている所は、自分のblogのアーカイブディレクトリのURLに変えて下さい。

MovableTypeの[管理]→[ウェブログの設定]→[アーカイブの設定]で、

アーカイブの種類:個別に「個別+去年のエントリーアーカイブ」を、

アーカイブの種類:日別に「日付アーカイブJavaScript版」を追加。

archive.gif

スクリーンショットの様に「優先」も設定しておく。

また、「日別アーカイブJavaScript版」の右のテキストエリアに

<$MTArchiveDate format="%Y/%m/%d"$>.js

と書く。(日別エントリの保存先URLになります)

この「優先」を戻して再構築すれば元に戻せます。

これで再構築すれば完成です。個別エントリのページを確認して下さい。

出てなかったら、日別エントリがJavaScriptで出ているか確認したりして下さい。

また、スタイルシートを差し替えると今のこのblogと同じ見た目になります。

■個別エントリーへの1年前のエントリの表示

個別エントリテンプレートのどこでもいいので、

を書くと、その場所に1年前のエントリが表示できます。

http://web.sfc.keio.ac.jp/~shokai/archives/の部分は自分のblogのアーカイブディレクトリのURLに変えて下さい。

そんな感じで使ってみて下さい。

■技術的な事

MovableTypeは加減算できないので、日別エントリからJavaScriptで出力させて、個別エントリ側からJavaScript経由で去年の記事を読み込ませる事にした。

■追記

MovableType3.17-jaを使っているのですが、コメントを投稿されると(優先設定にしているのに)何故か「個別+去年のエントリーアーカイブ」ではなく、「個別エントリーアーカイブ」の方が再構築されてしまうので

temp-del.gif

上のスクリーンショットの様に

MovableTypeの[管理]→[ウェブログの設定]→[アーカイブの設定]で

「個別エントリーアーカイブ」を削除してみたら大丈夫になりました。

ちなみにアーカイブの設定から削除しても、画面の通り追加して戻す事ができます。