タグ

ブックマーク / cpplover.blogspot.com (27)

  • 本の虫: 確率分布の使い方

    C++0xのstd::randomには、様々な分布クラスが存在する。一体どうやって使い分ければいいのか。ここでは、ゲームにたとえて考えてみる。 もっとも簡単な分布は、一様分布(Uniform distributions)である。これは、a ≦ i ≦ b, の範囲の値iを、それぞれ等しい確率で返す分布である。 ゲームでいえば、サイコロやルーレットなどの実装に使えるだろう。 // 六面サイコロの実装 int main() { std::mt19937 rng ; // 一様分布 // 0から5までの数字を等しい確率で返す分布 std::uniform_int_distribution<> dice(0, 5) ; int a[6] = { } ; // 六面サイコロの出た目の回数を記録する配列 // 600回サイコロを振る for ( int i = 0 ; i != 600 ; ++i )

  • iBus 1.5はバグがあるからクソなのではない。設計上クソなのだ

    先日、iBus 1.5がクソすぎると書いたが、以下によって、iBusをクソと罵るのではなく、貢献をしろという主張がなされている。貢献とは、ひとえにパッチを書いて送ることのみをいうのではない。問題の指摘や、使用した感想を報告するといった比較的軽いものも貢献に含まれると、そう主張している。 誰がオープンソースソフトウェアを酷いものにしてしまうのか - 人生が二度あれば もちろん、それはそうだ。ソフトウェアは使われるというだけで貢献になる。利用感を報告すればなお良いし、開発に参加すればさらによい。しかし、それは貢献が受け入れられるならばの話だ。そのような貢献を受け入れる機会は10ヶ月もあったが、依然としてiBusの上流で受け入れる気配はみられない。貢献が受け入れられなければ、貢献は貢献にならないのだから、貢献をするのは無駄だ。 iBus 1.5の問題は、バグではない。設計上の問題である。そして、

  • ストールマンのいう不自由なSaaSSを打ち破る方法について、FreenetやBitTorrentやBitcoinの先例を考える

    ストールマンのいう不自由なSaaSSを打ち破る方法について、FreenetやBitTorrentやBitcoinの先例を考える GNUの30周年にことよせてWired.comoに起稿したストールマンの文章によれば、ストールマンは、SaaSS(Service as a Software Substitute)を不自由なソフトウェアと同等に、利用者の自由を奪う危険な存在であると考えているそうだ。 Why Free Software Is More Important Now Than Ever Before | Wired Opinion | Wired.com SaaSSは、もはや空気のようなものだ。どこにでもある。そもそも、このブログというサービスを提供しているBloggerだって、SaaSSだ。Twitterもそうだ。Googleのような検索サイトもそうだ。メールだって、大抵の人間は、自

    iaskell
    iaskell 2013/10/12
    哲学的過ぎてちょっとよくわからん
  • オンラインブックマークという移り変わりの激しいWebサイトについて

    オンラインブックマークというサービスの価値に、私は当初、懐疑的だった。だが、実際のところ、ブログのネタを探す目的には、非常に役に立っている。 大勢の人間が、わざわざオンラインブックマークをするからには、そのURLには、大勢の人間の興味を惹きつける、何らかの要素がある。それがいいものにせよ、悪いものにせよ、だ。とくに、個人が最近書いた秀逸な技術的なブログ記事などは、このようなオンラインブックマークで話題にならなければ、なかなか見つけにくい。 日語圏では、このオンラインブックマークは、はてなブックマークが事実上独占しているようだ。ただし、はてなブックマークは、英語圏のオンラインブックマークが提供している、ある根的な機能が欠けている。フォーラムだ。はてなブックマークのコメント機能はとても貧弱で、到底、汎用的なフォーラムの代替とは成り得ない。英語圏で有名なオンラインブックマークは、いずれもフォ

    iaskell
    iaskell 2013/09/30
    "「・・・ですがなにか?」に相当" 節子、それスレタイやない、おぎやはぎや
  • 自由ソフトウェア運動の思想に囚われた技術的に劣った選択

    このところ、自由ソフトウェアのコピーレフトライセンスは方向性を間違えており、許諾的なオープンソースライセンスが流行っているとする主張がある。 漢(オトコ)のコンピュータ道: フリーソフトウェア運動は方向性を間違えてはいない これについて思うことがあるので書く。その前に、まず自由ソフトウェアとは何かということから説明しなければならない。 もちろん、許諾的なオープンソースライセンスと呼ばれるもののほとんどは、ストールマンの自由四原則を満たす。 What is free software? - GNU Project - Free Software Foundation (FSF) すなわち、 あらゆる目的でプログラムを実行する自由(自由0) プログラムがいかにして動作するのかを検証し、変更して自分の意のままに動作させる自由(自由1)。ソースコードへのアクセスはこの自由への前提条件である。 複製

  • フランスの国内情報中央局がWikipediaのsysopを脅迫して記事を削除させる

    French homeland intelligence threatens a volunteer sysop to delete a Wikipedia Article | Autour de Wikipédia et des projets Wikimedia フランスの国内情報中央局が、法的手続きを踏まずしてWikipediaの記事の削除権限をもつボランティアを呼びつけて脅迫し、記事の削除を強制させたそうだ。 [CC-BY-SA 2.0] 3月の初め、DCRI(フランスの国内情報中央局)がWikipediaホストする非営利団体のWikimedia財団と連絡を取った。彼らはフランスの軍事基地関するあるフランス言語Wikipedia記事に軍事機密情報が含まれると主張し、即座に削除することを要求した。Wikimedia財団はこれを考慮し、彼らは十分な情報を提供していないと考え、彼らの要

  • 自由ソフトウェア財団が技術的な指導力を失いつつある

    GNU sed 4.2.2 released, and a rant from the maintainer GNU sed 4.2.2のリリースに合わせて、メンテナーであるPaolo Bonziniが、GNU sedを含むGNUプロジェクトのメンテナーをやめると発言している。さらに、その理由について書き立てている。 私はGNU sed 4.2.2を喜ばしく発表する。 喜ばしからぬ発表として、私はGNU sed(8年間)とGNU grep(3年)のメンテナーから降りる。私はさらに、Autoconf, Automake, Libtool, gnulib, libsigsegv, Bsionのコミットアクセス権も放棄する。 GNUメンテナーと外部の者に告ぐ。この発表や、Nikos Mavrogiannopoulosの発表、gnutlsの移行は、驚くにあたらない。 gnutls is movin

  • gccにconstexprが実装された

    GCC 4.6に、constexprが実装された。constexprについては、特に難しいことはない。単に、関数やクラスを、コンパイル時定数にできるというだけの話である。ともかく、せっかくなので使ってみる。この機能は、細々と解説するより、実際にコードを示したほうが分かりやすいであろう。 まずは、constexprな変数である。 int main() { constexpr int a = 0 ; // OK int value = 0 ; constexpr int b = value ; // エラー const int c = value ; // OK } constexpr指定された変数は、必ずコンパイル時定数になる。変数の初期化子は、定数式でなければならない。constとの違いは、constはコンパイル時定数でなくてもよいのである。constは、初期化子が定数式の場合、定数式にな

  • GCC 4.8のビルドはデフォルトでC++になるかも

    Diego Novillo - Switching to C++ by default in 4.8 GCC開発者の一人でGooglerのDiego Novilloは、今月の3日にMLで、GCC 4.8のビルドをデフォルトでC++にしようと提案している。これは、GCC自体をビルドする際のデフォルトの言語をC++にするという意味である。GCCがコードをデフォルトでC++としてコンパイルするのではない。現在のGCCビルドシステムの言語モードをC++に切り替えるのは非常に簡単で、必要なのはテストだけだという。 2011年、GCCの実装で、C++を使用可能にする採択が受け入られている。GCC自体のコンパイルをデフォルトでC++にすることは、GCC実装におけるC++の利用を更に加速するだろう。 GCCにおけるC++利用のコーディング規約は、目下作成中である。コーディング規約が完成する前に、GCCのビ

  • 本の虫: rvalue reference 完全解説

    目的 この記事は、C++0xのrvalue referenceを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からrvalue referenceを恐れることなく使う物のC++0xプログラマになれるだろう。 lvalueとrvalueについて Cの時代では、lvalueとrvalueの違いは、代入演算子の左側か右側かという違いだけであった。つまり、left hand value, right hand valueの略である。従って、訳語も、左辺値、右辺値であった。C++においては、これはもはや正しくはない。従って、右辺値、左辺値というのも、誤訳である。それ故に、ここでは、これ以上、左辺値、右辺値という名称を使用しない。 誤解を恐れずにいえば、lvalueとは、明示的に実体のある、名前付きのオブジェクトであり、rvalue

  • 非同期入出力の残念な現状

    asynchronous disk I/O | libtorrent blog Libtorrent experience - the poor state of async disk IO | Hacker News libtorrentの作者が、ディスクI/Oをパフォーマンスを向上させるために非同期I/Oを試した結果、どの環境でも残念なので、ブロックI/Oをスレッドプールで行う擬似非同期I/Oで実装したとブログを書いている。その問題について、Hacker Newsでも議論されている。 非同期I/Oは、話を聞くとたのもしい機能に思える。読み書きが完了するまでブロックせずに、完了したらOSが通知するという仕組みだ。 問題は、その実装がどの環境でも貧弱だという事だ。 環境というのは、主にOS側のことだ。多くのモダンなOSは非同期I/Oを提供している。特に著名なのがみっつある。 Linux A

  • 無責任な取り下げ要求には罰を与えるべきではないか

    江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul

  • エレキギターの品質と値段

    注意:これは私の記憶と主観だけで書いたものである。友人は、ギターに関しては相当の経験があり、ここには書いていない、私がよく覚えていないことも、たくさん語っていた。私はギターに関しては一切わからない。さらに曖昧な記憶をもって書いたものである。この文章をもって、友人のギターの腕前を評価すべきではない。 先日、旧知の友人宅を訪ねた。物が大量にあって狭い部屋に通されてまず目についたのが、真赤な黒いギターだ。友人がギターを弾くことは、昔から知っていた。 無言のまま、友人は得意げな顔をしてギターを引き始めた。しかし、不思議に音はほとんど鳴らない。耳をすませばかすかに鳴っているのが分かるだけだ。そこで気がついた。これはエレキギターなのだと。 弾き終わってから友人は言った。「たとえアンプに繋がなくてもわずかに音がなるのが、いいエレキギターなんだ」と。 エレキギターは、弦の振動を内部のコイルで増幅させて僅か

    iaskell
    iaskell 2012/08/23
    どこから突っ込めばいいのか分からない
  • 全人類が一斉にジャンプしたらどうなるのっと

    Everybody Jump もし全人類が出来るかぎりお互いに近寄って同時に跳躍し、同時に着地したならば、どうなるのか。 --Thomas Bennet(とその他多数) このブログに寄せられる質問で多かったのがこれだ。これは、すでに考察されている。特に、ScienceBlogsとかStright Dopeの記事とかで考察されている。ここでは、運動量についてはよく考察されている。しかし、その余りの考察が足りない。 もっと詳細を考えてみよう。 まず状況を考える。全人類が魔法のように一箇所に集められたとする。 この人間の群れは、ちょうどロードアイランド州ほどの大きさの面積を占める。しかし、ここでは、そんな仮定の話のように、「ちょうどロードアイランド州ほどの大きさの面積」などとは言わない。この状況では、我々は具体的に考える。実際にロードアイランドに集まるのだ。 正午をもって、皆が跳躍する。 すでに

  • エディター戦争

    GNU/Linux環境に移行して数カ月たった。当初危惧していた、GNU/Linuxは難しいのではないかとか、使い物にならないのではないかという恐れは、全て杞憂に過ぎなかった。ただ、文化の違いというのはある。 たとえば、私が不自由なWindowsを使っていたときは、IDEを重視していた。IDEとは、エディタ兼ビルドシステム兼デバッガー兼バージョン管理システム等等。ところが、GNU/Linuxに移ってからというもの、どうもそういう考え方はしなくなった。エディタはエディタで、ビルドシステムはビルドシステムで、デバッガーはデバッガーで、バージョン管理システムはバージョン管理システムとして、別々に使うようのが自然であるように思われる。 特にエディタだ。最初は、geditを使っていた。というのも、馴染みやすいテキストエディタであるからだ。Ctrl+Cでコピー、Ctrl+Xでカット、Ctrl+Vでペース

  • 日本国が危険な自主規制社会に突入しようとしている

    最近気になる声がある。「最近の広告にはわいせつ物が増えた。けしからん」という声である。この声は非常に危険である。 なぜ危険なのかというと、我が国では、刑法175条により、わいせつ物の頒布や陳列、頒布や陳列を目的とした所持は違法だからだ。 過去にも多数の芸術作品が、わいせつであるとして不当に撤去され、作者は罰せられている。実に、我が国は表現の自由を有せざる劣等国である。表現の自由が認められない世界では、思想の自由もなくなる。 したがって、我々はわいせつ性の判定に、もっと慎重になるべきである。なぜならば、一度わいせつ性が認められるや、その表現は違法になるからだ。表現を規制する法律を動かす便利な理由を自ら作り出しているのである。 さて、件の広告とやらは如何。幸い、あの有名な高木浩光氏が、スクリーンショット付きで実例を上げている。 togetter をスマホで見ると、常にこの手の広告。もうtoge

  • DNSの終焉が垣間見える、ぶっ飛んでて危険すぎるお名前.comの検閲事件

    忍者ツールズ全サービスが表示不可となる障害につきまして | ドメイン取るなら お名前.com ドメイン取得 年間280円~ 忍者TOOLSは、お名前.comというドメイン名レジストラにninja.co.jpのドメイン情報を管理させていた。忍者TOOLSは、ninja.co.jpというドメインを、自社の様々なサービスに使っていた。そのサービスは、忍者TOOLSのユーザーが使うものである。 さて、お名前.comの主張では、忍者TOOLSのユーザーがお名前.comの規約違反を起こしたために、ユーザーの規約違反は、すなわちそのユーザーのサービス提供元の規約違反であるとし、事前の協議や警告すらなしに、一方的にninja.co.jpのドメイン情報を消したそうだ。 これは恐ろしく危険な事件である。問題は、DNSが階層的な中央管理をされたシステムである以上、この問題は仕組み上どうしようもないという事である

  • イギリスではランダムなデータを所有しているとムショ送りになる

    In The UK, You Will Go To Jail Not Just For Encryption, But For Astronomical Noise, Too - Falkvinge on Infopolicy イギリスには、Regulation of Investigatory Powers Act 2000という法律がある。これは、暗号文の容疑がかけられたものを復号化する鍵を提供できない場合、懲役刑が課せられるというものである。懲役年数は、テロと児童ポルノ容疑の場合5年、それ以外の場合2年である。 これ自体、非常に邪悪な法律である。ほとんどの国では、自己に不利益な事は話さなくてもよいとされている。しかし、これは暗号に対する復号鍵を自白しない場合懲役刑である。 しかし、もっと危険なことには、現代の高度な暗号文とランダムなデータは見分けがつかないという事だ。たとえば、たまた

    iaskell
    iaskell 2012/07/13
    酷い話
  • 全プログラマーが知るべきレイテンシー数

    Latency numbers every programmer should know — Gist L1キャッシュ参照 0.5ナノ秒 分岐予測失敗 5ナノ秒 L2キャッシュ参照 7ナノ秒 Mutexのロックとアンロック 25ナノ秒 メインメモリー参照 100ナノ秒 Zippy[Snappy]による1KBの圧縮 3,000ナノ秒 1Gbpsネットワーク越しに2KBを送信 20,000ナノ秒 メモリーから連続した1MBの領域の読み出し 250,000ナノ秒 同一データセンター内におけるラウンドトリップ 500,000ナノ秒 ディスクシーク 10,000,000ナノ秒 ディスクから連続した1MBの領域の読み出し 20,000,000ナノ秒 パケットを、カリフォルニア→オランダ→カリフォルニアと送る 150,000,000ナノ秒 Jeff Dean著(http://research.googl

  • 本の虫: リチャード・ストールマンは常に正しかった

    Richard Stallman Was Right All Along 去年の年末頃、オバマ大統領はテロリストの容疑者を裁判や令状なしに拘束できる法に署名した。世界中で起こっている平和的なオキュパイ運動家は、権力者からテロリストだとレッテル貼りをされている。通信を監視するSOPAを成立させるような圧力もある。30年前、リチャード・ストールマンがGNUプロジェクトを立ち上げてからこのかた30年間、彼の極端な物の見方は、馬鹿げていてパラノイアじみていると嘲笑されたものだ。しかし、この2012年において、パラノイアだと思われていた予測が、現実のものになろうとしている。 ごく最近まで、リチャード・ストールマンを世間離れしたパラノイアの狂人だと一笑に付すことは簡単であった。まあ、いってみれば、奴は古臭いコンピューターヒッピーだ。地下室に引きこもって自分の世界に浸っているパソコンオタクだ。あのヒゲ、