ときどきの雑記帖 2012

最新ページへのリンク
目次ページへのリンク

一つ前へ 2012年9月(中旬)
一つ後へ 2012年10月(上旬)

ホームへ

2012年09月30日

■_

9月も終わり。

買ってみた
夏目友人帳 名刺フォルダ 友人帳
夏目友人帳 名刺フォルダ 友人帳
是非あなたの名刺をこの友人帳に(ry

■_ join

興味深かったのでmemo。 Shibu's Diary: Pythonはなぜ?str.join(seq)なのか?

Shibu's Diary: Pythonはなぜ?str.join(seq)なのか? Rubyは「人にやさしい」がウリなので、多少の実装の手間は惜しまない (そうでなければ、気の狂った正規表現リテラルをサポートするはずがない)のですが、 Pythonはクラスの実装すら「なるべくパーサに手を入れない方向でクラス構文を導入して、 メソッドとか、挙動のオーバーライドもスの関数定義をちょっと流用して実装した」 前科があるので実装者の手間の少なさも大事な要素として考えられていたのだと思います。

ここだけ抜き出すのは誤解を招きやすい加茂

■_ 読んだ

限界集落温泉 1巻 (BEAM COMIX)
限界集落温泉 1巻 (BEAM COMIX) 限界集落温泉 2巻 (ビームコミックス)
限界集落温泉 2巻 (ビームコミックス) 限界集落温泉(3) (ビームコミックス)
限界集落温泉(3) (ビームコミックス) 限界集落温泉4巻 (ビームコミックス)
限界集落温泉4巻 (ビームコミックス)

実は1巻と2巻はちょっと前に読んでたのだけどそこで止まっていた (それはなぜかというとごにょごにょ…)

いや面白かった。幸か不幸か4巻表紙のネタバレには気がつかなったので それも読後感をいい方向に傾けたかも。 確かにまあ「そんなの現実には無理だよ」という声は出てくるのは当然なんだろうけれど、 といって何もしないでいると段々取れる手段も少なくなる(選択肢がなくなっていく)わけで。 詳しく書こうとするとどうしてもネタバレしそうになるのがきついなw

L'eclat des jours(2012-04-19) 今年も緑のカーテンを作るぞ(1), 限界集落温泉4巻 (ビームコミックス)(鈴木みそ), ReVIEWを使ってESRのオープンソース三部作をEPUB化してみる(1) - ただのにっき(2012-04-30)

■_ Jolt Awards

Jolt Awards: The Best Books:柴田 芳樹 (Yoshiki Shibata):So-netブログ 経由で→のfinalに挙がっている本から Jolt Awards: The Best Books | Dr Dobb's

自分が特に興味を引かれたのはこの辺だろか。 翻訳…されるかなあ Jolt Awards: The Best Books | Dr Dobb's Jolt Awards: The Best Books | Dr Dobb's Jolt Awards: The Best Books | Dr Dobb's

Amazon.co.jp: How Google Tests Software: James A. Whittaker,Jason Arbon,Jeff Carollo: 洋書

内容説明

2012 Jolt Award finalist!

Pioneering the Future of Software Test

Do you need to get it right, too? Then, learn from Google. Legendary testing expert James Whittaker,
until recently a Google testing leader, and two top Google experts reveal exactly how Google tests
software, offering brand-new best practices you can use even if you're not quite Google's size…yet!

Breakthrough Techniques You Can Actually Use

Discover 100% practical, amazingly scalable techniques for analyzing risk and planning tests…
thinking like real users…implementing exploratory, black box, white box, and acceptance testing…
getting usable feedback…tracking issues…choosing and creating tools…testing “Docs & Mocks,”
interfaces, classes, modules, libraries, binaries, services, and infrastructure…reviewing code and
refactoring…using test hooks, presubmit scripts, queues, continuous builds, and more. With these
techniques, you can transform testing from a bottleneck into an accelerator–and make your whole 
organization more productive!

「あのぐーぐるで」という話なら会社でも話に出しやすいかなあ。などと。

Amazon.co.jp: Elemental Design Patterns: Jason McC. Smith: 洋書

内容説明

2012 Jolt Award Finalist!

Even experienced software professionals find it difficult to apply patterns in ways that deliver
substantial value to their organizations. In Elemental Design Patterns, Jason McC. Smith addresses
this problem head-on, helping developers harness the true power of patterns, map them to real
software implementations more cleanly and directly, and achieve far better results. Part tutorial,
part example-rich cookbook, this resource will help developers, designers, architects, and analysts
successfully use patterns with a wide variety of languages, environments, and problem domains.
Every bit as important, it will give them a deeper appreciation for the work they've chosen to pursue.

以下略
 

デザインパターンについてはもやもやしたものがあるので。

Amazon.co.jp: Specification by Example: How Successful Teams Deliver the Right Software: Gojko Adzic: 洋書

The book is divided in three parts. The first part is mainly introduction where Gojko describes the
benefits and the key practices that will be described in this book. The second part is the actual
description of the key practices and the third part are different case studies about different teams
in different companies that have adopted specification by example.

The key practices that are introduced in part one and described in part 2 are:
- Deriving scope from goals
- Specifying collaboratively
- Illustrating using example
- Refining the specification
- Automating without changing the specification
- Validating frequently
- Evolving a documentation system

以下略

■_

ぼつ

■_

InfoQ から。これも翻訳されるのは望み薄だよねえ。 Software's Hidden Clockwork: A General Theory of Software Defects

Software's Hidden Clockwork: A General Theory of Software Defects

Summary

Les Hatton theorizes the possibility to predict the number of defects in software systems based
on the observation that such systems have properties independent of why, how or who implemented them.

Bio

Les Hatton is a British-born computer scientist and mathematician most notable for his work in
failures and vulnerabilities in software controlled systems. After spending most of his career in
industry working for Oakwood Computing Associates, he is currently a professor of Forensic Software
Engineering at Kingston University, London.

About the conference

With nearly 85,000 members, the IEEE Computer Society is the world's leading organization of computer professionals. Founded in 1946, the Computer Society is the largest of the 38 societies of the Institute of Electrical and Electronics Engineers (IEEE). The Computer Society is dedicated to advancing the theory, practice and application of computer and information processing technology, and is known globally for its computing standards activities.

Page not found | Les Hatton Les Hatton | Scientific and other writing

スライド見るに、なかなか面白そうな話ではあるんだけど。

■_

例の人の関わった本 (Amazon.co.jp: データ指向のソフトウェア品質マネジメント―メトリクス分析による「事実にもとづく管理」の実践: 野中 誠,小池 利和,小室 睦: 本) が評判よさげなんですが、 Twitter / anisuzu: 9月新刊の『データ指向のソフトウェア品質マネジメント ... 【データ指向の…(デート本)】多分もの凄く中身のある本…多分: ソフトウェア開発品質・生産性ななめ読み

そうなのかなあ(少しずつ読んでたりする(つまり買った))

■_ AVLとか

某スレ。

C言語なら俺に聞け(入門編)Part 107

855 デフォルトの名無しさん [] 2012/09/29(土) 02:10:17.97 ID: Be:
    >>854
    バカはお前だよw avltreeは実装できたのか?教えてやろうか? 

856 ◆QZaw55cn4c [sage] 2012/09/29(土) 02:14:08.43 ID: Be:
    >>855
    うん、結構苦戦してるんです。
    参考にした教科書も間違っているありさまで困っています。よろしくお願いいたします。 

859 デフォルトの名無しさん [sage] 2012/09/29(土) 02:21:50.19 ID: Be:
    a + b = cを満たすような、互いに素な自然数の三つ組 (a,b,c) に対し、積abc の互いに異なる素因数の積を d と表記する。
    このとき、任意の実数 ε > 0 に対して、c?>?d?(1+ε)となるような三つ組 (a,b,c) は高々有限個しか存在しない
    ってことだよな。 

860 デフォルトの名無しさん [] 2012/09/29(土) 02:28:26.73 ID: Be:
    >>859
    そう、それ、俺もそれが言いたかった、そういうこと、大体あってる。

    >>858
    ほいで、いまはどういう実装の仕方してる? 左右の木の高さの差を求めて平衡していないことを調べるやり方と、
    左右どちらに傾いているかというラベルを枝に持たせるやり方があるだろ、どっちのやり方でやってる? 

862 ◆QZaw55cn4c [sage] 2012/09/29(土) 03:17:14.92 ID: Be:
    >>860
    >左右どちらに傾いているかというラベルを枝に持たせるやり方
    です。
    http://hibari.2ch.net/test/read.cgi/tech/1301553333/520
    http://hibari.2ch.net/test/read.cgi/tech/1301553333/629
    http://ideone.com/ujGUY 

863 ◆QZaw55cn4c [sage] 2012/09/29(土) 03:18:05.20 ID: Be:
    >>861
    一年以上も前で探すのにちょっと手間取りました。すみません。 

864 デフォルトの名無しさん [] 2012/09/29(土) 03:19:59.57 ID: Be:
    >>863
    そんな前なのかよ、ちょっとまってろ精査してやんよ 

865 ◆QZaw55cn4c [sage] 2012/09/29(土) 03:20:58.65 ID: Be:
    >>864
    すみません、お願いします。 

866 デフォルトの名無しさん [] 2012/09/29(土) 04:35:56.02 ID: Be:
    >>865
    なんだ、ほとんどできてんじゃん
    一重回転は問題ない
    二重回転のところだな

    ┃if (p2->bal == -1)
    ┃    (*p)->bal = 1;
    ┃else
    ┃    (*p)->bal = 0;
    ┃if (p2->bal == 1)
    ┃    p1->bal = 1;
    ┃else
    ┃    p1->bal = 0;

    p2とpは同じ一番上のノードを指している。

    if ((*p)->bal == -1) {
        (*p)->left->bal = 0;
        (*p)->right->bal = 1;
    } else {
        (*p)->left->bal = -1;
        (*p)->right->bal = 0;
    }

    こう変えれば完成だな 

867 デフォルトの名無しさん [sage] 2012/09/29(土) 04:51:41.62 ID: Be:
    AVL木についてまじめに勉強したいならぐぐってばかりいないでセジウィックとかロバート・クルーズ
    の本を読めよな

    あ、買う金ないのか 

868 ◆QZaw55cn4c [sage] 2012/09/29(土) 05:07:19.47 ID: Be:
    >>866
    ありがとうございます。調べます。 

869 ◆QZaw55cn4c [sage] 2012/09/29(土) 05:19:48.29 ID: Be:
    >>867
    セジウィック http://www.amazon.co.jp/dp/4764902222
    は目次をみるかぎりよさそうですね。赤黒木の分量はどれくらいあります?本命はこちらなんですが手も足もでない。
    ご紹介ありがとうございました。

    >買う金ないのか
    無職説があー広まってますね、例によって肯定も否定もしませんが。 

870 デフォルトの名無しさん [sage] 2012/09/29(土) 05:49:26.48 ID: Be:
    セジウィックのは赤黒木で9ページ、ロバート・クルーズのはAVL木で18ページあるな

    ロバート・クルーズのは絶版じゃん
    ISBN4-89471-331-4

    まだISBN4の時の本か 

ロバート・クルーズの本ってどんなんだっけと 調べてみたらこれ Amazon.co.jp: C++データ構造とプログラム設計: ロバート・L クルーズ,アレキサンダー・J. リバ,大戸 友博: 本 たぶん買ってない(し、読んでない)なこれ。 明倫館で何度か見かけた気はする。

コルメン本はAVL木の解説はなかったんだっけか? 赤黒木があるのはよーーーーーく覚えてるんだけど。
アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)
アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)

