ときどきの雑記帖 2012

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

一つ前へ 2012年12月(上旬)
一つ後へ 2012年12月(下旬)

ホームへ

2012年12月20日

■_

ジュンク堂書店池袋本店/PC書 (junkudo_ike_pc)さんはTwitterを使っています 書泉ブックタワーコンピュータ書売り場 (shosen_bt_pc)さんはTwitterを使っています を見てても、 デバッグの理論と実践 ―なぜプログラムはうまく動かないのか が入った気配はなく。 でもTwitter / nappa: 「デバッグの理論と実践」フラゲ成功 http://t ... こういう人がいたり。 さらに今まで知らなかった(気がつかなかった)気になるタイトルが。 本|エレメンタルデザインパターン パターンの基礎を学び、より有効に活用する|ジェイソン・マクスミス/SDLPlc|9784864011457|オンライン書店 | boox store

■_ デ は Digital の デ

カーニハン大先生の本 2013年3月新刊予定:ディジタル作法 カーニハン先生の「情報」教室 - オーム社開発部

2013年3月新刊予定:ディジタル作法 カーニハン先生の「情報」教室 - オーム社開発部

ディジタル作法 カーニハン先生の「情報」教室
Brian W. Kernighan 著 久野 靖 訳
ISBN 978-4-274-06909-3
A5判
288ページ(予定)
★立派な大人がディジタル社会とITについて知っておくべきこと。
 多くの学生がITに関するニュースを正しく理解し、間違った内容であれば指摘できるようになることを
  目指して、ITの普遍的な技術や概念を丁寧で分りやすく解説。あらゆるものがディジタル化されている
  現代の社会で、一人前の社会人として生きていくために知っておくべき教養がこの一冊に濃縮されています。

 計算機科学者ブライアン・カーニハン氏によるプリンストン大学の講義を基にした書籍
  "D is for Digital: What a well-informed person should know about computers and communications"の翻訳書です。

タイトルに見覚えはあるんだけど、買った気配がないw

D is for Digital

This book explains how today's computing and communications world operates, from hardware through
software to the Internet and the web. It includes enough detail that you can understand how these
systems work, no matter what your technical background. The social, political and legal issues
that new technology creates are discussed as well, so you can understand the difficult issues we
face and appreciate the tradeoffs that have to be made to resolve them.

Contents

Preface
Introduction
Part I: Hardware
    What's in a Computer?
    Bits, Bytes, and Representation of Information
    Inside the CPU
    Wrapup on Hardware
Part II: Software
    Algorithms
    Programming and Programming Languages
    Software Systems
    Learning to Program
    Wrapup on Software
Part III: Communications
    Networking
    The Internet
    The World Wide Web
    Data, Information, and Privacy
Wrapping Up
Notes
Glossary
Index

早速ぽちりましたよ、ええ。 D is for Digital: What a Well-Informed Person Should Know About Computers and Communications D is for Digital

■_

■_

色々とダメ

2012年12月19日

■_

めもめも NHK ハーバード白熱教室 2013年1月2日(水) 午前11時~午後0時「すべてをお金で買えるのか」[前編] 2013年1月3日(木) 午前11時~午後0時「これからの日本の話をしよう」[後編]

クビライ NHKの歴史番組でそういってたので気になった (ちょっと前の大河の北条時宗あたりでそうだったかも)。 クビライ - Wikipedia

クビライ - Wikipedia

クビライ(Qubilai Qubilai, Khubilai)は、モンゴル帝国の第5代皇帝(大ハーン)。同時代のパスパ文字
モンゴル語およびモンゴル文字などの中期モンゴル語のラテン文字転写では Qubilai Qa'an、Qubilai Qaγan。
現代モンゴル語のキリル文字転写では Хубилай хаан。漢字表記は忽必烈。
(略)

大元ウルス時代に書かれたパスパ文字モンゴル語での表記や上述のペルシア語文献といった同時代における
多言語資料の表記などによって、当時の発音により近い形への仮名転写として、クビライ・カアン(カーン)
という表記がされる。一方、現代モンゴル語では Хубилай хаан (Khubilai khaan) と書かれ、また近現代の
モンゴル文字文献の表記や発音に基づいてフビライ・ハーンと表記することも非常に多い。

ふーん。

■_ 25周年

昨日に引き続き 25歳の誕生日を迎えたPerl, 次の25年はあるかな? Perl、 25周年の誕生日を迎える | スラッシュドット・ジャパン デベロッパー

Perl is 25 years old today | Hacker News

I've found over the past decade or so that when I write a "perl" program I'm 
really writing about five lines of glue code around multiple CPAN packages. Well maybe 
more than 5 lines for control flow, some business-logic error handling, etc.

When I write in another language I spend a long time looking for a library like the 
ten I'd find in CPAN, sometimes I find one but often enough not, then a long time 
complaining about how if I used perl I'd have access to the perfect CPAN module and 
therefore already be done with the whole project, then basically reimplement the CPAN 
module in the smaller inferior language, then finally write glue logic to link stuff 
together.

I never fail to be amazed when I see pages and pages of an inadequate homemade xml 
parser written in an inferior language or maybe a blizzard of regex, and then hearing 
bragging about how in Perl the elegant alternative language code would closely 
resemble line noise. No, in Perl, those pages and pages of buggy code would instead 
closely resemble one line: "use XML::Simple;" Repeat a zillion times over.

My "perl" programs / systems actually shrink in length over time rather than 
expanding, which is unusual in smaller languages.


Perl is 25. Python is 21. Lua is 19. Ruby is 17.

Interesting how I consider Perl an 'old' language, and the others new languages. I guess it says
more about how revolutionary Perl was at the time and how quickly it became widespread. The only
other language I know of that went from 0 to everywhere in under 5 years was Javascript.


Made me look up the timeline of when languages were released:
  http://en.wikipedia.org/wiki/Timeline_of_programming_languag...

