Pythonのeasy_installで入れたパッケージのアンインストール

-mオプションを付けて

 sudo easy_install -m [packagename]

その後不要な.eggを削除してもよい
.eggの場所は自分の場合は下記ディレクトリ

/usr/local/lib/python2.7/dist-packages/

Rasberry Pi でx11vncのAutostart

x11vncを入れることで、RaspberryPiのHDMIから出力される画面を直接VNCから操作できる。
つまり、電源とネットワークとHDMIさえつなげておけば他のマシンからディスプレイ出力を含めて操作できる。

ちなみにx11vncのインストールは

$ sudo apt-get install x11vnc

以下本題、電源入れたらx11vncが自動起動する為の設定

1.自動起動の設定ファイル作成

/home/pi/.config/autostart
にx11vnc.desktopというファイルを作成する。
ファイルの内容は下記。

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false

2.Raspberry Pi でxの自動起動

sudo raspi-config
で設定を起動。
Enable Boot to DesktopをEnableに設定。

3.クライアントからVNCで接続

Macの場合はFinderのサーバーへ接続で
vnc://pi@xxx.xxx.xxx.xxx:5900(xxx.xxx.xxx.xxxはpiのIPアドレス)

Cakephpでuse_trans_sidを有効にする時の注意点

死ぬほどハマったからメモ

環境:CakePHP 2.2.2

携帯サイトでリンクやフォームでセッションを付与する為にuse_trans_sidを有効にしていたら、HTMLが途中で途切れる現象が発生。

色々と調べているとどうやらヘッダのContent-Lengthが実際より短いことが判明。

いつからCakephpはContent-Lengthを出力するようになっていたらしい。

CakephpがHTMLを出力(Content-Lengthを例えば500に設定)

サーバー側でセッションIDを付与(実際のContent-Lengthは500+セッションIDの文字列分増えるけどヘッダは変わらず)

レスポンスとヘッダのContent-Lengthに差異が生まれHTMLが途中で途切れる。

今回はuse_trans_sidを無理に使う必要がなかったのでhiddenでセッションIDを引き継ぐ方法に変更。

Raspberry Pi をMacにインストールした

こちらに従ってインストールしたのでメモ(2013年6月18日現在)

http://www.raspberrypi.org/wp-content/uploads/2012/04/quick-start-guide-v2.pdf

1.準備

Raberry Piに以下を接続

  • HDMIケーブル(TVに接続)
  • USBキーボード
  • USBマウス
  • 電源(microUSB)

4GB以上のSDカードを用意

2.SDカードのフォーマット

  1. 次よりフォーマットツールをダウンロード https://www.sdcard.org/downloads/formatter_4/eula_mac/
  2. ツールをインストール
  3. ツールを起動
  4. “Overwrite Format”を選択
  5. “Format”を実行

3.Rasberry Pi Recovery Systemのダウンロード

http://www.raspberrypi.org/downloadsから
New Out Of Box Software (Recommended)のNOOBS_v1_1.zipをダウンロード

4.解凍してコピー

解凍してできたNOOBS_v1_1内のファイルをSDカードにコピー

5.Raspberry Pi のブート

Raspberry PiにSDカードを挿してブートする。
OSがインストールされる。途中どのOSをインストールするか選択する。
今回はRaspbianを選択した。

jQuery Validation Pluginでhiddenフィールドのバリデーション

http://jqueryvalidation.org/validate

こちらを確認するとhiddenフィールドは無視する設定になっている。

hiddenフィールを対象にする場合は、validationのオプションにignore:”を渡してやればよい

<script type="text/javascript">
	$('#my-form').validation({
		ignore:[],
		rules;{
			hiddenFieldName:"required"
		},
	});
</script>

但しエラー時フォーカス対象がないのでどこにフォーカスするか考慮が必要。

Cakephp 2.0におけるstdin

CakephpのShellで標準入力を受け取るとき

$stdin=$this->Dispatch->stdin;
while(!feof($stdin)){
 $mailBody .= fgets($stdin,4096);
}

としてましたが移行ガイドによると旧来のは廃止されました

代わりにstdinプロパティはConsoleOutputオブジェクトとなりreadメソッドが使えます。

while($row = $this->stdin->read()){
 $mailBody .= $row;
}

