日記の最近のブログ記事

個人プロジェクトを開始しまして、ちょこちょこ開発を進めているんですがバージョン管理をどーしようかってくらいの状況になってまいりました。

インフラですらクラウドな世の中の昨今、自分でSVNリポジトリを組むのも組む場所を探すのもめんどくさいなあ、グーグルのやつはみんなに見られちゃうんだよねそれは恥ずかしいなあ、という訳でフリーかつ誰にも見られない、そーゆーサービスがないかと探してみたんですけど、あるものなんですね。

会員登録とかに代表される入力項目がたくさんある入力フォームを見ると、パソコンの、ワードの、キーボードのプロであるところの僕ですらうんざりする。一言でいうと苦行。
たくさん入力したすえに登録ボタンを押したら「〇〇が間違ってます」とか言われると悲しくなる。もっと早く言えよ、と思う。
ということで、できるだけ入力フォームの苦行を和らげる工夫を調べたり、考えたりしたのでメモ。


Right SCALEというEC2の管理ツールとかを提供している会社があって
そこで、10時間無料でEC2を試せるサービスがあるのだ。
入力チェックで使ったやつ。

登録フォームあるじゃないですか。名前入れーの、住所入れーの、生年月日入れーの。の生年月日が悩ましい。

もっと言うとタイトルにあるとおり生年月日をプルダウン式にするか記入式にするのかが悩ましいんですよ。ああ、困った。さらに言うと、年と月と日それぞれ、どっちにするか悩ましい。


今悩んでいるのが、ユーザーのパスワードの保持の仕方。
パスワードにはsaltをかけてハッシュ化する、というところまではいいんだけど、saltをどこに保持するのか?というところで悩ましい。

saltの保持の仕方候補は3つ
1.DBテーブル
2.外部ファイル
3.ソースベタ書き





WEBに携わる俺がインストールのし過ぎに注意しながら選んだ7つのアドオン。

Firebug
https://addons.mozilla.org/ja/firefox/addon/1843
YSlow
https://addons.mozilla.org/ja/firefox/addon/5369
Web Developer
https://addons.mozilla.org/ja/firefox/addon/60
Gmail Manager
https://addons.mozilla.org/ja/firefox/addon/1320
Live Http Headers
https://addons.mozilla.org/ja/firefox/addon/3829
FireGestures
https://addons.mozilla.org/ja/firefox/addon/6366
中止ボタンがしいたけに見えて困る
https://addons.mozilla.org/ja/firefox/addon/4298

前はもっといっぱいあったような。。。
人の10倍作業を早くこなすための10のTIPS-ver0.1

「IT企業はほんとに泥のように働かされるのか」――東大でイベントで「1人で10人分の仕事ができるような人が周りにいるか?」みたいな部分に反応して書いてみる、IT(システム?)業界に身を置く筆者が考える、人の10倍(以上)作業を早くこなすためのTIPS。記事の質問のニュアンスとは違うかもしれないけど。
あと、モノによってはITに限らないと思う。あと役立つシチュエーションとか粒度、レイヤーもバラバラです。そんなに特殊なことでもないので、たぶんノウハウ本とかに載ってる内容もあるかも。
直接的なものや間接的なもの、ものによっては100倍以上の効果をもたらすものがあります。

1.予定を立てろ
ここでいう予定は「手順」的なものを言ってます。行き当たりばったりの作業は、ややもすると「そもそも何のために今の作業やってるんだっけ?」みたいな状況になったりする。粒度は、作業の内容によって変えていいけど、言いたいことは具体的な作業に入る前に大体の流れを頭で考えとけ、ってことです。これをやることで、作業時間の見積精度も上がるし、作業設計(そんな言葉ある?)の精度も上がります。ひいては、無駄な作業を回避できるようになり、作業効率が上がります。
コレができてない人を見極めるには「後どんくらいで終わる?」と聞く。できてない人は答えられないか、守られない時間を言ってきます。
※もしくは、「なんでそんなにかかるの?」とさらに聞いたときに明確な答えが返ってこない

2.タイムリミットを決めろ
適当なキリで作業時間のリミットを決めよう。プログラミングなら、とりあえず画面遷移ができるとこまでで1時間、とか。パワポで提案書書く時なら大体の章立て1時間、箱作ってリード文埋めるとこまででもう1時間、とか。
リミットを意識すると、目標ができることによって必死さが変わります。マリオカートだってゴーストがいなければ記録更新も難しいでしょう。やべー!リミットまであと10分しかねーよ!とか思うとタバコを吸いにいったりヤフーニュースを見たりしなくなります。
また、自分がある作業に対してかかる時間が把握できるので1の予定を立てる上でもグッドです。

