2007-01-01から1年間の記事一覧

authorized_keysのオプション

いろいろ出来るんですね。最近まで知りませんでした。 http://www.unixuser.org/~euske/doc/openssh/jman/sshd.htmlfromオプションなんかは、TCP Wrapperでは制御できないような細かい設定をしたい… といった場合があれば便利なのかも。ユーザ毎に接続元を細…

無名関数はだめ

最近、Perlの方が良く触れてるので、PECL/perlを少し試してました。 eval('sub { 2 * shift }'); var_dump($func(10)); $ php test.php Fatal error: [perl] Can't convert Perl type (12) to PHP in /home/tetsujin/work/php/perl/test.php on line 3 こう…

ファイル所有者変更

カレントディレクトリ以下のfoo所有のファイルを全て、bar所有のファイルに変更したい時。 $ sudo find . -user foo -print0 | sudo xargs -0 chown -h bar こうでもいい? $ sudo sh -c "find . -user foo -print0 | xargs -0 chown -h bar" GNU chownなら…

行コメントとブロックコメントの使い分け方

php

コメントがネストしてる場合とかではなくて。 エディタのパワーを借りて複数行のコメントアウト(M-x comment-region)すると、 こんな感じで行コメントを複数行にわたって適用してくれるんですが、 途中に終了タグを含んだリテラルとかが混じってると…。 \n"…

ぺちぱずる

php

$ php -r 'print ((print true) + print 2) + (print (print false));'ふだんphpを書いている人でも意外と出力結果を答えられなかった。 いや、わかったところであまり意味はないと思いますけどね。

mmm-modeでmajor-modeとsubmodeを切り替えるelispを書いた

mmm-modeを入れて結構たちましたが、ここ数日、ようやくphpやらhtmlやらjavascriptやらが混在したコードを書く機会がありました。 しかし、この質問の方と同じくmmm-modeで実際に書いてみるとインデントやらなんやらで全てを思い通りに動かせなかったので、 …

PHPのソース整形ツール phpStylist

前回のphpCodeBeautifierに続いて、またまたソースを綺麗にするツール。 phpStylist - http://sourceforge.net/projects/phpstylist/2007-06-29 released なので最近ですね。 Webからでもコマンドラインからでも叩けます。noticeが出るわ、 $HTTP_POST_FILES…

phpCodeBeautifierで汚くなる件

Do You PHP? - phpCodeBeautifier - コーディングスタイルを統一する でも紹介*1されているPHPのソースコードを整形するphpCodeBeautifierですが、最近linux版も出たし、マニュアル に書いている内容を見てワクワクして突っ込んだんですが、汚くなる。PEAR標…

Valgrindでld-2.6.soでエラーが出る。

前にメモリリークを探してたときに使ってみて、えらく感激したValgrind。 ところが、最近VMに入れたFedora Core7でValgrindが上手く動かない。a.cc int main() { return 0; }$ g++ a.cc $ valgrind --leak-check=full ./a.out |& less ==21301== Memcheck, a…

Emacs Code Browser(ECB)を入れてみた。

EmacsをIDEにするEmacs Code Browser(以下、ECB)を入れてみました。 CEDETという開発ツールコレクションが必要となるようです。OSX+Emacsで快適なRails開発ライフを送るを大いに参考にさせていただきました。 導入 $ cd ~/.emacs.d # 必要なファイルを落とし…

本にっき

最近はPL/SQL付けな日々でなかなか書くネタがなかった。 苦し紛れに、とりあえず最近買った本でも。Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)作者: スコット・メイヤーズ,小林健一郎出版社/メーカー: ピアソン・エデュケーシ…

[Emacs][MySQL] sql-modeのSQLi バッファの出力を折り返しせずに表示

