SewiGの日記
2007-10-02 [火] [長年日記]
■ [Software] IPAフォントの単体配布が可能
- IPAが日本語フォント「IPAフォント」を一般に配布 (ITpro)
表題の通り。今まではIPAフォントとともに直接利用しないソフトもセットで配布が条件でしたので、利用しない人にとっては精神衛生上無駄な存在でした。これで、フォント単位での配布が可能になったので、Unixでの日本語フォントの標準になれば、UIやOpenOfficeでの標準になって綺麗になりそうですね。あとはWindowsとMacのOpenOfficeにもオプションでもいいから簡単にインストールできるようにすれば、文書の交換である程度の見た目が維持できてうれしいね。
2007-10-03 [水] [長年日記]
2007-10-04 [木] [長年日記]
■ [Ajax][Programming] Webシナリオローダー
勉強がてら作ってみました。
ダウンロード:http://sewig.jp/swsl/swsl.zip
エフェクト、音声、テキスト効果は未実装です。エディタもなし。細かな部分で気になる点もあるのですが、それとなく遊べるようにしてみました。シナリオ部分の設計はXML PRESS vol.1を参考にさせてもらいました。ゲーム内容はXMLと画像さえ置き換えれば誰でも作れます。レンタルサーバだからPerlやPHPが使えない環境には便利かも。そのうちドキュメントとか作るかも。
2007-10-05 [金] [長年日記]
■ [Hardware] チューニングフリーなギター
- 自分でチューニングするギター (Slashdot Japan)
実際に弾かれた音の周波数を設定されたデータと比較し、弦の張りを自動的に締めたり緩めたりするものだと言う。
あー、なるほど。設定値次第では変則チューニングも自動設定できそうですね。
これに対し、プロの一部からは初心者から上達の機会を奪うだけだと言う批判がある
気持ちは分からなくもないけど、弦のチューニングをすることにハァハァするような人ならともかく多くの人はギターで演奏し音楽を楽しみ、伝えることに快楽を得ているだろうしこれでいいのではないかと思います。初心者がギターを弾くというプロセスに行くまえに挫折するという話をよく聞きますし、本来の役割とは無縁な作業に無駄な労力をかけないようにするのは楽器を作る人の大事な使命です。
とはいえ。楽器の構造や原理など知ってて損はないので、自動化してでも知っておくべき、とは思いますけどね。
2007-10-06 [土] [長年日記]
■ [Hardware] テルミンmini
また楽器ネタ。最近発売された大人の科学の付録がテルミン!
いつかテルミンを買おうと思っていたから、なんといいタイミング。テルミンは連続的に周波数を調整できる電子楽器。単純ながら独特な音もおもしろいし、奏法、インターフェースが手をかざす点も良いですよ。
付録がメインな訳だが、本の内容も侮れない。テルミンの原理、チューニングや改造法があって、この世界では有名な竹内さんとかテルミン博士の生い立ちなんかも。あと、テルミンの話が載ってないけど、音楽が大好きな我々のために、ローランドの梯さんのインタビューとかあるし、YMOの松武さんのインタビューがあったりして楽しい。
で、組み立てて演奏してみたけど演奏が難しい… チューニングは合わせたあとに添えた手が動くとダメになるので要注意。
● Wilhelmina [NDa3UW AFAIC that's the best aneswr so far!]
2007-10-07 [日] [長年日記]
■ [Network] オンラインストレージも安全じゃないな
- FC2ブログでユーザー記事消失 「Googleキャッシュのコピペで復帰を」 (ITmedia)
自宅サーバをやってると、自前のファイルサーバより設備のしっかりした商用サーバのほうが安全なんだろうなぁと思うことがあります。でも、よく考えたら世界中からアクセスが来るわけだからメンテナンスが大変だし、不正なユーザもいるだろうから、けして商用も安全じゃないよなぁと改めて考えさせられるニュースでした。
2007-10-11 [木] [長年日記]
■ [AIR] 環境を整える
Adobe AIR Beta2で解説していきます。
ランタイムです。AIRのアプリケーションで遊ぶだけならこれだけ。インストーラの指示に従います。
FlexアプリケーションのSDKです。AIRで使います。解凍して、パスを通せばOKです。
AIRやFlexを動かすのに必要です。
あと、APIリファレンスがオンラインにあるのでブックマークに入れておきましょう。http://livedocs.adobe.com/labs/flex/3/langref/index.html
とりあえず、HelloWorldでも作ります。日本語を使うときはUTF-8で。
// HelloWorld.as package { import flash.display.*; import flash.text.*; public class HelloWorld extends Sprite { public function HelloWorld() { var hello:TextField = new TextField(); hello.text = "お帰り、おにいちゃん!"; hello.autoSize = TextFieldAutoSize.LEFT; addChild(hello); } } }
テキストフィールドをSpriteに追加しているだけです。書き方もActionScriptそのまま。
次は、AIRアプリケーションの情報を記述したXMLです。
<?xml version="1.0" encoding="UTF-8"?> <!-- HelloWorld-app.xml --> <application xmlns="http://ns.adobe.com/air/application/1.0.M5" appId="jp.sewig.helloworld" version="1.0 Beta"> <name>HelloWorld</name> <title>HelloWorld</title> <description>Show HelloWorld.</description> <copyright>SewiG</copyright> <initialWindow> <content>HelloWorld.swf</content> <systemChrome>standard</systemChrome> <transparent>false</transparent> <visible>true</visible> </initialWindow> <installFolder>sewig/helloworld</installFolder> <handleUpdates/> <!-- <icon> <image16x16>icons/AIRApp_16.png</image16x16> <image32x32>icons/AIRApp_32.png</image32x32> <image48x48>icons/AIRApp_48.png</image48x48> <image128x128>icons/AIRApp_128.png</image128x128> </icon> --> <!-- <fileTypes> <fileType> <name>Text File</name> <extension>txt</extension> <description>Text File</description> <contentType>text/plain</contentType> </fileType> </fileTypes> --> </application>
アイコンやファイルの関連付けができるのが面白いですね。
以上2つのファイルを作成したら、コンパイルします。HelloWorldが生成されます。
amxmlc HelloWorld.as
デバッグは次の通り。
adl HelloWorld-app.xml
AIRパッケージの作成には署名の添付が必要なので作成します。
adt -certificate -cn SelfSigned 1024-RSA hogecert.pfx hogehoge
AIRパッケージを作成します。
adt -package -certificate hogecert.pfx -password hogehoge HelloWorld.air HelloWorld-app.xml HelloWorld.swf
あとは、HelloWorld.airをダブルクリックすればインストールと実行ができます。
2007-10-12 [金] [長年日記]
■ [AIR] Adobe AIRでデスクトップマスコット
Adobe AIRの公式ページのサンプルプログラムは非常に参考になるのでぜひチェックしましょう。今回はウィンドウを作成して、デスクトップマスコットを作ってみます。参考にしたプログラムはPixel Perfect。Adobe AIR Beta2で作成します。
まず、メイン部分。Windows部分は独自のパッケージを作ってそこから呼び出すことにしましょう。importの最初の部分をみてください。「jp.sewig.aloemascot.MascotWindow」と書いた場合は「jp/sewig/aloemascot」というディレクトリにMascotWindow.asを入れればOKです。
// AloeMascot.as package { import jp.sewig.aloemascot.MascotWindow; import flash.display.Sprite; import flash.system.Shell; import flash.events.InvokeEvent; import flash.ui.*; public class AloeMascot extends Sprite { public function AloeMascot() { Shell.shell.autoExit = true; Shell.shell.addEventListener(InvokeEvent.INVOKE, onInvoke); } private function onInvoke(e:InvokeEvent):void { new MascotWindow(); stage.nativeWindow.close(); // 全部のWindowが閉じたら終了 } } }
次にWindow部分。NativeWindowを継承してコンストラクタでフィールドに値をセットしていきます。描画はSpriteを新たに生成して、そこに画像を描画しましょう。Loaderクラスを用いれば簡単に読み込めます。「app-resource:」は アプリケーションのインストールディレクトリからの相対パスですので、AloeMascot.asと同じディレクトリに入れておきます。コンテキストメニューはContextMenuとContextMenuItemで作成します。ItemはListenerを設定してアクションを発生させれば処理が飛びます。音声の再生はSoundクラスで。ファイルはUTF-8で保存してくださいね。
// MascotWindow.as package jp.sewig.aloemascot { import flash.display.*; import flash.events.*; import flash.system.*; import flash.ui.*; import flash.net.*; import flash.media.*; import flash.filesystem.*; public class MascotWindow extends NativeWindow { private var sprite:Sprite; private var exitMenuItem:ContextMenuItem; private var viewSource:ContextMenuItem; private var path:URLRequest = new URLRequest("app-resource:/mascot.mp3"); public function MascotWindow(width:uint = 240, height:uint = 320, x:uint = 50, y:uint = 50, alpha:Number = 1.0) { var winArgs:NativeWindowInitOptions = new NativeWindowInitOptions(); winArgs.systemChrome = NativeWindowSystemChrome.NONE; winArgs.transparent = true; super(winArgs); // Windowの設定 this.title = "マスコット"; this.alwaysInFront = true; this.x = x; this.y = y; this.width = width; this.height = height; // Spriteの作成 sprite = new Sprite(); sprite.alpha = alpha; sprite.useHandCursor = true; // 画像 var loader:Loader = new Loader(); loader.load(new URLRequest("app-resource:/mascot.png")); loader.doubleClickEnabled = true; loader.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick); sprite.addChild(loader); // コンテキストメニューの作成 stage.showDefaultContextMenu = true; var cm:ContextMenu = new ContextMenu(); cm.hideBuiltInItems(); exitMenuItem = new ContextMenuItem("終了"); exitMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onExitMenuItem); cm.customItems.push(exitMenuItem); sprite.contextMenu = cm; // Stageの設定 stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addChild(sprite); // Listenerの設定 sprite.doubleClickEnabled = true; sprite.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick); sprite.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); visible = true; } private function onExitMenuItem(e:ContextMenuEvent):void { Shell.shell.exit(); } private function onDoubleClick(e:Event):void { var s:Sound = new Sound(); s.load(path); var channel:SoundChannel = s.play(0); } private function onMouseDown(e:Event):void { startMove(); } } }
あとは、XMLを書いてコンパイルです。今回はWindowを透過にしてアイコンも付けてみました。アイコンはicons以下に入れます。
<?xml version="1.0" encoding="UTF-8"?> <!-- AloeMascot-app.xml --> <application xmlns="http://ns.adobe.com/air/application/1.0.M5" appId="jp.sewig.aloemascot" version="1.0 Beta"> <name>AloeMascot</name> <title>マスコット</title> <description>マスコットが表示されます。</description> <copyright>Copyright(c)2007 SewiG</copyright> <initialWindow> <content>AloeMascot.swf</content> <systemChrome>none</systemChrome> <transparent>true</transparent> <visible>true</visible> </initialWindow> <installFolder>sewig/aloemascot</installFolder> <handleUpdates/> <icon> <image128x128>icons/AIRApp_128.png</image128x128> </icon> </application>
コンパイル
amxmlc -default-size 240 320 -default-frame-rate=30 -default-background-color=0xFFFFFF AloeMascot.as
AIRパッケージ作成
adt -package -certificate hogecert.pfx -password hogehoge AloeMascot.air AloeMascot-app.xml AloeMascot.swf icons mascot.png mascot.mp3
↓完成版 (あ、mascot.mp3は自前でご用意ください… あと、pfxとか)
2007-10-13 [土] [長年日記]
■ [Network] 過疎地対策!?
- アニメが放送されない地域にBB配信する「エリアキャスト」−携帯電話で位置特定。「スカイガールズ」無料配信 (Impress Watch)
最近は、アニメのネット配信が増えてきましたが、今度は地上波放送の代替目的で配信するようです。…ただし携帯電話。要は位置認証さえできればPCでも見れるんだろうなぁ。そうなると携帯電話のパケット定額サービス前提という訳で、まだ少しばかり敷居がたかそうなサービスかもしれません。でもこうやってネット配信が主流になるのは良い事だ。有料でバックナンバーも見れれば言う事なし。
2007-10-14 [日] [長年日記]
■ [Software] Mobile Firefox
- 「Mobile Firefox」の開発計画が明らかに、2008年にリリースか? (Impress Watch)
それならぜひMobile lolifoxもお願いしますw
携帯電話用ならOperaがあるのに何を今更、と思ったらXULが使えるのか。これは便利かもしれない。それにしてもFirefoxは開発陣が熱いな。ぜひThunderbird、いやEudoraの開発も力を入れてください(切実)
● Jonathan [I could watch Schindler's List and still be happy after re..]
2007-10-16 [火] [長年日記]
■ [Other] 実装依存を常識といわれても
次のコードの問題点を指摘しなさい、みたいな問題があった。
char str[5] = "abcde"; printf("%s\n", str);
で、京都の専門学校生が「コンパイルエラーになるよね」って言っていたのが気になりました。まず、C言語の仕様上エラーにはならないし、この問題の製作者の意図からしても文字列の最後にNULが含まれないことを答えてほしいんだろうと思うのですが。私は彼にコンパイルが通らない理由を聞いたら「Visual C++ではエラーになる」と。コンパイラ実装上の問題ですな。これから彼はいろいろ勉強することになるだろうな。
サイズを指定した配列の初期化 http://www.st.rim.or.jp/~phinloda/cqa/cqa2.html
2007-10-18 [木] [長年日記]
■ [Other] 宇宙人って何?
- 宇宙人からの通信受信、通報はどこへ…研究者ら来月討議 (YOMIURI ONLINE)
宇宙人からのコンタクトかどうかを判別する方法は? そ、そうか。TCP/IPプロトコルの無視したよくわからないメッセージが届いたり、脳波に直接訴えかけてくるわけか。怖いな。こんなことしてくるのは間違いなく宇宙人だ。なるほど。で、通報先がどこか、というわけか。なんか通報しても「お前の頭がおかしいんじゃね?」で追い返されそう…
● Diandra [This is the perfect way to break down this infmoration.]
2007-10-19 [金] [長年日記]
■ [Mac] Leopard予約開始
そういえば、自分が奈良に行っている間にLeopardの発売日が正式発表されてましたね。http://www.apple.com/jp/news/2007/oct/16leopard.html
さっそく予約しました。届くのが楽しみ。
そういえば、先輩にLeopardの予約始まってますよって教えたらものすごい勢いで頭を抱えてました。ちなみに彼はMacを10台くらい持ってます。
● Hans [There are no words to dseicbre how bodacious this is.]
2007-10-20 [土] [長年日記]
■ [Other] 携帯電話の公式メニュー
- 公式メニューという“強力すぎる”メディア (ITmedia)
読んでて確かにその通りだと思いました。まだ、パケット定額制がそれほど利用されていないからググって目的のページを探すより、公式メニューから飛んだほうがパケット代が無駄にならないですしね。さらに勝手サイトを自由に利用させるには不十分な携帯電話のブラウザにも問題がありますね。URLの表示やらSSL対応やら…
公式メニューのシェアを奪うには、携帯電話のユーザ数ベースで、PCでの定額インターネット接続環境と同じくらいの定額制利用率になって、ブラウザがまともになってくれれば良いのではないかと思います。そのためにはMobile Firefoxみたないに新興のブラウザがどんどん参入して既存のブラウザの開発チームと競い合ってもらいたいな。
2007-10-23 [火] [長年日記]
■ [Other] Xbox 360値下げ
- Xbox 360、約5000円値下げ ソフト2本付きで (ITmedia)
11月1日より。これから買う人にはいいニュース。通常版が39785円が34800円に。そして、Xbox 360 eliteは47800円で据え置きというあたりがオタク向けは高くても売れるというMSの罠か。
なによりXbox 360 バリューパックってのが出るのがすごい。価格は通常版そのままで、痛車も作れる「Forza Motorsport 2」と「あつまれ!ピニャータ」がついてて、HDMI端子が付いているといかどんだけお買い得なんだ。アイマスと同時購入を考えている方は、eliteかバリューパックを買えばいいと思いますよ。
2007-10-25 [木] [長年日記]
■ [Hardware] 同軸ケーブルLAN
- テレビの同軸ケーブルでも家庭内LANを (Slashdot Japan)
PLCとどっちが使い勝手がいいかと言われれば、数から言えばコンセントのほうが同軸口より多いからPLCのほうが設置は楽そうですね。でもこういった製品が発表されるということなら、テレビ全盛のころに建った建物で各部屋にLANを組みたいとか、ネットを楽しみながらテレビも一緒に見るといった、テレビ文化の人をターゲットにしてるんだろうなぁと思います。ストリーミングで映像を見る世代には、PLC以上のメリットがないような感じがしますね。
● Caroline [With all these silly websites, such a great page keeps my ..]
2007-10-26 [金] [長年日記]
■ [Mac] Leopard届いた
9:00頃にLeopardが届きました。店頭販売は18時からなのにね。Time Machine、Stacks、新UIなどビジュアルが豪華になってるけど、目立たないところでも機能が強化されてて、個人的には気に入りました。
インストールは、C2Dが最初に載ったMacBook Proに上書きインストールで1時間30分くらいかかりました。最初はバックグラウンドでプロセスがいっぱい動いてたか動作がモッサリしてたけど、今はサクサク動いてます。Apple純正のソフトはTigerより快適。
みんながあまり書かない点で気に入っているのが、Preview.appの編集機能の強化。Photoshopを開くまでもない、リサイズ、レタッチがフリーソフトに頼る事無くできたり、PDFの編集ができるので人によってはAcrobatを買わなくて済むかも。
あと、日本語辞書が標準でつくことを考えてもかなりお得。Spotlightから簡単に辞書が引けるので便利。
今まで使ってたソフトもほぼ問題なく動作。ただ、Photoshop Elements2が起動すらしなかったのが残念。CS3に買い換えるかな。
● Elena [Well done article that. I'll make sure to use it wisley.]
2007-10-28 [日] [長年日記]
■ [Other] 車輪の再開発をせずに済んだ
Particle filterというか、その内部で使ってるリサンプリングの実装とかないかなぁって思ってフレームワークを探しても、IntelのCondensationというか画像処理のやつとか、音声に応用しててもトラッキングばっかだし、本格的なのは必要ではなかった。そしたら、雑音抑圧でよくまとまったやつがありました。しかもソースが簡潔。オススメ。ただしMATLAB用。
http://www.site.uottawa.ca/~mustiere/
ただ、リサンプリングでも相当単純なアルゴリズムなので、改良して使ったほうがいいと思います。リサンプリング自体の論文は、論文検索で北川先生や樋口先生のを見るといいと思います。
2007-10-30 [火] [長年日記]
■ [Software] プロの動画って何よ…
- 「プロの動画」自動判定、正解率98% KDDI研が新技術 (ITmedia)
えーと、誤爆率は? 正解率が高いのは分かりましたが誤認率が書いてないのが不安ですね。スパムメールのフィルタなんかもそうだけど、見逃しよりも間違った判定のほうが問題なのに、そこを公表しないのは何か公表したくない理由があるのでしょうか…
それから、判定材料となるのが、使用機材や撮影技術だそうです。前者なら確かに高い確率でプロの使いそうな機材が判別できそうです。後者はどうでしょうか? NHKとかそれなりにしっかりした放送局の映像なら安心して見れる技術はあるんだけど、チャネル数が多いスカパーなんかの衛星放送だと手ブレ、露光などがいい加減なアマチュア同然の映像もあるわけで、商業ベースの映像がアマチュアと判定されても何の不思議もないわけで。
いくら判定の「手助け」とはいえ、10万本以上ある動画の誤認識分動画を人の目で確認するとは思えないわけで、誤爆すると大問題になり、とても違法動画判定の用途には向かないと思います。
もちろん、技術自体はとてもいい技術だと思います。動画の転載や一部加工しても同じ動画として認識していたちごっこを減らすような判定にこの技術を使うとかだったらすごく効率的にシステムが動くと思いますよ。
それとか、きっとシーンのカット構成とかでもプロかどうかの判定をしてるんだろうから、ソニーのVAIO Movie Storyみたいなソフトと提携して、プロっぽく撮影できている部分をピックアップして動画編集とかそんな用途だと成功すると思います。
2007-10-31 [水] [長年日記]
■ [Other] 動画投稿サイトの著作権料支払い
- ニコニコ動画とYouTube、JASRACに著作権料支払いへ (ITmedia)
これって前から、プレイヤーズ王国でやってたやつだよね。動画投稿サイトで人気があるのはMAD→MADはCD音源やアレンジ楽曲が使用されている→アウト。というわけで、このままではプレイヤーズ王国と一緒で微妙な立ち位置に。詳しいまとめはここらへん(Slashdot)が詳しい。
● Vinod [It's good to see someone thinikng it through.]