主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Phusion Passenger の実行ユーザーを指定するには

Phusion Passenger の標準の実行ユーザーは Apache の実行ユーザー、例えば Ubuntu だと www-data 、とは違うらしい。これを変更するには

PassengerDefaultUser www-data

を mods-available/passenger.conf なりに指定する。

telnet で ssl 接続をしたい

telnet コマンドは基本的に平文の通信しかサポートしてなくて、 HTTPS プロトコルに HTTP コマンドを手動でちょっと発行したいときなどに対応できない。
debian には telnet-ssl っていうパッケージがあるみたい何だけど、 CentOS 5 上でコンパイルしようとしたらどうにもエラーで進まないので、ちょっと perl でサイトを色々参考にして作ってみた。その時のメモ。というかソース。
特に細かい説明は無し。

追記:最近はほとんど openssl の s_client でやっている。

$ openssl s_client -connect www.example.com:443

もっと読む

Javascript で trim するには

Javascript には trim 関数が無いらしい。代わりに replace を用いて文字列の前後の空白を取り除く。

target = target.replace(/(^\s+)|(\s+$)/g, "");

左側のみを取り除く ltrim も同様な方法でできる。

target = target.replace(/^\s+/, "");

右側の rtrim も同様に。

target = target.replace(/\s+$/, "");

もし全角空白も取り除きたい場合は \s+ の部分を [\s ]+ とするとできる。

更に、 prototype 言語らしく String クラスを装飾してやる方法や jquery を使う方法も一応書いておく。


もっと読む

javascript のコールバック関数を引数付きで指定するには

javascript で例えば簡単な例で setTimeout() 関数にコールバック関数を引数付きで指定したい例を考えてみる。

var sayHello = function(who) {
	alert('Hi ' + who + '!');
};

setTimeout(sayHello, 3000);

これだと who には何も値が渡らず Hi undefined! となってしまう。
かといって sayHello('Mike') とかやるとそれが実行された結果が渡されて、 setTimeout() 自体動作しない。
グローバルな変数を定義しておくとか解決方法はいくつうかあると思うけど、きれいなやり方を数例メモしておく。


もっと読む

mongrel_cluster で ruby on rails を動作させるには

まじめに Rails アプリを Mongrel cluster でセットアップした時のメモ。環境は、 ruby-1.8.7-p334@rails_2_3_14 です。

注意: Mongrel-1.1.5 は Rails3 ではエラーで動きません。
1.2.0pre2 を使うか、 Rails のバージョンをデグレするか、もしくは、手動で Mongrel を少しいじるか。
もしくは Thin か Phusion Passenger を使ってもいいかと思います。
ちなみにエラーは以下のようなもの。

[Enjoi-MacBook:~/Websites/EnjoiTech/www.enjoitech.com] $ mongrel_rails start
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
/usr/local/rvm/gems/ruby-1.8.7-p334@rails_3_0_9/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require': no such file to load -- dispatcher (LoadError)

Passenger を使えばこんな小面倒くさいことはしなくてもいいんですけどね。 cluster とか響きがいいじゃないですか。


もっと読む

php の foreach で参照渡しをするには

phpforeach は基本値渡しで、受け取った値を変更しても当然元の配列データは変更されない。
でも実際は参照渡しもできることを知ったので一応メモ。

以下は普通の値渡しの例。

$enjoi = array("normal", "crazy");
foreach( $enjoi as $e )
{
  if( $e == "crazy" )
  {
    $e = "normal";
  }
}
var_dump($enjoi);
array(2) { [0]=>  string(6) "normal" [1]=>  string(6) "crazy" }

でも関数の参照渡しみたいに & をつけてやると、参照渡しを使って foreach で配列を処理できる。

$enjoi = array("normal", "crazy");
foreach( $enjoi as &$e )
{
  if( $e == "crazy" )
  {
    $e = "normal";
  }
}
var_dump($enjoi);
array(2) { [0]=>  string(6) "normal" [1]=>  &string(6) "normal" }

同様に key-value 配列を扱う場合も value の変数に & をつければ同じようにできる。

foreach( $enjoi as $key => &$val ) { ... }

もっと読む

Ruby gem で native extensions をインストールするには

Native extensions をインストールしようとすると、通常の gem install コマンドではうまくいかないことがある。
この場合、以下のようにビルドソースを指定してやる必要がある。

$ sudo gem install ruby-debug19 -- --with-ruby-include=/Users/ma/Documents/Build/tar/ruby-1.9.2-p0/

Postgresql の pg extension の場合で、 Mac にパッケージで Postgresql をインストールしてある場合は

gem install pg -- --with-pg-config=/Library/PostgreSQL/9.0/bin/pg_config

という感じ。


もっと読む

rvm install で readline コンパイルエラー

rvm で ruby 1.8.7 をインストールしようとした際に、コンパイルエラーでインストールに失敗した。ログを見てみると

