ときどきの雑記帖'

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

一つ前へ 2013年7月(上旬)
一つ後へ 2013年7月(下旬)

ホームへ

2013年07月20日

■_

6月後半から色々あったので書き忘れてましたが、 wishlist から Amazon.co.jp: ロバストデザイン ROBUST DESIGN-「不確かさ」に対して頑強な人工物の設計法: 松岡 由幸, 加藤 健郎: 本 をいただいてました。感謝。

AmazonのKindle版洋書0円まつりで これもこないかなあと期待してたけどこなかった○| ̄|_ Amazon.co.jp: How We Test Software at Microsoft eBook: Alan Page, Ken Johnston, Bj Rollison: Kindleストア

カタROM購入。

■_ 十倍

「デスマーチ」(の定義)あたりでもあったと思うけど、 本来の定義やらから外れたり前提が成り立たなくなったところで議論が続いてることは良くあるわけで プログラマ 能力差 30倍 - Google 検索 プログラマ の能力差は20倍の意味 プログラマがコードを書く速度は100倍差が出にくいが、コードを書ける状態にもっていくまでの速度には100倍差が出る - ´・ω・)<ときどき書くよ でまあ、「ピープルウェア」から引っ張るのがいいんだろうけど、 図書館にもなかったので困ってたところこういう記事発見。 プログラマーには、コーディングの生産性で10倍、コードレビューの速度では6倍もの能力差があるという - Publickey で、孫引き。

プログラマーには、コーディングの生産性で10倍、コードレビューの速度では6倍もの能力差があるという - Publickey

プログラマーの生産性をテーマにした有名な著書「ピープルウェア」には、最も優秀なプログラマと最低の成績のプログ
ラマのあいだには約10倍にあたる生産性の違いがある、というデータが出てきます。

これは、1984年から1986年にかけて92社、延べ600人が参加したプログラミングコンテストのデータを分析した結果から導
き出された結果で、課題として与えられたプログラミング作業の開始からコンパイル時のエラーを消すところ(第1チェッ
クポイント)へ到達するまでにかかった時間を比べています。

グラフを見ても分かるように、最優秀者と最低者のあいだには作業時間にして約10倍のひらきがあります。また最優秀者は
平均の約2.5倍の生産性だそうです。そして、COBOLやFortranのような旧世代のプログラミング言語と、PascalやCのような
現代的なプログラミング言語でのコーディングでの生産性はほとんど同じであったそうです。また、プログラミングの経験
年数や得ている収入と、プログラマーの優秀さとの相関関係もほとんどなかったと記述されています。

さて、御自分の実感(体感)では十倍では聞かない云々おっしゃってる方々の その数字の根拠をお訊きしたいところでありますね。 とはいえ上記のテスト内容から見ると、十倍という数字も現在にそのまま適用して良いのかも疑問すな。

■_

■_

コメント欄のやり取りを眺める。Call by Sharing 知名度ねえなあw 「参照の値渡し」とかより紛れがないと思うんだけども。 図解 javaは参照渡しではなく参照の値渡しであるという事 - 蟻の実験工房(別館ラボ) ここは「専門家の間でも意見が分かれる」ってやつがあるんじゃないかなと思っています。 それはない。たぶん(「専門家」の定義にもよるか)。 でも Javaの本とかCでもその手の間違いを堂々と書いてたりするのよねえ。

Evaluation strategy - Wikipedia, the free encyclopedia Rubyist Magazine - 値渡しと参照渡しの違いを理解する

2013年07月19日

■_

晩飯喰った後寝てた。

■_

Ruby のインストール後のサイズが… Compiling Perl, Python and Ruby

2013年07月18日

■_

