ときどきの雑記帖'

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

一つ前へ 2013年4月(下旬)
一つ後へ 2013年5月(中旬)

ホームへ

2013年05月10日

■_

これ、元の論文まで読みに行った人どのくらいいるんだろか。 ベテランプログラマほど知識豊富なのだろうか プログラマーは年を重ねてもスキルを向上させ続けていることが研究で判明 - GIGAZINE 年配プログラマーだって新しい技術を吸収できる、という研究 | スラッシュドット・ジャパン

■_

Passbook ってなんだっけ。と調べながらやってみた。 おお、これはよさげ。

■_

■_

『アンドロイドは電気羊の夢を見るのか』の意味を解説 実はあのおまけわたしも大好きだったりする :)

http://anond.hatelabo.jp/20130510195807

原作よりも映画版、それも監督があとで削ってなかったことにしたバージョンのほうが好きな自分はきっと邪道。

でもあの「試写で映画会社の重役にウケが悪かったので急遽付け足した」最後のフレーズ、名句だと思うんだけどなぁ。
http://anond.hatelabo.jp/20130510202200

『彼は彼女を見逃してくれた。4年しか生きないと思って。

 だが、彼女の寿命は限られていないのだ。

 お互い何年生きるか、誰が知ろう』

っていうやつ。

最後のは

『自分が何年生きるのか? なんて、知っている者がいるだろうか?』

の方が英語の訳としては適切らしい。

ちょっと思い出せない部分があるんだけど、 最後の最後(の英語台詞)は 「I don't know how long (思い出せない) together, Who does?」 じゃあなかったかな。 「雨の中の涙のように」に比べればどーってことない(マテ 名セリフといえば ブレードランナー: こんなことしてません? ブレードランナー撮影秘話集

ブレードランナー クロニクル [Blu-ray]

■_

このくらいの量になるとやはり togetter とか使うべきなんかね

2013年05月09日

■_

そういえば表紙の変わったプログラミングClojure、まだ買っていないのだった。 いやまあ電書込みでセット買いしようかなあと思いつつ なんとなくだらだらと。

■_

■_

とりあえずこれからの展開に期待。かなあ。

■_

なんかだめ。

2013年05月08日

■_

やっぱ平日終業後の読書会(勉強会)はちときつい。いろいろ。

■_ bad developer

なんかやたらと伸びてるんで元記事読んだんだけど… "I am a Bad Software Developer" : programming I Am a Bad Developer | Hacker News

I Am a Bad Software Developer - Pen.io

The last four months of my life have been spent in the pursuit of getting to know myself better. It all
started about seven months ago when I was working at a job I didn't hate but I wasn't happy at. I
couldn't put my finger on exactly why I felt the way I did so when a friend came to me with a job that
offered twice what I was making and the opportunity to work on open source software I jumped at the
chance. This is what I learned:

I am a bad software developer.

満足行く offerがなかったとかいう話だったのかしらん

I Am a Bad Software Developer - Pen.io

Well my bookshelf is stocked with the classics: SICP, On Lisp, TAOCP, Expert C Programming, Effective C++,
and textbooks on algorithms, distributed computing, security, graphics, and maths of various branches.
I've read most of them (I'm still digesting TAOCP a chunk at a time). I also frequently read papers and
magazines from the likes of the ACM, IEEE, and various PhD's. If you were to judge me just by my reading
list you'd think I was university-trained but I'm not. I just like programming and want to know everything
that I can.

■_ フェア

忘れないうちに行っとかないと

■_ floating point

Computing with Floating Point; It's not Dark Magic, it's Science : programming これの言及先のスライド(PDF)結構良くできてると思う。

Computing with Floating Point; It's not Dark Magic, it's Science : programming

Although the form is not perfect (it is is only a set of slides, and there may be a couple of language
mistakes here and there), this is the clearest presentation I have ever seen of why IEEE 754 is a good
thing.

The IEEE 754 floating-point standard is only as good as it could possibly be. This means it is not good
enough for people who have to use it to translate complicated formulas from math directly to C++ and be
able to expect accurate results in all cases. There is no practical arithmetic system that could provide
this sort of convenience.

But IEEE 754 has been defined, and it is as good as it could possibly be, and now that it is defined, the
experts can apply mathematical analysis to it and provide the best possible elementary functions within
the system, and discover interesting results about the system itself.