■_

2012年09月29日

■_

ダウンしてた

2012年09月28日

■_

YAPC::Asia Tokyo 2012 YAPC::Asia 2012 会場を少しご紹介 | YAPC::Asia Tokyo 2012 今日観てたのはこの辺り。あとLTソンをしばらく。 What Does Your Code Smell Like? Acmeism, Pegex and CoffeeScript on CPAN Nana/Tora - Perl5 から見える未来。Perl5 と共にあゆむ Perl6 ではないプログラミング言語、それは。 Perlと出会い、Perlを作る

最後の発表がなかなか面白くて、 C++ で from scratch で perl インタープリターを作ってますという (大学時代は Konoha をやってたそうな)。

Perlと出会い、Perlを作る

トーク概要

本発表では、今年4月に新卒としてmixiに入社し、Perlと出会い、Perlを学ぶために処理系を実装し始めた話をしたいと思います。

どうせ作るならということで、世界一高速なPerl処理系を目指して実装しています。
Perl5の数十倍速いPerl処理系をどうやって作っていったかというところを聞いていただければと思います。

当日は、できるだけ多くのベンチマークを動かせるようになって臨みたいと思っています。

今日はYAPC::Asia Tokyo 2012の1日目です - 北海道苫小牧市出身のPGが書くブログ

