page_adsence

2011年1月13日木曜日

モリヤマスポーツの並行輸入品は安いらしい

関西ボーダーの人に聞いたのでメモ。
http://www.morispo.co.jp/

並行輸入品を結構たくさん取り扱っている店らしい。
正規品の40%OFF位の値段で買えるので、安く済ませるならここかも。

2011年1月12日水曜日

変更した.vimrcをすぐに反映させる方法

よく忘れるのでメモ。

:source ~/.vimrc

controllerからviewへの変数の引き渡し方法

オレオレフレームワークで、MVCモデルで実装しようとした場合に、symfonyのようにcontroller(action)からviewに変数を渡すには、controllerの処理の最後にviewのファイルをrequire_onceしてやればよい。

複数ファイル名を一括で変更する

renameコマンドを使うと一括でファイル名を変更することができる。
意外と便利。

2011年1月11日火曜日

grepコマンドで特定のディレクトリを除外して検索する方法

svn管理しているディレクトリ内をgrepする場合は以下のようにするとsvn管理下のファイルがヒットしないようになる。
grep -r --exclude=*.svn* 検索テキスト 対象ディレクトリ

ちなみに「--exclude=*.svn*」の「*.svn*」は正規表現のパターンなので、結構フレキシブルに使える。
grep -r --exclude=正規表現のパターン 検索テキスト 対象ディレクトリ

起動が遅くなってしまったFirefoxの起動を素早く行うspeedfoxが使える

Webページの開発には欠かせないFirefoxですが、長年使っていると起動がどんどん遅くなりストレスに感じることがあります。
そこで使ってほしいのがこの「speedfox」
Firefoxというのは、初回起動時にプロファイルを作成し、そこに設定や履歴、ID、パスワード、ブックマークといった情報を保存しています。
しかし、これが何度も更新されることにより、HDDの断片化と同様の現象が起こります。
そこで使用するのが「speedfox」です。

「speedfox」はwindowsのデフラグツールのようにプロファイルの状態を最適化してくれるツールです。
利用方法も簡単。
まず「speedfox」をダウンロードし、解凍して出てきたexeファイルを実行します。
すると、どのプロファイルに対して実行するのかと、「Run Firefox after optimization」(Firefoxを終了してから最適化を行う)かというチェックボックスがありますので、それぞれ選択し、「Speed Up My Firefox」ボタンを押せば完了します。

僕が使用しているFirefoxも起動までに20秒位かかっていたFirefoxの起動が2秒位で起動するようになりました。
Firefox使いには必須ツールだと思います。

2011年1月6日木曜日

人の振り見て我が振り直せ

新しい会社に入社して一番最初に担当することになった仕事が、外注さんの作った管理ツールの検証と
機能追加だったんですが、ソースを見て愕然としました。

「なんじゃこりゃ・・・。」

なんの気遣いも感じられないソースだった。
インデントがそろってなかったり、無駄にスペース入れてあったり、逆にまったく入ってなかったり。
開発がひと段落しても、必要ないコメント(テスト用のコードとかデバッグコードとか)部分とか消してないし、使ってなさそうなファイルとかもそのまま放置。
こんなので金取るのか?って言うくらいひどいソースでした。

で、なぜ今回タイトルのような記事を書こうと思ったかというと、
自分が書いたソースで、そんな印象を受けさせたくない。
せめて、可読性だけでもきちんと保てるようにプログラムを書いていこうと思ったからだ。

絶対にやらないと決めたことを以下に示す。
PHP編
1.PHPのコーディング規約をなるべく守る。
2.変数名は適当に決めない。($keyとか$valueとか$val1、$val2等)

HTMLコーディング編
1.idやname属性等の情報もきちんとHTMLコーディング規約に則った形で決める。
(同一HTMLファイル内に同一のname属性を持たないようにする等の基本中の基本)
2.FirefoxのHTML Validatorでエラーがある状態のHTMLは完成しているとは言えない。
(HTML単体の場合のみ。PHPなどの出力が混ざってきた場合はよしとする)
3.JavascriptをHTMLソース内にベタ書きでは書かない。
(例外としてごくわずかな量のJSであればありとする)
4.CSSをHTMLソース内にベタ書きでは書かない。
(例外としてごくわずかな量のスタイルであればありとする)

2011年1月5日水曜日

MySQLの文字コードに関して

Server characterset
サーバーのデフォルトキャラクタセット。

Db characterset
デフォルトデータベース(use xxxで選択したデータベース)で使用される文字コード。デフォルトデータベースがまだ選択されていない場合は、Server charactersetと同じものが表示される。

Client characterset
クライアントから送られてくるクエリの文字コードを指定。

Conn. characterset
サーバーはクエリを受信した後に変換する文字コードを指定する。サーバーはクライアントから送られたクエリをClient charactersetからConn. charactersetに変換する。(introducerがない文字列に限る)

vimで改行コードが^Mとなって出てしまっている場合の対処方法

:%s/^M//g
※^MはC-v C-mで入力。

svnでapache経由でコミットしようとしらたエラーになった

VMWare上に作ってあるリポジトリにApache経由でアクセスして使えるようにしたくていろいろとやっていた時のログ。

作業前の状態は以下の通り。
1.Apache経由ではリポジトリを見ることは可能
2.WindowsからTortoiseSVNを使ってチェックアウトすることは可能
3.フォルダを追加してコミットしようとしたらエラーになった。

TortoiseSVNが吐いたエラーは以下の通り。
コミットに失敗しました (詳しい理由は以下のとおりです):
サーバが、リクエストへのレスポンスとして予想外の戻り値 (403 Forbidden) を送信してきました (リクエスト: MKACTIVITY, URL: '/!svn/act/532009ea-04a9-8547-9597-23cc8ad9e5fe')

サーバ側のエラーログは以下の通り。
Access denied: 'ユーザー名' MKACTIVITY /:

ググってみたら結果、これの原因はauthzsvn.confのせいだとわかった。
よく見てみたら、ルートディレクトリ以下は誰も書き込みできないようになっていたので、
管理者は書き込みが可能なように修正して保存。

再度コミットしてみたら今度は別のエラーがでた。
Can’t create directory ‘~~~~~~’: Permission denied

サーバー側のエラーログは以下の通り。
Could not create activity /!svn/act/9a75b9be-5637-be47-9bb1-504df8e09f8a.  [500, #0]
could not begin a transaction  [500, #13]
Can't create directory '/path/to/dir/svn/db/transactions/0-1.txn': Permission denied  [500, #13]

で、これもググってみた結果、リポジトリ内のdavとdbフォルダ以下のオーナーをapacheに変更しないといけないということだったので、さっそく変更

# chown apache:apache -R db/ dav/

もう一度コミットしてみたら、今度はうまくいきました。
よかったよかった。

ちなみに、subversionのバージョンが1.5以降になるとdavディレクトリは自分で作らないといけないらしいので要注意。