http://www.kt.rim.or.jp/~kbk/zakkicho/index.html - 11/21/09 07:05:07 - 10/07/08 13:59:44
2009年10月27日
・疑問 なんで26日分のオレンジニュースで、 金融計算に float や double を使うな的なリンクを紹介してるんだろう? なにか目新しいことが書かれてるかと思ったらそうでもないし。 オレンジニュース(2009-10-26) ただ、ブクマコメントやらで「固定小数点」使えばいいとかあったはちとなあ。 固定小数点数使っても基数が2だったら自体はかえって悪くなるような。 あと一口に「誤差」といってもいろいろな種類があるので 時と場合によっては気をつけないと。
化物語のBD 二巻目、ひだまり 特別編DVD、GAの音楽CDやら。 GA のOP曲と化物語のOPをリッピングして、がんがんかけまくり。
■_ The Early History of Programming Languages
例によって詰めが甘いけど。
The Early History of Programming Languages The Early History of Programming Languages March 11, 2008 by Chip Today we'll overview the early history of programming languages, and I'll follow this post with others that explore more recent developments. I'm going to intentionally leave out people and focus on the languages in general terms - although the personalities involved make quite a story, too. 今日はプログラミング言語の初期の歴史を概観してみましょう。そして、わたしはより最近の開 発についてのポストでこのポストのフォローをします。わたしは意識的に、人物に深入りするの ではなくて一般的な意味での言語にフォーカスを当てようと思います。 - although the personalities involved make quite a story, too. personalities もストーリーに大いに参加してはするのですが。 In the very early days of computing, the only “language” employed was comprised of native machine instructions, which were often “entered” by flipping switches and moving cables around. Programmers had to know the numeric representation of each instruction, and they had to calculate addresses for data and execution paths. Can you say “brittle code?” コンピューティングの非常に初期の段階では、唯一利用 (employ) されていた“言語”はネイティブな 機械語命の集まりでした。 そのような言語はしばしばフリッピングスイッチやケーブルの移動 によって“入力”されていましたプログラマーは命令ごとの数値表現を知っておかなければなり ませんでしたしデータのアドレスや実行パスのアドレスを自分で計算する必要がありました。あ なたは “brittle code”を言うことができますか? Some time in the 1950's someone got the bright idea of writing instructions in a human-readable form by using symbols for instructions and memory addresses. They called this “assembly language”, because they ran this text through a utility called an “assembler” that would translate the nearly-human-readable code into machine instructions. Assembly language is often considered the second generation of computer languages. Naturally, each type of processor has its own flavor of assembly language corresponding to its unique instruction set and addressing capabilities. Translating a program from one processor's assembly to another can be quite a task, especially if it's over 30,000 lines of code (sans comments) that makes use of idiosyncrasies of the target processor (I still haven't let go of the pain). 1950年代のあるとき、命令やメモリーアドレスのためのシンボルを使った命令を人間が読める形 式で記述するという優れたアイデアを思いついた人たちがいました。彼らはそれをアセンブリ言 語 (“assembly language”) と呼びました。なぜなら、そのテキストは“アセンブラー” (assembler) と呼ばれる人間が読めるものに近いコードを機械語命令に変換するユーティリティ で処理されていたからです。アセンブリ言語はしばしばコンピューター言語の第二世代のものと みなされますが、いろいろと型があるそれぞれのプロセッサーが、その unique な命令セットと アドレッシング能力とに対応している固有の flavor を持つアセンブリ言語を持っていたのは自 然なことで、あるプロセッサーのアセンブリ言語で書かれたプログラムを別のプロセッサー向け のものに変換(translate) することは、特にそれが(コメントを除いた部分が)三万行にもなるよ うなターゲットとなるプロセッサーの idiosyncrasies を使っているものの場合には大仕事にな りました。(I still haven't let go of the pain). The fifties also saw the rise of the third generation of programming languages, which sought to solve the machine-specific problem as well as to make programs even more understandable to humans. Fortran and COBOL are both imperative languages (which means that they're written in a sequential “do this, now do this” style) - and each tried in various ways to mimic human language with the goal of eliminating the need for programmers. Scientists could code Fortran, and business people could code COBOL - or so the grand vision ran. Lisp, which was introduced at about the same time, never made any pretensions to human language. It expresses abstractions in a purely functional form and allows code and data to be interchanged easily. Thus, it appeals to mathematicians and cognitive scientists - and has proven to be a source of inspiration for other programming languages ever since. 1950年代はまた、 プログラムをより人間に理解しやすいものにしてマシン特有の問題を解決することを目指した 第三世代プログラミング言語が勃興した時期でもありました。 Fortran と COBOL は両方ともが命令型言語 (imperative languages。 プログラムが“これを行え。次はこれをしろ”という形式の並びで書かれます) であり、 それぞれが、プログラマーの必要性を取り除くことを目標として 人間の言語を mimic することにさまざまなの方法で挑戦しました。 科学者たちは Fortran でコーディングできましたし business people はCOBOL でコーディングできました or so the grand vision ran. 同時期に開発された Lisp は 人間の言語を表現しようとするものでは全くありませんでした。 Lisp は純粋な関数形式でもって抽象化を表現して コードとデータを簡単に統合することを可能にしていました。 したがってそれは数学者や cognitive scientists (認知科学者?) にアピールしたのです そして他のプログラミング言語がそれを source of inspiration としてprove しています。 Third generation languages (aka “3GLs”) made it possible for businesses to create huge, complex applications that would remain in service for decades. Soon it became obvious that a programming methodology that made code easier to understand and modify would provide a distinct advantage. Thus, structured programming was born. The GOTO statement became anathema. Programmers were encouraged to write programs top-down, starting with the general processing steps and then breaking those down into smaller logical chunks, all called in a hierarchical fashion with clear entry/exit points. 第三世代言語 (aka “3GLs”) は、巨大で複雑な十年以上サービスしつづけるようなアプリケー ションを作成するビジネスを可能にしました。それは即座にコードを理解しやすくしたり修正し やすくする distinct advantage を提供する。プログラミングの方法論になりました。そこで、 構造化プログラミングが生まれたのです。GOTO 文は anathema となりました。プログラマーは トップダウンでプログラムを書くことを encourage され、一般的な処理のステップから始めて より小さな論理的な塊 (logocal chunks )に 分けていき、明確な entry point と exit point を持った階層構造の中ですべてが呼び出されます。 But it was dang hard to write structured code in Fortran IV (although you could if you really tried - I've even written structured assembly!). COBOL, though it had the modular PERFORM paragraph construct, wasn't quite up to the task either. Then along came languages like ALGOL, Pascal, C, and ADA. These languages provide the ability to define, within one source file, discrete functions that each have their own private data scope - encapsulating portions of the application and exposing only a limited interface via the function's arguments and return value, so the innards of each can be modified without affecting the rest of the application. しかし Fortran IVを使って構造化されたコードを記述することはとんでもなく困難なことでし た(実際にそれに挑戦したとしても構造化アセンブラーを使って書くことになっていたでしょう!) COBOL には modular PERFORM paragraph construct がありましたがこれは構造化プログラミン グにはほとんどなんの役にも立たないような代物でした。そうして作られた言語が ALGOL, Pascal, C, Ada といったものです。これらの言語はそれぞれが固有のプライベートなデータス コープを有するdiscrete な関数をあるソースファイルの中で定義する能力を提供しています。 アプリケーションの portion を隠蔽し関数の引数と戻り値を通した限定されたインターフェー スだけを expose します。このため、それぞれの innards はアプリケーションのその他の部分 に対して影響を及ぼさずに修正することが可能でした。 In yet another attempt to eliminate programmers, quite a few companies tried their hand with what become known as fourth-generation languages (4GLs). These languages sought to abstract business application development to the point where only the business rules needed to be specified. In the 80's and early 90's many attempts were made to rewrite applications in a 4GL, most of which failed miserably because real-world applications require exceptions to any rule, and unless you can easily get at lower layers of abstraction you can't use a highly abstract language for all purposes. Thus, 4GLs are really only suitable for specific problem domains, and so have over the years morphed into DSLs or scripting languages for specific parts of applications, like VBA for MS Office or SQL for database access. プログラマーを eliminate するもう一つの試みとして、極少数の企業が第四世代言語 (4GL) と して知られることになるものを手がけていました。これらの言語は、ビジネスルールだけが指定 する必要があったビジネスアプリケーション開発を抽象化することを指向していました80年代と、 90年代初めにおいて 4GL でアプリケーションを書き直す(rewrite)することが試みられましたが、 そのほとんどは無常にも失敗に終わりました。その理由は現実世界のアプリ-ションではルール には例外が要求されるものであるけれども、それは抽象化の低レイヤーで簡単に手に入るもので ない限り汎用で高い抽象度を持つ言語でつかうことはできないからです。したがって、4GL は実 際には特定の問題領域に対してだけ suitable であったのですがそれは年月を経て MS Office のための VBA やデータベースに対するアクセスのための SQL のようなアプリケーションの特定 の部分向けのDSL だとかスクリプティング言語といったものへと変貌を遂げたのです。 Back in the thriving land of 3GLs, Software developers began to realize that collections of encapsulated functions could become reusable between applications if they were made generic enough. They developed “utility libraries”, and they'd sometimes even document the functions contained therein. They also started noticing that some of their functions were closely related to one another - often operating on the same data. Sometimes this led to combining the functions and adding a parameter to indicate which operation to perform - a crude way to aggregate methods. 3GL の thriving land に話を戻すと、ソフトウェア開発者たちは関数が十分一般的な(generic) ものとして作ってあれば、隠蔽された関数のコレクションがアプリケーションとアプリケーショ ンとの間でも再利用が可能であるということに気がつき始めていて、彼らは“ユーティリティラ イブラリ”を開発したり、ときにはそこに含まれる関数群のドキュメントさえ作成することもあ りました。彼らはまた、彼らの関数の一部は他の関数ととても密接に関係していて、しばしば同 じデータに対する操作を行っているということにも気がつき始めていました。このことは、関数 を結合してどちらの操作を実行するのかを示すためのパラメータを追加するという、メソッドを 集成するための荒っぽいやりかたに繋がることもありました。 The desire for reusability, the encapsulation of functions and data behind a controlled interface, and the logical grouping of functions around data - these were some of the ideas that led to the development of object-oriented programming and languages that support it. But lets save that topic for a future post, as well as the rise of scripting languages and the flowering of functional and dynamic programming. 再利用性に対する要望、controlled interface の先にある関数とデータのカプセル化、そして データを囲む関数群の論理的な集まり等々、オブジェクト指向プログラミングやそれをサポート する言語の開発に結びついたアイデアの幾つかが存在していました。しかしその話題はスクリプ ティング言語の勃興と、関数プログラミングや動的プログラミングの floweringのような未来の ポストのためにとっておくことにしましょう Part 2: An introduction to object oriented languages Part 3: The ascent of scripting languages Related Posts: 1. An introduction to object oriented languages 2. An introduction to functional programming 3. The ascent of scripting languages 4. Scripting Languages and the Web■_ strなんとか(延長戦)
strlen がやたらと出てくるといえば 猫電気 【C/C++】文字列での引き算(0xFFFFFF以上の引き算) とか。
571 デフォルトの名無しさん [sage] 2009/10/24(土) 07:37:49 ID: Be: Cで文字列のコピーって strcpy(hoge_1, hoge_2); sprintf(hoge_1, hoge_2); ってどっちがベターなんでしょうか? (略) 595 デフォルトの名無しさん [sage] 2009/10/24(土) 19:32:38 ID: Be: strncpyは文字列の終端のNULLぽが無くなるから 後で参照するときにオーバーランする 毎回 strncpy(dst, src, n), dst[n] = NULL; するならいいけど 596 デフォルトの名無しさん [sage] 2009/10/24(土) 19:33:37 ID: Be: strncpy(dst, src, n), dst[strlen(src)] = NULL; だった orz 597 デフォルトの名無しさん [sage] 2009/10/24(土) 20:14:56 ID: Be: C++使っておけ。 _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMESやら_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMESやらで、 strcpyでもstrcpy_sでも配列を渡せばテンプレートで自動的に正しい要素数を決定する。 そもそもstd::stringやらで、strcpyなどなるべく使わずにすますのがC++っぽいけど。 >>596 '\0'だろ。 600 デフォルトの名無しさん [sage] 2009/10/24(土) 20:21:04 ID: Be: strncpy(dst, src, n), dst[n-1] = NULL; だろjk 610 デフォルトの名無しさん [sage] 2009/10/24(土) 21:02:58 ID: Be: >>596 char dst[5]; char *src = "abcde"; strncpy(dst, src, n), dst[strlen(src)] = 0; うん。セキュアだ。 613 デフォルトの名無しさん [sage] 2009/10/24(土) 21:07:15 ID: Be: >>600 そのnはdstの領域内であることが確実かどうかそれだけじゃ読めない 618 デフォルトの名無しさん [sage] 2009/10/24(土) 21:22:25 ID: Be: >>600 NULL が何だか解ってたら絶対書かないコードだな。 619 デフォルトの名無しさん [sage] 2009/10/24(土) 21:25:07 ID: Be: >>618 ガッ! 620 デフォルトの名無しさん [sage] 2009/10/24(土) 21:38:19 ID: Be: C++ならNULLは0だから、まあ 621 デフォルトの名無しさん [] 2009/10/24(土) 21:39:52 ID: Be: >>618はNULLを何だと思ってるんだろうな 623 デフォルトの名無しさん [sage] 2009/10/24(土) 21:52:40 ID: Be: CだってNULLは0だよ >>618 はヌルポインタと勘違いしてるんだろうな 626 デフォルトの名無しさん [sage] 2009/10/24(土) 22:03:27 ID: Be: Cの規定ではNULLが0以外もあり得るが、実機の上では存在しないだけ。 627 デフォルトの名無しさん [sage] 2009/10/24(土) 22:06:12 ID: Be: ちなみにWinSDKの実装は以下の通り #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif 628 デフォルトの名無しさん [sage] 2009/10/24(土) 22:07:22 ID: Be: >>626 Cの規定をよく読んでこい 629 デフォルトの名無しさん [sage] 2009/10/24(土) 22:10:31 ID: Be: >>626は間違ってない 630 デフォルトの名無しさん [sage] 2009/10/24(土) 22:13:02 ID: Be: ついでに'\0'にすると、きっちり型が指定されるので、 オーバーロードで誤認識されなくなる。 632 デフォルトの名無しさん [sage] 2009/10/24(土) 22:14:28 ID: Be: >>626はヌルポインターの内部表現が0ではない場合があることと、NULLが0であることを区別できていない。 633 デフォルトの名無しさん [sage] 2009/10/24(土) 22:15:54 ID: Be: >>630 '\0'はint型だけどな 634 デフォルトの名無しさん [sage] 2009/10/24(土) 22:20:13 ID: Be: >>630 何のついでだよw 635 デフォルトの名無しさん [sage] 2009/10/24(土) 22:37:54 ID: Be: ・↓が問題ないと言う奴はC-FAQを読んでから出直してくる事。 > dst[n-1] = NULL; ・謀らずとも、>>596や>>600のようなヘボがいるという事が証明されてので、 世界的にstrcpy, strncpy, sprintfは禁止にするのは正しい。 ・横道にそれるが、オレの予想では、strncpyの動作を正しく理解している奴は このスレ内で3割以下だろう。 636 デフォルトの名無しさん [sage] 2009/10/24(土) 22:46:23 ID: Be: 使い方を知らない最底辺のドカタは使ってはいけない、というだけ 637 デフォルトの名無しさん [sage] 2009/10/24(土) 22:46:29 ID: Be: >>596や>>600のようなヘボがいる程度で世界的にstrcpy, strncpy, sprintfを 禁止しなければいけないような糞言語は世界的に禁止した方がいいね。 638 デフォルトの名無しさん [sage] 2009/10/24(土) 22:47:18 ID: Be: #define strncpy_s(d, s, n) do{strncpy((d), (s), (n)<strlen(d)?(n):strlen(d)); (d)[strlen(d)-1]='\0';}while(0) 639 デフォルトの名無しさん [sage] 2009/10/24(土) 22:49:16 ID: Be: 使い方知っているならば、セーフバージョンを使わない理由はない。 無かったら(sprintf以外は)用意するね。オレは。 641 デフォルトの名無しさん [sage] 2009/10/24(土) 22:49:53 ID: Be: 組み込みで0番地からメモリを利用する環境では、 NULLが0xffffというものあるけどね。 最近の子には関係ない話。 642 デフォルトの名無しさん [sage] 2009/10/24(土) 22:50:35 ID: Be: >>638 またしても、ヘボ現る。 645 デフォルトの名無しさん [sage] 2009/10/24(土) 22:52:33 ID: Be: >>638はネタだろ 646 デフォルトの名無しさん [sage] 2009/10/24(土) 22:52:59 ID: Be: >>638 本日、一番のヘボだな。 647 デフォルトの名無しさん [sage] 2009/10/24(土) 22:54:30 ID: Be: >>638 いいねそれ 648 デフォルトの名無しさん [sage] 2009/10/24(土) 23:09:48 ID: Be: マクロの時点でうんこだし どんだけstrlen好きなんだよ 649 デフォルトの名無しさん [sage] 2009/10/24(土) 23:11:23 ID: Be: dの長さを調べてどうする? という事に気付かないバカばっかりか? 650 デフォルトの名無しさん [sage] 2009/10/24(土) 23:12:50 ID: Be: 気付いていないと思ってるバカは>>649だけだけどな 672 デフォルトの名無しさん [sage] 2009/10/25(日) 01:58:05 ID: Be: おっさんは引き際というものを知らないな 673 デフォルトの名無しさん [] 2009/10/25(日) 01:58:37 ID: Be: もう引っ込みつかないよ 674 デフォルトの名無しさん [sage] 2009/10/25(日) 02:00:14 ID: Be: 長さを調べる対象が間違えてるといってる奴は何も分かってないな 問題はそこじゃないってのに。 675 デフォルトの名無しさん [sage] 2009/10/25(日) 02:01:04 ID: Be: 対象を変更(訂正)すればそのマクロが非効率ながらもセキュアになりうると思っているっぽいよな 676 デフォルトの名無しさん [sage] 2009/10/25(日) 02:02:21 ID: Be: この雰囲気なら気づき次第プギャーしだすんじゃね? 677 デフォルトの名無しさん [sage] 2009/10/25(日) 02:09:02 ID: Be: ヘボだの間違ってるだの言う割に、どうするのが正しいかを書かないところをみると 正しい回答を知らない、あるいはここに書けるほどの自信がない(間違ってm9(^Д^)プギャーされるのが怖い)のどちらかだろうな。 678 デフォルトの名無しさん [sage] 2009/10/25(日) 02:16:54 ID: Be: >>638のようなクズコード書いたヘボは引っ込んでろ。途中で C FAQ名物? のNULLの話も。 そういえば藤原さんの本に、やたらと strcat を使いたがるパターンとかあったような。 それも、strcat(strcat(strcpy(foo, bar), baz), quux); とかいう感じで呼び出し。
ALGOL - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/ALGOL ALGOL 58 - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/ALGOL_58 http://en.wikipedia.org/wiki/ALGOL_60 ALGOL 68 - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/ALGOL_68 ALGOL W - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/ALGOL_W
- SICP in Clojure
This site exists to make it easier to use Clojure rather than Scheme while working through SICP.- null objects vs. empty objects - Stack Overflow
- これからEmacsでR使う人のための設定まとめxyzzy 版☆~
- はてなブックマーク - 小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - じゅんいち☆かとうの技術日誌
- 2009-10-27 - しんさんの出張所 はてな編
デフォでBigDecimal使うGroovyはもっと評価されていいと思う。ほお。- otaku,cafe,akiba
三省堂書店 公式ブログ 古書館 - 10月27日 三省堂古書館がオープンします。- 僕らが作っているのは「作品」ではなく「商品」――宮本茂氏が30年の仕事史を振り返る(ITmedia Gamez) - Yahoo!ニュース
- Joel Spolsky, Snake-Oil Salesman « Stochastic Geometry
- PHP新書『ネットビジネスの終わり』を読了したんですけど: 異常感想注意報
- COMMON LISP JP > Archives > 2009/10/27
- Twitter / くでん (Kuden): これまでも散々云われてるけど、Mozillaを再生し ...
- Twitter / くでん (Kuden): (続き)Apple行ったり、Google行ったり、自 ...
- Twitter / ただし (斎藤 匡): 0.1を1億乗くらいすると、我がDecimalはBi ...
- Windoes7 そんなにいいのか -OKWave
- Twitter / くでん (Kuden): ネットでいろいろ記事を見てる限り、よいソフトウェアを ...
- Amazon.co.jp: Foundations for Programming Languages (Foundations of Computing): John C. Mitchell: 洋書
- 厨房IT:楽天テクノロジーカンファレンス2009に行って来た。
- 厨房IT:第100回カーネル読書会いい表情だ。
- Twitter / 秋葉原案内所: 改装中の駅ビル、ベックス隣(旧石丸ケータイ・DOS/ ...
2009年10月26日
・なーんか忘れているような気がするんだけど思い出せない…
・Amazonさんから Kindle 買いませんかとオススメメールが来たw
■_ 隠し機能
まあこの環境変数の扱いは確かマニュアルにも記載がなくて、 ソース読まないとわからないんじゃなかったけか。
WHINY_USERS=0 WHINY_USERS=0 From: Hermann Peifer Subject: WHINY_USERS=0 Date: Fri, 23 Oct 2009 19:41:26 +0200 User-agent: Thunderbird 2.0.0.23 (Windows/20090812) I was making some WHINY_USERS performance tests, following the example at http://awk.info/?tip/whinyUsers It looks to me that not only WHINY_USERS=1, but also WHINY_USERS=0 or even WHINY_USERS= are leading to sorted processing of arrays. I have to actually unset WHINY_USERS in order to get back to default array processing. The corresponding test in AWK source code (main.c) is: if (getenv("WHINY_USERS") != NULL) whiny_users = TRUE; I am wondering if this is rather a feature or something else? Regards, HermannRe: WHINY_USERS=0 Re: WHINY_USERS=0 From: Aharon Robbins Subject: Re: WHINY_USERS=0 Date: Sun, 25 Oct 2009 22:06:54 +0200 Greetings. Re this: (ry) It's what programmer types call an "easter egg", meaning an undocumented feature with unusual or interesting behavior, and I intend to keep it that way (but see the gawk.texi file :-). The feature as coded means "if WHINY_USERS exists in the environment, enable the whiny user related features." (There are at least two.) So, the behavior you're seeing is what I wanted. I don't intend to change it. Personally, I think you should use asort or asorti if you want array sorting. The code is much clearer that way. Thanks, Arnoldfor (i in array) とかでソートされた順番が出てくるとかだったかなあ。 これがセットされてるときの動作。
■_ 中の人?
コメント欄。 http://app.jibun.atmarkit.co.jp/t/comments?__mode=red&user_id=360502&id=29243225
ベンチャー社長で技術者で: 電子経済産業省アイディアボックス 電子経済産業省アイディアボックス 電子経済産業省アイディアボックスというのを作ったらしい。 まずは、この試みを高く評価したい。コメントを読む限り、担当の方はかなり真摯に取り組ん でらっしゃる。これを読んだら、皆さんも急いでアカウントを取って、アイデアでもコメントで も、評価(クリックだけ)でもしていただきたいと思う。 いいたいことはイロイロあるけれど、珍しくがんばっているので批判は控えようと思ったが、 1点許せないことがある。 (略) コメント アイディアボックス中の人 2009年10月22日 (木) 22:14 アイディアボックスの応援ありがとうございます!経済産業省の担当者です。 ぜひ、ベンチャーの視点で、これは!というアイディアやコメントをよろしくお願いします。 サイトが消えてしまう件については、申し訳ありませんがご容赦ください。 私自身も、大変忍びないのですが、今回実験ということで、簡易に手っ取り早く サイトを構築するために、内製でつくらずに、民間のクラウドサービスを 利用しており(米国でオバマ氏が使ったものと同じものをカスタマイズして使っています) 11月14日で利用契約が切れるので、サイトは消えてしまいます。 ただ、サイトは消えても、頂いたアイディア・コメントは残りますので、 そのデータは、原文ママで終了後も経済産業省のサイトのどこかに掲載したい と考えています。 これからも、応援よろしくお願いします。ふむ。>クラウド活用
■_ なまえ
んー、Perlがアレを Hash と呼ぶのは元々 Associative Array (連想配列) と呼んでいたけど、それが長ったらしいから短い名前に変えたんだったよなあ。 たしか。Hashtable でもまだ文字数が長かったのかな?w
Twitter / TELL: RT @inohiro: はげどう RT @__pa ... RT @inohiro: はげどう RT @__park: perlとかperlとかで 'hash' っていうクラス名を使ってい るのが悪いのだろうか。ああいうデータ構造は 'dictionary' とか 'hashtable' とかにすべき だと思うが。■_ ヲチ
strncpy を strlcpy のように使うのは無理があるよな。やっぱし。 末尾のナル文字問題は忘れるにしても、長さのパラメーターが表す対象が strncpy はバッファ全体の長さではないから、結構面倒だったりするのだよね。
Ruby 初心者スレッド Part 32 82 デフォルトの名無しさん [sage] 2009/10/26(月) 02:34:52 ID: Be: Ruby-mswin32版の1.9.1をインストールしたら gemが入ってたので、ssleay32.dllとzlib.dllをbinフォルダにいれて パスとおして gem update --system ってコマンド打ったら Updating RubyGems Updating rubygems-update Successfully installed rubygems-update-1.3.5 :0:Warning: Gem::SourceIndex#search support for String patterns is deprecated Updating RubyGems to 1.3.5 Installing RubyGems 1.3.5 D:/ruby-1.9.1-p0-i386-mswin32/lib/ruby/gems/1.9.1/gems/rubygems-update-1.3.5/lib /rubygems/config_file.rb:39:in `new': wrong number of arguments (5 for 4) (Argum entError) from D:/ruby-1.9.1-p0-i386-mswin32/lib/ruby/gems/1.9.1/gems/rubygems-upd ate-1.3.5/lib/rubygems/config_file.rb:39:in `<class:ConfigFile>' from D:/ruby-1.9.1-p0-i386-mswin32/lib/ruby/gems/1.9.1/gems/rubygems-upd ate-1.3.5/lib/rubygems/config_file.rb:12:in `<top (required)>' from D:/ruby-1.9.1-p0-i386-mswin32/lib/ruby/gems/1.9.1/gems/rubygems-upd ate-1.3.5/lib/rubygems/gem_runner.rb:8:in `require' from D:/ruby-1.9.1-p0-i386-mswin32/lib/ruby/gems/1.9.1/gems/rubygems-upd ate-1.3.5/lib/rubygems/gem_runner.rb:8:in `<top (required)>' from setup.rb:25:in `require' from setup.rb:25:in `<main>' ってかんじで怒られた、どっか間違ったか? 83 デフォルトの名無しさん [sage] 2009/10/26(月) 06:20:08 ID: Be: p0で失敗しても文句は言えんな 84 デフォルトの名無しさん [sage] 2009/10/26(月) 07:12:57 ID: Be: うひょう、ruby1.9.1-p0 と ruby1.9.1-p243 で Win32API の initialize の引数の数が違う p0 def initialize(dllname, func, import, export = "0") p243 def initialize(dllname, func, import, export = "0", *rest) rubygems-update-1.3.5 の記述 if RUBY_VERSION > '1.9' then SHGetFolderPath = Win32API.new 'shell32', 'SHGetFolderPath', 'PLPLP', 'L', :stdcall SHGetFolderPath.call nil, CSIDL_COMMON_APPDATA, nil, 1, path else SHGetFolderPath = Win32API.new 'shell32', 'SHGetFolderPath', 'LLLLP', 'L' SHGetFolderPath.call 0, CSIDL_COMMON_APPDATA, 0, 1, path 85 デフォルトの名無しさん [sage] 2009/10/26(月) 08:15:39 ID: Be: Ruby1.9.1 の Windows 用でそれをするとはいろいろな意味でチャレンジャーというか煽り屋というか 86 デフォルトの名無しさん [sage] 2009/10/26(月) 08:20:42 ID: Be: そんなんただのラブレターだろ 「いますぐRuby1.9.1の最新版パッチのWindowsバイナリを公開しろ、 さもなくば基幹的デファクトスタンダードライブラリのアップデート不能を以ってRubyの価値を減じる」 というラブコール 87 デフォルトの名無しさん [sage] 2009/10/26(月) 08:26:30 ID: Be: 最新版のWindowsバイナリー! 早く来てくれー! 俺もコンパイルに成功すれば、Windowsバイナリ公開したいのに make test-allがなかなか通らない…… メンテナの方々はどんな作業をやってるんだろう 88 デフォルトの名無しさん [sage] 2009/10/26(月) 08:33:12 ID: Be: ttp://rubyforge.org/frs/?group_id=167 ruby-1.9.1-p243-i386-mingw32 は一応ないわけでもない 90 デフォルトの名無しさん [sage] 2009/10/26(月) 12:49:19 ID: Be: とりあえず ruby が糞だということは良く伝わりました 本当にありがとうございました 91 デフォルトの名無しさん [sage] 2009/10/26(月) 12:57:45 ID: Be: ラブレターなら直接相手に言わないと伝わらないんじゃないか 92 デフォルトの名無しさん [sage] 2009/10/26(月) 13:07:20 ID: Be: >>91 リア充は帰れ ラブレターってのは 「○○って△△さんのこと好きなんだって」 「えーうそー△△ちゃん可哀想~」 みたいに周りからじっくり攻めていくのが正しい姿 93 デフォルトの名無しさん [sage] 2009/10/26(月) 13:10:00 ID: Be: 明らかに周りからも祝福されてねーじゃねーか 94 デフォルトの名無しさん [sage] 2009/10/26(月) 13:24:46 ID: Be: なにごとも一度でうまくいくことはそうそうないよ 突然話を振るよりも事前のネゴとコネと日頃のコミュニケーションが大事 95 デフォルトの名無しさん [sage] 2009/10/26(月) 13:33:47 ID: Be: >>92 > 「えーうそー△△ちゃん可哀想~」 やめろ 96 デフォルトの名無しさん [sage] 2009/10/26(月) 14:57:09 ID: Be: クソワラタwww何だこの流れ。
正規表現 Part6 544 デフォルトの名無しさん [sage] 2009/10/26(月) 11:37:03 ID: Be: 特定の1文字をグループで取り出し、その1文字を後方参照で否定で使いたいのですが、 うまくいきません。つまり[^\1]がうまく動作しません(構文エラーにはならないのですが)。 おそらく\1は1文字でなく文字列なので文字クラスの中で使えないのだと思いますが、 では\1を否定で使うにはどうしたらいいですか。(!\1)なんてありませんよね。 545 デフォルトの名無しさん [sage] 2009/10/26(月) 12:48:08 ID: Be: >>544 >>1 まず処理系を明示しろ 546 デフォルトの名無しさん [sage] 2009/10/26(月) 12:48:50 ID: Be: ものによるけど否定先読みでどうにかならん? 547 デフォルトの名無しさん [sage] 2009/10/26(月) 13:00:29 ID: Be: perlなら /(.)(?!\1)./ でいけたよ。クォート類で囲まれた文字列を取り出すとかそういうのかなあ。 文字じゃなくて文字列という話じゃなくて、ブラケット中ではいろいろ記号の意味が 変わるということじゃなかろか。
- Twitter / Yukihiro Matsumoto: 私は4時に来て7時に帰ってるなあ。 RT @HIRO ...
- Twitter / Yukihiro Matsumoto: 本人は抵抗しているぞ。 RT @chamaeleon ...
- Twitter / Hirofumi Saito: 今日から PHP の『あだ名』は『ぷっぷ』になりました。
- Twitter / Hirofumi Saito: あ、PHP の『あだ名』思いついた。『ぽっぽ』だ。
- Hexenkessel - 日本で起業が少ないのを嘆いてる人が(はてな周辺に限って)たくさんいるけれど、ヨーロッパだって似たような...
- 「まほらば」の小島先生、余命5年と宣告… : プラティカルパ
- Twitter / しかのつかさ: 名言が生まれました( ・∀・ ) @kamosawa ...
- Hexenkessel - 著作権は今は複製権制御だけれど、クラウド時代にはアクセス制御にシフトするイメージ。別にシンクライアント...
- ブラキオサウルスの復元図ってスゲェな:アルファルファモザイク - 2ちゃんねるスレッドまとめブログ
- 竜弓類 - Wikipedia
- 単弓類 - Wikipedia
- デリゲート (C# によるプログラミング入門)
Person p2 = new Person("神無月めぐみ");- Twitter / ベニテングタケ: mainCRTStartup (VC++ の場合の ...
- F#たん - Windows Live
- まさかパスタとスパゲッティの違いくらい分かるよね?:アルファルファモザイク - 2ちゃんねるスレッドまとめブログ
- 夢はエンジニアに強い影響を与える本を書くこと 松信嘉範さんのエンジニアライフ(1/2) - 特集:No okyuu, No Life [okyuu.com]
- Twitter / NISHIMOTO Keisuke: @sumim @openduck ごめんなさい^2 ...
- 基本情報技術者試験 4度落ち -OKWave
2009年10月25日
・川背さん 発売日が延びてその後どうなってんだろうかとふと気になったのですが Amazon.co.jp: 海腹川背・旬 セカンドエディション完全版: ゲーム この商品の発売予定日は2009年10月29日です。 今週かっ
・尾花新監督?横浜:巨人・尾花コーチに監督要請へ - 毎日jp(毎日新聞) まあ選手からイキナリ監督させるというパターンでないのはいいと思う。 とはいえ監督としての力量は不明ではあるけど、ベイスターズの場合監督がどうこうよりも(ry
・TAOCP 先週末辺りに日本語版が出た The Atr of Computer Programming の第四巻分冊0ですが、 どうも買いたくなる内容の模様。か、金がまた
■_ 七つの
出版されるとして、いつ頃なんだろうか。 結構興味がががが。
Rapid Red Seven Languages Ive signed up to write a book for the Pragmatic Press called Seven Languages in Seven Weeks. The languages are set now. They are: * Ruby * Io * Scala * Erlang * Clojure * Haskell * Prolog With this list, I did the following: * I wanted at least 3 paradigms. (There are 4). * I wanted to take one comfortable language to get people in tune with the style. I push Ruby all of the way into the metaprogramming space in one chapter. * I pushed hard to work at least 4 functional languages into the mix. (Scala is more of a hybrid, but it will make for a gentle introduction.) * I wanted at least one prototype language. I didn’t want to do JavaScript because I really wanted to get to the core of what Prototype programming really is in a single chapter, and Io does a pretty good job of that with minimal syntax. * I included Prolog to introduce yet another paradigm that will stretch some readers. I'm finishing up the first pass through the Io language chapter as we speak. It's been a real mind bender for me, and the community is great. I'd have to say that of the rest, I'm most excited about Erlang, and a little nervous about Haskell. It’s going to be hard to do it justice in a chapter.■_ か、金が
来月下旬とはいえきびしいなあ。
朝倉書店|書籍詳細情報 コンパイラの構成と最適化 コンパイラの構成と最適化 (第2版) A5/624ページ/2009年11月20日 ISBN978-4-254-12177-3 C3041 定価10,290円(税込) 中田育男 著 好評いただいた初版から10年,以降の進展も折り込み,全体の構成を整理し,さらに新たな章と して,レジスタ割付け,データの流れの解析の別法,オブジェクト指向言語での最適化,を設け た。「コンパイラのバイブル」として君臨する内容である。コメントがむしろ強く印象に残ったり。
人生を書き換える者すらいた。: Objective-Cのここが嫌い コメント ちょっと面白かったんでツッコミ。 nilが無効化する作法はSmalltalkから来てるんですが、それは aObj = [[[Hoge alloc] init] autorelease]; というお作法通りのコードが示すように、何らかのオブジェクトに入れ子のメッセージを送って 次々に変形するパターンを多用するからです。入れ子で書きたいようなコードは基本的にその全 体で機能しないと意味がないため、「無駄な中間監査は挟まない」というのがObjCの設計思想と いうことになります。その分元締めはしっかりする必要がありますが、慣れてくると(ObjC的に は)この方が便利な仕様なのが見えてきますね。 投稿者: 通りすがり (2008/09/09 22:03:38)なるほど。 と思いつつもここでふと気になったのですが、これは例外機構が組み込まれてなかったから とかいうことはないのでしょうか? 意図的に実装しなかったという場合も含めてですが。
■_ 本日の巡回から
- Twitterのクチコミ、いやストリームの怖さと本質について - ガールズログに関する考察:Speed Feed:ITmedia オルタナティブ・ブログ
恒久より拙速を尊ぶという孫子の教え通り、孫子にんなことは書かれてません。>拙速を尊ぶ あるのはこれ。故兵聞拙速 未睹巧之久也あと「恒久より」てナニ?- ブラキオサウルスの復元図ってスゲェな:アルファルファモザイク - 2ちゃんねるスレッドまとめブログ昭和の男の子にショックなのはイグアノドンの変わり様じゃないかなあw
- 竜弓類 - Wikipedia
- 単弓類 - Wikipedia
古くは哺乳類型爬虫類とも呼ばれたその祖となる生物の総称である。
ぐぉっ。今は哺乳類型爬虫類とか言わないのか- インフルエンザワクチンの謎 | 裏表(Phinloda のもう裏だか表だか分からないページ)
- プログラミングのための線形代数 - 『プログラミングのための確率統計』非公式サポートページ
- Twitter / mala: 飲み会とか九割参加しないけど一応誘って欲しわ
あ、すげー同感w- 共立出版株式会社 新シリーズ・講座 「Rで学ぶデータサイエンス」
- Amazon.co.jp: 名刺・カードデザイン すぐに使えるアートワーク: ランディング: 本
- これから発売される付録つきのアニメ・漫画系雑誌まとめ :おた☆スケ -おたくのスケジュール帳-
- Twitter / しかのつかさ: そうだよね。IT特許とかも年数は今のままで良いけど、 ...
- 教えて! Watch rake aborted!について
- OSX rake aborted! について - Yahoo!知恵袋
- codeなにがし::rake aborted! no such file to load -- sqlite3について
- トランセンド、USB直挿しのポータブルオーディオ -AV Watch
- Twitter / Yukihiro Matsumoto: 私は4時に来て7時に帰ってるなあ。 RT @HIRO ...
- Twitter / Hirofumi Saito: 今日から PHP の『あだ名』は『ぷっぷ』になりました。
- Twitter / Hirofumi Saito: あ、PHP の『あだ名』思いついた。『ぽっぽ』だ。
- Gauche Gargabe Collection
Gauche Garbage Collection (ggc) is a collection of programs for Gauche. We collect programs which are considered as ``garbage grade'',- Twitter / ジュンク堂書店池袋本店/PC書: イベント情報:2009/11/12(木)19:00~ ...
- 楽天、分散キー・バリュー型データストア「ROMA」のソースコードを公開 - ニュース:ITpro
- Hexenkessel - 日本で起業が少ないのを嘆いてる人が(はてな周辺に限って)たくさんいるけれど、ヨーロッパだって似たような...
- 過去20年で最も革新的なゲーム5選:アルファルファモザイク - 2ちゃんねるスレッドまとめブログ
「アローン・イン・ザ・ダーク」は確かに見たとき驚いたな- Hexenkessel - 「オープンガバメントとベーシックインカムの組み合わせ」という言葉でぼくがイメージしているのは、露悪的に...
- 「まほらば」の小島先生、余命5年と宣告… : プラティカルパ
- Twitter / しかのつかさ: 名言が生まれました( ・∀・ ) @kamosawa ...
- Hexenkessel - 著作権は今は複製権制御だけれど、クラウド時代にはアクセス制御にシフトするイメージ。別にシンクライアント...
- FreeBSD Daily Topics:2009年10月23日 FreeBSDステータスレポート200904-09 その6 - 新しいロケールシステム,BSDライセンスデバッガ|gihyo.jp … 技術評論社
- http://imgur.com/Q8Dm7
- ditaa
- PowerShellでリダイレクト | Hamuzak's Blog
許さないぞ,まいくろそふと!