月別アーカイブ: 2012年1月

Webサイトの設計について(思考メモ)。

まだ考えてる段階ですが、「未完成の状態 = 完成」という図式が、ここ数ヶ月成り立っているので、
ブログに公開しておこうと思いました。
これは一人でWebサイトを構築することを前提として考えています。
公開したら公開したで新しい視点に気付きそうなので、公開します。
  1. 使用するサーバーの仕様確認、動作確認は最優先事項。今だにPHP4の場合もある。PHPで外部RSSが取得できない場合もある。
  2. htmlは同階層に置く。もしくはディレクトリの深さを統一する。これは画像とかjsとかCSSのパスを変える必要がなくなるのでそこそこ修正が減る。修正が減る分誤作動も減る。心配事が減る。つまり他のことを考えられる。
  3. htmlのディレクトリに関して言えば、wordpressみたいに、index.phpだけが実体ファイルで、
    レイアウトの変更、デザインの変更、データの格納、とかをMysqlに全部入れておいて、URLが変わった時に必要な情報を呼び出すだけ、という仕組みがかなりいいと思っているのだけど、Mysqlが使えるとは限らないし、
    MysqlとかphpMyAdminとかよく理解出来ない人もいるから、なんとなく使いづらい。
    (今思ったけど提案したらイケルかも。でも却下される時もあるだろうな。採用されるかされないかは50%くらいかと。)
  4. 画像は可能な限りフォルダで分ける。(目視で見やすいし、後々更新するときは差し替えやすい、削除しやすい、グループ化が一目で把握しやすい。)
  5. 大量のテキスト(1000件位)を扱う時にやっておきたいこと。
    元のデータを利用してHTMLに変換したりする時を想定する。
    ・クライアントによる修正チェックが入るときは、利用元のデータを更新する。
  6. SSLのページ対応の鉄則。
    SSL用のページを作る場合、ファイルの設置場所がレンタルサーバーによって違うのが注意点。

    $httpPATH = ‘http://foo.com/’;
    $httpsPATH = ‘https://foo.com/’;
    と絶対パスを一元管理しておくと、経験上最も融通がききやすかったと思う。
    リンクのパスと画像のパス両方管理すると最も楽だった気がする。
    作る時は面倒だけど、あとから楽。

    非SSLページとSSLページで同じ画像(ヘッダーのロゴ画像など。)を共有している場合は、
    レンタルサーバーのSSL領域の仕様が、非SSLと別フォルダで管理するタイプの場合は、
    同じ画像が非SSLページとSSLページにそれぞれ存在することになる。
    同じ画像がそれぞれ存在する状態はよろしくないが、この場合はしょうがない。
    PHP側でcurlとかでgetする方法もあるが、何かうまくいかなかった記憶が。。。
    CSSをcurlで読むと画像のパスが切れるんだったかな。
    忘れてしまった。
    他何か思いだしたら書く。


こういったルールは、あちらが起てばこちらが起たずの繰り返しなので、
サーバー環境とか、新規立ち上げか or リニューアル案件か、で有利になる場合と不利になる場合があるので、
明確に文章化できないのでめんどう。
文章化することが、そもそも不利に働く場合もある。
文章化すると誰かが読まなければいけないし、マニュアルのメンテナンスが発生するから。これは面倒だ。(特にマニュアルのメンテナンスほど退屈なものはない。)
非常にコストパフォーマンスが悪い。

マニュアルが明文化されていてすばらしいと感じたのは、新人教育として、新人に読ませるのはコストパフォーマンスが良いと思う。新人は仕事がなくて暇ですからね。
そして先輩は教える隙がないし、
教えるなんて退屈なこと毎日毎日業務の合間にやりたくないでしょう。 (※教えることが勉強になる場合もありますが。)

Vimperator on Firefox9.0.1に再挑戦。

以前インストールしたことがありましたが、
各種コマンドを覚える前に忙しくなってしまい、挫折。
そして、最近Macのマウス操作がだるく感じ始め、
再度Vimparatorを思い出したので、再インストールしてみました。

ターミナルからphpのpearライブラリをインストールしたり、
MacにphpとかMysqlをインストールしていたせいか、
コマンド操作に壁を感じなくなってきました。

というかコマンドって便利。
とか思うようになってきてるかも知れないですね。
(特にpearライブラリを使う場合はコマンド自身の理解があるとライブラリに対しても理解がしやすいかなと思う。)

とはいっても。

Vimparatorは最初にマニュアルを覚えないと作業がイチイチ止まってしまう。
ブックマークの使い方、ページ検索、前に戻る、先に進む。等々の使い方がイチイチわからないから。
Vmparatorを使ってどの程度作業パフォーマンスが上がるかがわからない分、
マニュアルを読み込む気が起きない。。
Vimparatorを使い込んでる人が隣の席に入ればいいなぁと思いました。

正規表現の本。

オライリーの正規表現の本。
いつか読みたい。
まだ一冊も買ったことがない。
使えば使うほど好きになる。それが正規表現。

オライリーのEbookストアにもアリました!
オライリーいいなぁ。すばらしいです。
どんどんEbookストアを充実させて欲しいですね。
もはや電子書籍じゃないと買えません。

ソースコードをテストする必要性に気づく。しかも自動で。

今日作業をしていて、
たった一行ですが、
使ってはいけないディレクトリの画像を読み込んでしまっていて、
それはコピペだったので、
コピペしたときは使ってはいけないソースコードだと気づかなかった。

後から(偶然)目視で何気なく見ていた時になんか変だなと気づいて、
確認したら使ってはいけないコードだと気づくことができた。

この時、
この、人力でやっていた確認作業は人力ではなく、
むしろプログラムに処理させるべき仕事だと気づいた。
そして、むしろ、ソースコードのチェック作業はプログラムの得意とする処理だと自ら気づいた。

