2014年01月31日

移転のお知らせ

ず~っと前から更新をサボってたこのblogですが、
とりあえずMovableType3系列のサポートも切れたということで、
MovableType5系列のMTOSに移行します!

というわけで、新しいURLは以下の通り。

http://shisho.hustle.ne.jp/mtos/shisho_blog/

まだデザインとか全然考えてないんですけどね (^^;

投稿者 ししょ~ : 21:30 | コメント (0) | トラックバック (0)

2011年05月29日

「SIer」こそGoogle App Engine上での開発を経験すべき

たまにはこんな「若造な」タイトルもいいでしょ。(^^;

かくいう私も、ふだんは世間で言う「SIer」の一員として、
「システム開発」という名の仕事に勤しんでるわけですが
(なんだその持ってまわった言い方は>オレ(笑))、
ここ数年、技術的にはあまり進歩らしい進歩をしているとは
感じられないのが、現実だったりするわけで。

まー、業種が金融系だし、どうしたってゼネコン的なシステム開発に
なっちゃうのは、さもありなんて気もするわけですが、
それにしたって、私が社会人になった頃から「J2EE+RDBMS(Oracleとか)」
みたいな構成ばっかりだと、さすがに食傷気味っていうか、
実際の業務から技術を高めようって意欲はなくなっちゃうよねぇ。
# いつぞやのCOBOL技術者のようだ。

うーむ、愚痴を書きすぎた。

時代は進んでるんですよ。
Ruby on Railsですよ。
MapReduce/Hadoopですよ。
クラウドですよ。
関数型言語ですよ。
技術は日進月歩なんですよ。わかってる!?
(誰に言ってるんだ>オレ)

で。このままじゃ時代に取り残されるという危惧のもと、
最近Google App Engine(for Java)を触ってみたわけですが、
「おおっ、これは得るところが大きいぞ」
と思えたので、この場でそれを記そうかと思った次第。

早速だけど1番目は「資源って大切だよね」ってことを、
再認識させてくれるということ。

SIerの世界だと、システム(アプリケーション)毎に専用ハードウェアが
割り当てられ、そのハードウェアの資源は使いたい放題になるけど、
クラウドだとそうはいかない。
CPU、メモリ、ストレージ、いずれも使用量が少なければ、
それだけ課金が少なくなるし、その分サービスを提供できる余地が増える。
# GAEだと30秒ルールなんてあって、そもそも長時間処理が動かせない。
そうなれば、必然と効率的なプログラムを書こうってことを意識するよね。

続いて2番目は「いかに疎結合に作るか」ってことを、
意識させてくれるということ。

上でも書いたけど、SIerが作るシステムは、特定の構成で、特定の場所にある
ことが大前提となってるけど、クラウドだとそうはいかない。
負荷分散はクラウドの基盤側がやっちゃうから、あるリクエストと、
次のリクエストは、同じサーバ・同じプロセス上で処理されるわけもなく、
共有できる資源もあまり無いとなれば、リクエスト(要は処理単位ね)ごとの
インターフェースを最低限にしようって意識するよね。

最後に3番目は「NoSQLデータベースが学べる」ってこと。

RDBMSって強力なんだけど、その反面、いろんな処理が縦横無尽にデータを
舐めちゃったりして、ボトルネックになりやすいんだよね。
それに、オブジェクト指向なデータ構造とは、インピーダンスミスマッチが
どうしても起きがち。
ということで、RDBMSとは異なるアプローチで開発されているのがNoSQLと
呼ばれるデータベース。GAEでは「Bigtable」というNoSQLデータベース上に
構築されたデータストアを利用する。
RDBMSにはRDBMSの、NoSQLにはNoSQLの、メリット/デメリットがあるので、
それぞれを必要に応じて使い分ける、ってのがこれから重要になるんじゃないか
と思われ。


なんか話が概論だけで話が終わっちゃったけど、あとは実際に触ってみてよ、
というのが正直なところだったりして。

投稿者 ししょ~ : 21:27 | コメント (0) | トラックバック (0)

2011年02月20日

おニューのレンズで夜景撮影

ごぶさたしております。(^^;

3週間ほど前にネタを仕込んでおきながら、
少々放置してしまった投稿をいまさらながら書きます。

twitterには「GF1用の標準ズームレンズH-FS014045を買った」という話を
書いたんですが、「買ったからには何か撮らねば」てなわけで、
近所を散歩がてら写真を撮ることにしてみました。

で、とりあえず撮ったのがこれ(↓)。南船橋の浜町2丁目交差点付近。

P1010769_s.jpg

まぁフツーに撮ってもいい写真が撮れるんですが(カメラが良いので(笑))、
せっかくなのでちょっと凝ったことをしてみようと思って撮ったのがこれ(↓)。

P1010774_s.jpg

モノクロです。なかなか味が出てきます。いい感じです。

というわけで、調子に乗って船橋競馬場駅近辺でも2枚撮っちゃいました(↓)。

P1010785_s.jpg

P1010786_GF1_s.jpg

すばらしい。やっぱりいいレンズだとサマになります。

ていうか、夜景だったらパンケーキのほうが良かったんじゃないかという気も。。。

いや、気にしないでおこう(汗)。

投稿者 ししょ~ : 22:48 | コメント (0) | トラックバック (0)

2011年01月03日

冬休みの宿題2011

残念ながら今日で年末年始休暇、いわゆる冬休みも最終日。
というわけで、ちょっくらプログラミングの勉強をしてみたので、
その成果(ってほどでもないなぁ(苦笑))をば。

ネタは、2年半ほど前にRubyで作った素数を求めるプログラム

まずは2年半前を思い出すべく、Ruby版から。


# ■Ruby版

# 2から100までの素数のリストを求める
prime = (2..100).select do |candidate|
  sqrt = Math.sqrt(candidate)
  (2..sqrt).all? {|i| candidate % i != 0}
end

# リストを表示する
p prime

ブロック(クロージャ)をメソッドの引数にいきなり埋め込めるので、
記述がシンプルになってますね。この辺はモダンな言語ならでは。

あと細かいですが、述語かどうかが「?」でわかるのは良いですね。

続いて、この冬はじめて触ったScala版。


// ■Scala版

object ListSimple {
  def main(args: Array[String]) {

    // 2から100までの素数のリストを表示する
    println((2 to 100).filter(
      (x) => (2 to Math.sqrt(x)).forall(
        (y) => (x % y != 0))
      )
    )

  }
}

基本はRubyと似たような感じですね。

ただし、埋め込んでるのはブロックじゃなくてファーストクラス
オブジェクトである関数なのが、Rubyとの違い(この辺が関数型言語)。
ちなみにJavaと同じで、クラスの定義をしなきゃいけないのが、
ちとめんどいところですね(objectはシングルトンの定義)。

続いて、以前さわったことのあるCommon Lisp版。


;;; ■Common Lisp版

;; fromからtoまでstepきざみのリストを作成する
(defun int-seq (from to &optional (step 1))
  (declare (type fixnum from to step))
  (do ((i from (+ i step))
       (result nil))
      ((> i to) (nreverse result))
    (push i result)))

;; 2から100までの素数のリストを求める
(remove-if
  (lambda (candidate)
    (find-if
      (lambda (nsqrt) (= (mod candidate nsqrt) 0))
      (int-seq 2 (floor (sqrt candidate)))))
  (int-seq 2 100))

他の言語だと(2..100)なんて書けるのに、Lispだとその構文が無いので、
int-seqなんて関数をわざわざ定義してやんなきゃいけないのが、
少々めんどいところ。

あとは、allとかforallなんて存在しないので、
find-ifを少々乱暴に使ってるあたりは、要解説ですね。
ついでに、floorも補足が要るかな。実数型から整数型への変換です。

最後に、純粋関数型言語のHaskell版を。


-- ■Haskell版

-- 100までの素数のリストを表示する
main = print $ primeNumbers 100

-- 2から引数までの素数のリストを求める
primeNumbers :: Integer -> [Integer]
primeNumbers upto = filter isPrimeNumber [2..upto]

-- 引数が素数かどうかを判定する
isPrimeNumber :: Integer -> Bool
isPrimeNumber candidate = all (isNotDividable candidate)
    [2..(floor $ sqrt $ fromInteger candidate)]

-- pがqで"割り切れない"かどうかを判定する
isNotDividable :: Integer -> Integer -> Bool
isNotDividable p q = (p `mod` q /= 0)

当初はもっと簡単に書けると思ってたんですが、
意外と型のしばりが厳しくて、半分くらいは関数の型定義です(苦笑)。
Haskellだと無名関数はあんまり使えないのかなぁ?という気が。。。

あと、isPrimeNumberのfromIntegerは型変換なんですが、
Integer型のままだとsqrtの引数にできないので(何と!)、
いったん適当な型に変換してたりします(変換後の型はコンパイラ判断)。

ちなみに、isPrimeNumberでallの引数にしているisNotDividableは、
関数の部分適用という小技を使ってallに渡してます。
この辺の記述があっさりできちゃうのは、さすがHaskell。

というわけで、大したプログラムを書いたわけじゃないですが、
こんなもんで満足して冬休みの最後の夜は更けていくわけで。。。

投稿者 ししょ~ : 22:49 | コメント (0) | トラックバック (0)

2010年12月12日

消えた年金問題

ていっても我が家での話なんですけどね。

昨年にこんなのとかこんなのとか書きましたが、
実はまだ何一つ解決していなかった、我が家の年金問題。

というわけで、2ヶ月ほど前から給付を再開してもらうべく
動き出したわけですが、この申請書の名前がやたらと長い。

老齢・障害給付 受給権者支給停止事由消滅届

ってヤツなんですがね。

# そもそも支給停止事由なんか無いのに、それの消滅届もクソもないんですが。

この届け出には医師の診断書が要るっていうので、
年休を何回か取って病院に行ったりなんかして、
ようやく一昨日の金曜日に市役所に提出。

ホントに疲れましたよアンタ。

審査の結果が出るまでに3ヶ月くらい掛かるそうなので
(年明けかぁ)、
とりあえずはそれまでおとなしく待つことになります。

投稿者 ししょ~ : 22:20 | コメント (0) | トラックバック (0)

2010年11月02日

心配だのー

昼過ぎ。

母親から
「リンゴの皮を剥いていたら、右手に少し怪我をして血が止まらなくなった」
との電話が。

とはいえ手の出しようがないし、本人が救急車を呼びたいと言うので、
とりあえず119に連絡して救急車を呼ぶことに。

ところが応急措置であっさり血が止まり、大事には至らず。
念のために病院に行くとか行かないとかいう話もあったり、
じゃあ私は取り急ぎ仕事を切り上げなきゃ、なんて話もあったものの、
結局、病院には行かないという結論に。

まー、済んでみれば良かった良かった、という話なんですが、
やっぱり母親を日中ひとりで置いておくのは少し心配だのー、
なんて思った次第。

とはいえ、いまの自分には何ともしようがないんですけどね。。。

投稿者 ししょ~ : 22:37 | コメント (0) | トラックバック (0)

2010年09月20日

twitterはじめました

タイトルに書いたことが全てなんですけど(笑)。

1つ前のエントリーでblogを続けていくとか書きながら、
twitterはじめたとか書くと、矛盾してるように見えるかなぁ?

しばらくは


  • twitterは携帯からリアルタイム更新をメインに、
  • blogは後で情報を整理して更新する方針で、

やっていこうかなぁと思ってます。

# 最近めんどくさがりなので、どこまで続くかわかりませんが。。。

ちなみにアカウントは「shisho_ifTrue」です。

あらかじめ申し上げておきますが、
現在のところ大したことは何一つ書いてません。あしからず。

投稿者 ししょ~ : 10:17 | コメント (0) | トラックバック (0)

これまでの1年+1ヶ月と、これから

13ヶ月のごぶさたです(笑)。

だいぶバックログが溜まりましたが(blogだけに(苦笑))、
その間にいろいろありました。

ヨドバシで40万くらいの家電を買ったり、CATVの契約へわざわざ山中へ繰り出したり、 新居の鍵を受け取ったり、1日がかりで力づくで引っ越ししたり、 37V型テレビを設置したり、家庭内に無線LANを導入したり、 総武線快速で通勤し始めたり、母親と市役所やららぽーとに行ったり、 旧居の退去手続きをしつつ杉並区で最後の衆議院議員選挙に行ったり、 口内の異物ができたので調査のためにMRIを受けたり(爆音で死にそう…)、 カイロプラクティックに通い始めたり、スーツを買ったらつんつるてんだったり、 母親と伊勢崎に繰り出したり(疲れた)、カットオーバーで帰れなかったり、 NortonをESETに変えたり、# このくらいまでが昨年のできごとですな 東洋大学箱根駅伝で2連覇したり、 マイクロフォーサーズ(ていうかパンケーキレンズ)に惹かれてGF1を買っちゃったり、 静岡県(富士宮→浜松→静岡)に旅行に出かけたり、 2年連続バレンタインチョコをゲットしたり、ホワイトデーに花を贈ったり、 GWに母親と両国国技館西武ドームに繰り出したり、 母親を近所の脳神経外科のクリニックに通わせ始めたり、 携帯をS004(Snapdragon!)に買い換えたり、Y氏と月例会を始めたり、 風邪(?)で死にそうになったり、猛暑で死にそうになったり、 HDDが死にそうになったので買い換えたり、を買い換えたり、

とまぁ、いろんなできごとがあったわけです。
# 何か書き漏らしたりしてる気がするなぁ。。。

んで、このあたりのことはおいおい書いていくとして、
これからこの放置状態のblogをどうしようかという話なんですが、
とりあえずは続けることにします(意外にも)。

めんどくさいからやめようかなぁ、と思ったりもしたんですが、
そもそも自分がいつ何をしたか、最近あんまり思い出せなくなってきたので、
やっぱり続けた方が良かろうかと。

投稿者 ししょ~ : 09:43 | コメント (0) | トラックバック (0)

2009年08月11日

2009年08月11日(火)の日記

昨日、今日と、昼休みは郵便局通いです。

昨日は、新住所の手紙・地図を母親宛に出すため、
今日は、現金書留を母親宛に出すため。

おかげで昨日なんか大雨に降られちゃう始末。

まぁこんなのも今月限りですよ。もう一踏ん張りですな。

投稿者 ししょ~ : 23:28 | コメント (0) | トラックバック (0)

2009年08月09日

2009年08月09日(日)の日記

午前。

昨日のやりとりを踏まえ、引越業者(B社)がやってきました。

希望条件として、
 ・8月23日(日)午前中にやりたい
 ・今回は梱包はお願いしたい(開梱は自分で)
という2点を提示した上で、見積額をはじき出してもらったところ…

「うげっ…予想してたより全然高けぇ…」
という金額が出てきちゃいました(汗)。
# まぁ家具は多いし、移動距離もあるし、梱包もあるからね。。。

で、↑という感想を素直に営業にぶつけてみたところ、
多少の折衝の末、3割ほど金額がダウン。
まぁ営業さんもがんばってくれたし、これで手を打つことにしました。

# 実は当日(8/23)が仏滅ってのも効いてます。
# さらに実はですが、前回(2007/9/3)も仏滅なんですよね(笑)。

そんなわけで、残りの2社(A社とC社)はお断りしました。
ていうか、B社の営業さんが電話したんですがね(笑)。


午後。

もともと新宿に行こうと思ってたんですが、
油断してウトウトしてたら夕方4時前。

焦って新宿に到着した頃には、外は豪雨。
仕方がないので、濡れないように回り道をしながら
ビックカメラに行った後、地下通路経由でコクーンタワーへ。

このビルには初めて入ったんですが、
思ってたよりもフツーのビルでした。なんかガッカリ(笑)。
# だってあの「モード学園」が建てたビルだから、期待するでしょ。

ブックファーストで↓の2冊を購入。引越前なのに…。

ソフトウエア・クリエイティビティ ソフトウエア開発に創造性はなぜ必要かソフトウエア・クリエイティビティ ソフトウエア開発に創造性はなぜ必要か
平鍋 健児

日経BP社 2009-07-09
売り上げランキング : 136908

Amazonで詳しく見る
by G-Tools
エンタープライズ Railsエンタープライズ Rails
高井 直人

オライリージャパン 2009-07-23
売り上げランキング : 14414

Amazonで詳しく見る
by G-Tools

その後、小田急百貨店のロクシタンへ。

この夏限定の「シトラスヴァーベナのソリッドパフューム」が
売ってるかな、と思って見てみたところ…ありゃ、無いよ。

仕方なく、混んでいる中をルミネ2のロクシタンへ。
あ~ありましたよ。というわけでゲット。

投稿者 ししょ~ : 23:02 | コメント (0) | トラックバック (0)