きしだのはてな このページをアンテナに追加 RSSフィード

2005-09-11(日)

[]データベースにスクリプトを格納 05:12 データベースにスクリプトを格納 - きしだのはてな を含むブックマーク

PofEAAのサンプルで、商品の区分によって料金の計算方法が違う場合の処理の書き方というのがあって、冗談で「区分テーブルにJavaScriptとかGroovyとかのスクリプトを持っとけばおk」と言ってみたんだけど、あながち使えないわけではない手法なんじゃないかと思ってみました。

サンプルでは、商品としてソフトウェアを扱っていて、その区分が「表計算」「文書作成」「データベース」というのがあってそれぞれ収益の計算方法が違うことになっているのですが、普通にプログラムとして書いてしまうと区分が増えたり計算方法がちょっと変わったりするたびにシステム屋さんにお伺いをたてないといけなくなるわけです。

そういうのを、システム屋さんを通さず使う人が自分達でどうにかしたいという要求は必ずあると思うので、その場合にはデータベースに計算ルールを入れるのは有効かと。

で、そのとき気になる信頼性の問題ですが、「区分テストテーブル」みたいなものを作って、入力値と期待値を数パターン入れれるようにして登録のときにテストを走らせる仕組みにすればいいかなと。

いしだいしだ 2005/09/12 22:22 ただ、ソースコードがプレーンテキストになってないとgrepできないという
怖さがあるんですよね。MS-Accessがまさにそれだけど。
きっちり線引きしてあれば使える方法だと思います。

yojikyojik 2005/09/12 23:30 きしださんの書いてた座席表の電子版、みなさんの記憶が残ってるうちにアップします。しばしお待ちを
> 区分テーブルに処理
オブ厨の僕としては、コマンドオブジェクトを項目にXtream等使ってシリアライズして突っ込む、という超荒業も考えてしまいました。(やりすぎ)

nowokaynowokay 2005/09/12 23:39 アラワザシΣΣ(゜д゜lll) > シリアライズ
やっぱ人の名前覚えるのは、飲み会のために大切です。

JavaScriptなら問題ナシ(・∀・) > プレーンテキスト

2005-08-22(月)

[]フィジカルの問題の解答例発表とか 11:03 フィジカルの問題の解答例発表とか - きしだのはてな を含むブックマーク

水曜くらいから順にやります。

小船の問題は、あっと言わせるソースコードになってます。思わぬところで。


あと、問題はもう一問考えてるのですが、そのあとが・・・orz

「ソリテア」とか「箱入り娘」の手順をもとめてもいいんですけど、「パズルを解こう」という企画じゃないので、あんまりパズルばっかりやるのもどうかと。駒系、ずらし系、埋め系はひととおりやってみるというのもありかとも思いますが。

考えている問題も、問題の出し方とか、数値の調整が。レベルは「易」ですが、これはこれでおもしろい問題なんですけど。

[]アプリケーションのクラスのメンバは全部publicでいい 16:14 アプリケーションのクラスのメンバは全部publicでいい - きしだのはてな を含むブックマーク

と書いてみるテスト

