Home

30からのBlog

[雑記]Firefox3 + vimperator + 全画面表示(F11)

Firefox3 + vimperatorのときは、F11押して全画面表示にしっぱなしでOK。
1024*768でもそれなりに快適。

いざというときのために

:set guioptions=mTb

しておいて、F11で全画面表示が自分の操作としてはしっくりくる。

[Vimperator]メニューとか無くなってびっくりした場合

:set guioptions=mTb

でほぼ元通り。

たまに、

:set guioptions=mTbs

という情報がweb上にありますが、「s」というオプションは古いバージョン用なので今は無いようです。

ご注意を。

[雑記]Firefox3 + Vimperator最強

Firefox3で早くなったからなのか、Vimperatorのバージョンがあがってるからなのか、非常に快適。

Vimperatorはここから入れる。
http://vimperator.driftaway.org/

今まで、Vimperatorで「f」っておしても、linkが出るまでもっさりしていたのが、さくっと動く。リンクが多いページでも苦じゃなくなった。

ついでに、
「:o 検索ワード」
でGoogle検索まで可能。

URLの補完も優秀。
Bookmarkやhistoryからうまいこと探してくれる。

ほぼ完全にマウスレスでいける。

JavaScriptも早くなってRSS ReaderやGmailやその他もろもろ快適。

ブラウジングが明らかに高速化したよ。

いいですねー。

Django!!

即効予約した。

標準Django完全解説 開発のプロが教える
角川グループパブリッシング
売り上げランキング: 6761

1.0ももうすぐだし、GoogleAppEngineもあるし、盛り上がってきてるよね!

変に暗黙の処理をされず黒魔術感がほとんどなく、といっても記述量が多いわけでもない。
設計が綺麗で見通しが良く、作ったアプリケーションも読みやすい。
そんなイメージ。

[Ruby]面白いけど初心者お断り?

まるごと Ruby! Vol.1
まるごと Ruby! Vol.1
posted with amazlet at 08.06.08
るびきち arton 大場 光一郎 高井 直人 後藤 謙太郎 新井 俊一 瀧内 元気 cuzic 倉貫 義人 大場 寧子 久保 優子 十河 学 舞波
インプレスジャパン
売り上げランキング: 644

この初心者お断りの姿勢が男らしい。
「もう一つのRuby入門」
って(世の中多くの人が思う)入門じゃねー。

JavaもRubyも初級者の私としては両方学べていい感じだったけど。

「Javaもちょっと業務でかじったし、よーしRubyやっちゃうぞー」
的なノリで表紙の優しい雰囲気&入門という言葉でこの本を買っちゃった人は公開するかもしれない。

コメント消しちゃったー!

先ほどid:dewaさんと打ち合わせしたときに、ブログを発見されたこととひがさんからコメント入ってましたよねーみたいな話があった。

どうやら迷惑コメントを山ほど削除したときに何も考えずに消してしまったよう。
ごめんなさいー!!

内容はこれですね。
実行メソッド名とプロパティ名が重複している場合はエラーにするようにしました

ありがとうございました!

[SAStruts]ボタン名とメソッドがうまく紐つかないと思ったけど。。。

  • 2008-05-15 (木)
  • Java

Actionが肥大化していったときに、メソッド名とパラメータ名でかぶっているものがあったみたい。

知ってる人にとっては当たり前の凡ミスなんだろうけど、一定以上の人数を集めて開発しようとしたときは気をつけないとなー。

※追記
ついでにもうひとつボタン名とメソッドが紐つかないケース。
HogeActionを呼ぶときのURLの最後は
「・・・/hoge/」
になるが、通常最後のスラッシュを省略でき、その場合indexメソッドが呼ばれる。
つまり以下のように
「・・・/hoge」
でも同じようにindexメソッドを呼び出すことができる。

しかし、もしボタン名によって呼び出すメソッドを変更したいとき
「<form action="・・・/hoge" method="post">」
のように最後のスラッシュが抜けていると、ボタン名のメソッドではなくindexメソッドが呼ばれてしまいうまく動かない。

s:formを利用していれば、自動的に最後のスラッシュを保管してくれるので問題ないが、JavaScriptからformのaction属性をいじったりするときなどは特に注意が必要。

[Python]2分探索

ビューティフルコードの7章で、この章を読み進む前に2分探索を実装しろと書いてあった。
ということでPythonで実装してみる。

最初に書いたコードはこれ。

PYTHON:
  1. def mybinarysearch(a, t, f):
  2.     n = len(a)
  3.     if n &lt;= 0:
  4.         return -1
  5.     if n == 1:
  6.         if a[0] == t:
  7.             return 0
  8.         else:
  9.             return -1
  10.     m = int(n / 2)
  11.     r = f(t, a[m - 1])
  12.     if r &lt;= 0:
  13.         x = mybinarysearch(a[:m], t, f)
  14.         if x&gt;= 0:
  15.             return x
  16.         else:
  17.             return -1
  18.     else:
  19.         x = mybinarysearch(a[m:], t, f)
  20.         if x&gt;= 0:
  21.             return m + x
  22.         else:
  23.             return -1