■_

てきとーに。 綺麗な写真は他の人がそこかしこで上げる。はず。

詳細なリポートもされるし(技評のサイトとか)、 あまり一生懸命になにかやる気にもならないのだった。

■_

2012年09月27日

■_

明日(金曜日)はYAPCに行くので会社は休む。 つーことで一日早くイカサマータイム終了。

■_

■_

あーなんかやるきぜろー

2012年09月26日

■_

レイリー分布
もうちょっとだけ続くんじゃ。

毎度ありがとうございます。 Rayleigh分布のあれ - odz buffer

とあるお店に問い合わせの電話をかけましたらば、 「少々お待ちください」と保留音楽の流れる状態になってから十分近くまたされた。 良くおとなしく待ってたな。オレw

なんかいいなこれw エバーグリーン、“踊る”てんとう虫型スピーカ - CNET Japan

■_ REBOL のオープンソース化について

reddit に寄せられたご意見。 なんか否定的というか冷めた意見が多い?

「(オープンソースにするのが)遅い」ってのはそうなのかなあ。

REBOL language to go open source : programming

Finally, a smart decision. Too long to stay relevant?

A very small executables are a sell in Rebol.

Can someone explain why someone would want to use REBOL? Or perhaps mention a notable project
or two implemented with REBOL?


it's really weird in that you can make ui's somehow by defining meta-languages somehow derived
from the core language. they call them 'dialects', powerful and weird. And they have like 41
internet data types all that know their own protocol, so communicating between things is really
neat and easy.


too late, no one cares

Sadly it goes like this: I'm bored, I can't make money out of it and the next version is more
vaporware than Duke Nukem Forever... Let's open-source it even though people have begged it for
years.
It goes exactly like this.

I thought REBOL was a neat idea a long time ago, and even started learning it as a way of weaning
myself off of the Redmond teat for custom applications.

Over time, though, I just started learning how to do XML-RPC and SOAPy stuff, and now I just write
the app in a combination of HTML, Javascript, and Perl or Ruby-on-Rails.

REBOL was a great idea ten years ago. It is now largely irrelevant. Open sourcing it just seems
like a way to give up without looking like you've given up.

■_

REBOL のページに寄せられた意見から

Comments on: REBOL to become open source
Comments:

MaxV
25-Sep-2012 2:27:22	Dear Mr. Sassenrath,

thank you.

You are a lighthouse in the mists of software pollution. When I met Rebol was as an epiphany for
me, like the Monnalisa of programming languages.

Now Rebol community will have to face a new Ocean, but you'll remain our Admiral to keep correct
our direction.