readline.c: In function ‘username_completion_proc_call’:
readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:730: error: (Each undeclared identifier is reported only once
readline.c:730: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1

代わりに自分で readline をダウンロードしてコンパイル、 /usr/local/ にインストールして、もう一度 readline のインストールパスを指定して rvm install

vm install 1.8.7 -C --with-readline-dir=/usr/local/

もしくは rvm readline パッケージをインストールしてコンパイルしてもうまくいくこともあるらしい。

$ rvm --skip-autoreconf pkg install readline
$ rvm reinstall 1.8.7

rvm で "LoadError: no such file to load -- openssl"

rvm を使って rails-3.2.3 を実行しようとした際に、

LoadError: no such file to load -- openssl

となり実行できなかった。 openssl の RPM は devel も含めてインストールされてるので、何が原因かと探したら、 rvm の openssl パッケージを入れた方がいいらしい。
とりあえず、 ruby を入れ直す。

$ rvm uninstall 1.8.7
$ rvm cleanup all
$ rvm pkg install openssl
$ rvm install 1.8.7

これで更に rails を入れ直したら、動くようになりました。同様に iconv などでも発生する事があるかと思います。

Mac OSX で dylib などのライブラリ内のリンク情報を変更するには

以前 rvm を Mac OSX にインストールして、いざ rails を実行すると、以下のようなリンクエラーが出る。

$ ./script/server start
dyld: lazy symbol binding failed: Symbol not found: _libiconv_open
  Referenced from: /usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.7.0/iconv.bundle
  Expected in: flat namespace

dyld: Symbol not found: _libiconv_open
  Referenced from: /usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/i686-darwin10.7.0/iconv.bundle
  Expected in: flat namespace

Trace/BPT trap

これは要するに iconv.bundle がリンクしている先の libiconv ライブラリに存在すべきシンボルが無いという旨のエラー。発生する原因は色々あると思うけど、多いのは独自にライブラリを ports や コンパイルなどでインストールして複数存在する場合に起こる事が多いと思う。
例えば今回の場合は、独自に libiconv を /usr/local にインストールしていたため、 rvm インストール時に使用されたライブラリと、いざ実行したさいにロードしようとしているライブラリが違ってしまっているためエラーが発生する。

解決方法がいくつかあったので、それをメモ。


もっと読む

Symfony2 memo

Symfony2 で新たに追加された感じのやつを忘れないようにメモ。

増えてきたので、段落化しました。


もっと読む

Mac に php をインストールするには

Mac に LAMP もとい MAMP 環境を構築したときのメモ。いろいろと癖もあったりはまったところもあったけど、とにかくできました。

構築する上でのポリシーとしては、

  • ライブラリ関連はできるだけ DarwinPorts でインストールしたものにリンクさせる。
  • MySQL 、 PostgreSQL 、 Apache 、 php は /usr/local にインストール。
  • Apache と php はなるべく Shared module 化するようにする。

Mac にインストールされているライブラリと DarwinPorts で入れたものを混合するとコンパイルでエラーを起こすことが多いっぽい。

環境は以下の通り。
Mac OS X 10.5.6
mysql-5.1.33
postgresql-8.3.7
apache-2.2.11
php-5.2.9


もっと読む

Zend_Mail でメールを送るには

Zend Framework の Zend_Mail を使用すると色々な方法で簡単にメールが送れます。色々試してみたので、 Zend_Mail を使用して以下のそれぞれの方法でメールを送る方法のメモ。

  • ローカルの sendmail(.postfix) を使用してメールを送る
  • リモートもしくはローカルの SMTP に接続してメールを送る
  • Gmail もしくは auth-SMTP などの有効なサーバでもメールを送ってみる

もっと読む

PHPUnit with Zend Framework memo

Zend framework で PHPUnit を統合したテスト環境を構築したときのメモ。


もっと読む

Ruby on Rails メモ

Ruby on Rails で覚えておくと便利(よく忘れる)ことをメモしておく。


もっと読む

jquery で任意のオブジェクトの位置までスクロールするには

オブジェクトの位置を offset().top で取得して、 animate() で body の scrollTop を変更する。

var divOffset = $('#hogeContainer').offset().top;
$('body').animate({scrollTop: divOffset + 'px'}, 1000);

Wordpress を SQLite で動かすには

うちのレンタルサーバのスペックが低いため MySQL 動かしたくないので、 Wordpress を SQLite で動かすようにしてみた。

してみたと言っても、プラグインがあるのでそれを入れるだけ。でもそもそも個人や一企業で使うブログを MySQL なんてもので動かすのもナンセンスな話だし、 SQLite は早い。なので、一応メモ。


もっと読む

HTML/JS/CSS のデバグをする

最近の HTML は、何かと XHTML やら CSS やら JavaScript で苦労することが多いのですが、そんな時にとても役に立つのが、 FireFox の extension である FireBug です。
Firebug :: Firefox Add-ons
これをインストールすると、 JavaScript にブレイクポイントを設定してデバグしたり、 CSS の div box を詳細に視覚化してくれたり、めちゃくちゃ便利です。
おすすめ。

Mac の safari で同様の事をするにはSafari の Mac で firebug のような機能を使うにはを参照。

jquery で select ボックス間でデータを移動するには

二つのセレクトボックス select1 と select2 があるとした場合、以下のコードで選択された option アイテムを移動させられる。 select1 から select2 に移動する場合。

$('#select2').append($('#select1 option:selected'));

カスタム Zend_Form_Element の作成

Zend_Form を使ってよく Wysiwyg の出力コードを生成するようなカスタムエレメントを生成したいことがよくある。
昔のバージョンでは Zend_View クラスの addHelperPath() をしただけだった記憶があったんだけど、今は少し違うっぽい。
なので一通り調べて実装しなおしてみた時のメモ。

Zend Frameowrk のバージョンは 1.8.1。
ディレクトリ構成は以下の通り。

+--- application ---+--- controllers
|                   +--- modles
|                   +--- forms --- elements
|                   +--- layouts
|                   +--- views ---+--- helpers
|                                 +--- scripts
|
+--- incude --- Zend
|
+--- public_html

もっと読む
ページ: 1 | 2 | 3 | 4 | 5 |
フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank1, rank2, rank3, rank7, rank9, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google