9arrowsをApache2+passengerで動かす

成功したのでメモ。

何がしたかったかというと、既存の.htpasswdで9arrowsをBasic認証させたかったのが始まり。

基本的にはこの辺参考。OSはdebian。Rubyは1.8。

[Ruby]9arrowsを入れてみたよ

とりあえず、9arrows標準のWEBrickで動かそうと思ってすでに色々はまる。
rakeが動かないとかでgem本体のアップデートやら色々したのだけど、ちょっとその辺忘れてしまった。

一応TCP Port 3000で動作することを確認。

で、passengerをgemでインストール。

rails/【passenger】Apacheで手軽に作るRailsの実行環境 – PukiWiki

passengerの説明としてはこっちも詳しい。

Redmine.JP | Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用

データベースをdevelopmentで作ったので、passengerの環境も合わせておく。

Apacheのconfに以下を記述。

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin webmaster@localhost
ServerName 9arrows.dev
RailsEnv development

DocumentRoot /path/to/9arrows-read-only/public
<Directory /path/to/9arrows-read-only>
  AuthUserFile /path/to/.htpasswd
  AuthGroupFile /dev/null
  AuthName system
  AuthType Basic
  <Limit GET POST>
    require valid-user
  </Limit>
  Options FollowSymLinks
  AllowOverride All
</Directory>

ServerSignature Off
</VirtualHost>

500エラーが出てはまったのは.htaccessのせい。

#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#Options +FollowSymLinks +ExecCGI

先頭の方にある3行をとりあえず全部コメントアウトしておく。
それだけでOK。

とりあえず問題なく動いている模様。


DShowNETでSystem.InvalidCastException

以前作ったWebカメラの動画から静止画をキャプチャして保存するプログラムを、ソースをコピーして別のプログラムで使おうとしたらこんなエラーが出た。

型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'DShowNET.ISampleGrabber' にキャストできません。IID '{6B652FFF-11FE-4FCE-92AD-0266B5D7C78F}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。

原因がわからなくてしばらく悩んだのだけど、どうやらシングルスレッドアパートメントだとダメらしい…

Main()の定義の前の行で、[STAThread]→[MTAThread]に変更したらできるようになった。


VirtualPC 2007にUbuntu 8.04 LTS Serverを入れてみた。

一応(※後述)動いたので報告。Server版がインストールはできても起動しないという報告がちらほらあったので。

まず適当に仮想PCいっこ作る。

今回は画像扱うサーバにする予定なので、メモリを512MB、HDDを32GBとして作成。

Ubuntu 8.04 LTS ServerのISOをマウントして起動。

とりあえずインストール自体は、以下の参考サイト参照。

Virtual PC 2007にUbuntu 8.04を入れてみた。:めもメモ とにかく メモめも:So-net blog

ブートオプションには「noapic nolapic vga=791」を指定。

あ、コピペで貼り付けようとすると「=」が「-」になって貼りつけられたりするので注意。キーボードで打っても「=」が「-」になるけど。「=」打つときは「^」キー。

というか、サーバ版インストールには上記あまり影響しないっぽい。

で、そのまま普通に再起動すると再起動後に画面が何もでなくなる。HDDにアクセスしているような反応もないので、止まっているっぽい。

再びISOイメージをマウントして、CDから起動。レスキューモードで起動する。

ubuntu01

ubuntu02

ubuntu03

「/dev/sda1 内でシェルを実行」でコンソールを呼び出して、

# apt-get update
# apt-get install linux-386
# apt-get remove linux-server

参考: http://tombuntu.com/index.php/2007/09/05/making-ubuntu-server-work-in-virtualbox/

カーネル入れ替えちゃってますけど。

が、これで起動できるようになります。「Ubuntu 8.04 LTS Server(笑)」の完成。

LAMPをインストール時にチェックしておくだけで、簡単にWebサーバ構築できて超らくちん。

カーネル入れ替えた件について、詳しい人いたらリスクとか教えてほしいです。


Delphi for PHP 2.0発注

発売されたもののSEShopにもなくて、ずっとどこで買えるか謎だったDelphi for PHP 2.0がAmazonに入ってた。

ぉ?じゃあもしやと思ってヨドバシのサイトで検索したところ、ヨドバシでも取り扱いを開始していた。

そんなわけで早速ポチってみました。取り寄せで、いつ届くのかわからないけど。


Windows Vistaでシンボリックリンクを削除する

Vistaではシンボリックリンクを簡単に作成できる。

ローカルのApacheに色々開発環境移すのにシンボリックリンクを作った方が、全部htdocs以下に配置するより、開発単位でフォルダを一元管理できるので、ちょっとやってみた。

何より開発フォルダ名には日本語入ってるしね。

C:\xampp\htdocs> mklink /D hoge d:\dev\ほげ\htdocs

で、さっくりと c:\xampp\htdocs\hoge というシンボリックリンクディレクトリが作られる。

最初作る場所を間違えたので、移動しようと思って