rebolek
25-Sep-2012 2:46:55	Hi Carl,

that's great news! I have a question, why GPL? You were against GPL in the past (link), so I'm
curious why not BSD, BSL or MIT.

Luke
25-Sep-2012 2:47:40	Hi Carl

Thank you for doing this - it will save REBOL from ultimate obscurity. Now I will be able to
persuade more people to take it seriously and invest in writing more REBOL code. And I look
forward to better integrations with the rest of the ecosystem - such as with XML (its nasty we
know, but it's realistically the lingua franca of integrations at the moment)

I agree that any ongoing development philosophy should respect and take forward your architectural
choices. Given your massive contributions so far, if you disagree with where it is going, say so,
and I'm sure your view will be taken very seriously.

One aspect I think will need to be made clear in the FAQ/documentation is what the licensing status
of any executable that links the REBOL library. Will the GPL license conditions apply to tha?. If
there would be such restrictions, I respectfully suggest that a MIT/BSD type license might be more
palatable and gain better uptake, particularly in the embedded sector. In my view uptake must be a
big driver to where REBOL goes now. For example, LUA uses this approach, and is integrated into many
contexts.

Anyway, for me GPL is a great start. Good luck with your new ventures, and I look forward to being
able to promote REBOL some more.

Updated 26-Sep-2012   -   Copyright Carl Sassenrath   -   WWW.REBOL.COM

パッと見、ライセンスについて意見を出している人が多い?

■_

ホーア博士が何年か前に後悔してるとか言ってたアレに関係する話。 Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake

Twisted Oak Studios | Game Developers | Unity 3D Development

Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake
posted by Craig on September 24, 2012

One of the top suggestions (currently #15 on uservoice) for improving C# is the addition of
non-nullable reference types. This is not surprising, considering the number of functions that
start with a block of ‘if (x == null) throw new ArgumentNullException(“x”)' lines. Not to
mention the head-slapping bugs null pointers cause. There's a reason Tony Hoare calls the null
pointer his billion dollar mistake.

In this post I will talk about the obstacles that make adding non-nullable types to C# difficult,
and propose a way forward.

Obstacles

(略)

©2012 Twisted Oak Studios Ltd. -- All Rights Reserved -- All images and logos are property of their respective owners.

■_

■_

■_

書くに書けないネタがががが。

2012年09月25日

■_

今週いっぱいでイカサマータイムが終わるわけですが。

■_

レイリー分布の時間がやって参りました(マテ)。

例のスライドを始め、ソフトウェアの品質云々の資料で使われている レイリー分布の確率密度関数や累積分布関数の式は レイリー分布 - Wikipedia などにあるそれとは微妙に違ったものになっています。 こんなのと 確率密度関数 \frac{x}{\sigma^2} e^{-x^2/2\sigma^2} 累積分布関数 1 - e^{-x^2/2\sigma^2} こんなの CDF: F(t) = 1 - e ^ -(t/c)^2 PDF: f(t) = 2/t * (t/c)^2 * e ^ (t/c)^2

日本語資料はこういった感じで(全部PDFです) ソフトウェアメトリクス -ソフトウェア開発データの解析技法 平成24年度シラバス 摘出済み欠陥数を考慮したレイリーモデルに基づくソフトウェア欠陥予測手法 離散的に観測された欠陥データへのレイリーモデル適用について プロセスおよび出荷後バグメトリクスによる残存バグ予測 SQiP2010 B3-2 ソフトウェア開発における予測モデル構築手法の提案 プロセス改善と定量化モデルの進化と発展 I、II、III 英語のものを調べてみるとσとxを使ったものばかりで t と c を使ったものは見あたりませんでした。 Rayleigh Distribution -- from Wolfram MathWorld Probability Distributions and Estimators for Multipath Fading Channels (PDF) The Rayleigh Distribution - GNU Scientific Library -- Reference Manual

それはなぜだろうかと疑問に思っていたのですが、 ようやく回答らしきものにたどり着きました。 参考文献として挙げられていた本に、そのものずばりが載っていました。 必要なところを全部は見られなかったのですが Google ブックスである程度は確かめられました。 Metrics and Models in Software Quality Engineering - Stephen H. Kan - Google ブックス 数式が小さくてはっきり分からなかったところも○| ̄|_

7.2 The Rayleigh Model

The Rayleigh Model is a member of the family of the Weibull distribution.

  CDF: F(t) = 1 - e ^ -(t/c)^m
  PDF: f(t) = m/t * (t/c)^m * e ^ -(t/c)^m

The Rayleigh Model is a special case of the Weibull distribution when m=2.
Its CDF and PDF are:

  CDF: F(t) = 1 - e ^ -(t/c)^2
  PDF: f(t) = 2/t * (t/c)^2 * e ^ (t/c)^2

The Rayleigh PDF first increases to a peak and then decreases at a decelerating rate.
The c parameter is a function of tm, the time at which the curve reaches its peak.
By taking the derivarative f(t) with respect to t, setting it to zero and solving
the equation, tm can be obtained.

   tm = c / √2

Figure 7.1 Weibull Probability Density


After tm is estimated, the shape of the entire curve can be determind. The area below
the curve up to tm is 39.35 % of the total area.

The preceding fomulas represent a standard distribution; specially the total area under
the PDF curve is 1. In acutual applications, a constant K is multiplied to the formulas
(K is the total number of defects or the total cumulative defect rate). If we also
substitute

  c = tm √2

in the formulas, we get the following. To specify a model from a set of data points, K
and tm are the parameters that need to be estimated.

  F(t) = K [ 1 - e ^ -(1/2tm^2?)m^2 ]

プレビューなし

7.3 Basic Assumptions

Using the Ryaleigh curve to model software development quality involves two basic assumptions.
The first assumption is that the defect rate observed during the deveopment process is
positively correlated with the defect rate in the field, as illustrated in Figure 7.3.
In other words, the higher the curve (more area under it), the higher the  field defect rate
(the GA phase in the figure), and vice versa. This is related to the concept of error injection.
Assuming the defect removal effectiveness remains relatively unchanged, the higher defect rates
observed during the development process are indicative of higher error injection; therefore,
it is likely that the field defect rate will also be higher.

The second assumption is that given the same error injection rate, if more defects are
discovered and removed earlier, fewer will remain in later stages. As a result, the
field quality will be better. This relationship is illustrated in Figure 7.4, in which the
area under the curves are the same but the curves peak at varying points. Curves that
peak earlier have smaller areas at the tail, the GA phase.

Both assumptions are closely related to the "Do it right the first time" principle.
The principle means that if each step of the development process is executaed properly
with minimum errors, the end product's quality will be good. It also implies that
if errors are injected, they should be removed as early as possible, preferably before
the formal testing phases when the costs of finding and fixing the defects are much
higher than that at the fornt end.

  

なんかあのスライドに書かれてたことが丸々あるような。

折角なのでぺたり。翻訳本もあったのね。 ソフトウェア品質工学の尺度とモデル
ソフトウェア品質工学の尺度とモデル Metrics and Models in Software Quality Engineering
Metrics and Models in Software Quality Engineering

■_ REBOL

オープンソースに。

REBOL to become open source

REBOL to become open source

Carl Sassenrath, CTO
REBOL Technologies
25-Sep-2012 8:05 GMT
Article #0511

The time has come for REBOL to be released as open source. This is the only way I can see it
regaining some degree of momentum and renewed interest -- not just within our REBOL community,
but for many yet-to-be users who possess the curiosity or motivation to learn new and powerful
programming concepts and techniques.

REBOL をオープンソースにするときがやってきました。
これは regaining some degree of momentum し、興味を取り戻す唯一の方法とわたしが
考えているものです。REBOL コミュニティに限定せず、多くの
yet-to-be users who possess the curiosity や
新しく強力なプログラミングコンセプトやプログラミングテクニックを学ぼうという動機を
もった人たちに対しても公開します。

Here's my proposal
わたしの提案はこうです

    The R3 source code will be released under GPL 2 (most likely - still open to discussion.)
    R3 のソースコードを GPL 2 の下でリリースする
    (ただし議論はまだ続いています)

    The official source release distribution (rel-src) will be made available from the REBOL.com site.
    公式の source release distribution を REBOL.com から入手できるようにする

    Developmental sources (dev-src) will be available on GitHub (or a similar service.)
    Developmental sources を GitHub (もしくは同様のサービス) で入手できるようにする

    From time to time the dev-src will be reviewed, selected, debugged, polished, and integrated into rel-src releases.

    A small group of REBOL Masters (maybe three for now) will be in charge of such rel-src review,
    selection, revising, debugging, integration etc. as well as develop or encourage the
    development of new features, ports to new platforms, optimizations, etc.

    My role will be to advise and guide such decisions to keep REBOL consistent with its principles,
    and I will hold the final power of veto, in cases where that becomes necessary.

What I ask in return

If this proposal seems acceptable, there's one thing I ask in return. That those of you who wish
to influence and extend the design of REBOL do so with a full understanding of its principles.
REBOL is not like other languages, and you will soon discover that REBOL source is not like other
source. Architecture and design are important.

Although it is unrealistic to assume we can filter/fix all impurities that might come about in an
open environment, we should all strive to minimize the degradation that comes about by seeking an
easy solution over the proper and well designed form of such a solution. Even the naming of each
symbol, function, and datatype is worthy of thoughtful consideration. That is how I've always
treated it.

In the end a language or system should help developers make their programming tasks easier and
their products more timely, affordable, manageable, and agile. Too often, it becomes the opposite.
Let's always keep that in mind.

What's next?

So... this is it. Once R3 is released our course becomes irreversible. We'll all start paddling
our canoes like mad in a small but rapid river... but one which I sincerely hope will carry us to
a much larger ocean.

Please offer your comments and advice on any of the above. This is the final call. If you posted a
comment on the prior blog that you want me to review again, please note its date and time. I'll go
back and take a look.

My schedule is to finish this up next weekend and make the release by October 1st.

時間ねー

■_

■_

Errors vs. Bugs and the End of Stupidity
http://celandine13.livejournal.com/33599.html
http://www.reddit.com/r/programming/comments/10do93/errors_vs_bugs_and_the_end_of_stupidity/
Error codes vs exceptions: critical code vs typical code
http://www.yosefk.com/blog/error-codes-vs-exceptions-critical-code-vs-typical-code.html
http://www.reddit.com/r/programming/comments/10dx9z/error_codes_vs_exceptions_critical_code_vs/
Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake
http://twistedoakstudios.com/blog/?p=330
http://www.reddit.com/r/programming/comments/10eq96/nonnullable_types_vs_c_fixing_the_billion_dollar/
I Am Worried About The Future Of Python
http://www.ironfroggy.com/software/i-am-worried-about-the-future-of-python
http://news.ycombinator.com/item?id=4564017
http://www.reddit.com/r/programming/comments/10cypy/mypy_a_new_python_variant_with_dynamic_and_static/

2012年09月24日

■_

今日も確率統計のおべんきょで以下略。

■_

本日話題沸騰のこれ 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) - Publickey 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(中編) - Publickey 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(後編) - Publickey

自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) - Publickey