今月号の第二特集よかった。 そして来月号の特集が(ry (気になる人は書店行ってチェック!)

Raspberry Pi や BeagleBone だとスペック良すぎという気がしないでもないんだけど、 いまさら8ビットや16ビットのプロセッサで…ということはハードに密着した処理を 知るためであっても選択肢としては考えづらいんですかねえ。 などと考えたり。 Make: Japan | Arduino Uno対BeagleBone対Raspberry Pi

■_

プログラマが満たすべき最低基準って? - (define -ayalog ’())

■_

2013年07月17日

■_

なんか翻訳に対する文句が多いのだけどどうだったかなあ 確かに以前都立中央図書館に調べものしに行ったときに 何冊かJavaの本も見て、なんか変だなあと思ったのがあったような記憶がかすかに (この本だったかはわからない) Amazon.co.jp: カスタマーレビュー: プログラミング言語Java (The Java Series)

C++ Reading List | Dr Dobb's に挙げられているうちの三冊を持っていた(そして積んでいる…)

■_ 新米プログラマーへのアドバイス

Advice to a New Programmer | Dr Dobb's 見出し部分だけ抜き出すと Read a lot of code (たくさんコードを読め)、 Learn your tools thoroughly (ツールをとことん知れ)、 Plan your code before you write it (コードを書く前によく考えろ。くらい?) Write lots of code and have it reviewed (たくさんコードを書け、レビューされろ) Write tests as you code (テストも忘れず書け) ま、そうですよね。

■_

■_

やっぱさあ、「公的試験受けろ。受験料は出す。ただし合格したら」じゃあ 元々受験する気のなかった(薄かった)人を受ける気にさせるのには 効果薄じゃないのかなあ (もちろん、受験料以外の「特典」もない)。

2013年07月16日

■_

1980年代末~1990年代中頃に出版されてたものって翻訳物も含めて 今も有効なもの、というか今こそ使えるようなことが書かれているのに 絶版状態ってのが多い気がする今日この頃。 古本にバカみたいな値段がついてるのはそう多くはないのかもしれないけど。

■_

すげー Quine リレー - まめめも Quine Relay | Hacker News An uroboros program with 50 programming languages : programming

■_ call by

なんかまたついったの一部で盛り上がってまして 図解 javaは参照渡しではなく参照の値渡しであるという事 - 蟻の実験工房(別館ラボ) はてブのコメントの中にこういうのが はてなブックマーク - tmurakamのブックマーク - 2013年7月16日 それを参照渡しというんだっつーの

はいはい。Does Java pass by reference or pass by value? - JavaWorld

あと、Evaluation strategy - Wikipedia, the free encyclopedia call by value のとこと、そのすぐ後の Implicit limitations ね。 In some cases, the term "call-by-value" is problematic, as the value which is passed is not the value of the variable as understood by the ordinary meaning of value, but an implementation-specific reference to the value. The effect is that what syntactically looks like call-by-value may end up rather behaving like call-by-reference or call-by-sharing, often depending on very subtle aspects of the language semantics.

Evaluation strategy - Wikipedia, the free encyclopedia

Call by reference

In call-by-reference evaluation (also referred to as pass-by-reference), a function receives an implicit
reference to a variable used as argument, rather than a copy of its value. This typically means that the
function can modify (i.e. assign to) the variable used as argument—something that will be seen by its caller.
Call-by-reference can therefore be used to provide an additional channel of communication between the called
function and the calling function. The same effect can be emulated in languages like C by passing a pointer
(not to be confused with call-by-reference), or in languages like Java by passing a holding object, that can
be set by the caller. A call-by-reference language makes it more difficult for a programmer to track the
effects of a function call, and may introduce subtle bugs.

Evaluation strategy - Wikipedia, the free encyclopedia

Call by sharing

Also known as "call by object" or "call by object-sharing" is an evaluation strategy first
named by Barbara Liskov et al. for the language CLU in 1974.[3] It is used by languages such as Python,[4]
Iota, Java (for object references),[5] Ruby, Scheme, OCaml, AppleScript, and many other languages. However,
the term "call by sharing" is not in common use; the terminology is inconsistent across different
sources. For example, in the Java community, they say that Java is pass-by-value, whereas in the Ruby
community, they say that Ruby is pass-by-reference[citation needed], even though the two languages exhibit the
same semantics. Call-by-sharing implies that values in the language are based on objects rather than primitive
types.

The semantics of call-by-sharing differ from call-by-reference in that assignments to function arguments within
the function aren't visible to the caller (unlike by-reference semantics)[citation needed], so e.g. if a
variable was passed, it is not possible to simulate an assignment on that variable in the caller's scope.
However since the function has access to the same object as the caller (no copy is made), mutations to those
objects, if the objects are mutable, within the function are visible to the caller, which may appear to differ
from call-by-value semantics. For immutable objects, there is no real difference between call-by-sharing and
call-by-value, except for the object identity.

Javaの言語仕様にはなんか書かれてたっけか

2013年07月15日

■_

4522敗の記憶 ホエールズ&ベイスターズ 涙の球団史
4522敗の記憶 ホエールズ&ベイスターズ 涙の球団史 読んでいて正直辛くなる部分も。 「勝ち続けること」というのは難しいのだねえ。 タイガースも1985年の優勝の後、数年してから長く低迷してたなあ。 今のベイスターズの方が桁違いにひどいけど。

■_

歴史的経緯による仕様。ですよね?

Bizzare String#split behaviour! : ruby

Hi guys! Some help regarding the snippet below please.

I'm trying to split the string at the <space>, but not at the newline characters. However, split(" ")
would also split the second string in two at the \n character even though it wasn't a space.

Is there a catcha I'm not aware about?

2.0.0-p247 :052 > str = "abcdef\n ghijkl\nmnopq\n"
"abcdef\n ghijkl\nmnopq\n"
2.0.0-p247 :053 > str.split(" ")
[
    [0] "abcdef",
    [1] "ghijkl",
    [2] "mnopq"
]
2.0.0-p247 :054 > str.split("\s")
[
    [0] "abcdef",
    [1] "ghijkl",
    [2] "mnopq"
]
2.0.0-p247 :055 > str.split(/\s/)
[
    [0] "abcdef",
    [1] "",
    [2] "ghijkl",
    [3] "mnopq"
]


From the ruby docs for String#split:

    If pattern is a String, then its contents are used as the delimiter when splitting str. If pattern is a
    single space, str is split on whitespace, with leading whitespace and runs of contiguous whitespace
    characters ignored.

Hooray principle of least surprise!

str.split(/ /) should give you the behaviour you want.


Cheers, I found the answer, though I'm still unsure why this happens... I did not expect ruby to consider newline a space.


For whatever reason, it's a special case.

Probably one of those things that seemed like a good idea in 1995 and now can't be changed because it would
break the programs that rely on it.

■_

誰かよくわかる解説希望○| ̄|_

Master Matsumoto : ruby

When Matsumoto first came to these shores, he met a precocious young hacker who was strong in the way of Perl, which had many practitioners then.

“Matsumoto,” the young man said, “why should I learn your foreign Ruby? I am strong in the way of Perl, and I have yet to find a problem it is not flexible enough to solve.”

Matsumoto smiled his kind smile and said, “One does not learn Ruby for oneself. One learns Ruby for others.”

“Ha,” the young man said, “then your way is not for me. I am not the cooperating type. I work on my own projects and my projects alone. No one but me reads my code.”

Matsumoto bowed his head and said, “All hackers cooperate, even you.”

“You are a fool, Matsumoto! Did I not just say I work alone?”

To this Matsumoto said, “Even he who works alone, cooperates with all the men he was and will become.”

Upon hearing this, the young man was enlightened.

■_

ちょっと気になってる本

■_

知らなかったw>スーパーマン

【先行上映組】宇宙戦艦ヤマト2199 第165話

605 名無しさん@お腹いっぱい。 [sage] 2013/07/14(日) 09:24:07.74 ID:Uj6w6SsL0 Be:
    自転の方向とは逆の軌道を回り始めるヤマト
    するとあら不思議、地球も反対方向に回り始め、時間が逆転
    そして元の美しい地球が蘇るんだよ、多分 

613 名無しさん@お腹いっぱい。 [sage] 2013/07/14(日) 11:34:00.40 ID:VUrN8KZW0 Be:
    >>605
    スパーマン(映画)かよw 

705 名無しさん@お腹いっぱい。 [sage] 2013/07/14(日) 16:00:18.10 ID:oUp3kd75P Be:
    >>605
    スーパーマンの映画の事指してるなら思いっきり間違って認識してるよ
    あれは光速を超えたスーパーマンが時間を逆行してるシーン。
    それを表現するためにスーパーマン視点での地球、つまり時点の逆行した映像を見せてる

    決して時点を逆行させて時間を巻き戻してるわけじゃない、
    当時まだSF考証の緻密さなんて話題にならない時代で、これ理解出来てる視聴者がかなり少なかったけどね。
    光速超えちゃう時点でぶっ飛んでるんだけど、表現としては結構まともに考えて映像表現してたんだよあのシーン 

843 名無しさん@お腹いっぱい。 [sage] 2013/07/14(日) 19:55:20.09 ID:Un3gbNbs0 Be:
    >>705
    知らなかった……当時なんかの記事で思いっきり
    「地球を逆転させて時間を戻した」って書いてあったんでな… 

847 名無しさん@お腹いっぱい。 [sage] 2013/07/14(日) 20:04:21.73 ID:qln7znik0 Be:
    >>705>>843
    理解してなかったから、地軸を操作して自転逆転で魔空空間を作るなんてことやったのが日本人だけどなw 

2013年07月14日

■_

沈黙の艦隊。 最近刊行が始まった愛蔵版だかが、買うとデジタル版が無料でダウンロードできるとか あったので(フォーマットが分からんけど)、じゃあ買ってみるかと思ったのですが よーく見るとそのデジタル版は読める期間が限定されているものらしかった。 ちぇっ。 新装版 沈黙の艦隊(1) (モーニングKCDX)
新装版 沈黙の艦隊(1) (モーニングKCDX) あ、「新装版」か。

Making Software ―エビデンスが変えるソフトウェア開発
Making Software ―エビデンスが変えるソフトウェア開発 「ピープルウェア」はたぶん人にあげたかしちゃって手元にはなかったので こいつで。 この本、ほとんど話題にのぼらないけど良いこと書かれてると思うんだけどなあ (高橋会長もそういった趣旨のことを新年恒例のアレで言ってたかと)。

O'Reilly Japan - Making Software

30章 10倍が意味するものは?プログラマの生産性のばらつき測定(スティーブ・マコネル)
     ソフトウェア開発における個人間の生産性のばらつき
     プログラマ個人の生産性を測定する際の問題
     ソフトウェア開発におけるチーム生産性のばらつき
     参考文献

でまあ結局のところ、個々人の「生産性」を積み上げて (ん、なんか変な言い回しだな) プロジェクト全体の見積もりだとか進捗をみるのに使うのはムリがあるんじゃね? という話になるなんですが (抜き出して引用しようかと思ったのですが面倒なので思いとどまった)、 口を極めて罵るようなこと書くようなこたないよねえ ということを ITエンジニアの『生産性』と、データ・サイエンスの微妙な関係 : タイム・コンサルタントの日誌から のコメント欄とか某blogを見てて思いましたまる (オチはありません)

■_

2013年07月13日

■_

世の中にはいわゆる「フォーク並び」を理解できない人が(年齢高めの人を中心に)いるらしいとは聞いていたものの、 職員は注意しないとダメだろ>某図書館

ファミコンで☆ローレイヤー開拓

■_

■_

読んでみたい… Programming Language: Kenneth E. Iverson: 9780471430148: Amazon.com: Books

■_

というわけでまだ復活しているわけではなかったりして

2013年07月12日

■_

電気ケトル。意外に電気喰うのねあれ。 象印、置き場所を選ばない“蒸気レス”仕様の電気ケトル - 家電Watch 電気ケトル 消費電力 - Google 検索

■_

オライリーの新刊予定で

■Coming Soon
来月発売予定の書籍情報です。7月は以下の4タイトル。鋭意制作
中につき、楽しみにお待ちください。
-----------------------------------
●初めてのPHP、MySQL、JavaScript&CSS 第2版

Robin Nixon 著
永井 勝則 訳
608ページ
定価3,780円(税込)
ISBN978-4-87311-633-4
-----------------------------------
●続・初めてのPerl 改訂第2版

Randal L. Schwartz、brian d foy、Tom Phoenix 著
伊藤 直也 監訳
長尾 高弘 訳
432ページ
定価3,780円(税込)
ISBN978-4-87311-628-0
-----------------------------------
●「タッチパネル」のゲームデザイン

Scott Rogers 著
塩川 洋介 監訳
佐藤 理絵子 訳
384ページ
定価2,940円(税込)
ISBN978-4-87311-620-4
-----------------------------------
●オープンデザイン

Bas Van Abel、Lucas Evers、Roel Klaassen、Peter Troxler 著
田中 浩也 監訳
400ページ
定価3,780円(税込)
ISBN978-4-87311-631-0
-----------------------------------
●ゲームクリエイターが知るべき97のこと 2

NPO法人IGDA日本 小野 憲史 編
216ページ
定価1,995円(税込)
ISBN978-4-87311-622-8
-----------------------------------
●入門 データ構造とアルゴリズム

Narasimha Karumanchi 著
黒川 利明、木下 哲也 訳
530ページ
定価3,990円(税込)
ISBN978-4-87311-634-1

  

最後の「入門 データ構造とアルゴリズム」てのの原著が気になったのだけど 著者名でぐぐってみると結構本を書いてるみたいで Amazon.com: Narasimha Karumanchi: Books, Biography, Blog, Audiobooks, Kindle 原著はこの辺だろか Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles, Second Edition

■_

泳ぐやる夫シアター やらない夫が南北戦争を戦いぬくようです 第8回 【西部戦域】 血戦シャイロー(後編)

2013年07月11日

■_


一つ前へ 2013年7月(上旬)
一つ後へ 2013年7月(下旬)

ホームへ


リンクはご自由にどうぞ

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