3.ログを残せ
これはデータ集計作業とかシステムの環境構築作業とか、「これぞ作業!」的なところで威力を発揮します。
筆者が思うに、世の中の99%以上が凡人です。ちょっと脱線しますが、「あいつは天才だ」とか「あいつは俺とは違う」みたいなことを言ってる人をたまに見かけますが、その「あいつ」はそーゆーこと言ってる人の何倍も考えてるんです。努力してるんです。「天才」とかもしかしたら逆に失礼かもしれないですよ。「あいつは俺とは違う」っていうのは、たぶん「俺とは頭のデキが違う」という意味なんだと思いますが、違いますから。違うのは「根性」とか「信念」とかですから。まあ「根性」とか「信念」が保てる考え方がデキルという意味では「頭のデキ」が違うのかもしれないですけど。まあいいや。何を言いたいのかというと、特に作業が「手作業」の場合には、まずミスが発生するという前提に立って考えよう、ということです。だって凡人だから。凡人はミスをするんです。で、1つの作業が終わったときに、作業中のどこのプロセスで時間がかかったか振り返ってみると、それは大体途中でミスしてそのリカバーだったりしないすか?大概の作業は、1つの手順では終わらず、複数の手順に分けられると思います。ミスした時に、「どこでミスしたか?」がわからないと、その割り出し作業にかかる時間も半端じゃないし、最悪「もうわからんから、一からやろう」ってことになります。なので、ミスしたときに「どこで間違ったか」がわかるくらいレベルで作業ログを残しましょう。

4.作業の検証方法を考えておけ

「やっと終わったー」と思った作業が、上司や客のレビューを受けたらぼろぼろでやり直し。というケースは少なくないと思います。まあ、やりっぱなしの作業なら、一発でOKがでるケースの方が少ないと思います。やった作業は必ず検証しましょう。いわゆるテストってやつです。小学校でもならったと思います。検算ってやつです。自分の作業結果を見せる前には必ず「検算」をしましょう。グダグダな結果は、再提出の際のレビュアーの視点を厳しくしてしまいます。1発目なら通ったものでも通らなくなったりします。修正の回数が増えれば、当然作業時間も段違いに長くなります。なので「検算」はできる範囲で必ずしましょう。また、この検算をしっかり考えてやっておくと、ダメ出しされたとき「こうやって検証したんですけど」といえばレビュアーに自分の理解度とか思考が伝わり易いので、「このデータはこーゆー性質を持っているから、ここでこの確認をしないと精度が確保できないよ」的な、良いフィードバックが帰ってくる確率が高いです。

5.人に聞け
わかんないことは人に聞くのが一番早いです。自分で30分考えてわからないことでも知っている人に聞けば速攻で答えが返ってきます。ただ、わからないことにぶち当たったときに、アホみたいに「これわかんないんですけど」ということを繰り返しているとそのうち誰も答えてくれなくなります。お金でも払っていれば別ですけど。なので、何がどうわからないのかを、ちゃんと伝えましょう。また、わからないことに対して自分がとったアプローチも伝えましょう。自分がとったアプローチを伝えることによって質問された側は、あなたの思考回路がわかるとともに、「とりあえず自分で解決しようとしたんだな」という努力部分も感じてくれるので、答える気になってくれる確率が高くなります。あと、わからないことを聞く場合に気をつけなきゃいけないことは、「相手はあなたではないのであなたが知っている情報は知りません」ということでしょうか。まあ要するに、ちゃんとイチから話せよ、ってことです。こんなのは完全にケースバイケースなんですけど、「なぜその作業をやることになったか?」ということも伝えるといいです。けっこう「その作業ってやらなくてもよくね?」という結論になったりします。

6.人と仲良くしておけ
これは、5に強く紐づきます。打算的な人間関係はいいことだとは思いませんが、まあ、人類皆兄弟。仲良くしましょうよ。誰がどういうことを知っているのか?ということもわかるようになるし、聞きやすい環境も作れるじゃないですか。

7.誰が知ってるかを考えろ
これも5に紐づきます。だって知ってそうな人に聞かなきゃたぶん答えかえってこないじゃん。とはいえこの考えをもう一歩進めると「誰が知ってそうな人を知っていそうか考えろ」というのがあって、しまいには「だめもとで聞いてみろ」というのもあったりします。まあ、うまく解釈して使ってください。

8.ツールを使え

その作業って、本当に手作業でやらなきゃいけないの?それをやってくれるツールってあるんじゃない?でもそのツール探すのにあんま時間かけると本末転倒なのでほどほどに。
筆者がお勧めする最強の三種の神器は「Excel」「正規表現」「英語」です。「Excel」は最低VLOOKUPは知っておく。できればマクロが組めるようになっておきたい。「正規表現」はログ抽出とか、データ集計などに役立ちます。「英語」はEclipseでDerbyを使ってみるでも触れましたが、IT系の光の玉ですから。

