タグ

ブックマーク / nishiohirokazu.hatenadiary.org (6)

  • 4277075694とは何か - 西尾泰和のはてなダイアリー

    Windows環境でコードを書いていたらなぜかとある変数の値が4277075694とかいう謎の値になっているのを発見。なんだろうこれは?と調べてみたらこれ16進表記すると0xFEEEFEEEで、HeapFree()が呼ばれたあとの領域がこれで埋められるんだそうな。 0xBAADF00D : 3131961357 : HeapAllocした領域 0xFDFDFDFD : 4261281277 : mallocした領域の前後2バイト 0xCDCDCDCD : 3452816845 : mallocした領域 0xDDDDDDDD : 3722304989 : freeした領域 0xFEEEFEEE : 4277075694 : HeapFreeした領域詳しいことはここにわかりやすい表があったのでそれを見るといいと思う: Win32 Debug CRT Heap Internals

    4277075694とは何か - 西尾泰和のはてなダイアリー
  • 多重継承まとめ - 西尾泰和のはてなダイアリー

    JavaはInterfaceという特殊な実装を持たないものだけ多重継承できる。実装を多重継承する仕組みはない。同じシグネチャのメソッドを持っている2つのInterfaceを継承した際にエラーにならないので衝突に気付けない。 Pythonはクラスを多重継承できる。同じ名前のメソッドを持っている2つのクラスを継承した際にどのメソッドが呼ばれるかはC3線形化を使って決定される。see: A Monotonic Superclass Linearization for Dylan RubyはModuleという「なにかを継承することはできなくてインスタンス化もできないもの」だけは多重継承できる。Moduleが別のものを継承できないためメソッドの解決は素朴な探索でOK(include A include BしたらBでの実装が優先) SmalltalkにはTraitという実装の多重継承ができるしくみがあ

    多重継承まとめ - 西尾泰和のはてなダイアリー
    Horiuchi_H
    Horiuchi_H 2010/09/24
    一方、C++は virtual継承というややこしい概念で菱形継承を解決した(あまり、解決してない気もするけども)。
  • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

    プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断のい違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
  • Globalization is not a choice but a fact - 西尾泰和のはてなダイアリー

    何気なく隣の記事(東京は金融とか、そんな事は忘れましょう。 - Oh, you `re no (fun _ → more))を見てそこで引用されていた文章に吹いた。 「覚醒なんかしたくない、背伸びしてグローバル化したくない」が日人のマジョリティーではないか? 「背伸びしてグローバル化したくない」だって!! タイトルの「Globalization is not a choice but a fact(グローバリゼーションは選択肢ではなく、事実だ)」ってのはライス国務長官のダボス会議での発言なわけだが、かなり端的にグローバリゼーションに対する誤解を言い当てている。グローバリゼーションとは、インターネットの発明と、特にeコマースの発明が引き起こした社会構造の変化なんだ。つまりfactだ。個別の企業がグローバリゼーションを選択するとかしないとか言えるような選択肢ではない。 例を上げて説明しよう。

    Globalization is not a choice but a fact - 西尾泰和のはてなダイアリー
    Horiuchi_H
    Horiuchi_H 2010/07/14
    『今後の人生の中で今が一番若い』確かに。
  • SocketServerでソケットの再利用 - 西尾泰和のはてなダイアリー

    SocketServer.ThreadingTCPServer.allow_reuse_address = True って書くと内部でソケットを作る際にSO_REUSEADDRをつけてくれるので、サーバ終了後即座にまた起動したときに「Addres already used」って怒られなくなる。僕は全部reuseでよかったので上のような書き方をしたけども、特定のインスタンスだけreuseするならそのインスタンスsに対して「s.allow_reuse_address = True」すればいい。 理解するまでの間、再利用になるまで30秒待ちを何回も繰り返したので合計で何分か損した。

    SocketServerでソケットの再利用 - 西尾泰和のはてなダイアリー
  • TopCoderプロキシ - 西尾泰和のはてなダイアリー

    TopCoderのArenaはJavaWebStartで、www.topcoder.com:80からソフトウェアをダウンロードした後www.topcoder.com:5001にアクセスをする。というわけでwww.topcoder.comは普段は66.37.210.86。というわけでhostsを書き換えてwww.topcoder.comが127.0.0.1を指すようにした上でローカルで下のようなスクリプトを起動。 (削除されました) これでTopCoderのサイトからJavaWebStartで起動するところまではうまくいくのだけど、ログインをしようとするとタイムアウトになる。なんでだろうなぁ。 出力は (削除されました) って感じなので、サーバの返答を受信して、返事が来ないから全部受信し終わったと考えてクローズしているところが実は焦りすぎということなんだろうか。 - あ、そっか。HTTPと違

    TopCoderプロキシ - 西尾泰和のはてなダイアリー
  • 1