今まで散々HTML Lintとか使ってたくせに、
なんでこんな簡単な発想に気づかなかったのか、不思議。

という訳で、今日からテストのためのコードも書いていきたいと、
心の底から思えました、とさ。めでたしめでたし。

phpのfgetcsv()で文字化け。

windowsのエクセルからCSVファイルを作ると、
shift_jisで保存されます。
このCSVをphpで読み込んでutf-8で出力するのですが、文字化けすることがあります。

文字化けしないようにするには、localeというのを設定すると直ることがあります。
(僕の環境ではlocaleを設定しただけで直った。)
まぁgoogleで検索すればたくさん出てきます。
時間無いので今日はメモで終わり。

  • (ローカル(windows + xampp)では文字化けしなくても、レンタルサーバーに上げると文字化けしてました。) こういうのはほんと焦りますよね。
  • あと文字の化け方は、日本語の一文字目だけアルファベットになるという文字の化け方でした。

Macにapache2とphpを入れた後にMysqlをインストールする。

Mysqlのサイトから、
ユーザー登録 → Mac用のMysql(mysql-5.5.20-osx10.6-x86_64.dmg)をダウンロード。 そしてMacにインストールした後にやったこと。

まず、下のページに書いてあることをやればできるのですが、
windowsにインストールした時のことも書いてあったり、
必要ないことも書いてあって非常に不親切なページ。
(※必要なことも書いてあります。) インストール直後はMysqlが起動してないので、
まず、管理者権限で、起動させる↓。
# ./mysqld_safe --user=mysql &
そしたらこんな感じの文章が出てきたら、いつの間にかMysqlが起動してました。
120113 00:54:00 mysqld_safe Logging to '/usr/local/mysql/data/MacBook.local.err'.
120113 00:54:00 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
起動した後は、バージョン情報を出力させることができます。
./mysqladmin version
mysqlshowとかうちこんでやると、 Mysqlっぽいやつが出てきます。
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
無事Mysqlが起動してくれた見たいですね。
次のステップを知りたい方は、下記の本家サイトのリファレンスを読みましょう。僕も読みます。

php4とphp5でquick_formの動作確認完了。

quick_form2は残念ながらphp4では動作しないようです。
いろいろコードを弄ったりハックすれば動作するかも知れないですが、
その前にquick_form(「2」ではない。)がphp4とphp5の両方で動作したので、
メールフォームは現状で満足できました。
quick_formの$form->freeze()メソッドが動作すれば大満足です。

iphoneはパケ放題だけの解約が出来ない。

ソフトバンクのiphoneの話です。

単純にパケ放題を解約すれば月額4000円浮くなぁと気づいたので、
解約しようとしたのですが、
iphoneの場合、パケ放題を外して通話だけの利用というのが出来ないということでした。
なので、
どうしたかというと、
「iphoneからガラケーに機種変する」ということにしました。
simカードを交換する必要があるので、
ソフトバンクショップに行って交換しました。
中古の白ロムも一緒に持って行きました。
simカード交換費用として1900円位かかりました。

※機種変には身分証明書が必要です。免許証とか。僕はもっていかなかったので、2回ソフトバンクショップに行きましたorz 当分は、外出時のネットはb-mobileの980円simで運用してみます。
通信速度はだいたい60kb/s辺りですね。(神奈川県 or 東京です。)
twitterとメールと乗り換え案内なら使えますwww
PCサイトは表示するのに10秒以上かかりますね。
かといって月額4000円分(ソフトバンクのパケ放題分の料金)外出時に利用してるかというと疑問です。
(だから解約したわけですが。今は解約してよかったと思ってます。)

それにしてもiphoneだとパケ放題が解約できないというのはどういうロジックなのか気になりますね。

Macにphp4とphp5を共存させる。

先日php4で開発する必要があったので、php4の環境を用意して見ました。
結論から言うと、php4とphp5は共存するようです。php6も共存可能なようです。
インストールした環境とツール。
  • Mac OSX 10.6.8(snow leopard)
  • MacPosts
  • MacPotsでapache2.xをインストール
インストールしたphpのバージョン。
  • php-4.4.9
  • php-5.3.8

参考にしたサイト。

↓php-4.4.9をsnow loaprdにインストールするとエラーがでるので、その時の対策が載っている。この記事がないとphp4はインストール出来なかった。。。

はまったエラー。

php-4.4.9は単純にmakeするだけだとエラーが出ます。
(php-5.3.8はエラーもなくコンパイルできた。)
Undefined symbols:
  "_res_9_search", referenced from:
      _zif_checkdnsrr in dns.o
      _zif_getmxrr in dns.o
  "_res_9_dn_expand", referenced from:
      _zif_getmxrr in dns.o
  "_res_9_dn_skipname", referenced from:
      _zif_getmxrr in dns.o
      _zif_getmxrr in dns.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [libs/libphp4.bundle] Error 1
オプションみたいなのをつけるとcompleteしました。
make EXTRA_CFLAGS="-lresolv"

雑感

まぁよくあることですが、Macのシステム構成が変わったりしたのが原因で、atmarkitのサイトの手順どおりに行かなかった模様。atmarkitの筆者もすこし手順を端折ったりしてますし。(自分は端折られた部分の前提知識がなかったので行間が読めなかった。)

僕はターミナルを使うことを迫られたことが無いので、コマンドはよくわかってない感じのレベルです。

今日はもう寝ますが、今回構築したphp環境でしばらくphpを弄ってみようと思います。
そもそもpearのquick_form2をphp4環境で動かせるのかどうかを確認したかったので、明日とか、それをやりたいです。

php4でquick_form2が動けばメールフォームはこれがベストチョイスになるはず。

あと、これを試したいんですよね。