タグ

2009年12月21日のブックマーク (7件)

  • 二流プログラマの三流な日常: .NET Framework のリソース開放基礎(2)

    .NET Frameworkのリソース開放は非常に難解です。 今回は重要メソッドである以下の2つについて説明します。 ・Dispose(リソースを開放できるメソッド、自動で呼ばれることはない) ・Finalize(リソースを何時か開放するメソッド、自動で呼ばれる) 実装時の注意点は以下のとおりです。 ■ Dispose Disposeは複数回呼ばれる可能性があるし、その場合に例外なしに呼び出せるよう実装しなくてはならない。 DisposeとFinalizeは殆ど似たような開放処理になる。しかし、アンマネージリソースの一部は、Disposeの実装とその呼び出しでしか開放できない。 DisposeとFinalizeを両方実装した場合、Dispose内でGC.SuppressFinalizeをする(パフォーマンス上の問題) ■ Finalize スレッドセーフに実装する必要はないし、複数回呼ばれ

    Wacky
    Wacky 2009/12/21
    ?Disposeは複数回呼ばれる可能性があるし、その場合に例外なしに呼び出せるよう実装しなくてはならない。
  • C++/CLI #4: ハンドルを数値に変換する - Entering Passive Mode

    Wacky
    Wacky 2009/12/21
    GCHandle::Alloc で ID が割り当てられると、そのハンドルは、内部的に強参照されるようになり、ガベージコレクションの対象にならない。
  • Boost.CoroutineとBoost.OptionalとBoost.Pythonを使って、C++クラスの内部イテレータをPythonの外部イテレータとして見せる - moriyoshiの日記

    追記: うっかり戻り値ポリシーのところで boost::python::return_internal_reference<> を使ってしまい、メモリリークを引き起こしていたので修正しました。 Stackless Python であれば continuation が使えるので、Python 側で C++ をまたぐ外部イテレータと内部イテレータの反転が可能なんだけど、通常の Python ではやはり Boost.Coroutine に頼るほかない。 以下のサンプルでは、よくある Visitor パタンに従って実装されたクラスを想定していて、Visitor が visit されるたびに、Python 側に処理が戻るというフローを実現している。 container クラスの戻り値は新たに new されたオブジェクトなので、boost::python::return_value_policy を使

    Boost.CoroutineとBoost.OptionalとBoost.Pythonを使って、C++クラスの内部イテレータをPythonの外部イテレータとして見せる - moriyoshiの日記
  • Boost.Python の機能をざっと紹介してみる - moriyoshiの日記

    Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.PythonC++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、PythonC++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙

    Boost.Python の機能をざっと紹介してみる - moriyoshiの日記
    Wacky
    Wacky 2009/12/21
    Boost.Python は C++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。
  • Web Sockets API、初の実装はGoogle Chrome | エンタープライズ | マイコミジャーナル

    Wacky
    Wacky 2009/12/21
    XMLHttpRequestと違いWeb Sockets APIでは通信が双方向になり、リクエストに返信する形ではなくサーバからブラウザへ直接データを送れるようになる。
  • スロッティング金型と一般金型の切断面の違い - 精密板金の丸井工業ブログ

    スロッティング金型を使用した加工例の紹介です。 おはようございます。丸井工業(株)専務の井手野です。 NCT加工機(NCT加工機をテーマにしたブログ)を使い材料から製品を切り取る加工方法で一般的に考えられるのは展開寸法にピッタリ合った金型を使うかニブリング(追い抜き)と言う加工方法のどちらかになります。展開寸法にピッタリと合った金型を選ぶ場合は相当数の金型を作る事になりコスト面から考えても現実的では無い為一般的にはニブリングを使います。 一般的なプレス加工機なら専用の金型を作る必要性がありますがNCT加工機は専用の金型を作らなくてもニブリングという加工方法で他の金型を流用して加工する事が出来きます。ニブリングとは金型を少しずつずらして打ち抜く事で(追い抜きとも言います)必要な寸法を切り取る事が出来る便利な加工方法ですがその際にニブリング跡と呼ばれる継ぎ目が出来てしまいます。この継ぎ目を無く

    Wacky
    Wacky 2009/12/21
    ニブリングとは金型を少しずつずらして打ち抜く事で(追い抜きとも言います)必要な寸法を切り取る事が出来る便利な加工方法ですがその際にニブリング跡と呼ばれる継ぎ目が出来てしまいます。この継ぎ目を無くした切
  • Own class library to use from IronPython | Paepoi Blog

    IronPython を日で検索すると C# から IronPython を使う方法ばかりだ。 GTK+ における PyGtk のように皆が使ってくれるだろうとか考えているのかな? Windows ユーザーがそんなことをするとでも思って…(略 Windows 用オンラインソフト作者をやれば解るって… よし。 逆に C# で作った自作クラスライブラリを IronPython から使う方法でもやるか。 需要が微妙であるのは気にしない、どうしてもそうしたい場合もあるヤン! とりあえず Visual Studio でテキトーなクラスライブラリを作る。 using System; namespace ClassLibrary1 { public class Class1 { public static bool ChangeText(out string s) { s = "Change"; re

    Wacky
    Wacky 2009/12/21
    逆に C# で作った自作クラスライブラリを IronPython から使う方法でもやるか