プログラムのダウンロードも、昔は専門の作業員がその場へ行って終電から始発のあいだにアップデート
していました。でもICカード化してから相互乗り入れがすごく増えてきて、そうすると神奈川の電鉄会社
の運賃の変更でも関東全域で考慮しなくてはいけないので、自動改札機が稼働中でもアップデートできる
ようにしました。自動的に一世代前に戻る、という機能もあります。

最初の文と、でもICカード化以下の文がどう繋がってるのかよくわからないんですが。 いや、「関東全域で考慮しなくてはいけない」→ 作業員が足りない or 時間が足りない で、「自動改札機が稼働中でもアップデートできるように」 なのかなあとは思うんですけど。

自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(後編) - Publickey

テスト対象となる実機用の運賃ソフトウェアと、検証用の運賃ソフトウェアは別のチーム、別のアルゴリズム、
別のプログラミング言語で作ります。実機用はC++ですが、検証用はJavaで言語特有のバグをなくそうとして
います。でも検証用のソフトウェアにはそんなに予算が掛けられず少人数で作っているので、実機用はどう
やって作ったのか聞きたくなるのですが、そこを我慢して作る。

基になるデータベースも間違っている可能性があるので、検証用は別に手入力してデータのチェックも合わ
せてやります。

スーパーコンピューターでやったπ の計算の検算も 別のアルゴリズムなどで行ったとか聞いた覚えが。