The author of the slides is one such expert. And according to the name of the PDF file holding the slides,
he is addressing users of floating-point, people who see it as a means to get the real work done, rather
than an end. I think he is doing a tremendous job.

■_ 脆弱性

Nginx security advisory (CVE-2013-2028) : programming [nginx-announce] nginx security advisory (CVE-2013-2028)



--- src/http/ngx_http_parse.c
+++ src/http/ngx_http_parse.c
@@ -2209,6 +2209,10 @@ data:
 
     }
 
+    if (ctx->size < 0 || ctx->length < 0) {
+        goto invalid;
+    }
+
     return rc;
 
 done:

ここだけみてもなにがなにやらだけど、なにかの大きさやら長さが0未満でないか チェックしてるというところから判断すると割とありがちな穴? (負の数値をいつのまにか無符号で扱ってしまってどかーん)

■_ 最終回

泳ぐやる夫シアター AAで学ぶ南北戦争への道 最終回 南北戦争勃発 続・AAで学ぶ南北戦争への道 やらない夫が南北戦争を戦いぬくようです おお、やはり南北戦争も扱うのね。期待。 ところで 第一次世界大戦の半分くらいの分量かな? そういや第一次世界大戦の方はしばらく見てないような。

泳ぐやる夫シアター やる夫で学ぶ第一次世界大戦  第三十一夜「ドイツ暗黒の日」 これが三月の投下。読んでたっけか?

■_

2013年05月07日

■_

18時に予約してたのにそこから2時間近く待たされるなんて(ry

おかげで時間がぜんぜんねーよ!

■_

■_

Ways to do it According to the Programming Languages of the World

Ways to do it According to the Programming Languages of the World

    Perl - There’s more than one way to do it.
    C++ - There are 5 ways to do it, 3 out of which are not supposed to work.
    Visual Basic - The only way to do it is to use a third party component.
    ANSI C - There is usually one way to do it, but there’s more than one way to optimise it.
    Java - There’s barely one way to do it. (But as opposed to C++ it is guaranteed to work.)
    Python - There’s only one way to do it. The one true way of doing it. And then there are others.
    COBOL - The only way to do it is to use something else.
    Common LISP - There is a infinite series of ways to do it, increasing in elegance, and decreasing in legibility.
    Scheme - There are several ways to do it, but you have to chart all of them yourself.
    Haskell - You can think of any number of ways to do it, but only one will have a reasonable time or space complexity.
    Forth - There are several ways to write it, but no way to read it.
    HTML - There are many ways to do it. Most of them should be avoided at all costs, and the other ones should better be generated with something else.
    The C Preprocessor - There’s not supposed to be a way to do it.
    Fortran - there isn’t a way to do it... oh wait! Now there is.
    Bash - There are several ways to do it. Now one has to find a way to decide which way to do it.
    C Shell - The only way to do it does not work.
    zsh - There’s at least one way to do anything.

Copyright and Licence

This document is Copyright by Shlomi Fish, 2002, and is available under the terms of the Creative Commons Attribution-ShareAlike
License 3.0 Unported (or at your option any later version).

For securing additional rights, please contact Shlomi Fish and see the explicit requirements that are being spelt from abiding by that licence. 

それぞれにらしい訳をつけるのはちとめんどう

■_

頭文字繋げるとLISPになるのね

Lisp in Summer Projects - welcome

This summer, spend some quality time with your favorite technology in our 2013 summer programming contest!

The Lisp community is awarding prizes for demonstrating interesting and useful programs, technologies and
art using any LISP-based technology.

But why lisp? Aside from writing great software faster by beating the averages "Lisp is worth
learning for the profound enlightenment experience you will have when you finally get it; that experience
will make you a better programmer for the rest of your days".

2013年05月06日

■_

バーナード嬢曰く。 (REXコミックス) なんか結構売れ行き良いようで、自分も探すのちょっと苦労しましたがおもしろい 2013-04-19 - 暗之云の云之庵 主人公のバーナード嬢(自称)も、シャーロキアンの図書委員も良いけど、とにかく面倒なSFファン(つまり典型的なSFファン)の神林ちゃん(裏表紙で叫んでる娘)が良い。ハードSF作家、グレッグ・イーガン作品に関する深い考察には目から鱗が落ちました。

Technical Debt。日本語に訳すと「技術的負債」ですが、その使われ方はちょっと 首をかしげたくなるものもちらほら。向こうではどうなんすかね。 Managing Technical Debt

谷繁も2000本安打と。入団したての頃が想像できんなあ。 遠藤や佐々木のフォークを捕れなくて…とかw。

■_ memo

TLに流れてきたもの

あ、こっちのまとめの方が良かったw

■_

■_

ぎゃー、もうこんな時間

2013年05月05日

■_

へえ、こんなのが。 ニュース - ソフトウエア工学と方法論の再建を目指す「SEMAT」の日本コミュニティが活動開始:ITpro SEMATでは、今日のソフトウエア工学は流行に左右され、方法論が乱立、確たる理論的基礎がない。 また学会と開発の現場が分断されていると指摘。特定の立場や方法論によらずプラクティス、パターン、 メソッドを記述対話、理解、発展させることができるプラットフォームを作ることを目指している。

中村ノリが2000本安打。 正直バファローズやメジャーリーグに行った辺りでは好きな選手じゃなかったんだけど ベイスターズに来た以上は素直に祝福したい :) ところでこっちも2000本安打達成間近な谷繁。 ベイスターズ在籍期間よりドラゴンズ在籍期間の方が長くなってたりで以下略

