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 ||=…

第24回PHP勉強会

php

http://events.php.gr.jp/event.php/event_show/20 木曜日の夜に行われた勉強会に参加してきました。サイボウズ・ラボさん、発表者の皆さんありがとうございます。 遅くなりましたが、自分なりのまとめ。 君はまたextensionか(PECL_CodeGenでC++するとハマる…

Windowsでのsyslog

php

定数名 Linux Windows LOG_EMERG 0 1 LOG_ALERT 1 1 LOG_CRIT 2 1 LOG_ERR 3 4 LOG_WARNING 4 5 LOG_NOTICE 5 6 LOG_INFO 6 6 LOG_DEBUG 7 6 defineされている値が違う。 Windowsではイベントログでsyslogがエミュレートされる。 PHP マニュアル - syslog

Ethna CacheManager キャッシュが見つからないときとか

Ethnaクラスには下記のようなエラー生成メソッドが定義されている。 &raiseError() - E_USER_ERROR &raiseWarning() - E_USER_WARNING &raiseNotice() - E_USER_NOTICE キャッシュが見つからないとか、ライフタイムが過ぎたという状況でraiseError()を返すけ…

Putty & Emacs で Home と End キー

今までがんばってM-と押してたけど、 Homeキーに M- 割り当てたくなってきて放浪。 http://www.emacswiki.org/cgi-bin/wiki?PuTTY Putty側の設定 The Backspace key: Control-H The Home and End keys: Standard The Function keys and keypad: ESC[n~ dot .…

入門しすぎ

入門 bash入門bash 第3版作者: Cameron Newham,Bill Rosenblatt,株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2005/10/27メディア: 大型本購入: 7人 クリック: 138回この商品を含むブログ (47件) を見る普段何気なく使ってるが、しっかり基…

文字列をインクリメント

php

$ php -r '$str = "zzz"; printf("%s\n", ++$str);' aaaaZend/zend_operators.cのincrement_stringを見て知った。ちょっとひねくれたことをやったら怒られた。当然か。 $ php -r '$str = "zzz"; printf("%s\n", ++$str[0]);' PHP Fatal error: Cannot increm…

本購入

巷では最近Erlangブームですが自分はPerlの勉強を。 ラクダ本にしようかと思ったけどなんとなくリャマ本にした。 新宿ジュンク堂にて購入。初めてのPerl作者: ランダル・L.シュワルツ,トムフェニックス,Randal L. Schwartz,Tom Phoenix,近藤嘉雪出版社/メー…

Perl も

今後は仕事の関係でPerlも覚える必要がありそう。前から触ってみたかったし機会が出来てよかった。うぇるかむ。 週末にラクダ本でも買いに行こう。

PHP 標準関数のソースを読んでみる

PHP Extensionの勉強をしよー!と言ったものの書き方を覚える前に、標準関数とかってどうやって書かれてるの?ってのが気になってきたので、PHP 5.2.2のソースを読んでみた。 しかし、まず何処に何のファイルが置かれていて、何処に何が書いているのかわから…