Emacsのsql-modeに含まれている、Emacsのバッファ内にsqlクライアントを取り込む超便利なsql-interactive-mode。EmacsでSQLの作成・実行ができるので抜群に作業効率があがります。 ではこれも表示を折り返ししないようにしたい。 (add-hook 'sql-interactive…

MySQLコマンドラインの表示結果を見やすく

今までデータの確認はphpMyAdminばっかり使ってたので、知らなかったことメモ。 mysql> show table status;とかすると、列数が多すぎて行が折り返し表示されて見づらい。http://dev.mysql.com/doc/refman/4.1/ja/mysql.html に書いている mysql> pager less …

arrayのインデント

$foo = array( 'bar' => array( 'baz' => array( 'qux' => array( 'quux' => array( ), ), ), ), ); ネストが深くなると見づらい。(極端な例だけど).emacs (add-hook 'php-mode-user-hook '(lambda () (c-set-offset 'arglist-intro '+) (c-set-offset 'argl…

PHP6入れてみた。

php

先ほどなんとなくPHP6を入れてみた。どんなものか遊んでみようかと。 cvsリポジトリからcheckoutしようかと思ったけどとりあえずは、http://snaps.php.net/ から落として入れてみた。とりあえずconfigureしたらGeneral settingsで checking for location of …

topがなかった

topコマンドが見当たらない!! prstat -a というコマンドを使うらしい。 作業の合間にクセのように指がtopとタイプして眺めてることがあるので、alias張るのもあり?

Vimでも

設定ファイルとかを弄る時は使ってたけど、Vimでもコーディングすることに。Ctrl-[ や Ctrl-c でもEscと同じように入力モードからコマンドモードへチェンジできることを知って、かなり楽になりました。 後、hjkl以外でも動けるんですね。 h, Backspace j, Ct…

第25回PHP勉強会

php

日曜日は第25回PHP勉強会に参加させていただきました。 会場は椅子が素敵だったオープンドリームさんです。会場提供ありがとうございます。自分がとったメモのせときます。所々間違ってたらごめんなさいです。 君もまたextensionか&簡単なサービスを作って…

Oracle DBA1復習

今度からOracle触るから復習ということで、2年半くらい前にDBの勉強ということで取得した9i Database DBA1の黒本を読んだ。10gじゃなくて9iオラクルマスター教科書Silver Oracle9i Database 【DBAI】編[CD-ROM付]作者: 林優子,當麻五月,日本オラクル株式会社…

Emacsのphp-modeでalignする

追記 2011-08-14 その2でgithubにあげてます。https://github.com/tetsujin/emacs-php-align 前回のエントリでphp-modeではM-x alignが使えなかったので、perlのalignを無理やりphp-modeに当ててみましたが、所々やっぱり不具合があるのでElisp全然わからん…

php-modeで無理やりM-x alignしてみる

元々自分はアラインメントしない人だったんですが、最近、職場でアラインメントされたコードを読んで(phpじゃないけど)、やっぱり読みやすいなーと感じ、郷に入れば郷に従おうということで最近EmacsのM-x align & M-x align-regexpにはまってます。 int foo …

DNUM, EXPONENT_DNUM

で、flexのマクロ定義を見てたら zend_language_scanner.l DNUM ([0-9]*[\.][0-9]+)|([0-9]+[\.][0-9]*) EXPONENT_DNUM (({LNUM}|{DNUM})[eE][+-]?{LNUM}) となっているのを知り、下のような書き方でも動くっていうのを知りました。 まだまだ知らないこと沢…

bison/flex

phpのソースを読んでて一番躓いたのが構文解析の部分。 zend_language_scanner.l zend_language_parser.y 未だに数%程度しか理解できない。いや、数%も理解できているのかもわからない。 yyparseに入ったあたりでもうわけわからん。でも調べてみるとこの部分…

PHP5, PHP4 関数定義の違いあれこれ

zend_language_parser.y内の関数の引数定義の部分。php5.2.2とphp4.4.7で結構違う。php5.2.2 parameter_list: non_empty_parameter_list | /* empty */ ; non_empty_parameter_list: optional_class_type T_VARIABLE ... | optional_class_type '&' T_VARIAB…

リテラルの参照な部分

配列に突っ込む前に、SEPARATE_ZVAL()をかましたらコピーで入った。

謎の演算子

PHPへのオペレータ追加続き $ php -r '$users ||= "john"; echo $users[0];' johnおお!!!!!! var_dumpで確認 $ php -r '$users ||= "john"; var_dump($users); ' array(1) { [0]=> &string(4) "john" }え。文字列リテラルへの参照ってなに!? 数値を……

6/3 追記

メモ。zvalで突っ込むからだめなのか。下記のようにしてみた switch (Z_TYPE_P(op2)) { case IS_STRING: add_next_index_string(op1, Z_STRVAL_P(op2), 1); break; case IS_LONG: add_next_index_long(op1, Z_LVAL_P(op2)); break; }

勘違いなjohnさん

どこで間違えたらこうなるんだ。w opcodeレベルでの動作の理解がまだまだです。ようやく週末。がんばろー。

[ PHPに独自のオペレータを追加する

一歩進んだ。Y!のPHPエンジニア問題の $users ||= ‘john’; やっぱりgdb便利ですねー。 zend_exedute.c #define _CONST_CODE 0 #define _TMP_CODE 1 #define _VAR_CODE 2 #define _UNUSED_CODE 3 #define _CV_CODE 4 zend_vm_executer.h void zend_init_opcod…

Y!のPHPエンジニア問題の $users ||= ‘john’;

php

Do You PHP はてな - Yahoo!がPHPエンジニアを雇う時に聞く質問 1.配列usersに「john」を追加しないのはどれか? 1. $users[] = ‘john’; 2. array_add($users,’john’); 3. array_push($users,‘john’); 4. $users ||= ‘john’; 捻くれた性格なので、$users ||=…