あ、もうこの本出てたんだ。原著の絵を使ったのは良いな。 Amazon.co.jp: プログラマの考え方がおもしろいほど身につく本 問題解決能力を鍛えよう!: V.Anton Spraul, 角征典, 高木正弘: 本

■_ COBOLとFortranはどこで使われているのか

history - (For what) Are Fortran, Cobol and Co. used today? - Stack Overflow What are Fortran and Cobol used for today? | Hacker News

What are Fortran and Cobol used for today? | Hacker News

As an ex-COBOL programmer, I did some research in this area and I uncovered the following (from a 2009 blog post of mine).

--

Do a little research into COBOL and a few interesting things jump out at you. Some of this information
is from Gartner Group and the rest can easily be verified by doing even a brief survey of the field.
Taking the following bits of information:

* 75% of the world's business data passes through COBOL (Gartner Group estimate)

* There is possibly up to a fifth of a trillion lines of COBOL code out there (Gartner again)

* People are still writing COBOL constantly, but usually on existing systems.

* The industry is struggling to find new COBOL programmers because few young programmers love the thought
  of maintaining decades-old enterprise systems where all data is global and GOTO is often the first
  choice in flow control.

* Many companies want to move from COBOL, but can't do so easily because too much code is written in COBOL
  (and the source is often lost).

People really, really underestimate these problems. For example, I've seen several companies express a
desire to move away from Perl but find out they can't because they don't realize quite how reliant on the
language they are.

Now imagine a multi-national corporation with several million lines of COBOL code. What are they going to do?