makotanmakotan 2005/08/22 09:58 データの状態の管理をするライブラリがあれば見える化できて良いんですよ・・・ぶり2みたいに(w

nowokaynowokay 2005/08/22 12:21 ぶり2の見える化きぼんぬ。

2005-08-20(土)

[]フィジカルを鍛える意義 05:15 フィジカルを鍛える意義 - きしだのはてな を含むブックマーク

「実際にはこんな難しい処理を書くことはないよね」という中で、こういう問題を解くことにどういう価値があるか。

ぼくの考えでは

  • 計算可能な処理と不可能な処理の性質の違いを実感する
  • 計算可能な処理の場合、どういう処理ならどういうプログラムになるかを実感する

というのが大切なんじゃないかと思っています。


同じ問題を解決するのに、プログラムが組めない人ほど難しい処理を書こうとして、プログラムが組める人ほど簡単な処理で解決するという傾向を目にします。技術系MLで非常に高度な処理をしたいという質問を目にすることがありますが、ほとんどの場合は、「こうすればそんな処理必要ないよ」で解決したりしてます。

で、そういうのの原因として「どういう処理がどういう難しさのプログラムになるかアタリがつけれてない」っていうのがあると思うんです。


で、これがシステムの仕様策定のときに深くかかわると思います。

ぼくは、要求を聞いて仕様を決めるときに、本当に大切なことは「計算不可能・計算困難な要望を受け入れないこと」だと思っています。その上で要求を実現していく。

要求として計算不可能な処理や計算困難な処理を受け入れてしまうと、どんな手法を用いたとしても、どんな管理技術を用いたとしても、そもそもシステム化不可能なわけです。でも、人間なら簡単に処理しているので、ぱっと見、システムでも簡単に処理できると思ったりしてしまうんですね。で、実装してみて、実現困難なことに気づく。戻り発生。劇的に。根本的に。

デスマっていうのは能力的に困難なことをするときに起こりやすいと言われるわけですが、実際には、計算不可能なことをやろうとしてるということも大きく影響してる気がします。


要するにね、処理を書く前に決まっている勝負というのがあると思うんですよ。

その勝負を決めるのがフィジカル。

つまり、難しい処理を書かないためにこそ、基礎体力が必要だと思うのです。難しい処理を書くためじゃなくね。


イメージとしては、ロナウジーニョがなんだか最小限にしかボールにさわらずに簡単に相手をかわしちゃってるって感じで*1、簡単で誰にでもできるように見えるスーパープレイを続発してるけど、でもそのためにはバランス感覚が必要で、それを実現するのが内側の筋肉の強さという感じです。ボールをすごく速く蹴ったりすごく遠くに蹴ったりするのに必要な外側の筋肉とは違う、内側の筋肉。

簡単にプログラムを組んでるように見せるための力。

[]フィジカルの問題(易2) 05:15 フィジカルの問題(易2) - きしだのはてな を含むブックマーク

易しめの(だと思っている)問題

(1)

  • A誌、B誌、C誌の3誌の月刊誌がある
  • 3誌について2004年の一年分をそれぞれ持っている
  • それらの合計36冊の中からランダムに10冊抜き出せ

(2)

  • B誌は最新情報をダイジェストで、A誌はB誌より1ヶ月遅れで詳細記事を、C誌はA誌より3ヶ月遅れで入門記事を扱っている
  • そのためC誌→B誌→A誌の順番で同じ話題を読むのがわかりやすい
  • (1)で抜き出した10冊を、新しい話題から先に、わかりやすく読めるように並べ替えよ

条件

  • シャッフルや並べ替えには、APIやライブラリ、言語機能などを使ってもよい。
  • むしろ、あたえられた環境はフル活用
  • 並べ替えの回数が少ないほどエライ

*1:サッカーを詳しく知ってるわけじゃないので、例にだせるのは超有名人

2005-08-19(金)

[]プ、プレッシャー・・・(´д`;) 06:03 プ、プレッシャー・・・(´д`;) - きしだのはてな を含むブックマーク

みんな解き出してきてます。

解答かんがえないと。

しかも、なんか、みんな「模範的」な解答期待してますよね・・・(´д`;)

言い出しっぺですからね。

来週あたりから。

masataka_kmasataka_k 2005/08/19 13:20 西さんは、一台3000万円なら出しても、1800台x2万円は出さないとおもふ。いや、チップ製造がYAMAHAだったら出すかな。。。

nowokaynowokay 2005/08/19 13:43 そしたらG社でバーンと1000台くらい一括購入で!
何に使えるかは不明ですけどね。(^^

2005-08-18(木)

[]フィジカルの練習問題(易) 05:43 フィジカルの練習問題(易) - きしだのはてな を含むブックマーク

やっぱり3目並べは難しめなので、ちょっと簡単な問題を。

  • x,yの2つの整数が与えられるとする。ここでx >= yとする
  • 「o」という文字をy行x列表示せよ
  • ただし対角線部分は「x」を表示する

で、この問題をちょっと難しくする条件。というか方法を知ってるか知らないか。

  • 掛け算割り算を使わない。
  • 足し算引き算の演算回数の合計はxの3倍以内とする
  • 演算回数にはforループでのカウンター加算は含めない

[]フィジカルの練習問題(難) 05:43 フィジカルの練習問題(難) - きしだのはてな を含むブックマーク

というかkoichikさん向け(^^

小船の問題。

  • 父・母・息子×2・娘×2・メイド・犬がいる
  • 2人乗りの船ひとつで全員向こう岸に渡りたい(犬も一人と数える)
  • 父は母がいないとき娘を食べる
  • 母は父がいないとき息子を食べる
  • 犬はメイドがいないとき家族全員を食べる
  • 船をこげるのは父・母・メイドだけ
  • みんなが渡れる手順を求めるプログラムを作成せよ。

どんなプログラムになるかアタリもつけてないので、すごく難しいかもしれないです。

追記:人力で解くのもおもしろいので、できた人も手順は非公開の方向で。

[]フィジカルの問題(特) 05:43 フィジカルの問題(特) - きしだのはてな を含むブックマーク

  • きしだは一日一本ビールを飲むとする
  • 木曜日は休肝日だ
  • 今日は木曜日
  • おととい実家からビールを6本もらって帰った
  • このビールはいつなくなるか?

koichikkoichik 2005/08/19 03:10 (易) で 3×2 の場合はどう表示するの?

nowokaynowokay 2005/08/19 03:40 あ、
xxx
xxx
になっちゃいますねぇ。「左上から右下への対角線」という条件加えましょうか。
x,yも自然数としたほうがいいですね。

のんべのんべ 2005/08/19 17:33 全員が渡れりゃいいのかな?
渡った後はどうなっても可?

nowokaynowokay 2005/08/20 01:48 全員向こうに渡りきればOKっすよ。
あとの彼らの生活については関知しません。そんな家族構成で幸せに生活できるのかと。

のんべのんべ 2005/08/21 08:56 全員渡りきるけど、最後に渡った人とメイドと犬しか残らない
メイドと誰を残すと幸せか?って、そりゃ問題の趣旨が違うか。

nowokaynowokay 2005/08/21 09:31 そか、向こう岸で食べられてしまうのはOKかってことですね。
それはそれで最短の手を求めようとすると問題むずかしくなるのでなかなかいいかもしれません。

nowokaynowokay 2005/08/21 09:55 あ、メイドに全員渡らせればいいだけか。
向こう岸で食べられていいけど「息子が2人揃って母がいないとき、娘が2人揃って父がいないときは、メイドは食べられてしまう。向こう岸で犬が一匹取り残されると死んでしまう」とか条件がつけばいいのかな?