mongodbインストールメモ

CentOS5.5にyumでmongodbを入れて起動するまでのメモ

yumでインストール

# yum install mongodb
# yum install mongodb-server

mongoコマンドを実行

# mongo
MongoDB shell version: 1.6.4
Thu Mar  8 07:56:10 *** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
connecting to: test
Thu Mar  8 07:56:10 Error: couldn't connect to server 127.0.0.1 (anon):1154
exception: connect failed

エラーになった。調べるとmongoのserviceが起動してない

サービス起動

# service mongod start
mongod を起動中:                                           [  OK  ]
# service mongod status
mongod は停止していますがサブシテムがロックされています

どうやら起動していない。

/var/log/mongodb/mongodb.logを確認したところ下記のエラー

exception in initAndListen std::exception: dbpath (/var/lib/mongodb) does not exist, terminating

dbpathを作成

# cd /var/lib
# mkdir mongodb
# chown mongodb:mongodb mongodb

再度サービス起動

# service mongod start
mongod を起動中:                                           [  OK  ]
# service mongod status
mongod (pid 16863) を実行中...

起動した。

mongoコマンドを実行

$ mongo
MongoDB shell version: 1.6.4
Thu Mar  8 08:01:22 *** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
connecting to: test
>

一先ず動いたようだ。

utf8がサポートされてないと出てるがとりあえずここまで

node.jsインストールエラーの対処

こちらのエントリーでnvmを使ってnode v0.6.12をインストールした時下記のエラーがでたため、取り急ぎv0.4.2のインストールに変更した。

Build failed: -> task failed (err #2):
{task: libv8.a SConstruct -> libv8.a}

改めてv0.6.12のインストールを行う。

調べたところbz2を入れた状態でPythonを入れなおせばいいようだ。

bz2のインストール

# yum install bzip2-devel

Pythonの再インストール

# wget http://www.python.org/ftp/python/2.6/Python-2.6.tgz
# tar -xvzf Python-2.6.tgz
# cd Python-2.6
# ./configure
# make
# make install

node.js v0.6.12のインストール

$ nvm install v0.6.12

今度は成功した!

確認

$ which node
~/.nvm/v0.6.12/bin/node

node.jsをnvmでインストールするメモ

久々にnode.jsをいじることになったので再度環境構築からのメモ。OSはCentOS5.5。

node.jsにはnvm、naveという管理システムがある。調べたところnaveよりnvmの方がトラブルが少なそうだ。

GithubのREADME.markdownに従ってclone

$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ . ~/.nvm/nvm.sh

ホームディレクトリに.nvmが作成される

node.js最新版のインストール

$ nvm install v0.6.12

Build failed: -> task failed (err #2):
{task: libv8.a SConstruct -> libv8.a}
というエラーがでた。
調べるとbzip2-develを入れたりPythonを入れなおしたりが必要そうなのでとりあえず別のバージョンインストール。

$ nvm install v0.4.2

確認

$ nvm list
    v0.4.2
current: 	v0.4.2

$ node -v
v0.4.2

nodeもnmpも.nvm/v0.4.2配下に設置されている。

$ which node
~/.nvm/v0.4.2/bin/node
$ which npm
~/.nvm/v0.4.2/bin/npm

次回以降の為にnvm.shをログイン時に実行

$ . ~/.nvm/nvm.sh

ブラウザから動作確認

node.jsのサイトから下記のコードをコピーしnode_test.jsを作成。

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://domain');

下記実行後にブラウザでhttp://domainを叩きHello Worldを確認

$ node node_test.js

以上で環境構築完了です。

npmの利用

$ npm install -g coffee-script

~/.nvm/v0.4.2/lib/node_modules/に配置される

※npmは-gを付けずに使うとカレントディレクトリ下にnode_modulesディレクトリを作成し、その配下にインストールを行うので注意が必要。

buffer I/O error on device fd0

Thinkpad X32でLinux LiveをUSBから起動時に固まるので、調べてみると”buffer I/O error on device fd0″というエラーが出てた。
どうやらFDを探しにいって止まってるようだっった。

BIOSで「Config」>「Floppy Drives」>「Legacy Floppy Drivers」をDisableにすると起動するようになった

TOP