« 2008年5月 | トップページ | 2008年7月 »

2008年6月の5件の記事

2008年6月30日 (月)

ラクをしないと成果は出ない

ビジネス書。日垣隆が、仕事で成果を上げるための鉄則を100個見開きで並べたもの。タイトルにあるとおり、無駄に時間を使うことなく、なるべく楽にすることを考えて実行することが成果をあげるコツ。という内容。

なんとなーく中谷彰宏の本を読んでるみたいな気にもなるのですが、仕事でどうしたらいいのかなーと悩んでいる人にとってはヒントになることがあるかもしれません。

  • 本に投資を惜しまない
  • ノウハウは公開する
  • 探し物に時間をかけない

ってな内容は多少なりとも実践ができているところでした。一方

  • 三日かかる仕事は一日で
  • 机の上を毎日リセットする
  • 自分の実力をマッピングしておく

などは、以前から苦手だなぁと思っていたことでした。「ぐずぐずせずに仕事を早く終わらせる」「自分の能力を客観的に評価する」が課題だなと改めて思いました。

| | コメント (0) | トラックバック (1)

2008年6月28日 (土)

Sleipnir2カスタマイズテクニック

最近FireFox3が話題ですが、今僕が使っているブラウザはSleipnir2です。Sleipnir1系の歴史が途絶えるちょっと前くらいから使っていて、その時はどうなるかと思っていたのですが、Sleipnir2となって復活したのち、安定してきた頃を見計らって1.6系から乗り換えました。

Sleipnirといえばカスタマイズが肝なのですが、項目が多く、それほど活用していませんでした。なところで、本書を本屋で見つけて、バカみたいに分りやすそうだった(←褒め言葉)ので、買ってみました。

急いで補足しておくと、カスタマイズテクニックと銘打っていますが、副題に小さく書いてある「オリジナルスクリプトを作る」の方が内容を正しく表しています。今数えてみたら、アイコンの配置や設定の変更については5ページ分しか書かれていませんでした。

で、何が書かれているかというと、「Sleipnir2の環境で、自分で書いたVBScriptやJScriptを動かして何かするための方法」です。 Sleipnir2のメニューにある「スクリプト」って何なんだろうなぁ。どうやって使うんだろうなぁ。って思っていたのですが、とりあえず、本書を読めば、初めの一歩は踏み出せます。

ユーザへの入力を促す方法、出力する方法、クリップボードを使ってやり取りする方法、マウスで選択した文字列を取得する方法、Webのサービスを利用する方法、などが具体的に書いてあります。

そういうわけで、VBScriptやJavaScriptの入門のきっかけとしてもいいと思います。系統的な理解はできませんが、とりあえず何をしなければならないのかは分ります。

難点は二つ。ひとつは、上司に「これ何の本?」と聞かれて説明がうまくできなかったこと。

  • る「えーと、Sleipnirっていうブラウザ上で、JavaScriptを走らせるための本・・・(うーん、ちょっとちがうかな)」
  • 上「え?JavaScriptってブラウザ上で動くもんじゃないの?」
  • る「あ、いや、自分でローカルに書いたJavaScriptを表示させたページに反映できたりするんですよ」
  • 上「それって何がうれしいの?」
  • る「うーん。。」

・・・Sleipnirでスクリプトが走らせられるとどんなうれしいことがあるんでしたっけ??<根本的な疑問

もうひとつは、誤字が多いこと。ちょっと萎えます。いきなり「ブックマークレットとは」という見出しでSleipnirの説明が始まります(索引にも反映されてます)。Messageやdocumentのつづりが誤っていたり。。。編集がイマイチなのか?と思ったら、末尾に読者用ページのURLが用意されていたりしますね。 と思ったらこれ、なんかただの紹介ページ+ソースのダウンロードサービスみたいですね。。。

Sleipnir2のスクリプトって何?使ってみたいけど良くわからないってひとにおススメです。

| | コメント (2) | トラックバック (0)

2008年6月23日 (月)

bashスクリプトで正規表現

 

前書き

 

僕が正規表現をよく使うのは、vimで文字列の検索や置換をするときですが、たまにシェルスクリプトの中で使いたくなることがあります。そういう時普通はperlで書くのでしょうが、あいにく僕はperlがつかえない(orz)ので、毎回edやらgrepやらsedやらawkやらを調べて場当たり的に解決しています。で、この前、後輩に質問されて「う、こんな簡単なことなのにどうやったらいいのか分らないなんて!」とショックを受けたことがあったので、調査結果をメモっておきます。

 

問題

 

データを行毎に記録したテキストファイル(例:data.txt)がある。そのテキストファイルを1行ずつ読み取って、コマンドを実行したい。ただし、#で始まる行や空行は無視したい。

 

解答

 