COBOL salaries, from what I've seen, are trending upwards. Older programmers are sometimes being enticed
out of retirement to maintain legacy systems (this is rather hit or miss as there appears to still be
some age discrimination here). There are companies out there offering software to allow COBOL programmers
to write NetBeans, integrate with .NET code or simply translate the COBOL into other languages (the latter
appears to have mostly been a disaster, but I don't have enough hard data on this).

So let's summarize the above:

* Trillions of dollars flow through COBOL.
* Trillions of dollars flow through systems that businesses want to replace.
* Current mitigation strategies involve supplementing COBOL, not replacing it.

You come up with a strategy to allow COBOL systems to naturally migrate to a new language and you stand
to make millions of dollars. By the way, I said "naturally". There are things like COBOL to Java
translators (e.g., http://opencobol2java.sourceforge.net/ ), but COBOL is procedural and all variables are
global. It doesn't even come close to mapping to an object-oriented paradigm (and any experienced OO
programmer will understand why).

I actually have what I think is a decent migration strategy for COBOL, but that's a story for another day.

FORTRANとかCOBOLって秘伝のソース(コード)がごろごろありそう。 上の意見の他には、FORTRANは数値計算用のDSLだとかなんとかいうのが。

■_

コードレビューに関する記事も色々見てるんだけどまとめてないな (あ、需要ないすね)。 Patch review vs diff review, revisited | ocaml.janestreet.com

Patch review vs diff review, revisited | ocaml.janestreet.com

Patch review vs diff review, revisited

Fri, 2013/05/03 - 12:52pm — yminsky

I've been thinking about code review a lot recently.

Code review is a key part of our dev process, and has been from the beginning. From our perspective,
code is more than a way of getting things done, it's a way of expressing your intent. Code that's
easy to read and understand is likely to be more robust, more flexible, and critically, safer. And we
care about safety a lot, for obvious reasons.

But the importance of code review doesn't mean that we've always done a good job of organizing it.
I'll talk a bit more about how we used to do code review, how we do it now, and the impact that those
changes have had.

The bad old world

Our old code review process was what you might call batch-oriented. We'd prepare a set of changes for a
release, and then, after someone gave it a quick look-over, combine these changes together in a branch.
We'd then read over these changes very carefully, with multiple people reading each file, making
comments, requesting changes, and fixing those changes, until the code was in a releasable state.

以下略

冗談真に受けるなって言われるんだろうけど 「斧(マサカリ)飛ばしあう」ようなのは良くないだろうと思うんですよ。はい。

■_ 4倍の速さ

Reverse a String 4x Faster | Blog 32bitシフトしてるから何事かと思ったけど int が64ビット前提なのね

Reverse a String 4x Faster | Blog

Naive string reversal (e.g. http://www8.cs.umu.se/~isak/snippets/strrev.c) is simple and might feel
optimal. However, if we treat a string, i.e. a 1-byte array, as if it were an 8-byte array, then we
can do a reversal with an eighth as many swaps. With this in mind, we’ll do the same reversal
algorithm, but this time on 8-byte chunks. This doesn’t completely reverse the list, though. We need
to reverse each 8-byte piece about itself. Fortunately, we can reverse the bytes quickly with our
friends, >> and |.

Here’s the code:

■_

2013年05月04日

■_

オライリーとその他いくつかで 「Day of against DRM」ということで一日限定半額セールをやっていた (がっつり買わせていただきました(のせられてる)) O'Reilly Media - Technology Books, Tech Conferences, IT Courses, News Programming - Insight, Events, Resources - O'Reilly Media

■_ ソフトウェア病理学

図書館行って読んできました。 禁帯出の本だったし時間もあまりなかったのでがっつりとは読めなかったんですが まあ雰囲気は分かったかなあ。 確かに内容は悪くはないし、狙いは良いと思うんですが 自分の求めていたのとはちょっと違った感じが。 がんばって探したり原著に手を出したりはするまでもないかなあ。 余裕ないし。 ソフトウェア病理学―システム開発・保守の手引
ソフトウェア病理学―システム開発・保守の手引 翻訳した構造計画研究所ってPrologの技芸もやったところですよね。 どんなところだったんだろ…あ、あった 構造計画研究所 - Wikipedia また設立当時は多くの企業で構造設計に機械式卓上計算機を使っていたが、1961年に服部らは日本で初めて実用にコンピュータ(IBM 1620)を導入した。以後コンピュータユーザーの先駆けとしてOSの開発にも協力するほか、ソフトウェア開発ビジネスを開始する。そのためIT企業としての経験の蓄積にも強みがある。1980年代には移動体通信事業に参入し、ネットワーク開発にも取り組むほか、ソリューションやマーケティング事業も展開する。

構造計画研究所

原著はこちら。ついでに検索したときに見つけたのも貼り付けておこう。 さすがシュプリンガー値段も半端じゃない Assessment and Control of Software Risks (Yourdon Press Series) Reliability and Risk Issues in Large Scale Safety-critical Digital Control Systems (Springer Series in Reliability Engineering) Software Reliability Assessment with OR Applications (Springer Series in Reliability Engineering)

■_

これであなたもソーシャル断ち - Nothing ventured, nothing gained. そういやこれ読みかけだったなあ The Information Diet: A Case for Conscious Consumption
The Information Diet: A Case for Conscious Consumption あ、これも「翻訳希望リスト」入りの奴だw

■_

今日は Haskellで計算機代数勉強会 の日です - 北海道苫小牧市出身のPGが書くブログ melancholic afternoon いけがみさんをあまりネット上で見かけなくなってるので 話を聞きに行きたいなあと思いつつも話題についてけなかったな。行っても。

■_

■_

2013年05月03日

■_

ソフト・エッジ: ソフトウェア開発の科学を求めて (丸善ライブラリー)
ソフト・エッジ: ソフトウェア開発の科学を求めて (丸善ライブラリー) 読了。あとで書く。たぶん。

ふむ。行ってみるかな。 フィギュア作って30年 「海洋堂フィギュアワールド」が渋谷で開催中 - ねとらぼ

■_ こわい (その1)

■_

えーと、なんだっけ

■_ こわい (その2)

灘校パソコン研究部 文化祭2013

■_ software foundation

なんか聞き覚えがあるなあと思ったんだけどこれか > Software Foundation Software Foundations 『ソフトウェアの基礎』のePub版を公開しました。 - みずぴー日記 「Software Foundations(和訳: ソフトウェアの基礎)」はBenjamin Pierce氏らによって書かれたドキュメントであり、 Coqによりプログラミングやプログラミング言語の理論が解説されています。基本的な部分から丁寧に解説されているため、 Coqの入門書としてもプログラミング言語理論の入門書としても、非常に優れた内容となっています。 今回は、その「ソフトウェアの基礎」のePub版を公開しました。 対応したリーダを用いることで、 iPhoneやiPad、Androidで本ドキュメントを読むことができます。

ソフトウェアの基礎(beta) — ソフトウェアの基礎 1.0.2 documentation

■_

なんだろう?>「GC指向」

Aquário

■_

■_

おかしい。なんでもうこんな時間なんだ…

■_ たっけえ

COMIT - Wikipedia, the free encyclopedia の参考文献に挙げられてた Sammet, J.E.. "String and list processing languages", in Programming Languages: History and Fundamentals. ISBN 0-13-729988-5. Prentice-Hall. 1969. が気になって調べてみるとamazonさんで扱ってたがごまんえん… あ、良く見ると中古だと結構安い。ってこの本1969年の出版のはずなんだけど 「新品」って一体…

2013年05月02日

■_

キートン次は「秋」て…

なんか面白そうなことが書かれている気がするんだけど (腰を据えてじっくりよまないと)よくわからん。 After 100 Years, Ramanujan Gap Filled « Wolfram Blog

翻訳希望。pragprog ばっかだな… Driving Technical Change: Why People on Your Team Don't Act on Good Ideas, and How to Convince Them They Should
Driving Technical Change: Why People on Your Team Don't Act on Good Ideas, and How to Convince Them They Should Good Math: A Geek's Guide to the Beauty of Numbers, Logic, and Computation
Good Math: A Geek's Guide to the Beauty of Numbers, Logic, and Computation Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers)
Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers) Explore It!: Reduce Risk and Increase Confidence With Exploratory Testing
Explore It!: Reduce Risk and Increase Confidence With Exploratory Testing

■_ 状況開始

この「状況開始」の件ですが。

自衛隊用語「状況開始」を最初に誤用した犯人を捜しています。 - アニメ・声優 - 教えて!goo

自衛隊用語「状況開始」を最初に誤用した犯人を捜しています。

「状況開始」とは本来、「訓練状況開始」の略であり、実際の作戦行動に於いては決して使われない言葉であるのに、
よく、アニメや漫画などで「作戦行動開始」の意味で使われています。

最初に誤用した犯人は誰でしょうか?
押井守の機動警察パトレイバーあたりが怪しいと睨んでいるのですが、どうでしょう?

まっ、カッコイイから良いんですけど・・・・・
ちょっと気になってます。
自衛隊用語「状況開始」を最初に誤用した犯人を捜しています。 - アニメ・声優 - 教えて!goo

No.5ベストアンサー20pt


    回答者:tax_sos
    回答日時:2012/11/13 00:53

パトレイバー2を見返したので回答したいと思います。

泉ノアがテストパイロットをしている機体がデータ収集の為のテスト(訓練ではないと思います)が終わったときにメカニック?が、無線?で「状況終了」といっています。

また、劇中53:17あたりで自衛隊ヘリが「八咫烏(やたがらす)よりサクバ?、カムヤマト?の通過を確認、送れ」といっています。

「状況終了」と「送れ」を使っているのでそれなりの取材をしたのだと思います。

その上で、考えますと、以下はやはり間違っています。

橋を爆破する時に、東京で待ち構えていた警察ヘリ(と思われます)に不振に思われ、
「前方を飛行中の編隊へ、攻撃ヘリの出動要請は出ていない、所属、官制名?を名乗れ、聞こえるか?」

「ソンゼロ?より各機へ、時間だ、状況を開始せよ」

「了解、状況を開始する」

「おい、今のはなんだ? 状況ってなんだ?」

という台詞の流れになっています。
この後、特車二課が襲われます。実弾攻撃をして、パトレイバー等を壊滅されます。


行動はまさに、「作戦行動開始」が正しいです。
また、100歩譲って、無線傍受に備えて「状況開始」と言うならば、
「状況ってなんだ?」(この言葉から警察ヘリと判断しています)の時に、
多少の言い訳交信をしてもおかしくないと思うのです。

と、いうわけで、私の結論としては、押井守監督が、作戦開始を知らず、
そういう作戦の類いは、全て状況開始というものだとして認識していた可能性が高いとと考えます。
もしくは、原作の段階で取材が足らず、分かっていなかったかですね。

もうひとつの検証方法として、原作のヘッドギアか押井守監督のどちらかを
判断するには、いくつもある小説をすべて読んでみると原作者の間違いなのか、
監督が間違えたのか、もしかしたら?はっきりすると思います。
この回答へのお礼

いやー、この質問を放置して、約2年、まさか新たな回答があるとは・・・正直驚いています。

やはり、押井守監督が怪しい、というか、もう主犯は押井守監督とします。

押井守監督が何故誤解したのか、誰から間違った知識を得たのかは不明ですが、

押井守監督の誤用から、他の作品に伝染したのは間違いなさそうですね。

まあ、証拠不十分で証明は出来ませんが、私の中では、そう結論付けました。

ちなみに、好きですよ、押井守監督。

何週間か前にも、この質問のリンクつきでついったでやりとりがあったぽいですが 押井守の「世界の半分を怒らせる」。 - ニコニコチャンネル :社会・言論 の15号で、↑の件について読者から質問とそれに対する押井さんからの回答がありました。 質問は、どのように使う言葉なのかわかってて「状況開始」を意図的に使ったのか あるいは間違って使ってしまったのかというもので、 それに対する回答は、『誤用ではない』。 なぜあそこで「状況を開始せよ」とするのが「正しい」のかの理由は劇中で何度も触れられている。 とのことでした(実際にはこういう書き方ではないですけどね。丸ごと書き写すのも気が引けるので)。

機動警察パトレイバー 2 the Movie - Wikipedia 機動警察パトレイバー2 the Movie/全台詞

自分はこの回答で十分納得はしたんですが、一応それを踏まえてもう一度観ておかないといかんですねw EMOTION the Best 機動警察パトレイバー2 the Movie [DVD]
EMOTION the Best 機動警察パトレイバー2 the Movie [DVD]

■_

おおう。読んでいる時間ががが 泳ぐやる夫シアター AAで学ぶ南北戦争への道 第39回 南部独立 泳ぐやる夫シアター AAで学ぶ南北戦争への道 第40回 サムター砦

こっちは読んだ 泳ぐやる夫シアター やる夫と学ぶホビーパソコンの歴史 番外編その2 インベーダーで100円玉が不足したってホントなの!?

■_

年配プログラマーだって新しい技術を吸収できる、という研究 | スラッシュドット・ジャパン のはなし。 こういうのは元記事、というか今回は元の論文読まないとなー と思いつつも、 たったの4ページ(ダウンロードして開いてはみたらしい)なのに なんかこう読もうという意欲がががが。 さすがに abstract は目を通しましたが

NC State News :: NC State News and Information » Older Is Wiser: Study Shows Software Developers’ Skills Improve Over Time

Abstract: Becoming an expert at programming is thought to take an estimated 10,000 hours of deliberate
practice. But what happens after that? Do programming experts continue to develop, do they plateau,
or is there a decline at some point? A diversity of opinion exists on this matter, but many seem to
think that aging brings a decline in adoption and absorption of new programming knowledge. We develop
several research questions on this theme, and draw on data from StackOverflow to address these
questions. The goal of this research is to support career planning and staff development for
programmers by identifying age-related trends in StackOverflow data. We observe that programmer
reputation scores increase relative to age well into the 50’s, that programmers in their 30’s tend to
focus on fewer areas relative to those younger or older in age, and that there is not a strong
correlation between age and scores in specific knowledge areas.

■_

2013年05月01日

■_

なんだかんだで近代麻雀買い損ねて(行ったコンビニに置いてなかった×2、駅の売店でタイミングが悪くて 買えなかった等々)ワシズ様がどうなったのかとても気になる。

有料、つっても15ドルくらいなんだけど 仕事のために買うものであってしかもなくてもどうにかなる(できる)もので それのおかげでアウトプットの質を上げても 評価が上がるわけでもましてや給料が上がるわけでもないので買わないことにしたとある論文。 買ってくれつーても色々面倒があったり 「経費節減」で以下略だったり。

■_ 文字列

そういえば BASIC、 一番最初のそれには文字列型の変数はなかったんじゃなかろうかと思い出し Dartmouth BASIC - Wikipedia, the free encyclopedia を見てみるとやはりないっぽい。 しかし、Bibliography にあるリンク先を見てみると、 version2 のマニュアルには記載がないけれども version4 のマニュアルには文字列型変数の記述がしっかりと。

2.7 Alphanumeric Infromation

    Our discussion of BASIC in previous section dealt only with numerical information.
However, BASIC will also handle alphabetic or combined alphabetic-numeric information.
We define a string to be a sequence of characters, each of which is either a letter,
a digit, a space, or some other printable character (but not a quotation mark for reasons
which will become obvios below).

    We may introduce variable for single strings and we may introduce 'string' vectors
(but 'string' matrices). Any ordinary variable followed by a $ (doller sign) will stand
for string. For example A$ or C7$ denote strings. A vector variable followed by $, e.g.
V$(), will denote a list of strings. Thus, V$(7) is the 7th string in the list.

  

こんな感じ。このあとも代入と比較のことを書いてたりするんだけど、 その他の演算(+ とか、left$() などの関数)については言及がない。 実装されていなかったのかもしれない。

んで SNOBOL。 ところでうぃきぺのSNOBOLのところで Influenced Icon, Lua, SL5 なんてあったりしてちょっとびっくりした >Lua に影響

SNOBOL - Wikipedia, the free encyclopedia

SNOBOL (StriNg Oriented and symBOlic Language) is a series of computer programming languages developed
between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P.
Polonsky, culminating in SNOBOL4. It was one of a number of text-string-oriented languages developed
during the 1950s and 1960s; others included COMIT and TRAC.

SNOBOL4 stands apart from most programming languages by having patterns as a first-class data type
(i.e. a data type whose values can be manipulated in all ways permitted to any other data type in the
programming language) and by providing operators for pattern concatenation and alternation. Strings
generated during execution can be treated as programs and executed.

SNOBOL4 was quite widely taught in larger US universities in the late 1960s and early 1970s and was
widely used in the 1970s and 1980s as a text manipulation language in the humanities.

The initial SNOBOL language was created as a tool to be used by its authors to work with the symbolic
manipulation of polynomials. It was written in assembly language for the IBM 7090. It had a simple
syntax, only one datatype, the string, no functions, and no declarations and very little error control.
However despite its simplicity and its "personal" nature its use began to spread to other groups. As a result the authors decided to extend it and tidy it up. They rewrote it and added functions, both standard and user-defined, and released the result as SNOBOL3. SNOBOL2 did exist but it was a short-lived intermediate development version without user-defined functions and was never released. SNOBOL3 became quite popular and was rewritten for other computers than the IBM 7090 by other programmers. As a result several incompatible dialects arose.

ということで、SNOBOL (の初期バージョン)が文字列型を導入した最初期のものっぽいですね。 併せて名前の挙げられたものもウィキペにあったのでみてみると

COMIT - Wikipedia, the free encyclopedia
COMIT Appeared in 	1957
Designed by 	Victor Yngve
Influenced 	SNOBOL

COMIT was the first string processing language (compare SNOBOL, TRAC, and Perl), developed on the
IBM 700/7000 series computers by Dr. Victor Yngve and collaborators at MIT from 1957-1965. Yngve
created the language for supporting computerized research in the field of linguistics, and more
specifically, the area of machine translation for natural language processing. The creation of COMIT
led to the creation of SNOBOL.

おおう。>COMIT was the first string processing language

TRAC (programming language) - Wikipedia, the free encyclopedia

TRAC (for Text Reckoning And Compiling) is a programming language developed in the early 1960s by Calvin
Mooers. It was one of three "first languages" recommended by Ted Nelson in Computer Lib.

TRAC is a purely text-based language—a kind of macro language. Unlike traditional ad hoc macro languages
of the time, such as those found in assemblers, TRAC is well planned, consistent, and in many senses
complete. It has explicit input and output operators, unlike the typical implicit I/O at the outermost
macro level, which makes it simultaneously simpler and more versatile than older macro languages.

It also differs from traditional macro languages in that TRAC numbers are strings of digits, with integer
arithmetic (without specific limits on maximum values) being provided through built-in ("primitive")
functions. Arguably, one aspect of its completeness is that the concept of error is limited to events
like lack of file space and requesting expansion of a string longer than the interpreter's working
storage; what would in many languages be described as illegal operations are dealt with in TRAC by
defining a result (often a null string) for every possible combination of a function's argument strings.

The emphasis on strings as strings is so strong that TRAC provides mechanisms for handling the language's
own syntactic characters either in their syntactic roles or like any other character, and self-modifying
code has more the feel of a natural consequence of typical TRAC programming techniques than of being a
special feature.

文字列を実行時に組み立ててそれをプログラムとみなして…とか。

ところでSNOBOL。

Listbox • Email Marketing and Discussion Groups

    From: David Farber <dave@farber.net>
    To: Ip Ip <ip@v2.listbox.com>
    Subject: WORTH READING Wikipedia entry on SNOBOL -- the TRUE story NOT Wikipedias
    Date: Fri, 26 Dec 2008 09:11:29 -0500

The naming of Snobol is one of my favorite stories. As one of the three creators, I will attest that
this is as close to a true story as you will get.

(略)

That made it clear that we needed another name!! We sat and talked and drank coffee and shot rubber
bands and after much to much time someone said -- most likely Ralph "we don't have a Snowball chance
in hell of finding a name". All of us yelled at once "WE GOT IT -- SNOBOL" in the spirit
of all the BOL languages. We then stretched our mind to find what it stood for.

Anyone want to edit Wikipedia

Dave

BTW there is a home cleaner named SNOBOL (we were there first I believe) -- http://www.churchdwight.com/Conprods/Household/cleaners.asp

なんだってーw >名前の由来

■_

what makes code hard to understand?

■_

Alan Wood の 「software reliability growth models」って論文に、 ゴンペルツ曲線やらでごにょごにょする手法に対して 前提は Defects are repaired immediately when they are discovered なのに 実際は defects are not repaired immediately, but this can be parially accommodated by not counting duplicates. Test time may by artificially accumulated if non-repaired defect prevents other defects from being found. だとか 他にも Defect repair is perfectという前提をしているけどそれ実際は Defect repair introduces new defects. The new defects are less likely to be discovered by test since the retest for the repaired code is not usually as comprehensive as the original testing. だろうとか色々書いてて面白い。 当然と言えば当然のことなんだけど、故意か過失かこのこと書いてる人はあまりいないような (Y先生とか)。 他に挙げられていた仮定は以下の通り。対応する現実は打ち込むのが面倒なので略

No new code is introduced during QA test
Defects are only reported by the product testing group
Each unit of time (calendar, execution, number of test cases) is equivalent
Test represent operational profile
Failures are independent

そういやつい最近買ったある本にも ソフトウェア開発時の累積バグ数の伸びによくフィットすると言われている ゴンペルツ曲線とかなんとかあったなあ。 言い出しっぺ誰ーっ Excelで学ぶ時系列分析と予測
Excelで学ぶ時系列分析と予測

■_

Windows8 のドライバーのコードはひどいという話 Why Windows 8 drivers are buggy : programming Why Windows 8 drivers are buggy

Why Windows 8 drivers are buggy

We have checked the Windows 8 Driver Samples pack with our analyzer PVS-Studio and found various bugs in
its samples. There is nothing horrible about it - bugs can be found everywhere, so the title of this
article may sound a bit high-flown. But these particular errors may be really dangerous, as it is a usual
practice for developers to use demo samples as a basis for their own projects or borrow code fragments
from them.

で挙げられている例を見るとなるほどこれは…

■_ さよなら Tcl/Tk

ついに。

sqlitestudio.pl • View topic - Sayonara Tcl/Tk

Long story short: SQLiteStudio moves from Tcl/Tk to C++/Qt, because Tcl/Tk wasn't good enough. More
details on new version are here.

Now, if anybody's interested in details of why Tcl/Tk is not good enough, I will elaborate on this.

I was struggling with various problems in Tcl. I used to be a strong Tcl fun. I've been programming in
it for about 10 years.

I believed in its simplicity and great possibilities. Well, at least the former one is true. I have had
enough. I decided to move to C++ with Qt.

Tcl is broken at design level and it also lacks base set of ready to use solutions. I still think it's
excellent tool for simplifying daily tasks.

I use it and probably will use it for that purpose. It turns out that its name fits it perfectly
(Tcl - Tool Command Language).

Here are few examples of what made me change my mind:

そういや Tk のウィジェットの組み合わせとかすっかり忘れちゃったなあ。

■_


一つ前へ 2013年4月(下旬)
一つ後へ 2013年5月(中旬)

ホームへ


リンクはご自由にどうぞ

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