こちら(PHP プログラマが @ を使うべきでない 5 つの理由 – 肉とご飯と甘いもの @ sotarok)発、下記の記事、
PHPでエラー抑制演算子@を正当に使ってるなぁと思ったケース – それ図解で。・・・tohokuaikiのチラシの裏includeって、正当に読み込んだかどうかの結果を返してるんですよね。
これ知らなかったです。
既にこちら(includeの返り値について – 受難系 – sideport)で触れられていますが、includeは先のファイルのreturnを引数に受けるので要注意ですね。
マニュアルにもちゃんと書いてあります。
PHP: include – Manual例5 include()とreturn()文
return.php <?php $var = 'PHP'; return $var; ?> noreturn.php <?php $var = 'PHP'; ?> testreturns.php <?php $foo = include 'return.php'; echo $foo; // 'PHP'と出力されます $bar = include 'noreturn.php'; echo $bar; // 1が出力されます ?>
perlのpackageも慣習的に最終行にreturnすら略して、
1;
と書きますよね。(最近は違うのかな?)
それを裏切って、以前の僕のエントリーの様にincludeのreturnの積極的な利用と@のエラー抑制とphpの複雑な型比較を組み合わせると、混沌とカオスが両方そなわり最強に見える。暗黒が持つと逆に頭がおかしくなって死ぬ。
そういうところを乗りこなそうと四苦八苦するのも好きです。
会社で開発プロジェクト以外にも、タスク管理としてRedmineを使っています。WikiはGoogleサイトなのでチケットの機能以外はほぼ無効にしています。
エンジニアでなくても、若い子らはどんどん活用していってるんですが、少し年齢が上の方にはちょっと分かり辛いと思ったのでRedmineのちょっと見易いテーマを作ってみました。
変えたところ:
- リンクはなるべく青で下線を出すようにした。
- メニューの間隔を広げた
- フォームなどのパーツはブラウザ標準の見た目にした。
- 期限日が過ぎてるタスクを異常に目立つようにした。
インストール(コンソールの場合):
cd /path/to/redmine/public/themes
git clone git://github.com/komagata/darjeeling.git
touch $RAILS_ROOT/tmp/restart.txt
インストール(ftpなどの場合):
- http://github.com/komagata/darjeeling/zipball/masterをダウンロード
- zipを解凍
- redmineのpublic/themesフォルダの下に置く
- Webサーバーの再起動
””管理”” → ””設定”” → の”“テーマ”“プルダウンに”“Darjeeling”“というテーマが出てる筈なので選択してください。
変なところがあれば教えて頂けるとありがたいです。
id:dandasoがフィヨルドに遊びに来てくれました。
3人ともPCを開き、一人はリリース作業をしながら話すというスタイルでおもてなしも糞もあったもんじゃなくてすいません・・・。(Windows, Mac, Ubuntuと3人ともOSが違うのも面白かった)
アクセス解析とSEOについてためになる話がきけたんですが、それとは別に気になったのが、最近僕がハマっている「ツールを使った業務の管理」についてです。(特にRedmine)
要は”“組織の人数”“と”“開発スタイル”“によって効率の良い方法が違う。ということです。
組織の人数:
- 3人
- 20人
開発スタイル:
- 営業主導
- エンジニア主導
id:dandasoとの話で分かったこと:
- 少人数、エンジニア主導の場合は管理の必要性があまり無く、BTS/ITSなどあまり使わない方が効率が良い。
- 一定上の人数、営業主導の場合はBTS/ITSの導入は結果的には非常に効果があるが、問題点も多い。
BTS/ITSの問題点:
- 使ってみるまでメリットが分からない
- More joel on softwareにもあったが、1人で使ってもメリット感が無いと難しい
- 無視出来ないぐらいの手間の増加
- チケット登録面倒
- チケット確認面倒
- 使い方が難しい
- 例えば、Gmailやサイボウズ メールワイズは使えてもRedmineは使えないという人も多い
一方でBTS/ITSのメリットはここに書くまでもなく沢山ある。
要は”“1人でつかっても便利”“で”“楽”“で”“簡単”“ならいいわけだ。
既に取りかかっているものもあるが、問題点に対する解決策。
解決策:
- 1人プロジェクトを作る(ただのTODOとしてまず使ってもらう)
- 最小限の手間でチケット登録できるクライアントの作成
- メール以外にもIMを使った更新通知
- テーマを使った見た目のカスタマイズ
- シンプル版の作成
- ユーザーCSS、ユーザースクリプトを使ったカスタマイズ
- シンプル版のにする機能をそもそも追加。
シフト制業務や遠隔地でのコラボレーション、業務領域の違いなどといったコミュニケーションや手続きのロスを減らすにはRedmineの徹底カスタマイズとMechanize等による徹底自動化が一番だと思うので実際に試してみて報告して行きたいと思います。
糞暑いのでエアコンのあるソファ部屋でだらだらしていた俺ですが、ついにフィヨルドの仕事部屋にクーラーが。
この懐かしい感じの窓に付ける奴、ウィンドクーラーっていうらしいです。かっこいい!
3万だって。安っ!
データの保存先としてRDBの良い所を考えてみた。(長所だとなんか偉そうなので僕なりの良いところという感じ)
速い
大雑把に言えばB-Treeインデックスで参照できるので速い。 キャッシュを持ってくれるので速い。
もっと速い保存先は色々あるが、例えば“自分で適当にファイルに保存する”とかよりは参照が速い。
固い
大抵トランザクションが使えるので固い。更新前データを退避させる方法にしても、削除フラグを立てる方法にしても、自分で作るのは大変。
制約を設定できるので固い。わざわざ無視する指定をしない限り、あまり詳しく無い人が触っても、怖い感じのメッセージと共に弾いてくれる。
(表向き)分かり易い
エクセルというソフトがあるので2次元の表はイメージされやすい。
オブジェクトという目に見えないものはイメージし辛い。
コッド博士には申し訳ないが、集合論と述語論理は理解出来なくても、
「あ、エクセルみたいなもんか!」
という感じでプログラマー以外にも分かった感が持ち易い。CSVファイルには多くのファンがいる。
感想
歴史的経緯を無視して考えると、今から一から学ぶのは割が良いのか悪いのか。
僕が就職して始めてのプロジェクトで覚えて以来10年ずっと使えた唯一の言語がSQLだが、そろそろ別のを使ってみたい気もする。