Pascal is 42, C is 40. Lots of fun info on that page.


I don't know where you can find widespread Pascal, but Fortran is 55 and is still actively used
and distributed in NumPy.

It would be interesting to know if anything older than Fortran 77 is still in active use. I know
that there is a lot of F77 still around, but the Fortran code I've seen at NASA is at least up to
F90/F95. Someone who learned F95 or later and never wrote fixed format Fortran would be pretty
lost if they had to work on F77 or, Backus forbid, F66. C, on the other hand, has changed much
less, beyond the ANSI function declarations. I first used the C version that was in 6th Edition
AT&T UNIX and that had some features that would look strange to modern users, such as
initializers not using = signs:

int i 4;

and the assignment operators being the other way round:

a =+ 2;

The point is, when discussing the age of a language, how important is the degree of change over time?
At what point is it a new language? The same is true of human languages. I can understand
Shakespeare with little trouble, but I miss some points unless there are footnotes. I can get a bit
of Chaucer, but far from full comprehension. Beowulf? Not a prayer. But it's all "English"...

このあと言語の年齢談義?に。

■_

reddit でも。

25 years of Perl. : programming

25 years of Perl. (news.perlfoundation.org)


And 12 years of Perl 6 development...


It will be done by Christmas!


It's curiously unspecific as to which Christmas though...


aand it's also the 11th anniversary of that joke ;)

Bjarne said that about C++, and C++ is in quite a different situation from Perl. C++ is not going
anywhere, the hate it gets is what Stroustrup described.

Perl, on the other hand, is dead. It held a dangerous spot in the language design space indeed, an
imperative interpreted language, and now this spot is split between Python and Ruby, which are
better than Perl in every respect except suitability for "Obfuscated Lang" contests.