C:xxx> move hoge C:\xampp\htdocs

とかやったら

アクセスが拒否されました。

とか表示されて移動できなかったので、一度消すことにした。

で、うっかり

C:\xxx> del hoge
C:\xxx\hoge\*、よろしいですか (Y/N)? y

としたらオリジナルの方の中身だけ消えてしまった…

そういえばディレクトリの削除はrmdirでしたね…

まぁ、当然といえば当然、なのかな?昔はこんなに親切に中身消してはくれなかったような気が?

delする前にそんな予感がして、バックアップを取ってあったので何も問題はなかったですが。

C:\xxx> rmdir hoge

とすればシンボリックリンクのディレクトリだけ削除できてOK。

…またうっかりやりそうだな…


Picasa Button APIの存在に今気づいた件

Picasa Button API – Picasa APIs – Google Code

ヤバイ、こいつァやばいぜ。気づくの遅かった。もう公開から一か月も経とうとしているではないか。

夢が広がりすぎて何から手をつけていいかわからんね。

とりあえずイケてる印刷ツールはあるべき。

あとはWindows Live Writerとの連携かなぁ…


Delphi for PHP 2.0 発表

CodeGear™、PHPで初めてドラッグ&ドロップ開発を実現したビジュアル統合開発環境の新バージョン「Delphi® for PHP 2.0」を発表
http://www.codegear.com/jp/article/37886/

キ・キ・キ・キタ━━━━━━(゚∀゚)━━━━━━!!!!

1.0は結局見送ってしまったが、2.0になって日本語対応になったし、色々情報も貯まってきたっぽいので今度こそ買う!

ZendFrameworkも使えるし、デザイン連携も可能。テンプレートエンジンとかどうなってるんだろう。

そして相変わらずどこで買えるのかがイマイチわからない仕組み。


WiimoteLibとスタック

WiimoteLib v1.2.1、BlueSoleilでしか動かないのかと思ったら東芝スタックでも動作できた。

ただし、MicrosoftのスタックではBluetooth上では認識して接続できるものの、WiimoteLibからはデバイスが見つからないと言われる。

繋げただけではHIDとして使用するようになっていなかったので、チェックを入れてみたがやはりダメ。

うーん、仕方がない…東芝でいいか…

あー、NXTが東芝で動かないんだった…orz

追記(2008/04/11)

SonyのDR-BT50もA2DPで接続できない…どうしろと…('A`)
(Vista 32bitにて)

追記(2008/04/21)

Bluetooth Stack for Windows by Toshiba
Version v5.10.15にアップデートしたらDR-BT50もつながるようになった。よかったー。
ドライバはPrincetonのサイトからダウンロード。
http://www.princeton.co.jp/download/ptm-ubt3s/top.html

追記(2008/04/21)その2

DR-BT50接続時に2回に1回の割合でブルースクリーンでOSが落ちる…なんぞ…orz


NortonアンインストールでVistaがネットワークに繋がらなくなった

VistaでNorton 2008をアンインストールしたらネットワークにつながらなくなる現象が発生。

どうやらDHCPがブロックされているらしい。IPが取れない。

似たような事例は検索すると結構出てくる。MSのサイトにもある。

DHCP クライアントが 初期化されず IP アドレスが 0.0.0.0 になる

ちなみにSymantecのサイトにはろくな情報がなかった。

まぁ、アンインストールが中途半端で不要なエントリとかが残ってしまうってことですね。
んが、今回出くわした現象はちょっと違っていて、SYMTDIはDHCPの依存関係には入ってなかった。DHCPのサービスは上がってるのにどこかでブロックされているらしい。
Firewall系も切ってみたが変化なし。

で、ちまちまとレジストリからsymantec関連のエントリ消したり色々やってたのですが、以下のサイトを発見。

ノートン製品を完全に削除するプログラムをアンインストールしてノートンの削除ツール»私のデジタルライフ

自動翻訳につき何やら本文はあまり読む気がしないけど、とりあえず削除ツールがsymantecのFTPにあるそうなので、ダウンロードして実行。

Norton削除ツール

実行したら削除進行中にネットワークが復活!やった!Good-bye, Norton!


ZendFrameworkでPicasa

Zend Framework: Documentation

ZendFrameworkって結構色々ニッチな機能取り揃えているなぁと思っていたけど、Picasa Web Albumsに対応していることを知ってびっくりした。

これならやりたかったことができそう。
自宅のファイルサーバに保存されている写真を携帯から選択してPicasaにアップロード→携帯とかiPod touchで人に見せるとか、そういう使い方がしたい。

あとは撮った写真をその場でPicasaにあげる手段が欲しいなぁ…Eye-fiはちょっと微妙。
写真撮る→CFカードの内容を無線経由でPicasaにアップロード→アルバムのアドレスを他の人にも送って、見てもらうとか。公衆無線がない環境でも使いたい。
EM ONEとかって話になってくるな…