http://ya.maya.st/d/200610a.html#s20061008_1
個々の逆引き設定しない場合でも、逆引き用のゾーンは
持たせといたほうが良い。
明示的に、ない、というのは OK。
引けない、というのは駄目、と。
http://kaoriha.org/nikki/archives/000379.html
こういう、ゆるーいポリシーって良いかもしれないなあ。
底辺を広げるのは重要。
いろいろ議論はあるけど、文系が PHP を勉強する、っていうのも
個人的には多分良いことだと思うよ。
参考)
文系人間にPHPを勧める、という話
http://plaza.rakuten.co.jp/catfrog/diary/200610070000
止めろ、って言われても、不良はやっちゃうものだしな。
イノベーションは不良が作るものなので、
不良はある程度いたほうが健全だと思うのだ。
ただ、車の運転、飲酒、喫煙、なんかと一緒で、
なんらかの社会的なルールはあったほうが良いよね。
法律なんていうかったるいものじゃなくて、
村社会的(SNS的?)な歯止めを作るほうが現代的かな。
(もちろん法律も大事なんだけど)
もう5年もすれば、社会的教養として、
プログラムぐらい書けて当然、
という世の中になるんじゃないかと思うのだ。
今の「英会話」とか「ビジネス知識」とかそういうものと
同じ位置付けね。
Office やメールが使われるようになったのは、
ごくごく最近なのに、今じゃ、普通に使えて当然、だしね。
ウェブやら携帯やら情報はどんどん増える一方。
プログラムでも書いて効率的に処理しなきゃやってられない。
Excel の関数を使う、メールの振分けフィルターを書く、
というのも立派なプログラムだよね。
なので、5年というのは無茶じゃないと思うのだ。
相転移するための熱は着実に溜まってるはず。
Wikipedia - 相転移
http://www.drk7.jp/MT/archives/001142.html
pound.h の MAXBUF を 4096 にしてコンパイルすべし。
http://itpro.nikkeibp.co.jp/article/COLUMN/20061005/249933/
Haskell と言えばモナド(monad)。
その平易な説明。
http://www6.plala.or.jp/nyk/DXPresentation.html
くそー。
土曜のプレゼン、これでやれば良かったー。
次は使ってみよ。
http://slashdot.jp/~yasuoka/journal/377632
1896年に考案されたキー配列。
Dvorak は母音を左手側にまとめてるけど、
この配列は右手にまとめている。
参考
Wikipedia - Dvorak配列
http://ya.maya.st/d/200610a.html#s20061007_1
(基礎的電気通信役務の提供)
第七条 基礎的電気通信役務(国民生活に不可欠であるため
あまねく日本全国における提供が確保されるべきものとして
総務省令で定める電気通信役務をいう。以下同じ。)を
提供する電気通信事業者は、その適切、公平かつ安定的な
提供に努めなければならない。
これを今風に翻訳すると
(ユニバーサルサービスの提供)
第七条 NTT 東西は加入電話とか公衆電話とか110番とか
119番とかを日本全国格差なく不採算だろうが
なんだろうがやらなきゃダメ。
こうなる、と。
なるほど。
インターネットは総務省令で定められていないし、
義務を負うのも提供事業者として指定されている NTT 東西だけ。
NTT 東西って大変なんだねえ。
法律をやさしく翻訳するプロジェクトみたいなものって
あったら嬉しい気がするな。
wikipedia 財団でやらないかな、そういうの。
法律家も楽になると思うし、法律家不足の問題も
解消できると思うのだが。
でも税金使ってやるのはなんか違う気もする。
http://www.google.com/codesearch
ソースコードを検索できる。
これは便利だ!!
1週間前ぐらいから PHP と戦ってたんだけど、
そのときにあれば楽できたのになあ。
今回書いたプログラムでは、PEAR の Auth ライブラリを
使ったんだけど、普通に「PEAR Auth」で検索しても、
マニュアルとかがひっかかるだけで、
典型的な使い方まで辿りつくのに苦労したんだよね。
Google Code Search を使えば
require_once "Auth/Auth.php"
こんなので検索すると、この文字列が入ってるソースコードが
沢山ひっかかるので、すぐに典型的な使い方を知ることができちゃう。
時間節約ツールとして強力だわ。
暇潰しにコードを眺める、という使い方でも重宝しそう。
たとえば w3m-search ってどんな風に動くのかな?
と思ったときに、w3m-search で検索すると、
関連する *.el も沢山出てくるので、だらだらとコードを眺めて
楽しむこともできる。
時間泥棒ツールでもあるな。
ひょっとして高林さんが作ってた gonzui の派生物なのかしら?
これがやりたくて Google に入ったのかしら?
世界規模ソースコード検索エンジン中間報告 --> [2004-11-15-3]
有名ハッカー・高林哲さんが google 社員と告白 --> [2006-03-14-3]
http://tanaka.sakura.ad.jp/archives/000843.html
中国からのアクセスはすべてフィルターされちゃってて、
遅くなったり見えなくなったりするリスクがある。
だったら中国内にサーバを置いちゃえ、と。
なるほどねえ。
関連)
中国のインターネットはフィルタリングが徹底的に --> [2005-04-22-8]
中国にウェブサーバを置くなら、是非以下のようなコンテンツを
大量に発信してもらいたい!!!
中国4000年の歴史が生んだ魔のコラボレーション
「ドラゴン星矢」 --> [2005-02-27-2]
http://itpro.nikkeibp.co.jp/article/COLUMN/20060914/248058/
うんこが漏れそうなのにトイレがいっぱい。
そんなときには待ち行列の計算をして頑張るべし。
教養はあって困ることなし。
http://journal.mycom.co.jp/articles/2006/10/04/tuigwaa/
ブラウザから DB 連携したウェブサイトが作れちゃう。
ビジネスの種、SIer の道具としては良いかも。
たしかに凄いかも。
でも Salesforce を普段いじってるユーザの立場から見ると、
それで?、とか思っちゃうなあ。正直なところ。
Salesforce とかでも、データベース(タブ)を作ったり、
項目や表示を自由にカスタマイズしたり、
帳票を作りまくったり、というのが普通にできちゃうからね。
業務でデータベースを活用するようなシステムを使おうとすると、
人件費やら外注費やら、どうせいろいろとコストがかかる。
なのでフリーで自由度が高い、というのはそれほどメリットじゃ
なかったりするんだよね。
http://pc.watch.impress.co.jp/docs/2006/0322/engelbart.htm
伝説のデモンストレーションが行なわれたのは 1965 年。40年前。
1925年生まれなので、もう80を超えてるのか。
その時代の人が今だに現役でバリバリ仕事をしている、
というのがすごすぎる。
おそらく40年前は、みんなに嘲笑されてたに違いない。
でも、信念を持って研究を続けてたら、結局世の中が置いついた、と。
というか世の中を作ってしまったんだな。
歴史的にはマルクスなんかより評価されてしかるべき巨人だと思う。
こういう風に生きられれば格好良いよなあ。
http://bb.watch.impress.co.jp/cda/bbword/15612.html
PNG は滅びる、と思ってる。
個人的にも、最近はウェブ素材とかは GIF で出すことにしている。
でも CG とか医療用で使われ始めてるのか。意外。
完全可逆圧縮の割に圧縮率が高い、って言うけど、
Lossless JPEG よりどの程度良いんだろ?
置き換えるモチベーションがわくぐらい違うんだろか?
http://gigazine.net/index.php?/news/comments/20060929_lenovo/
http://download.boulder.ibm.com/ibmdl/pub/pc/pccbbs/mobiles/batteryrecall_ja.html
ソニー製バッテリが発火したり爆発したりしているけど、
まさか、7月に買った X60s (-->[2006-07-21-1]) に
その噂のバッテリが装着されてるとは!!
早速サポートに電話して交換の手続き。
- 在庫がないので1ヶ月ぐらいかかる
- それまではバッテリを外して AC アダプタだけで使って欲しい
- IBM では、ロサンゼルスの空港において、バッテリから煙が出た、
という事例は確認しているが、詳細は調査中。
- 爆発した、という事例は IBM としてはまだない
とか言われた。
ドキドキするなあ。
http://www.nec.co.jp/press/ja/0610/0301.html
- ファイアウォールの設定が不要
- 外の PC から接続しに行く、というわけではないので、
セキュリティ的に守りやすい
- 接続のトリガーは、なんとメール
素敵な箱に見えるなあ。
Pマークのアリバイ用に導入を検討しようかしら。
どっちも PHP と組み合わせて使う。
PEAR は素敵なライブラリ集。
Perl の CPAN ほど無敵ではないけど、
実用的なライブラリが沢山ある。
面倒臭い処理もちゃんとしてくれるので、とっても便利。
Smarty もかなり素敵。
テンプレートを使って、ロジックとデザインを
かなり分離することができる。
プログラマが苦手なデザインを外に出せるのはおいしい。
デザインは Dreamweaber を使うほうが楽だしね。
表示のための簡単な処理を書くことができたり、
テンプレートシステムとしても良くできてる。
でも、PEAR も Smarty も PHP っぽい素朴な書き方と、
あんまり整合性が良くないんだよね。
PEAR も Smarty も配列を使いまくって、参照で渡す、
という、オブジェクト指向っぽいやり方で使うんだけど、
こういう考え方って、素朴な PHP プログラマには
おそらく難しいんじゃないかと思う。
で、配列を使いまくって、参照で回していく、
そしてテンプレートを使って、ロジックを分離する、
というやり方をするのであれば、PHP じゃなくても、
良い気がするのよね。
正規表現の扱いとか、素直なオブジェクトの扱いとか、
セキュリティへの配慮しやすさ、
デバッグ手段の豊富さ、ライブラリの充実度、
そんなことを考えると、PHP って、
Perl とか Ruby とかに比べて明らかに落ちるよねえ。
Perl や Ruby なんかのテンプレートシステムを
使うほうが、書くほうとして楽なのでは?
とか思った。
Smarty は PHP しか知らない人にはかなり素敵。
可能なら採用すべきライブラリ。
でも他の言語も知ってるなら、他の言語の
フレームワークも検討したほうが良いかも、
というのが個人的な結論かな。
アンケートプログラムを書いといて言うのもなんだけど。
プログラムの投票用ページを作った。
プログラム書きって楽しいよなあ。
メモを吐き出し。
○ソフトウェアインストール
ソフトウェアは ports でインストールする。
そのほうがアップデートが楽だしね。
PHP は lang/php* から入れること。
CLI もインストールしないと PEAR がインストールできない。
www/mod_php* を入れてて、CLI が入ってないような時は、
一旦削除してから lang/php* を入れる、と。
Smarty のインストール
cd /usr/ports/www/smarty
make install
PEAR は必要なものを必要に応じて。
cd /usr/ports/devel/pear
make install
cd /usr/ports/security/pear-Auth
make install
cd /usr/ports/databases/pear-DB
make install
cd /usr/ports/devel/pear-HTML_Common
make install
cd /usr/ports/devel/pear-HTML_QuickForm
make install
PHP にライブラリの場所を教える
vi /usr/local/etc/php.ini
===
include_path = ".:/usr/local/share/pear:/usr/local/share/pear/PEAR:/usr/local/share/smarty"
○データベースを作成
mysqladmin --user=root create <データベース名>
mysql <データベース名> < <テーブル定義>
mysql --user=root mysql
---
grant all on <データベース名>.* to <ユーザ名>@localhost identified by "パスワード";
flush privileges;
exit
ネットワークごしにアクセスさせたい場合は以下も。
grant all on <データベース名>.* to <ユーザ名>@'172.16.0.0/255.255.255.0' identified by "パスワード";
実際にテーブルを作ったりするのは、MySQL Administrator の
ようなGUIツールを使うのが楽。
MySQL Administrator
http://www.mysql.com/products/tools/administrator/
文字コードは utf8 にしておくのが無難。
Table Engine も InnoDB で良いでしょ。
そうやって作ったテーブル定義は、
mysqldump -d データベース名
で吐き出しておく。
MySQL の本は手元に一冊ぐらい置いておいたほうが良い。
ある程度理解してて、具体的なコマンドをすぐに知りたい、
というのであれば、ウェブの方が便利かも。
検索できるし。
以下のサイトは便利だった。
MySQL クイックリファレンス
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html
MySQL について、中身とか、もっともっと詳しく知りたければ
以下の新刊でも買えー、と。
超・極める!MySQL
○PEAR のドキュメント
プログラムを作るにあたっていろいろドキュメントを探したけど、
結局は配布元のマニュアルが一番参考になった。
サンプルも充実してるので、ここだけで充分。
配布元サイト
http://pear.php.net/
配布元サイトのマニュアル
http://pear.php.net/manual/index.php
○Smarty のドキュメント
これも配布元のマニュアルが参考になる。
配布元サイト
http://smarty.php.net/
http://smarty.php.net/docs.php
日本語に翻訳してくれてる方もいて、時間短縮をするなら、
翻訳を読んでから本家にあたる、というのが良いかも。
Smarty マニュアルの日本語翻訳(リンク集にもなっている)
http://sky.freespace.jp/smarty/
○PHP のデバッグ
print_r が超便利。
○文字コード
UTF-8 にしとけば問題が少ない。
EUC とかで書いたものがあれば、nkf で変換しちゃう。
nkf -Ew --overwrite **/*
とかで一気に変換できる。
でも、変換をミスることがあるので、
バックアップは「絶対」取っておくこと。
せっかくなので、UTF-8 生活に切り換えるぜ、
と思ったら、以下のサイトとかを参考に。
いやなブログ: UTF-8 への移行計画
http://0xcc.net/blog/archives/000041.html
○セキュリティに配慮すべし
PHP は、何も考えずに書くと、ものすごく
セキュリティに甘く書けちゃう。
- 細心の注意をはらう
- ちゃんと勉強をする、
- ライブラリを活用する
というのが基本。
SQL インジェクションなんかを避けるためには、
外部由来の文字列には、PEAR の DB モジュールにある
quoteSmart を使って
$db = & DB :: connect( $dsn );
$user_id = $db->quoteSmart( $_POST["input_userid"] );
$pass = $db->quoteSmart( $_POST["input_password"]);
のように処理してやる、と。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060919/248312/
Ruby が Java 等と比較して優れている、というところを
列挙している。
いちいちなるほどなあ、と思う。
コードは書く立場じゃなくて、読む立場で関ることが多いので、
普通の人とは大部視点が違うと思うんだけど、
個人的に Ruby が素敵だなあ、と感じるのは、
ちゃんとした人が書いた Ruby のコードは綺麗で見易い、
という点。
PHP や Perl だと、ちゃんとした人が書いたとしても、
なんだか美しくはないんだよね。
Python のコードは見易いんだけど、
修飾子みたいな便利なものがないため、
どうしてもコード長くなっちゃう。
修飾子やイテレータは賛否両論あるけど、ちゃんとした人が
ちゃんとした用途で使ってるとすごく見易くなる。
関数型の言語は、理解すれば、ああ!、って思うけど、
理解するまでにちょっとしたイライラがあるのよね。
http://la.ma.la/blog/diary_200610030448.htm
135倍の根拠は良くわからないけど、このデモすごい。
いいなあ、これー。
インタラクティブにあれこれ試せるって良さげ。
Python とか Lisp では対話型にプログラムを作れるんだけど、
それと同じ感覚でウェブアプリケーションが作れそうだ。
PHP 用の似たのってないのー??
あったら、すぐに使いたい!
Perl で書けば良かったかなあ。。。。
http://blawat2015.no-ip.com/~mieki256/diary/200610012.html#200610012
速い書き方っていうのは確かにあるよね。
メソッドがあればそれを使うのが一番。
ただ、配列の代入とかは、個々に代入するのが速いのはわかってるけど、
それやると見難くなっちゃうので、そういうのは見易さ優先だよね。