9.自動化しろ
あなたが、一回切りと思った作業はたぶん何回もやることになるでしょう。マクロなりプログラムを組むなり、できるだけ人の手を介さないようにしておこう。人の手を介せばミスが産まれるから。1回目は自動化をもくろまないケースより時間がかかってしまうかもだけど、すぐ取り返せるから。場合によってはヒーローだから。

もうだめだ。眠い。ちょっとこの時間に殴り書いたのでアレですけど、見直してもないですけど。しかも10っていったのに9しかないけど、まあそれはそのうちバージョンアップして間に合わせるということで。

以上、よろしくお願いいたします。



以前、Seesaaブログのあるべき姿-HTMLテンプレートの編集という記事を書いたんですけど、また気づいちゃいました。というより、これに一番初めに気づくべきだったんです。

Seesaaブログは個別記事のH1タグが記事タイトルじゃなくてブログタイトルなんです。(2008年7月7日現在)

もうね。タダなのはわかってますよ。融通もけっこう利くブログサービスだとも思いますよ。でも言わしてもらいます。

絶望した!ここまでユーザーに負担を強いるSeesaaブログに絶望した!

  • テンプレートのタグ構成はむちゃくちゃ
  • 管理画面は異常なくらいGがかかってる。
  • アクセス解析は使いものにならない
もう愚痴ばっかいっててもしょうがないのでMTに引っ越すことにしました。ていうかもうしました。
もともとSeesaa選んだ理由の一つにデータのエクスポートができる、ということもあったし、こういった事態は想定してたのです。さすが。

超簡単にSeesaaからMTへの移行のポイントをまとめます。
  • MTの構築方法はサーバによるので各自で探してがんばること。
  • Seesaaの管理画面からデータのエクスポートをする。このとき、インポート先の文字コードを調べてそれにしておく。
  • Seesaaでエクスポートしたデータは改行コードがCR+LFだが、MTのインポートはLFじゃないとうまくいかないので、テキストエディタとかでLFにしておく。(LFじゃなくてもパッと見、うまくいったようにみえるけど、それは罠なので気をつけること)
  • Seesaaでエクスポートしたデータには、ALLOW PINGS: というトラックバックを許可するか否かみたいなデータ箇所があるが、これが本来0か1のはずなのに、なぜだか3とかになっているケースがあるので、あったら修正しておくこと。
  • google analyticsのトラッキングコードなど、テンプレートに追加すべきタグ等は、管理画面のデザイン>テンプレート>テンプレートモジュールで追加・修正しておくこと。
  • URLは全体的に変わってしまうので、Redirectなどでできるだけカバーしておくこと。
こんな感じでしょうか。
最後のやつが、けっこう手間です。このブログの場合、別にバックリンクも張られてないし、まあいいか、と思ってたらなんとけっこう前に書いたrubyをEclipseで使ってみるオレドコさんから初トラックバックをいただいたので、これはもったいないということでこの記事だけリダイレクトさせることにした。

RedirectPermanent /article/93199421.html http://blog.mufu.jp/2008/04/rubyeclipse.html

こんな感じのを.htaccessに書いて終わり。

さようならSeesaaブログ、幸せにSeesaaユーザー。そしてようこそ永遠の我がMovableType!

当たり前の話なのですが自戒の意味を込めて書いておきます。

よくプログラム本とかIT系の記事中でURLがでてくるときって、http://www.example.com/というドメインが使われているじゃないですか。

これはドキュメト用に予約されているドメインなんです。つまり、誰もこのドメインを取得することはできないんです。
RFC 2606という偉い人たちが決めた仕様書に定義されてるんです。
だから、テストとか仕様書とかブログとかでこれを使っていれば人様に迷惑をかけることはないです。
example.netとexample.orgも同様に予約されているのでOKです。

逆にこれ以外だったら、人様のドメインを勝手に公に公開してしまうことになるのでいつ怒られてもおかしくありません。

メールとかもそうですね。テスト時に、「こんなドメインねーだろ」と思ってフォームとかに入力してみたら、なんかすんなり通っちゃってエラーメールも帰ってこなくって、どうやらどっかの誰かに届いちゃってる可能性があるらしい、なんてことになると、一歩間違えると大問題です。

ですのでexample.comかexample.netかexample.orgを使いましょう。

このアーカイブについて

このページには、過去に書かれたブログ記事のうち日記カテゴリに属しているものが含まれています。

前のカテゴリはモバイルです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。