がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

ステップ数換算に思うこと

一応、発想元はここの話。
第15回 下請法 外部委託における元請けの義務を知る
http://itpro.nikkeibp.co.jp/article/COLUMN/20080207/293168/

契約交渉開始の段階で,下請け会社は「プログラムの規模は3万5000ステップ相当」としていたので,再下請け会社は当初3000万〜3300万円の概算金額を提示していたが,その後の交渉の結果,最終的に委託代金は2862万円になった。
ところが実際に開発を始めてみると,プログラム規模は10万1000ステップに上った。このため再下請け会社が下請け会社を被告として3万5000ステップを超える作業工数に対する報酬として1億4618万円を請求する訴訟を起こした。「2862万円という代金は3万5000ステップの規模を前提にしたものであり,それを超えた場合は追加費用が発生する」,というのが原告(再下請け会社)側の主張だった。
裁判所は,「被告が提供した機能仕様書と詳細設計書に基づいて,契約締結までに原告がより正確な見積もり額を算定することは可能だった」としたうえで,「契約書には対価を総額2862万円とすることは記載されているが,プログラム規模の記載はない。このため,受託業務の規模が3万5000ステップ程度であることを前提として委託代金を決定した事実は契約には存在しない」と判断し,原告の請求を棄却した。(東京地方裁判所1997年6月12日判決,判例時報1546号29頁)

んと………。
例えば。以前に本当にあった怖い話ですが。
とある、まぁかなり大きいプロジェクトの共通ルーチンを作成してたです。で、ほかの人のルーチンと比較しても、自分のルーチンは明らかに10倍以上の頻度でcallされてたです(ンなもんキャリア1年の餓鬼にやらせるなよっていいたいけど確か書類上は8年のキャリアだったからなぁ… orz)。
当然ながら性能が出ないってことで、うちのルーチンに「速度削れ〜」命令が出てたです。
その時の計測単位。ダイナミックステップ。簡単に言うと「マシン語換算で何命令走るか」。ええ確かに速度に直結します。1.5GのCPUなら、1命令は1/1.5G 秒。15命令だったロジックを10命令に落とせれば、5/1.5G 秒速度が縮まります。
………ええありえないですよ本当の話ですが。
OSも某F社様のOSだったのでOSチームとやり取りできたのは行幸だったのですが。
何せ頂戴した文章が、例えば

memcpy(第一引数、第二引数、第三引数)

第三引数が4の倍数の場合、15DS + 第三引数*5DS。
第三引数が4の倍数ではないが2の倍数の場合、18DS + 第三引数*6DS。
第三引数が上述以外の場合、20DS + 第三引数*7DS。

とかなんとか。そ〜ゆ〜感じ(数字は適当 & DSはダイナミックステップの略)。
このフェイズってか世界観において、ステップ数は色々な意味で意味があるです。


時は流れてって別にそんなに経過してませんが。
Cとかだと………うんまぁまだ「step数=規模」って感覚は強いのかな? と。
もちろん

  i += 10;

という処理を

  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;

という風にするテクニックとかが「step数によって金額が決まる現場」において存在しないわけでもなかったのですが。
さすがに

  i += 1;
  i += 1;
  i -= 1;
  i += 1;
  i += 1;
  i -= 1;
  i += 1;
  i += 1;
  i -= 1;
  i += 1;
  i += 1;
  i += 1;
  i += 1;
  i -= 1;
  i += 1;
  i += 1;
  i -= 1;
  i += 1;
  i += 1;
  i += 1;

と書く現場はなかったであろうと信じたいのですが*1
それでもまだ、ある程度「自力でごりんごりんしなきゃいけない言語」において、step数は多少なり目安になる部分が0ではなかったのではなかろうかと推測します。目安以上のものではないにしても。


んでもって、今。
いい加減OOP華やかりしこのご時勢に、プログラム上の1stepに何の意味があるのかは、どこまでも限りなく果てしなく疑問です。