exprコマンドは、正規表現を解釈する(!)ので、それを使う。

 
#!/bin/sh 
TARGET_FILE="data.txt" 
while read LINE 
do 
    if expr "$LINE" : "#" > /dev/null || [ -z "$LINE" ] 
    then 
        continue 
    else 
        echo "$LINE" 
    fi 
done < $TARGET_FILE

注意点は、exprの標準出力を/dev/nullに捨てることと、正規表現の先頭に暗黙のうちに"^"(行頭)が付加されること。

以下実行例:

[lucy@fedora7 regexp]$ cat data.txt 
one 
#two
four 
five 
six# 
se #ven

ten 
[lucy@fedora7 regexp]$ ./regexp.sh
one
four
five
six#
se #ven
ten

まとめ

exprで正規表現を扱えるとは知りませんでした。expr string : regexp もしくは expr match string regexp でもよいみたいです。標準出力にはマッチした文字数がでるみたいです。また、\( \)で囲ってある部分があれば、そこの文字列がでるそうな。詳細はこの辺で。

でもbashのfor文だと、行区切りではなくて、空白区切りでループされてしまうので、1行内にブランクがある場合はどうしたらいいんでしょね。これまたFAQの類だと思うんですが、また分ったら書きます。

というわけで、

while read LINE
do
:
done < $TARGET_FILE

構文(?)で修正したプログラムを載せてみました。

| | コメント (0) | トラックバック (0)

2008年6月 7日 (土)

CODE COMPLETE 第2版 下

上巻からほぼ半年かかって、やっと読了した。しばらく机の上に飾ってあったのだが、ふと読み始めたところやはり面白く、一週間ほどで最後まで読みきった。

下巻に残されたテーマは、目次を見ながら僕なりの分け方で言うと

  • 品質向上のための手段
  • テストについて
  • デバッグについて
  • リファクタリングについて
  • コードチューニングがそれほど有効ではないということ
  • コードチューニングの戦略
  • 構成管理
  • デイリービルドのススメ
  • プログラミングのツールのススメ
  • コードのレイアウトに関する細かい議論
  • コードの読みやすさについて
  • プログラマに望まれる気質について(粘り強さが良いとは限らない)
  • さらなる情報を得るために

といったところ。

自分に甘いせいかついついバグを出してしまう僕には、品質の向上やテストについては耳が痛い部分もあったが、精神的に楽に品質の向上を図れる手法があればいいなと思う。

チューニングについては、著者はそもそもコードをチューニングして何とかするよりも設計から見直した方が有効であることや、コンパイラの最適化によって、必ずしも見かけ上の最適化が実行バイナリで最適になるとは限らないことなどから、あまり乗り気ではない様子。ただ、必要な場面では必要になってくるかもしれないとの事。

構成管理についてはsubversionをもっと活用していきたいところ。デイリービルドについては僕はまだ実現していない。実現させて幸せになりたい。

ツールについては、具体的な名前ではなく、種類の紹介がされている。つかいこなせば便利だとは思うが、チームへ新しいツールを導入するには、自分で使ってみて、良さや使い方を十分分った上でないと難しい気がして、使いこなす自信がないために結局導入が進まないという面があると思う。ただ、ツールの導入には前向きになるべきだという教えを受けたのは収穫。

レイアウトについては微笑ましかった。参考になる部分、「いやーそうかなー」という部分もあったが(著者もそういう指摘があるだろう事は自覚しているようだ)レイアウトについてまとまった議論がされているのは注目に値する。

気質についてはついついサボりがちな自分にとっては非常に耳が痛かった。ついつい目の前の作業で楽をしようとしてしまう事。抽象化のレベルをついついごっちゃにしてしまうこと。知的な誠実さに欠けること(★これはキモに銘じないと!★)。この辺は僕にって大事な改善ポイント。

最後、さらなる情報を得るためにレベル別のおススメ書籍リスト(ソフトウェア開発者の読書計画)があったのがありがたい。先に進むために読もうと思う。

というわけで、上巻よりは抽象度が上がった印象があるが「心構え」について教わったような気がしてやはり得るものはあったと思う。目の前のコードと文法書だけ見るのではなくて、どうやったら上手にコードが書けるのか、開発が楽にできるのか、知るためには是非。開発者としてのレベルを上げたい方も是非。

| | コメント (0) | トラックバック (1)

Core2Duo E6300 1.86GHz 2MB

ちょっと前にレアな(?)CPUを譲り受けた。友人曰く「Core2Duoは静かだよ」ということだったので期待していたのだけど、意外とファンの音がする・・・。回転数を見てみるとCPUファン2000rpmで、これは回りすぎとか。シリコングリスが古い(5年くらい昔)からかなぁと思い、ショップで熱伝導シートを購入して貼ってみた。CPUファンをマザーボードに挿すところの爪が広がってしまったりとトラブルはあったものの、無事装着完了。結局1300rpm位になったので多少効果はあったということかな?

| | コメント (0) | トラックバック (0)

« 2008年5月 | トップページ | 2008年7月 »