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

apache2 にモジュールを追加する

何か知らないけど、パッケージを用いてない Linux を使ってるせいで apache とか手動インストールされていた。
しかも時々必要なモジュールが追加されてないので、後からどうやって追加するのか調べと時のメモ。

一応環境
Apache/2.0.59
OS: ??


もっと読む

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

という感じ。


もっと読む

Xcode 4.2(Snow Leopard) で iOS 5.1 SDK を動かすには

iPad を iOS 5.1 にアップグレードしてしまったため、うちの Mac の Snow leopard のままのでは Xcode 4.2 からアップグレードできず、
iOS 5 での実機テストができなくなってしまった。
これだけのために評判最悪な Lion にアップグレードするのも嫌なので何か方法は無いかと探してみたらあったので、メモ。

環境は以下の通り。
  • Mac OS X 10.6.8 Snow Leopard
  • Xcode 4.2

もっと読む

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 などでも発生する事があるかと思います。

cygwin で cron を動かすには

bash スクリプトを Windows で定期的に走らせたかったので、 Cygwin 上で cron を使ったジョブスケジューリングをセットアップしてみた。
環境は以下の通り。

  • Windows 7 Ultimate
  • Cygwin-2.774

もっと読む

Android emulator で localhost にアクセスするには

最近は Android アプリに加え、 Android のブラウザ対応アプリを作る事も多くなってきた。今まで自分の携帯でテストしてたけど、色々バージョンも増えてきたので、エミュレーターのブラウザを使用してみた。

まずひっかかったのが、どうやってエミュレーター内のブラウザに、自分の localhost コンピューターで走ってる Web にアクセスさせるか。 iPhone のエミュレーターなら自分の localhost の /etc/hosts を書き換えればいいだけなのに、 Android はちょっと癖があるというか、自由度があるというか。

環境は、 android-sdk_r15-macosx


もっと読む

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 インストール時に使用されたライブラリと、いざ実行したさいにロードしようとしているライブラリが違ってしまっているためエラーが発生する。

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


もっと読む

Mac の Postgres の start/stop

Start

$ sudo -u postgres /Library/PostgreSQL/9.0/bin/pg_ctl -D /Library/PostgreSQL/9.0/data/ start

Stop

$ sudo -u postgres /Library/PostgreSQL/9.0/bin/pg_ctl -D /Library/PostgreSQL/9.0/data/ stop

ad-hoc バージョンをインターネット経由で配布するには

iPhone/iPad apps を開発している際に結構めんどうなのが、
ad-hoc 作成した後にいちいちテスター一人一人にアーカイブと Provisioning Profile を配布すること。
アップルのサイトに公式なやり方としては書かれてない(と思う)けど、これをネットで配布する事もできるようです。

とりあえずやってみたらできたので、やり方をメモ。
Xcode のバージョンは 4.0(英語バージョン)


もっと読む

Symfony2 memo

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

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


もっと読む

Apache で HTTP Pseudo-Streaming を行うには

FLV や MP4 ファイルを Web で配信した際に、Apache では基本的にストリーミング配信はできません。
ようするに、配信中に動画の閲覧はできますが、動画の初めから見ることしかできず、
ダウンロードが完了するまで任意の場所へのシークなどができないわけです。

Flowplayer や JW Player などの Flash ベースのプレーヤーは、もちろんストリーミングに対応していますが、
サーバー側が対応していないとどうしようもありません。
Lighttpd を利用すれば、簡単にストリーミングサーバーが構築できますが、
実は apache でも PHP などのスクリプトで実行する事もできますし、
探すといくつかモジュールも存在します。

今回は mod_flvx と mod_H264_streaming を使用して、
Pseudo-streaming を実装してみたので、そのメモを残しておこうと思います。

環境は Ubuntu 10.04 LTS 。


もっと読む

sqlite でテーブル一覧を取得するには

.tables コマンドで見れます。

$ sqlite3 test.sqlite
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
sql_master test_table

PostgreSQL command 一覧

データベース一覧を見る

dbname=# SELECT * FROM pg_database;

*in MySQL

show databases;

テーブル一覧を見る

dbname=# \d

*in MySQL

show tables;

データベースを変更する

dbname=# \c {db_name}

*in MySQL

use {db_name};

SVN でスペースとタブを無視した差分チェックをするには

開発を行っていて、 IDE などの設定の個人差により、インデントに使われているホワイトスペースとタブが混在して Diff で差分チェックするのが困難な場合があるが、そんな時は、 svn diff --ignore-eol-style オプションを付ける事で回避できる。

$ svn diff -x --ignore-eol-style file_name

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


もっと読む

SVN で特定のファイルを無視するには

毎回新しいプロジェクトを作成するたびに SVN Ignore の方法を忘れているのでメモ。

propeditsvn:ignore プロパティの値を変更してやればいい。例えば、 . ディレクトリの .project ファイルを無視リストに追加したい場合は以下のコマンドを実行する。

$ svn propedit svn:ignore .

そして開かれたファイルに .project を追加する。

Mac 上で fat file dylib を作成するには

最近 Mac 上で darwin port を使ったパッケージ管理に嫌気を感じ、全部コンパイルしてインストールし始めてみた。今の Macbook は Core 2 なので、せっかくだから i386 と x86_64 両方の architecture に対応したライブラリを作ってみた。
作ってみたというよりは、実際過去に i386 でコンパイルした物があり、それにリンクしているライブラリが x86_64 をインストールしたことで動かなくなったので、やらざるをえなかったわけだけど。

例としてここでは openssl-0.9.8o をインストールしてみる。コンパイラは gcc-4.5.1 を使用。


もっと読む

Ubuntu 上で簡単に exim4 の設定をするには

exim4 は ubuntu の標準 MTA の様で、設定ファイルは /etc/exim4/ 配下にあるんだけど、基本的にまた一から新しい MTA の設定を覚えたいとは思わない。
そんな時調べていたら、というか検索したら便利なコマンドがみつかったのでメモ。
基本的には以下のコマンドを叩いて後はインタラクティブな質問に答えていけば良い。

$ sudo dpkg-reconfigure exim4-config
ページ: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
フリーソフトウエア
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