The problem is, a language with its ecosystem can't die overnight, like a diplodocus whose head
somebody bit off it's going to lumber around like forever. There are tons of legacy perl code
around, there are people supporting it, and as you can see in their echo chamber they don't have a
slightest cue that their mount is already dead, they might idly wonder why there aren't any young
perl programmers around recently (like, since ten years ago, that kind of old people's recently),
but otherwise perl seems to be as alive as ever to them.

So you get this entirely different kind of... hate? No, more like contempt, for perl, not at all
resembling what people feel about C++.

■_ バグ数予測

新記事が。 山浦恒央の“くみこみ”な話(49):これなら残存バグ数を予測できる? 健全で実践的な「2チーム制」モデル - MONOist(モノイスト)

さて、次回は「Gompertz Curve(ゴンペルツ曲線)」を適用した、残存バク数の予測法について解説します。 これもなあ…

■_ Ada 2012

どの辺が変わったんでしょうか

Ada 2012 Language Standard Approved by ISO | Press | AdaCore

Ada 2012 Language Standard Approved by ISO

Language revision adds contract-based programming, multicore support, and other advanced features

(略)

Ada 2012 brings significant enhancements to Ada, most notably in the area of “contract-based
programming.” New features here include the ability to specify preconditions and postconditions
for subprograms, and invariants for private (encapsulated) types. These take the form of Boolean
expressions that can be interpreted (under programmer control) as run-time conditions to be checked.
The contract-based programming features fit in smoothly with Ada's Object-Oriented Programming
model, and support the type substitutability guidance supplied in the Object-Oriented Technologies
and Related Techniques Supplement (DO-332) to the new avionics software safety standard DO-178C / ED-12C.

(略)
Copyright © 2011 AdaCore. All Rights Reserved.

気になる >“contract-based programming”

■_

■_

2012年12月18日

■_

リスト作成中

■_ 25

25周年だそうで The First Twenty-Five Years - The Perl Foundation

■_ CCAN

C 版のアレ。 ccan: Comprehensive C Archive Network : programming ccan

ccan

The Idea

That nice snippets of C code should be moved out of junkcode directories and exposed to a wider world,
where they can become something useful.

CCAN is loosely modelled after the successful CPAN project for Perl code development and sharing.

(略)

Perl Programming Langauge is 25 years old today. | Hacker News

Perl Programming Langauge is 25 years old today. | Hacker News

Perl is 25. Python is 21. Lua is 19. Ruby is 17.

Interesting how I consider Perl an 'old' language, and the others new languages. I guess it says
more about how revolutionary Perl was at the time and how quickly it became widespread. The only
other language I know of that went from 0 to everywhere in under 5 years was Javascript.

…あれ?

■_

2012年12月17日

■_

そろそろ欲しいなあ 【レビュー】スマートデバイス対応の強化で一層便利になったドキュメントスキャナ - PFU「ScanSnap iX500」 (1) 約3年半ぶりにフルモデルチェンジした「ScanSnap iX500」 | パソコン | マイナビニュース

■_

InfoQ の右側カラムのこれ。良かった → Keynote: Real Software Engineering んで、「Engineering and the mind's eye」というのが途中で出てきて気になったのでぐぐると そういう本があるらしい。 Engineering and the mind's eye - Wikipedia, the free encyclopedia Amazon.co.jp: Engineering and the Mind's Eye: Eugene S. Ferguson: 洋書 Review of Engineering and the Mind's Eye 日本語訳もあったみたいだけど新刊では無理かな? Amazon.co.jp: 技術屋(エンジニア)の心眼: E.S. ファーガソン, Eugene S. Ferguson, 藤原 良樹, 砂田 久吉: 本 『技術屋の心眼』 Engineering and the Mind's Eye 平凡社1995年 図書館当たってみよう。

最寄りの図書館にはなかったけど、同じ地区の他の図書館にあったので貸し出し予約した。

■_ RSBC

三日目か。回るところが一箇所増えた。

佐藤大輔 86 [chaika]

214 名無し三等兵 [sage] 2012/12/15(土) 17:38:05.92 ID:??? Be:
    Twitterで回ってきたんだけどなんだこれ。

    ?@nanjyo_tadashi
    【定期ツイート】C83 新刊「レッドサンブラッククロス カリブに沈む太陽」のお試し版を公開しました! 第一章まで試し読みできます!
    pdf注意 http://www.asahi-net.or.jp/~JR7K-SGMT/c83_sample.pdf 表紙 pic.twitter.com/7oAj9yXV 

215 名無し三等兵 [sage] 2012/12/15(土) 17:45:44.00 ID:??? Be:
    なんだこれって、同人の作ったパチモンだろ
    いや、シェアワールドって奴か?w 

216 名無し三等兵 [sage] 2012/12/16(日) 00:07:43.36 ID:??? Be:
    一体俺は何を見たのだ? 

217 名無し三等兵 [sage] 2012/12/16(日) 14:14:22.87 ID:??? Be:
    >>216
    イワン用のまきエサだろ。
    古い手だが効果的だ。 

218 名無し三等兵 [sage] 2012/12/16(日) 17:12:55.99 ID:??? Be:
    細かい表現に引っかかるところもあるが、これこそが代用食だろ。
    通販委託とかしてないの? 

219 名無し三等兵 [sage] 2012/12/16(日) 17:30:05.78 ID:??? Be:
    >>218はまきエサに喰いついたな
    表紙をゆっくり公開させろ 

220 名無し三等兵 [sage] 2012/12/16(日) 17:48:46.74 ID:??? Be:
    >>218
    冬コミで頒布らしい 

221 名無し三等兵 [sage] 2012/12/16(日) 17:54:33.43 ID:??? Be:
    もう10年位前から売ってたようなきがするが
    なぜいまさら? 

222 名無し三等兵 [sage] 2012/12/16(日) 19:47:58.50 ID:??? Be:
    内田といいここといいなのはに混ざって分かりにくい 

223 名無し三等兵 [sage] 2012/12/17(月) 02:29:07.40 ID:??? Be:
    >>221
    前回が中途半端だったから、文字数を倍増したり艦の説明を追加したりしているらしい。詳しくはそのTwitterのログ参照。
    レーヴェンハルトとか大鳳とか、いろいろ公開していた。
    表紙も徳間版の外伝っぽいw 

224 名無し三等兵 [sage] 2012/12/17(月) 11:26:29.20 ID:??? Be:
    正直読んでみたいが忙しくて行けないし、コミックの祭典に30過ぎのオッサンがいると目立ちそうで厭だな。
    通信販売とかやらないのかな。 

225 名無し三等兵 [sage] 2012/12/17(月) 11:47:40.05 ID:??? Be:
    30過ぎどころかアラフォーアラフィフがゴロゴロしてる魔境だがね
    逆に小中学生なんかほぼ居ない

    え?それはそれで嫌?ごもっとも 

226 名無し三等兵 [sage] 2012/12/17(月) 13:08:17.61 ID:??? Be:
    最近は赤ん坊を含む子連れの参加者もいると聞いたが 

225も書いてるけど、224の心配は杞憂だよね。 エリアによるかもしんないけど。

■_

■_

つーかですね、18時に予約してんのに19:30まで待たされるとか納得いかねーっ

ココイチのカキフライカレーにタルタルソースつきなんてのが。

2012年12月16日

■_

「拝啓」ってのは時候の挨拶をつけるものだと教わったのですが、 新聞記事でそれを守っていないのを見かけて以下略。

選挙 行ってきました。

Computer Architecture of the 1960’s 面白かった。 Carlton Mills reviews Algol 60, PL/360, BLISS, Algol W, PL/1, C and C++, considering that rediscovering Algol could solve many of today’s Internet virus attacks and common programming errors. 最後の方にはHaskellとかも出ていたような。 こういうのに日本語字幕つけて公開…は無理ですよねえ。げしょ。

■_ Porting the D Compiler to Win64

Windows版 D コンパイラーの64ビット化の話。 80ビット長浮動小数点数サポートしてたんですね。 Porting the D Compiler to Win64 | Dr Dobb's

Porting the D Compiler to Win64 | Dr Dobb's

64-bit Windows was the last major x86 platform that the dmd compiler didn't support, so last summer
my colleagues and I decided it was past due. Given that dmd already supports 64-bit compiling on
Linux, OS X, and FreeBSD, I didn't expect it to be too complicated. How hard could it be? I was
about to find out.

The only major decision was to pick one of the following options:

    Do our own line of tools, which dmd does for 32 bit Windows

    Use the GCC toolset for Win64

    Fit in to the Microsoft Visual Studio 64 bit toolchain 

We decided on option 3 because a lot of D users wanted to use D in conjunction with Visual Studio.

(略)

Conclusion

Things aren't quite done yet. Some 80-bit floating point processing code still needs to be written,
and I'm not satisfied with the way stack frames are laid out, but it works well enough for people
to try as an alpha version.

Acknowledgments

Thanks to Rainer Schuetze, Manu Evans, Herb Sutter, and Brad Roberts for their help in getting the
Win64 compiler to work.

Thanks to Rainer Schuetze and Andrei Alexandrescu for their invaluable comments on this article.

■_

↑に対する反応から。 How we ported the D compiler to Win64 : programming

How we ported the D compiler to Win64 : programming

tl;dr: fitting into MS development tools is very problematic.

Fitting into any dev tools is problematic. I've had many baffling issues with ld and gdb, too. They
are large, complex programs, and how they actually work isn't always clear.

One typical source of problems is those tools get very heavily used with C and C++, so those code
paths within the tools are well tested and debugged. D is not C or C++, and so is using paths and
features that may be documented but not exactly tested or debugged.

Have you worked with the LLVM toolchain? If so, is it better, worse or similar to the 
MS tools and gcc/ld/gdb etc.?

I'm asking because on the surface the LLVM tools seems well structured and well 
documented, but I haven't had time to delve into it myself yet.


How's the popularity with D nowadays, and when did it start to get popular? This is 
the very first time ever hearing about D.

コンパイラー本体だけで話がすまないからタイヘンですね。と。

■_

ガールズ&パンツァー★軍事板戦車道〔8号洗車〕
493 名無し三等兵 [sage] 2012/12/15(土) 22:44:03.94 ID:??? Be:
    そういや船の科学館じゃ野ざらしになってた二式大艇って空自に引き取られたらしいけどお家に入れてもらえただろうか? 

503 名無し三等兵 [sage] 2012/12/15(土) 23:33:00.49 ID:??? Be:
    >>493
    海自鹿屋だが、結局外。
    http://www.mod.go.jp/msdf/kanoya/sryou/msdf-ks/planes_htmls/frame/2sikitaitei.html 

515 名無し三等兵 [sage] 2012/12/15(土) 23:46:37.30 ID:??? Be:
    というかKV-2の装甲がいくら止まっていたとはいえ正面からじゃ抜けないはずなのにあっさり撃破されてるクソ描写 

517 名無し三等兵 [sage] 2012/12/15(土) 23:47:22.17 ID:??? Be:
    KV-2の装甲厚を調べてからレスしてね? 

518 名無し三等兵 [sage] 2012/12/15(土) 23:48:11.57 ID:??? Be:
    KV-2も弱点を突けば正面でも抜けるらしい 

524 名無し三等兵 [sage] 2012/12/15(土) 23:50:56.69 ID:??? Be:
    バイザーブロックが弱いぞ!
    情け無用、ファイアー!みたいな? 

531 名無し三等兵 [sage] 2012/12/15(土) 23:55:45.19 ID:??? Be:
    >>524
    「なんだ!跳ね返っちまうぞ!」
    「前面が傾斜している、新型だ」 

539 名無し三等兵 [sage] 2012/12/16(日) 00:00:06.26 ID:??? Be:
    >>531
    ようし零距離まで近づいてやる。戦車前へ
    ノロノロ走るな突撃だ!
    気をつけろ塹壕だ!ちきしょうめ! 

549 名無し三等兵 [sage] 2012/12/16(日) 00:09:55.04 ID:??? Be:
    2期やるくらいなら黒騎士物語のOVAでも制作しろよ 

551 名無し三等兵 [sage] 2012/12/16(日) 00:11:26.34 ID:??? Be:
    景気が良ければやるだろう黒騎士物語
    ただ現状の不景気だと… 

567 名無し三等兵 [sage] 2012/12/16(日) 00:28:55.90 ID:??? Be:
    >>515
    43口径75mm砲であの距離なら余裕です
    KVと初遭遇した1941年当時の火砲とは訳が違う 

568 名無し三等兵 [sage] 2012/12/16(日) 00:30:00.96 ID:??? Be:
    水島将軍は撤退戦は苦手っぽいな。
    押井将軍は常に予備兵力を抱えてて、投入する機会を見極めるのが上手いらしいが。 

576 名無し三等兵 [sage] 2012/12/16(日) 00:44:38.21 ID:??? Be:
    >>568
    水島努@tsuki_akari
    @ss_sturmman ありがとうございます。ここだけの話、ベルリン攻防戦くらいです(^_^;
    2012年12月7日 - 0:57 ・

    撤退どころか本日陥落した 

578 名無し三等兵 [sage] 2012/12/16(日) 00:45:54.41 ID:??? Be:
    マーケットガーデンにしろよ縁起悪いw 

579 名無し三等兵 [sage] 2012/12/16(日) 00:46:00.53 ID:??? Be:
    >>576
    これは監督の悲鳴だったわけか・・・ 

580 名無し三等兵 [sage] 2012/12/16(日) 00:47:21.80 ID:??? Be:
    >>576
    国会議事堂で外人武装SSが頑張ってるぐらいか(゚-゚)ノシ 

581 名無し三等兵 [sage] 2012/12/16(日) 00:49:57.18 ID:??? Be:
    >>580
    第9軍が西に脱出はかろうと 

582 名無し三等兵 [sage] 2012/12/16(日) 00:51:02.17 ID:??? Be:
    我々がカチューシャを聞いてる頃、制作はゼーロウの戦いやってたんだな 

583 名無し三等兵 [sage] 2012/12/16(日) 00:51:12.61 ID:??? Be:
    >>576
    もう退路すらねーじゃんかよwwww
    ひどい状態だったんだなー。 

あの二式大艇、鹿屋に行ったんだ。 宗谷はどうなったんだろう? (羊蹄丸は知ってるけど)

黒騎士物語は処分しちゃったんだよなあ。ああまた読みたくなった。

■_ Machine Learning

いちばんいいのを頼む - GC Advent Calendar - I am Cruby! 機械学習を利用して長生きのオブジェクトを見つける - GC Advent Calendar - I am Cruby! ううむここにも機械学習か

あ、こっちにも L'eclat des jours(2012-12-16)

結構いろいろなところで使われている(使われようとしている)ぽいのよねえ。

■_

2012年12月15日

■_

読書会。

 subtype(A, S, T) = if (S, T) U {(S, T)} in
                      A
                    else let A0 = A U {(S, T)} in
                      if T = Top, then
                        A0
                      else if S = S1 * S2 and T = T1 * T2, then
                        let A1 = subtype(A0, S1, T1) in
                        subtype(A1, S2, T2)
                      else if S = S1 → S2 and T = T1 → T2, then
                        let A1 = subtype(A0, T1, S1) in
                        subtype(A1, S2, T2)
                      else if T = μX.S1, then
                        subtype(A0, [X  ↦  μX.S1]S1, T)
                      else
                        fail

    TD(R) =  {(T,T) | T ∈ Tm }
          U  {(S,T 1 × T 2)  | (S,T 1) ∈ R }
          U  {(S,T 1 × T 2)  | (S,T 2) ∈ R }
          U  {(S,T 1 →T 2)  | (S,T 1) ∈ R }
          U  {(S,T 1 →T 2)  | (S,T 2) ∈ R }
          U  {(S, μX.T)     | (S,[ X ↦ μX.T] T),  ∈ R } ← BU(R) との違い

    BU(R)  =  {(T,T) T ∈ τm }
           U  {(S,T1 × T2)  | (S,T1) ∈ R }
           U  {(S,T1 × T2)  | (S,T2) ∈ R }
           U  {(S,T1 → T2) | (S,T2) ∈ R }
           U  {(S,T1 → T2) | (S,T1) ∈ R }
           U  {([ X ↦ μX.T]S, μX.T) | (S,T) ∈ R } ← TD(R) の最後と違う!

の辺りでうんうん唸ってたんですが、ここだけ抜き出してもわけわからんですなw どうにかこうにか21章突破した(ことにした)んですが、 この章はひたすら Greatst Fixed Point だの Least Fixed Point だの induction, coinduction, suppot function, reachable…という用語が散りばめられている 定義を追いかけ続けていたような。 正月休みに振り返ろう(と日記には書いておこう)。

 →
 ↦ 
 \preceq
 \sqsubseteq

  p20

  backgroud reading winskel 1993

  "再帰データ型 - Wikipedia" 
  http://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B

  "Recursive data type - Wikipedia, the free encyclopedia" 
  http://en.wikipedia.org/wiki/Recursive_data_type#Isorecursive_types

21.12 Notes にある参考文献の数が半端じゃない… ○| ̄|_

以下読書会中にぐぐったキーワードなど

■_

■_

あ、近代麻雀買うの忘れてた。 [リペアマン]「哭きの竜」の能條純一が2年ぶり新作マージャンマンガ | ホビー | マイナビニュース

■_ 蔵出し

その1

Interview with John W. Eaton of GNU Octave — Free Software Foundation — working together for free software

Interview with John W. Eaton of GNU Octave

Posted by Josh Gay at Aug 31, 2012 05:29 PM

This is the first in a series of interviews the FSF's Licensing and Compliance team is 
doing with maintainers of free software projects who choose GNU licenses for their 
work.

GNU Octave

Today we interview John W. Eaton of the GNU Octave project, which is licensed under the GNU GPLv3.

What is GNU Octave?
GNU Octave とはなんですか?

GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It
provides capabilities for the numerical solution of linear and nonlinear problems, and for
performing other numerical experiments. It also provides extensive graphics capabilities for data
visualization and manipulation. Octave is normally used through its interactive command line
interface, but it can also be used to write non-interactive programs. The Octave language is quite
similar to Matlab so that most programs are easily portable.

GNU Octave は高水準インタープリター型言語 (high-level interpreted language) であり、数値計算
(numerical computation) を指向したものです。Octave は linear problem や nonlinear problem に
対する numerical solution のための capabilities を提供しています。Octave はまたデータの
visualization や manipulation のための extensive graphics capabilities も提供しています。
Octave は通常対話的なコマンドラインインターフェースを通じて使われますが、非対話的なプログラム
を書くのにも使えます。Octave 言語は Matlab にとても似ているので、(Matlab 用の)ほとんどのプロ
グラムは簡単に移植できます。


One of the goals of the Octave project is to liberate the code written for the proprietary program,
Matlab, and allow it to run in Octave with as little modification as possible.

Octave プロジェクトの目標の一つは proprietary なプログラム (Matlab) のためにコードを書くことから
解放し、最小限の変更で Octave でも実行できるようにすることです。


There is also a companion project called Octave Forge that is a collection of 
collaboratively developed packages for Octave that are analogous to Matlab's toolboxes.

Octave Forge と呼ばれる companion プロジェクトもあります。これは Matlab の toolbox のような、
Octave 向けの collaboratively developed packages のコレクションです


How are people using it?
ユーザーはどれくらいいるのですか?

There are many users of Octave and their reasons are many and varied! You can read 
about some of them on our wiki.


Why did you decide to release it under the GNU GPLv3?
なぜ Octave を GNU GPLv3 の元でリリースしようと決めたのですか?

Well, it was originally published under the GNU GPLv2 or any later version, and when GPLv3 came
out, I decided to upgrade.

元々は GNU GPLv2 or any later version という条件の下で配布していたのですが、
GPLv3 が世に出たので upgrade することにしたのです。


But, there were two reasons I published GNU Octave under the GPL. First, I thought it was the
right license. I wanted to make Octave free software and I didn't want someone to be able to make
a proprietary derivative of it. Second, I wanted to use GNU readline, which is also licensed under
the GPL, and I did not want to write my own command-line editing library from scratch. But the
first reason was really the more important one for me. If I hadn't liked the aims of the GPL, I
would have worked around the readline issue somehow.

しかしわたしが Octave を GPL の元で publish したのには二つの理由があります。
第一に、GPL が正しいライセンス (right licese) であると考えたからです。
わたしは Octave をフリーソフトウェアにすることを望んでいて、それと同時に
Octavve から派生したものを誰かが proprietary なものにできてしまうことを望まなかったのです。
第二に、GPL でライセンスされていた GNU readline を使いたかったからです。
ゼロから (from scratch) 自分自身のコマンドライン編集ライブラリを書き上げることは
やりたくありませんでした。とはいえ最初の理由がわたしにとってはより重要なものでした。
もしわたしが GPL を適用するのを好ましく思わなければ、
readline 問題についてなんらかの回避策をとっていたでしょう。


As a volunteer, what's the best way to get involved in developing GNU Octave?

ボランティアとして、GNU Octave の開発において get involve する最良の方法はどういったものでしょうか?


We encourage people to start out by just being around and being social with other 
developers. An easy way to start is to join the maintainers' mailing lists. Find 
things about Octave you don't like, and start thinking about how to fix them. Some 
people spend years helping in the mailing list before they ever delve into code. 
Others sometimes jump right into coding. But, in general, a good way to learn Octave 
is to understand the problems other people are having with it, so being helpful in the 
mailing lists not only helps Octave as a whole, but it also prepares you to be a 
better Octave contributor.

just being around and being social with other developers によって
始めることをわたしたちは推奨 (encourage) しています。
始めるための簡単な方法のひとつが maintainer たちのメーリングリストに参加することです。
Octave に関してあなたが好きでないことを見つけ、
それをどのように解消するかを考えてみましょう。
自分たちが delve into code するより前にメーリングリストで何年も活動している人たちもいますし、
Others sometimes jump right into coding.
しかし一般的には、Octave を学ぶ良い方法とはほかの人たちが抱えている問題を理解することです。
ですからメーリングリストで手助けをすることは Octave に対する援助になるばかりでなく
あなたをより優れた Octave contributor にするのです。



See our FAQ for me details on how to get involved.

What are ways that people without strong math programming abilities could start helping, today?

The documentation is always in need of improvement. People can also help with the web pages,
answering questions on the mailing lists or IRC channel. Donating to the project is also always an
option!

ドキュメントは改良のために常に必要です。あなたは web page でもって help できますし、
メーリングリストや IRC で質問に答えることも助けになります。
プロジェクトに対する donating はいつでも歓迎します!


What aspects of the project do you think could use the most help?

We currently have several large projects under development including a graphical user interface,
a just-in-time compiler, and an implementation of Matlab's "classdef"-style object system.
All of these projects have a lot of room for additional contributors.

See the GNU Octave entry in the Free Software Directory for more information.

ちょっと使ってそのあと放置しっぱなしだなあ。

■_ 蔵出し

その2

Whiley | Three Rules for Programming Language Syntax?

Three Rules for Programming Language Syntax?
By Dave, on January 11th, 2012

I'm always pondering the question: what makes good programming language syntax? One thing occuring
to me is that many languages often ignore the HCI aspect.  For me, it's a given that the purpose of
a programming language is to simplify the programmer's life, not the other way around.

わたしは常に pondering the question しています。良いプログラミング言語の構文を作るものとはなんで
しょうか? One thing occuring to me は 多くの言語がしばしば無視してしまう HCI aspect でした。
わたしにとっては、あるプログラミング言語の目的として与えられているものはプログラマーの生活(人生?)
を単純にするためのものであって、other way around ではありません。


So, I thought of a few simple rules:
そして、わたしは二、三の単純なルールを考えました

   Syntax should explain. The purpose of syntax is to help explain a program to a human.
   In particular, structure in the program should be made explicit through syntax.

   構文は explain であるべきである。
   構文の目的は人間にプログラムを説明するのを助けるためである。
   特に、プログラムにおける構造は構文を通じて explicit に作られるべきである。

   Syntax should be concise. The converse to (1) is that syntax should always add to the
   explanation. Syntax which does not add value simply obscures the explanation.

   構文は一貫したものであるべきである。
   converse to (1) は、常に構文は explanation を追加すべきであるというものです。
   価値を加えない構文は単なる obscures the explanation なのです。


   Syntax should conform. There are many things people learn from everyday life, and we
   should not force them to unlearn these things.  Doing so can confuse the explanation,
   especially for non-experts.

   構文は conform であるべきである。日々の生活から人が学ぶことはたくさんあり、
   それらのことがらを unlearn することを我々は強制すべきではない。
   そういった強制をすることは、特に non-expert たちに対して
   explanation を混乱させる可能性がある。


I'm sure there are plenty of others you can think of.  I pick on these because I see
them being broken constantly.  Let's illustrate with some of my pet peeves:

わたしは others you can think of がたくさんあると確信しています。
I pick on these because I see them being broken constantly.
Let's illustrate with some of my pet peeves:


Colons in Type Declarations?
型宣言中のコロン

There are plenty of programming languages which use colons in type declarations (ML is a classic
example).  It goes something like this:

型宣言においてコロンを使っているプログラミング言語がたくさんあります。
(ML はその classic な一例です)。それは次のようなものです

       fun f (0 : int) : int = ...

For me, this breaks rule (2) because those colons do not add value.  The C-family of languages is
evidence that we can happily live without them.  That's not to say that C-like declaration syntax
is the “one true way”; only that it demonstrates we don't need those colons!

わたしの考えるところでは、これはルール (2) を破っています。
なぜなら、ここでのコロンは価値を付加していないからです。
C-famiy のプログラミング言語はコロンなしでも問題ないことの evidence (証拠) です。
これは C のような宣言構文 (declaration syntax) が "one true way" であるということを
主張しているのではありません。そのようなコロンが必要ないことを示しているだけなのです!


Function Call Braces: To Be or Not To Be?
関数呼び出しのカッコ

Some programming languages require braces around the arguments to a function call, whilst others
(e.g. Haskell) don't.  Consider this:

一部のプログラミング言語は関数呼び出しのための引数を囲むカッコが必須ですが、
必要としないものもあります (Haskell など)。次の例を考えてみましょう

       (f (g h) 1 2) y 3

What can you tell about the invocation structure from this line?  Not much, unless you
happen to know from memory exactly what arguments each function takes. This violates
rule (3) since functions are normally expressed with braces in mathematics.

あなたはこの行から invocation structure について指摘できますか?
Not much,
unless you happen to know from memory exactly what arguments each function takes.
数学ではふつう関数はカッコを使って表現されているのでこれはルール (3) を破っています。


Now, how about this:
ではこれはどうでしょうか

       f(g(h),1,2)(y,3)

Personally, I prefer this style.  However, it would be fair to say that it violates rule (2)
since the comma's are not strictly necessary.  I suppose, in fact, we have a contradiction
between (2) and (3) in this case, since commas are generally used to deliniate lists in
written English.

個人的にはこちらのスタイルが好みです。しかし、これはカンマが strictly necessary でないので
規則 (2) を破っています。実のところ、わたしはこのケースでは (2) と (3) は両立しないと仮定
します。それは英語ではカンマが通常、リストを deliniate するのに使われているからです。


Why Don't we Teach Polish Notation at School?
(answer: because we don't)
なぜ学校でポーランド記法を教えないのだろうか? (その回答: 教えていないから)

Some programming languages require mathematical expressions be expressed in Polish notation 
(a.k.a. prefix notation).  For example, in Lisp, we write (+ 1 2) to mean 1+2. This violates
rule (3), since most people have learned mathematics at school where the usual convention applies.

いくつかのプログラミング言語は mathematical expressions が polish notation で表現されることを
要求しています。たとえば Lisp では、1+2 を (+ 1 2) のように記述します。
ほとんどの人は学校で usual convention applies な数学を学んでいるので
これは規則 (3)を破っています。


Similarly in SmallTalk, the expression 2+3*4 is equivalent to (2+3)*4 rather than 2+(3*4),
as might be expected.  Again, this violates rule (3) and is particularly insidious because
it's rather subtle.

Smalltalk では、2+3*4 という式は期待されるであろう 2+(3*4) ではなく、(2+3)*4 という式と等価です。
繰り返しますが、これは rule (3) を破っていますし、
(そういった解釈をすることは) とても稀なものであるので特に insidious (油断ならないもの) です。

The point here is not to say that e.g. one notation is fundamentally better than the other.
Just that, we learn one in school, so we should stick with that.

ここでの point は、たとえばひとつの記法 (notation) がほかのものよりも fundamentally に better
であると主張することではありません。ただ単に、わたしたちはひとつのやり方を学校で学んでいるの
だから、それに従ったほうが良いということなのです。


Conclusion
結論

Well, if you made it this far, great!  Hopefully there was some food for thought, and
maybe you can suggest some other examples…



Copyright c 2012 David J. Pearce - All Rights Reserved

2012年12月14日

■_

ようやっと、CASIOの電卓購入。 出たばかりの新型関数電卓…なのはいいが会社には持って行けないかなあw あと、915ESのブラックモデルにしようと思ってたんだけどホワイトしかなかった○| ̄|_ カシオ、関数電卓を3モデル - 教科書に沿った数式と記号を表示可能 | 家電 | マイナビニュース さて応募応募 カシオ、世界初のパーソナル電卓「カシオミニ」発売40周年記念キャンペーン | 家電 | マイナビニュース

なんか一部で話題になっている衆議院小選挙区の候補者が二人も 自分の投票する選挙区にいらっしゃるんですががが

TVアニメ『電脳コイル』2013年1月11日(金)よりテレ玉にて放送決定:最新アニメ情報 テレ玉と言えば、木曜深夜にやっている無印ガンダムがソロモン攻略まで話が進んで大詰め。 この辺りは特に、劇場版と違うBGMに違和感がありまくりだったりする。

■_

■_

例の本の監訳者さまが Twitter / hidemotoNakada: http://t.co/7m1YnO3d ... デバッグの理論と実践 ―なぜプログラムはうまく動かないのか - hidemonの日記

デバッグの理論と実践 ―なぜプログラムはうまく動かないのか - hidemonの日記

未だに個人的な技芸の域を脱しきれていないプログラミングと言う過程の中でも特に 属人的な要素の強いデ
バッグという過程に対して、「科学的」な手法を適用すれば システマティックにデバッグできることを示し
ている、かなり画期的な本。 個別のデバッガを使ってどうこうする、という話ではなく、 どのように仮説
を立て、それを検証していくのか、という戦略の立て方を論じている。

著者のAndreas Zellerは、デバッグ関連の一流研究者なので、デバッグの研究が 今どこまで進んでいるのか
を知るという意味でも役に立つ。 もともと大学(院)のテキストとして書かれたものなので、若干敷居は高
いけど 特に前半の戦略を議論している部分はすべての実務プログラマにとって有益なはず。 全体的に若干
やり過ぎ感はあるけど、今後進むべき方針を示しているということで。
(以下略)

ふむふむ

O'Reilly「デバッグの理論と実践――なぜプログラムはうまく動かないのか」 - カレーなる辛口Javaな転職日記

■_

sedコマンドによる最終行の削除について | Solaris系OSのQ&A【OKWave】

sedコマンドを使用してファイルの最終行を削除する方法を調べていたのですが

最終行の削除は問題なくできたのですが最終行から特定行までを消すため以下のコマンドを発行したのですがうまくいきませんでした。
複数サイトを見てみたんですが構文自体は同じでしたのでおそらく問題ないとは思うですが何か気づく方がいたらお教えください。

以下実行コマンド
sed -e '$-3,$d' sed_test.txt

これ、tail だけではできなかったかなと思ったのだけど 記憶違いっぽい。 Man page of TAIL

■_

Stroustrup on next-gen C++: I didn't want to let go of my baby | Hacker News Stroustrup on next-gen C++: I didn't want to let go of my baby • The Register

■_

PostgreSQLのメモリ管理 | Everyday Deadlock 皆さん御存知の通り、PostgreSQLはC言語によって書かれています。 そしてC言語でプログラムを書くということは、メモリリーク・メモリ破壊と戦うことであるといっても間違いないでしょう。古い本ですが性能測定と分析についてかなりしっかりとした教科書があることを最近になって知りました。 計算機の性能測定、とくにデータベースの性能測定に関わる人であれば、最低限このくらい知っておいて欲しいよね、ということが非常にわかりやすくまとめられている教科書です。 Amazon.co.jp: The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling: R. K. Jain: 洋書 ううむちょっと手を出しづらいお値段。

2012年12月13日

■_

東横線で、副都心線を走ってる編成を見ることが増えてきたり、 ホームの目印から日比谷線乗り入れ車両用のものがないところを見かけたりで だんだんその日が近づいてきているのだなあと実感。 ホームの延長もやってるし。

■_

■_ library rules

たまーに(他で話題になったときに)しか見ないんですが、 37 signals のblog。 An office with “library rules” by Jason Fried of 37signals

An office with “library rules” by Jason Fried of 37signals

When visitors come to our office, one of the first things they notice is how quiet it is.
Naturally, one of the first questions they ask is “how do you keep it so quiet?”

My answer is “library rules.”

Everyone knows how to behave in a library. You keep quiet or whisper. You respect people's
personal space. You don’t interrupt people who are reading or working, learning or studying.
And if you need to have a full-volume conversation, you hit a private room.

So if you want to keep things quiet at the office, treat it like a library. It works surprisingly well.

今いる仕事場。 エンジニアばっかりいるわけではないという点で譲らなければならないことはあるにしても、 もうちょっと静かにしてもらえないだろうかと思うことがしばしば。 なーんか妙な咳をする人いるしさあ(すぐ近くじゃないけど)。

■_

ついったで RT されてまわってきた Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

なーんかこの構造体、前にも見たような覚えがあるよなあなどと思いつつ検索 list_headの謎: #include <fujita.h> カーネルのリンクリスト - ボクノス

Twitter / n0kada: @takkanm 変数なしでも直接(char *)に ...

2012年12月12日

■_

翻訳記事出てた(中身の細かいところはスルー)。 開発者はC++の学習を始めるべきか?

■_

37 signals

■_ Ada

Happy birthday, Ada Lovelace—the first computer programmer : programming vox.io blog ということで、 Tables » Hummus and MagnetsDifference » Hummus and MagnetsAnalytical Programming » Hummus and MagnetsPunched Cards » Hummus and MagnetsBernoulli » Hummus and Magnets ときたシリーズも最終回

Bernoulli » Hummus and Magnets

Bernoulli

by Christian Plesner Hansen Posted on December 10, 2012	

It's Ada Lovelace's 197th birthday today and the perfect day for my last post about Babbage's
computing engines. This one is about the famous first program for calculating the Bernoulli
series which appeared in Note G of her notes on Babbage's analytical engine. One of the odd
things about this program is that it's widely known and recognized as an important milestone –
but as far as I can determine not widely understood. I haven't found even one description of what
it does and how it does it, except for the original note.

In this post I'll give such a description. It has roughly three parts. First I'll give a quick
context – what is Note G, that kind of thing. Then I'll derive the mathematical rules the program
is based on. I'll roughly follow the same path as Note G but I'll include a lot more steps which
should make it easier to digest. Note G is very concise and leaves a lot of steps to the reader
and the derivation is quite clever so some of those steps can be tricky. (You can also just skip
that part altogether and take the result at the end as given.)

In the last part I'll write up a modern-style program in C that does the same as the Note G program
and then break it down to get the program itself. Finally I'll do what you might call a code review
of the program.

Okay, let's get started.

Note G に載っていた史上最初のプログラムは、その存在こそ有名だが それがどういったものであるかは理解されていない。ってな感じ?

それはそうとこのシリーズなかなか面白いと思うので誰か訳(ry

Ada といえばこれ、もうちょっと手を出しやすい値段だったらなあ… 科学の花嫁 (叢書・ウニベルシタス)
科学の花嫁 (叢書・ウニベルシタス)

■_

I’m 85, and I Learned to Code. You Should Too. - CodeHS Blog

■_

2012年12月11日

■_

ヤル気の科学 行動経済学が教える成功の秘訣
まだ七割方読んだくらいなんですが面白い。 なるほどねえ飴ばっかりでも鞭ばっかりでもダメというのは当然としても、 色々あるんですねえ。 コミットメント重要(というかいかにしてそのコミットメントを達成させるのかという話なんですが)。

んで 人はなぜ不正を働くのか? - @IT情報マネジメント で紹介されてる Amazon.co.jp: ずる―嘘とごまかしの行動経済学 (ハヤカワ・ノンフィクション): ダン アリエリー, Dan Ariely, 櫻井 祐子: 本 も面白そうだ。

■_ Moscrif

色々開発が楽になるよという触れ込み? A Technical Overview of Moscrif – MObile SCRipting Framework まあInfoQ の記事は(ry

A Technical Overview of Moscrif – MObile SCRipting Framework

Moscrif is a cross-platform solution for mobile application development. It lets you create native
applications and games for smartphones, tablets and desktops.

Currently, iPhone, iPad, Android smartphones and tablets are supported and the support of new
devices are added gradually. Desktop operating systems such as Windows or Mac OS are coming soon so
even the old-school PC users can run Moscrif' applications. Because Moscrif allows the developer
to use only one single codebase, there is no need to port the application for all the desired
mobile operating systems. Once the development is done, your app will perform and look just like
they were natively written.

Built on the top of a powerful JavaScript engine, Moscrif lets you develop fast while preserving
high quality and performance. There is no need to write native code for each platform individually
in C, C++, Objective C or Java. The knowledge of popular JavaScript is sufficient and the rest is
all taken care of by Moscrif.

Benefits

Only one programmer is needed to program in Moscrif, and he will automatically cover all supported
platforms. This means that one programmer can generate more applications in shorter time without a
diminution of quality. This results in savings and in human resources, funding and time since
maintaining only one codebase is less expensive when compared to supporting many platforms. With
the current support, you can reach up to 80% of mobile market allowing you to reach quite a large
mobile audience.

以下略

元記事にはコードの例も載ってるんですが、むー。

JavaScript だけできりゃあ良いよ。ですか。 The knowledge of popular JavaScript is sufficient and the rest is all taken care of by Moscrif.

■_


一つ前へ 2012年12月(上旬)
一つ後へ 2012年12月(下旬)

ホームへ


リンクはご自由にどうぞ

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