配列、検索対象、比較関数を渡す。
さすがにこれだと、いちいちlenを計算していたり効率悪すぎだし、コードも汚いのでもう少しましにする。

PYTHON:
  1. def mybinarysearch(a, t, f):
  2.     def func(array, i, n):
  3.         if n &lt;= 0:
  4.             return -1
  5.         elif n == 1:
  6.             if f(array[0], t) == 0:
  7.                 return i
  8.             else:
  9.                 return -1
  10.         else:
  11.             m = int(n / 2)
  12.             if f(t, array[m - 1]) &lt;= 0:
  13.                 return func(array[:m], i, m)
  14.             else:
  15.                 return func(array[m:], i + m, n - m)
  16.     return func(a, 0, len(a))

これで、配列中で対象に合致する最小のIndexが返るはず?

最小にこだわらなければこうなるかな

PYTHON:
  1. def mybinarysearch(a, t, f):
  2.     def func(array, i, n):
  3.         if n &lt;= 0:
  4.             return -1
  5.         m = int(n / 2)
  6.         r = f(t, array[m])
  7.         if r == 0:
  8.             return i + m
  9.         elif r &lt;0:
  10.             return func(array[:m], i, m)
  11.         else:
  12.             return func(array[m + 1:], i + m + 1, n - m - 1)
  13.     return func(a, 0, len(a))

この章の主題であるテストはまだちゃんとやってない。

これから考えてやってみよう。
再帰で書いてしまったので遅そうだけど、2分探索だったらあふれることはないだろう。

GWに読む本

080502_2049~02.jpg

2冊とも今日Amazonから届いた。
とくにビューティフルコードの方は読み切れなそうな気がするけど、GW中の楽しみが二つ増えたな。

[SIer]ITゼネコンをぶっつぶせ、夢物語じゃないよ

ひがさんの「ITゼネコンをぶっつぶせ」講演を聞いてきた。
内容は最近のひがさんのブログなどで語られている「Programming First Development」のこと。

で、感想+会場の雰囲気から感じた課題感をつらつらと書いてみる。

内容には激しく同意。
できるようになれば、そしてできる人材が育てば、SIerも生き延びるチャンスがあるかなと思う。
(このままだと死ぬと思っているかどうかによって、「生き延びる」という表現に違和感がでるかな?)

もちろん、課題はまだまだある。
契約形態、テストに対する考え方、どこまでドキュメントを書くか、そんな人材ほんとに育つのか?
まだまだ経験を積みながら考えなければならないことは多い。
でも、枝葉末節にこだわらず、本質的なメッセージをとらえば明るい未来が見える良い内容。

ここからは、会場の雰囲気から感じた課題感。

インタラクティブにやりたいという冒頭のひがさんの言葉通り質問や意見が飛び交う
ただし、質問の内容がどちらかと否定的な見方や穴を探すような見方が多かったのが気になる。
SIerの得意な態度だけど

こういうセッションに参加するというのは、どちらかというと課題意識の高い人たちだと思うから、もっと響くと思ったんだけどな。
今までのSIerのやり方を真っ向から批判しすぎて拒否反応がでるのかな?
話題を集める目的では過激な方が良いが、啓蒙という観点から考えるともう少し別のやり方を考えた方がよいのかもしれない。

LLな人たちの考え方や態度とは、かなり隔たりがあるのを感じた。
LLな人からすると、こんなの当たり前じゃない?って思う話も多いかなーと。

どちらにしても、現場の開発者、SIerの偉い人たち、発注者の三者を啓蒙していかなければ、取り組みは成功しない。

それぞれに対するメッセージはこんな感じかな?

1.現場の開発者
・楽しく開発できる、成長できる。
・上流から下流まで全部それなりにできるようにしよう
・現場の人たちは啓蒙しやすいと思う

2.SIerの偉い人、(PM|上流)だけやればいいと思っている人
・売り上げのガサは減るかもしれないけど、利益は確保できる
・このままのやり方では、今後10年以内で破綻する

3.発注者(お客様)
・もっと安く早く、しかも良いシステムができる
・そのかわり、もっとシステム検討+開発にコミットしてね

とりとめなく書いてしまったが、現在のSIerのやり方になれてしまった2,3の人たちをどう啓蒙するかが鍵。
一番は、ケーススタディーをたくさん作ることだと思う。

幸い、今業務でやっているところでは、お客様が乗り気で開発形態をひがさんの言っているような形態に変えようとしている。
これは、我々SIerにとってはかなりチャンス。
利益さえ確保できれば、少なくとも今の私の上司も納得するだろう。
金融のどでかいプロジェクトにくらべたらすごく小さい規模かもしれないが、それでも世の中に発信して注目を集める程度の規模と知名度はある。
今のプロジェクトが、SI業界を変えていく一つの要素になるようにしたい。

Home

Search
Feeds
Meta

Return to page top