■_

適当に目についたものを順不同で。

自動改札機 - Wikipedia 関西地区では京阪電鉄、近畿日本鉄道、阪急電鉄等の主要駅で1970年代初頭より本格的導入が見られ、かなり一般的となっていた。 ICカード - Wikipedia ICカード乗車券は、1992年にフィンランド・オウル市のバス会社が「バスカード」として導入したものが世界初である(現在は「オウルカード (Oulucard)」)。その利便性が評価され、その後日本を含む世界中の事業者で導入が進んでいった。 「紙を廃止して電子式」というのが具体的にどういったものなのかが今ひとつ想像つかないけど、自動改札機導入時期を考えるとそりゃ無理筋な気が。 運賃体系云々は…どうなんだろか

■_

mypy - A New Python Variant with Dynamic and Static Typing

■_

mypy について Hacker News でのやりとりから

Mypy - An experimental Python variant with dynamic and static typing | Hacker News

why doesn't this use the python standard for adding type information? it should be:

   def foo(n: int):

not

   def foo(int n):

then it would be valid python 3 code (and would also work with pytyp (disclaimer: mine)).

http://docs.python.org/py3k/reference/compound_stmts.html#fu... http://www.python.org/dev/peps/pep-3107/ http://www.acooke.org/pytyp/

Thanks for mentioning pytyp!

I have been using this recipe: http://code.activestate.com/recipes/572161/ to add type checking
to Python for a while now, so it's nice to see a more mature and developed library that does the
same (and more.)

In your code examples I didn't see any decorators around the functions that were being
typechecked, so how do you then enforce the type checking?

In addition, is pytyp as fully-featured as the recipe above? (The recipe is short but well-written.)
The comments at the beginning of the recipe shows a bunch of examples that demonstrate all that it
can do.


Reminds me a bit of Julia[1], which allows optional static typing.

[1] http://julialang.org/

Perl6 also has optional typing:

  sub fib (Int $n) returns Void {
    my Int ($a, $b) = 0, 1;
    while $a < $n {
      say $a;
      ($a, $b) = ($b, $a + $b);
    }
  }

NB. At moment Void doesn't appear to be implemented in current version of Rakudo. Removing
returns Void will make it work!

■_ Why I'm not leaving Python for Go

Why I'm not leaving Python for Go | Hacker News から。 Go には良い点もあるけど 気に入らないところがあったので移行しないよ。と。

Why I'm not leaving Python for Go | Ubershmekel's Uberpython Pythonlog

Why I'm not leaving Python for Go
Posted on September 23, 2012	