でまぁそんなこんなを考えるとっていうか考えるまでもなくなのですが。
「作り手がどれくらい苦労するか」ではなくて「買い手にとっていくらくらいのメリットがあるのか」が、値段の本質になってもよいのではないかなぁと。
もちろん「製造コスト」ってのはあるわけで、だからこそ「安けりゃ作らねぇよ」的発言が成り立ちうるのですが。


まぁ1986年に締結した契約云々の文言があるので。そのころはまだそうだったんだろうし今は違うんだろうなぁと思いたいのですがええ。
でもいまだにstep換算とかエラー率とかで東奔西走するお話も耳に入ってきたりするので。
ふらりぶらりと、メモ。

*1:とはいっても、規定のstep数にあと100stepだけ足りない、とかいうところで本当に絶対にやらなかったのかと聞かれると「どうなんでしょうねぇ」としかいえませんが

DNSの逆引きでエラー

via http://www.res-system.com/weblog/item/582

んと。キーワードとしては「MySQLで時々妙に重くなる」とか「プロセス数がmaxいっちゃってconnect出来ない」とかそんな事象。
mysqlコンソールでログインしてshow processlistコマンドとかで見ると、unauthenticated user っちゅ〜プロセスがたまってることがあるです。
なんでもこの子。「MySQLDNS逆引き」のタイミングでおきてるとか。
いいからDBMSがresolveとかしなくて。


とりあえず。起動optionに --skip-name-resolve を入れるか、またはmy.cnfあたりの設定ファイルに

[mysqld]
skip-name-resolve

の設定を入れ込んでおきませう。


っつか…ねぇねぇMySQLって「余計なことしない代わりに軽いDBMS」ぢゃなかったの?
最近、失望する内容がわりと連打できてるのですが………;;

素晴らしきビジネスモデル

別名マッチポンプ
ロシアのサイバー犯罪組織RBNが手がける「悪質なビジネス」
DDoS攻撃対策の対価として、月額2,000ドルの“みかじめ料”要求の疑い
http://www.computerworld.jp/news/sec/98870.html

多数のマルウェアをインターネットに流し込んでいるとされるロシアの悪名高いサイバー犯罪組織、Russian Business Network(RBN)。セキュリティ専門家によると、現在、この組織は「サイト保護サービスの使用料」という名目で、多数のWebサイトから月額 2,000ドルもの“みかじめ料”を徴収しているという。
-中略-
2月19日に更新されたRBNExploitブログのコメントには次のように記されている。「RBNのビジネス・モデルは非常にシンプルかつ効果的だ。狙ったサイトにみずからDDoS(分散サービス拒否)攻撃を仕掛けたうえで、そのサイトのWebマスターに、自分たちが提供するDDoS攻撃対策サービスへの登録を“奨励”しているのだ」。そして、このサービスの利用料が月額2,000ドルもするのだという。

ステキだなぁ普通に893屋さんの手口だw


でまぁいつも思うですが。

DDoS攻撃は通常、ボットネットを使って仕掛けられる。ボットネットとは、必要に応じて一斉にスパムを送信できるよう、あらかじめ攻撃用プログラムを感染させられている多数のコンピュータ群のことである。

うん無辜の一般人が被害者であるとともに「加害者になってる」よねぇ、と。
そこから連想される敷居の高低とかセキュリティ意識の有無とかその辺は面倒なので省略、っと。


ちなみに。

RBNExploitブログによると、RBNのサービスを利用しているドメインには、ポルノ・サイト、薬品販売サイト、投資詐欺サイトなどのサイトが含まれるという。「RBNのやり方が成功しているのは、こうしたサイトのWebマスターの大半は、おおっぴらに苦情を言えない立場にあるからだ」と、ブログには記されている。

この辺にも商売センスのうまさが見え隠れ。
っつかぶっちゃけ。悪人のほうが「面白い発想」するよねぇ大抵。理由は簡単で「自分たちがなにをやりたいのかが明確で」「やりたいことに向かってまっすぐに進む」から。
発想の方向は、被害者が多々いるという観点から嫌いだけど。彼らの思考方法のまっすぐさそのものは、結構好きだったり。
少なくとも「無駄なしがらみと政治で無意味にごにょってる」状況より、なんぼかわかりやすいからね。