First of all, Go seems like a great language. It has an excellent tutorial which I joyfully
went through and found:

    Go is Fast.
    Concurrent by design.
    Typed (important for JIT and IDE's) but not cumbersome and ugly like C or C++'s spirals.
    Duck-type-esque interfaces.
    The defer mechanism is really nifty.

But there's one problem I can't live with. Which is a shame as I was eager to make the leap of
faith in the name of concurrency. That problem is errors are handled in return values. 70′s style.

以下略

■_

■_

2012年09月23日

■_

昨日今日とぐっと涼しく。

ビジョナリーカンパニーの4が出ていた。 書店で出だしのところをちょっと読んだのだけど、 アムンゼンとスコット(南極探検のあの人たちだ)を対比してたりしたんだけど、 スコットの見方がちと厳しい気がしないでもなかった。 いやまあ確かに、そこで述べていた通り アムンゼンは生還し、スコットの隊は全滅してしまったのだけど。

ビジョナリー・カンパニー 4 自分の意志で偉大になる
ビジョナリー・カンパニー 4 自分の意志で偉大になる

■_

■_

これは依然として活発な分野であり、 一般的な合意が形成される見通しはない。 幾つかの特性が提示されているが、 一般的なソフトウェアの特性は: 保全性、携帯性、信頼性、検査可能性、 分かりやすさ、使いやすさ、エラーが無いことである。 業務管理者はよくこれらの品質特性を用いてソフトウェアの品質を定義する。

最近はこういったものの調べ物をしていることが多いです。 バグの分類とかは興味あるけど、これはなー。
確率論的リスク解析
確率論的リスク解析

2012年09月22日

■_

読みたい。が。高い。 Amazon.co.jp: 和算ノ研究 方程式論: 加藤 平左ェ門,佐々木 力: 本 Amazon.co.jp: 聖なる数学:算額-世界が注目する江戸文化としての和算: 深川 英俊,トニー ロスマン: 本

■_

ブックマーク的ななにか

ソフトウェアの信頼性のようなキーワードで検索すると、 鳥取大学とか広島大学がよく目に付くんだよなー。

■_

なーんか 71 の言ってる状況が身近にあるような気が…(ry

【祝・栄光の】横山信義総合スレ26【タコ八艦隊】

62 名無し三等兵 [sage] 2012/09/22(土) 00:05:29.61 ID:??? Be:
    どこで読んだか忘れたが・・・

    戦争が上手いのがイギリス
    戦争が強いのがドイツ
    戦争に強いのがロシア
    戦争が下手だが勝つのがアメリカ
    戦争は上手いが負けるのが日本
    戦争は下手だが勝つのがフランス
    戦争が下手で負けるのがイタリア

    だったかな。 

64 名無し三等兵 [sage] 2012/09/22(土) 11:43:41.45 ID:??? Be:
    >62
    それはあんまりピントこないなあ。

    自分が見たのは、
    米:システムが良い
    英:士官が良い
    独:下士官が良い
    日:兵が良い
    だったかな… 

65 名無し三等兵 [sage] 2012/09/22(土) 11:53:04.53 ID:??? Be:
    米軍の将軍に率いられ、英軍の参謀に補佐され、ドイツ軍の士官に指揮され、イタリア軍の食事を食べてる
    日本軍の下士官兵士が最強だって聞いた気もする 

67 名無し三等兵 [sage] 2012/09/22(土) 14:06:39.51 ID:??? Be:
    >>65
    それは聞いたことあるな。 

68 名無し三等兵 [sage] 2012/09/22(土) 14:55:45.30 ID:??? Be:
    >>65

    そのテの奴なら、英国人の司令官、独逸人の参謀、アメリカ人の将校、日本人の下士官、
    韓国人(ロシア人とも)の兵卒、てのが定番だった気がするが。 

69 名無し三等兵 [sage] 2012/09/22(土) 15:25:58.84 ID:??? Be:
    最悪なのがイタリア軍の将軍、日本軍の参謀、ソ連軍の士官、中国軍の食事に
    フランス軍の下士官兵の組み合せだとも聞いたな 

70 名無し三等兵 [sage] 2012/09/22(土) 17:35:33.54 ID:??? Be:
    世界の日本人ジョークに載ってたのは
    最強が「アメリカの将軍、ドイツの参謀、日本の兵」で
    最弱が「中国の将軍、日本の参謀、イタリアの兵」だった
    色んなバリエーションがあるのかな? 

71 名無し三等兵 [sage] 2012/09/22(土) 17:44:40.30 ID:??? Be:
    日本の参謀に問題が有るのは
    作戦を考案する時点で100%完璧を求め過ぎる傾向が強い事だとか

    ちょっと計画よりずれ込むと修正を嫌がったり作戦終了を早めたがったり 

72 名無し三等兵 [sage] 2012/09/22(土) 17:59:52.53 ID:??? Be:
    理屈倒れの精神主義だからな

    なんというか「患者は死んだが、手術は完璧だった」と言う感じ
    術式は完璧なんだけど、患者の容態や体力を見極めるのが下手

    その辺、メスとハサミでざっくざくーって感じの大雑把な手術なのに
    輸血や止血が完璧で患者治しちゃうのがアメリカって感じかな 

■_

■_

Public 読んだ。 が、なんというか楽観的なノリにちょっとついて行けない感じがした。 パブリック―開かれたネットの価値を最大化せよ
パブリック―開かれたネットの価値を最大化せよ

2012年09月21日

■_

なんというかこう。

■_ J

元記事にある四コマ漫画が面白かった A look at the J language: the fine line between genius and insanity « Locklin on science

■_

個人攻撃になりつつあるなあと思いつつ。 JaSSTソフトウェアテストシンポジウム-JaSST'10 Tokyo にもあったし、このスライドの作者の一人が作った他のスライド ソフトウェア品質マネジメント能力を高めれば組織は強くなれる 組織的要因がソフトウェア品質に与える影響 - 東洋大学経営学部 野中 誠 にも引用されていることがあるんですが、 最後のものから抜き出します

  1. はじめに
日本のソフトウェア組織では,ソフトウェア品質1の達成水準が諸外国に比べて高い-この命題
に対する客観的な裏付けはないが,同様の認識を持つ実務家は少なくないであろう。この認識を
部分的に裏付けるデータとして,Cusumano らがソフトウェア製品の欠陥密度を国際比較した結
果,日本の調査対象の中央値は0.02 欠陥/KLOC であり,米欧印に比べて10~20 倍良いという報
告がある[2]。
[2] Cusumano, M., MacCormack, A., Kemerer, C. F. and Crandall, W. (2003):
“Software Development Worldwide: The State of the Practice,” IEEE Software, vol. 20, pp. 28-34.
  

確かに、引用元資料 Software Development Wordwide: The State of the Practice を見ても 1000行当たりの不具合の数として インド 0.263 日本 0.20 アメリカ 0.400 欧州及びその他 0.225 という数値が記載されています。 が、

こういう話だったりするのですよねえ。 日本のソフトウエア生産性と品質は世界最高水準~なぜ日本のソフトは国際競争力がないのか。 - 木走日記 日本のソフトウエア生産性と品質は世界最高水準? - tatemuraの日記 2007-03-24 - 酔狂人の異説

日本のソフトウエア生産性と品質は世界最高水準? - tatemuraの日記

論文では、日本と米国とどちらのパフォーマンスが優れているかといった絶対的な評価をするのではなく、

環境や開発手法との兼ね合いを議論している。

具体的には、ウォーターフォール型の開発が実際に不具合の少ないコードを生んでいることを見て取っている。

ただし、論文でも指摘しているとおり、それがビジネス的な成功と必ずしも一致しているわけではない。

(文脈を無視して)都合の良い数字だけ抜き出し、繰り返しそれを使うのはどんなもんかと。

■_

例の先生こういうこともしてたのね 1.お知らせ - TEF東海メトリクス勉強会

1.お知らせ - TEF東海メトリクス勉強会

メトリクス勉強会の第7回目を開催します。

今回は、第5回の鷲崎先生に引き続き、共著者でいらっしゃいます
東洋大学の野中先生を招待しての特別企画となります。

日時:8/6(土) 13:00~18:00
      終了後、野中先生を囲んでの懇親会も開催
場所:アクトシティ浜松 36音楽セミナー室
      JR浜松駅から徒歩5分
      http://www.actcity.jp/sponcer/seminar/facilities/room_36.php
以下、こくちーずから申し込み下さい。
http://kokucheese.com/event/index/14216/

※今回、初参加の方も遠慮せず! 今回のみの参加もOK!

内容としては、通常の書籍「演習で学ぶソフトウェアメトリクスの基礎」
の輪講会ではなく、野中先生の講義&ワークショップとなります。
(テーマは7章「欠陥に学ぶ」)

1. バグの数え方の議論(1時間)
2. DREなどバグ関連の静的メトリクス(1時間弱)
3. バグ数を予測する多変量解析モデル(1時間)
4. レイリーモデルのワークショップ(1時間強)
5. 議論(30分くらい)

4 が特に気になる :)

■_

■_ ポアソン分布

なんかうけた。 バグで行こう(笑撃的バグレポート) : 問題1.バグ曲線の曲がり方 - livedoor Blog(ブログ)

バグで行こう(笑撃的バグレポート) : 問題1.バグ曲線の曲がり方 - livedoor Blog(ブログ)

問題1.バグ曲線の曲がり方
 
(説明)
テストケースの実施数(またはテストケースの実施日)を横軸に、縦軸に発生バグの件数をプロットして得られる近似曲線を「バグ曲線」と呼ぶ。

この曲線はポアソン分布になると言われている。最初にバグが多く発見されるが、徐々に減少していく状態になるものである。

(設問)
(1) テストケースが独立事象であるときに、上記の曲線になる理由を述べよ。但し、バグ原因の相関関係は無視してもよい。
(2) あなたが経験したプロジェクトで、バグ曲線は上記のようになっているか。その類推できる根拠とともに示せ。 
解答
問題1.バグ曲線の曲がり方

(1) ポアソン分布になる理由
プロジェクトマネージャの「願望」。
独立事象なのにポアソン分布になるわけないだろ。一様分布だよ。
最初の内は大目に見てやるが、最後のときにへまをすんじゃねぇ。わかったな。俺が恥を掻くんだからな。PMBOK の試験にも落ちちまうわ。

「問題1.バグ曲線の曲がり方」の読み方 - お笑い「バグで行こう(笑撃的バグレポート) 」の歩き方


一つ前へ 2012年9月(中旬)
一つ後へ 2012年10月(上旬)

ホームへ


リンクはご自由にどうぞ

メールの宛先はこちらkbk AT kt DOT rim DOT or DOT jp