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

  • OSによる仮想化とは何だったのか

    最近の動向でわからないことがある。最近、クラウド(笑)とか称するマーケティング用語はともかく、クラウド(笑)のサーバー群の実装に、ハードウェアの仮想化技術がふんだんに使われていることだ。 完全にソフトウェアでハードウェアを実装するエミュレーターと違い、この手の仮想化技術は、ハードウェアに仮想化をサポートするための機能があり、それを使って、大きなオーバーヘッドが生じない仮想化を実現させている。 そのハードウェア仮想化の上で、ユーザーごとにゲストOSを実行している。つまり、これはOS外の仮想化である。 OSとは何だったのか。 我々は何十年も、OS内で仮想化を実装してきた。ひとつのコンピューターを複数人が使うという状況で、ユーザーとかアカウントという単位で仮想化を実現してきた。また、ファイルアクセスに権限を設け、ユーザーごとに柔軟に設定できるようにもした。プログラムはプロセスという単位で、他のプ

    tmatsuu
    tmatsuu 2013/09/22
    OS外仮想化は結局のところ異なるOSを動かしたいという需要があるからに尽きると思う。OS内仮想化も進化が続いてるし、単に目的が異なるだけじゃないかな。 / “本の虫: OSによる仮想化とは何だったのか”
  • Apple流の新機能の隠し方:(BOOL)isYoMamaWearsCombatBootsSupported;

    How Apple hides new functionality in iOS: isYoMamaWearsCombatBootsActive | Hacker News Hacker Newsで、Apple流の新機能を隠す方法の話題で持ちきりだ。開発者が使う、公開しなければならないヘッダーファイルの宣言にある関数名から機能が推測されてしまう問題の対処方法として、まずヘンテコな名前をつけておき、後で実際の関数に置換するという斬新な方法が発覚した。 iOS 7 GM · 6ccf9c4 · JaviSoto/iOS7-Runtime-Headers · GitHub これまでのところ見つかっている名前は、以下の通り。 (BOOL)isYoMamaWearsCombatBootsSupported; (BOOL)isYoMamaWearsCombatBootsActive; (void)se

    tmatsuu
    tmatsuu 2013/09/15
    わはは。Androidは銀河ヒッチハイクガイド絡みかと思ったが、そんな近くの惑星出て来なかった気がするし / “本の虫: Apple流の新機能の隠し方:(BOOL)isYoMamaWearsCombatBootsSupported;”
  • 2013年のイグノーベル賞の受賞者と受賞理由の一覧

    Improbable Research 医学賞: 受賞者:Masateru Uchiyama [JAPAN], Xiangyuan Jin [CHINA, JAPAN], Qi Zhang [JAPAN], Toshihito Hirai [JAPAN], Atsushi Amano [JAPAN], Hisashi Bashuda [JAPAN] and Masanori Niimi [JAPAN, UK] 受賞理由:心臓移植を施された患者のマウスにオペラを聞かせる効果の検証について 参考文献:"Auditory stimulation of opera music induced prolongation of murine cardiac allograft survival and maintained generation of regulatory CD4+CD25+ cell

    tmatsuu
    tmatsuu 2013/09/14
    タイこえー / “本の虫: 2013年のイグノーベル賞の受賞者と受賞理由の一覧”
  • 最悪のプログラミング言語、BANCStar

    Following is the email I received from Google for this article. This is so unhelpful to identify the cause. After carefully reviewing the article, I found one URL that was flagged to contain malware(probably usual old domain expired and purchased by other problem) so I removed that link. Please review and re-publish this article. I hope Google's flagging system tells me why it trigger the flagging

    最悪のプログラミング言語、BANCStar
    tmatsuu
    tmatsuu 2013/09/02
    これはひどい。カイゼンの精神が足りない。 / “本の虫: 最悪のプログラミング言語、BANCStar”
  • text VTを使っているのならば、XMirは絶対同時に実行するな。

    mjg59 | If you ever use text VTs, don't run XMir right now XMirはVT切り替えも入力を取り続けるので、XMirを起動したままtext VTに切り替えてログインすると、キーボード入力がXMirを通してダダ漏れになるという問題がある。 Mirベースの世界では、Mirサーバーが入力イベントを受け取って、Mirクライアントに渡すことになるだろう。実際、XMirは標準のXorg入力ドライバーを使っているので、全入力イベントを直接受け取っている。このため、XMirの初期のバージョンで見られたようなマウスポインターの重複があった。XMirで描画されたマウスポインターと、Mirで描画されたマウスポインターがあったのだ。 もっと重大な問題がある。Mirは最近、とても単純なVT切り替えの実装を得た。単に入力イベントから、CtrlとAltとファンクシ

    tmatsuu
    tmatsuu 2013/08/25
    あーこれはひどい。Xがおかしくなった時にtext VTへ切り替えるってのはよくあるのでそれは困る / “本の虫: text VTを使っているのならば、XMirは絶対同時に実行するな。”
  • Shebangという謎な事実上業界標準について

    Shebangとは、UNIXのシェルスクリプトの業界標準で、シェルスクリプトの一行目のコメントの、#!を意味する。sheが短母音か長母音か分からなかったので、英語ネイティブにたずねたところ、人によって意見が違う。短母音の方が多数派のようなので、一応シバンが近いものになるだろう。日語版のWikipediaでも、シバンとしている。この機能には他にも多数の名前があるが、もっとも有名なのが、Shebangだそうだ。 その業界標準的な文法は、以下の通り(ただし、後述するように、この文字列の扱いについては違いがある) #! 文字列 [改行] 普通、実行権限のついたファイルは、標準のシェルで実行されるが、このShebangがある場合は、#!から改行までの間の文字列を、後述するバラバラな方法で解釈して、execで実行し、その際の引数には元のシェルスクリプトファイルへのパスが指定される。 問題は、このsh

    tmatsuu
    tmatsuu 2013/08/08
    コメントにも書かれてたけど、改行コードがCRLFだとCGIが動かなくて死ねるから要注意な! / “本の虫: Shebangという謎な事実上業界標準について”
  • GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール

    ふと思い立って、GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツールを探してみた。 評価すべき点は、自由ソフトウェアであることはもちろんとして、主要なディストロでパッケージ化されるほど有名であることと、ファイルの暗号化目的に簡単に使えることだ。「ファイルの暗号化」とは、十分に強い共通鍵暗号で暗号化、復号化することだ。 そして、今回重要視したのは、パスフレーズにUTF-8を使えることだ。パスワードという言い方はあまり好きではない。パスフレーズと呼ぶべきだ。パスフレーズとは、普通の文を使うものである。例えば、 イスタンブールは昔コンスタンティノープル 水平リーベー僕の船そー曲があるシップスクラークか 数種類の奇妙な文字で文章を書く、親愛なる日人の皆さん などだ。 これらのパスフレーズは人間にとっては作りやすく、覚えやすい。それでいて十分な情報量があり、総当りにも強いので、コンピュー

    tmatsuu
    tmatsuu 2013/07/26
    ディスク全体を暗号化してもファイルの受け渡しなどで暗号化はやはり必要。現実的なのはやはりGnuPGかなぁ。gentooにもccryptはあった / “本の虫: GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール”
  • GNUのAutotoolsについて学んでいる。

    C++の参考書も書かなければならないのだが、今、GNUのAutotoolsについて学んでいる。そもそも、何故必要なのか(なぜ手でMakefileを書かないのか)というところから調べている。 GNU Autoconf, Automake and Libtool Autotools: a practitioner's guide to Autoconf, Automake and Libtool GNU coding standards - GNU Project - Free Software Foundation (FSF) 今のところの背景事情の理解としては、以下のようなものではないかと思う。 はじめに、makeがあった。makeをとりあえず使うのは簡単だが、すこし高度なことをしようとすると、とたんに難しくなる。そのため、既存のよく書かれたものがプロジェクトからプロジェクトへと流用されて

    tmatsuu
    tmatsuu 2013/07/22
    AutotoolsはInside Linux Software(isbn:9784798112831)がオススメ。あとはでびあんぐる本(isbn:9784274064111)ですかね。 / “本の虫: GNUのAutotoolsに…”
  • 完全に秘密を守るコンピューターシステムを求めて

    朝風呂に浸かりながら、今の私の知識を総動員して完全に秘密を守るコンピューターシステムを求めたらどうなるだろうかと、ぼんやりと考えていた。その内容を書きだしてみる。 今は政府や犯罪組織の諜報機関が暗躍する時代であるから、コンピューターシステムが利用者の秘密を守れるかどうかを考慮することはとても重要だ。たとえば、私が「もはやソフトウェア特許という害悪を日から除くには、暴力革命しかない」などと考えて、その実行計画をコンピューターを使って以下のように練ったとする。 「日の市町村の中で、ハーグ陸戦条約第25条に基づく無防備都市宣言を条例で定めようという動きがある。もし、実際にこのような条例を可決する市町村が出た場合、すぐさま安全ピンと果物ナイフとピストル型ライターで武装して侵攻する。すでに発した無防備都市宣言により、一切の抵抗なく、無血で占領できるはずである。占領後、すみやかに軍による暫定政権を

    完全に秘密を守るコンピューターシステムを求めて
    tmatsuu
    tmatsuu 2013/07/21
    鍵方式であれば、その鍵を捨てれば本人すら現実的に解読できない(脅されても出ないものは出ない)ってのはひとつの利点だと思う。殺されるかどうかは別としてね。 / “本の虫: 完全に秘密を守るコンピューターシステ
  • LinuxカーネルのMLにおける悪口の励行についての議論勃発

    Linuxカーネルのメーリングリストは、常に罵詈雑言に満ち溢れているが、そういうのは辞めて大人になろうという主張がSarah Sharp[1]によってなされた。なかなか面白い。 きっかけは、いたって日常的な罵倒混じりの議論に、Sarah Sharpが横槍を入れたところから始まった。 LKML: Sarah Sharp: Re: [ 00/19] 3.10.1-stable review On Fri, 12 Jul 2013 18:17:08 +0200, Ingo Molnar <mingo@kernel.org> wrote: * Linus Torvalds <torvalds@linux-foundation.org> wrote: On Fri, Jul 12, 2013 at 8:47 AM, Steven Rostedt <rostedt@goodmis.org> wrote

    tmatsuu
    tmatsuu 2013/07/16
    LKMLは今日も平常運転 / “本の虫: LinuxカーネルのMLにおける悪口の励行についての議論勃発”
  • ハードウェア乱数生成器は信頼できるか

    How secure is Linux's random number generator? | Hacker News Hacker Newsで話題になっていたので。 主に暗号用途には、予測不可能な乱数が必要となる。予測不可能というのは、実装と内部状態が知られていても、なお将来の乱数が予測できないということだ。 たとえば、擬似乱数としてよく使われる線形合同法(Linear congruential generator)は、以下のように書ける。 namespace lcg { thread_local unsigned int seed ; void srand( unsigned int seed ) { lcg::seed = seed ; } int rand( void ) { // glibcの使っている値を拝借 seed = (1103515245 * seed + 12345

    tmatsuu
    tmatsuu 2013/07/14
    dieharder知らなかった。gentooにもあった。極端な話、常に0を返すものが混ざってもエントロピープールの仕組みがあるので基本的には問題にはならないのかな。そこらへん詳しくないのであとで調べる / “本の虫: ハードウェ
  • GCCの最適化オプション

    郷に入っては郷に従えというが、GNU/Linuxのプログラミング環境にはまだまだ慣れない。とりあえず今のC++執筆作業には、最新のClangでコンパイルできればそれで用が足りるので、Clangのビルドが楽なGNU/Linux環境は悪くない。欲を言えばlibc++もまともに動くようになってほしい。Ubuntu 12.10でlibsupc++を使ってlibc++をビルドしてみたところ、RTTI周りのABIに問題があるらしく、virtual関数呼び出しすらできなかった。 しかし、GNU/Linuxにおけるプログラミングはどうにも学ぶことが多すぎる。GNUのgdbの使い方もそろそろ覚えたいし、Autotoolsの使い方も覚えたいものだ。幸い、GNU/Linuxで一般的なテキストエディターであるVimは、特に何も学ばなくても使えるので楽だ。たかがテキスト編集作業に、多数のキーボードショートカットを

    tmatsuu
    tmatsuu 2013/07/08
    おいでよじぇんつーの森 / “本の虫: GCCの最適化オプション”
  • xkcd: ファイル転送(と、その解決手段としてのTCP simultaneous openの可能性)

    xkcd: ファイル転送(と、その解決手段としてのTCP simultaneous openの可能性) xkcd: File Transfer 親戚にファイルを送ってもらいたいって? 簡単だよ、メールで・・・え、25MBだって。そっかー。 どっちかFTPサーバー持ってる? 持ってない? そっかー。 Webホスティング使ってるならアップロードして・・・ うーん、どっかのMEGASHAREUPLOAD的なサイトもあるんだけど、あの手のはいまいち信頼性にかけるしエロサイト広告満載だし。 AIMダイレクトコネクトはどうだい。え、そんなのいまどき誰も使ってないって? そうだ、Dropboxがあった。数年前に始まったよさげなスタートアップでね、コンピューター間でフォルダを同期してくれるんだ。ただアカウントとってインストールして・・・ え、ちょうど親戚がUSBディスクもって家まで車でやってきた? まあ、

    xkcd: ファイル転送(と、その解決手段としてのTCP simultaneous openの可能性)
    tmatsuu
    tmatsuu 2013/07/03
    TCP simultaneous open知らなかった。面白い。 / “本の虫: xkcd: ファイル転送(と、その解決手段としてのTCP simultaneous openの可能性)”
  • Red HatがMySQLからMariaDBに切り替え

    Red Hat ditches MySQL, switches to MariaDB RHEL 7からは、従来のMySQLに変えて、MariaDBがデフォルトのデータベースソフトウェアになるそうだ。 MySQLはSunに買収された後、SunがOracleに買収されたことにより、Oracleの所有物となった。Oracle傘下となった後も開発は続いているが、テストケースやバグトラッカーや脆弱性の修正情報などが非公開になり、その閉鎖的な開発姿勢が利用者の反感を買い、ついにオリジナルの作者であるMontyを筆頭にMariaDB財団が立ちあげられ、MariaDBとしてforkされた。 ここ最近、多くのGNU/Linuxベースのディストリビューションが、デフォルトのデータベースソフトウェアをMySQLからMariaDBに切り替える動きがみられる。ついにRed Hatも追従したようだ。 Slashdot

    tmatsuu
    tmatsuu 2013/06/17
    あらーさようなら。Gentooはミステナイヨ / “本の虫: Red HatがMySQLからMariaDBに切り替え”
  • ステレオタイプなLinuxカーネル開発者

    この記事はおふざけで書いた。 30人のLinuxカーネル開発者から、PC環境がステレオタイプというか、古典的というか、典型的というか、硬派なカーネル開発者像に合致するような人物を探してみた。主に、「ソフトウェア開発に愛用している生産性向上ツールを教えてください」という質問を参考にして考察した。もちろん、完全に主観的な見た目の評価である。技術力の評価ではない。 硬派の考察としては、主にGUIのソフトウェアも存在するような場合でもCLIのソフトウェアを使っていることや、そのほかの利用しているPC環境の一般人から考えての奇抜さを考慮した。ただし、カーネル開発ならば当然使うようなツールは除外した。 30人のLinuxカーネル開発者:Linus Torvalds Linux Torvaldsは、もちろんLinuxカーネルの元を最初に書いた人そのものなのだが、どうもインパクトに欠ける。いや、技術上は

    tmatsuu
    tmatsuu 2013/06/08
    やはりタイル型WM使いがいた。ですよねー。Gentoo使いも少なからずいたはず / “本の虫: ステレオタイプなLinuxカーネル開発者”
  • もし大工の採用面接がプログラマーのように行われていたら

    If Carpenters Were Hired Like Programmers | DawO_od 面接官「なるほど、あなたは大工なのですね」 大工「そうです。私は大工として今までやってきています」 面接官「実務経験は何年ほどでしょうか?」 大工「10年です」 面接官「すばらしい。それはいい。さて、これから職場にふさわしいかどうか、いくつかの技術的な質問に答えてもらおうと思うのですが、よろしいでしょうか?」 大工「はい」 面接官「まず、弊社は茶色の家の建築が主な仕事内容でして。以前に茶色の建築の経験はおありで?」 大工「えーと、私は大工です。だから家は建てますよ。塗装の色の好みは人それぞれでしょう」 面接官「ええ、それはわかります。ですが、茶色経験は何年ほどでしょうか?」 大工「おいおい、分からんよ。建築したあと、どういう色で塗装されるかなんて私の知ったことじゃありません。たぶん、6ヶ

    tmatsuu
    tmatsuu 2013/06/01
    わはは。まぁでもプログラマーのみならず能力を測るのって難しいよね。プログラマー適性検査みたいなものってあるんだろうか。 / “本の虫: もし大工の採用面接がプログラマーのように行われていたら”
  • panopticlickにより、今のブラウザー環境はユニークだという判定を受けた

    ブラウザーは、cookieやlocalStorageのような機能を提供しており、これによりWebサイトは、複数回閲覧したユーザーを、たとえIPアドレスが変わったとしても、個人を識別できる。 このような機能を使わずに、変わりゆくIPアドレスの垣根を超えてユーザーを識別しようとすれば、それは可能だろうか。ブラウザーは多くの情報をサーバーに伝えているため、その情報の組み合わせが十分にユニークであれば、個人が識別できるのではないか。それを実際に検証するWebサイトが、panopticlick.eff.orgだ。 Panopticlick 評価している情報は以下の通り。 ユーザーエージェント これはブラウザーをサーバーに知らせるための情報だ。大半のとりあえず動く必要があるWebサイトは、ユーザーエージェントに従って、そのブラウザーで動くコンテンツを返す。あまり使われていない文字列の場合、かなりのユニ

    tmatsuu
    tmatsuu 2013/05/31
    シークレットウィンドウでアクセスしても同じ端末の同じブラウザってところまでは特定できそうだよな。 / “本の虫: panopticlickにより、今のブラウザー環境はユニークだという判定を受けた”
  • XChatの謎とHexChatの始まり

    XChatというIRCクライアントがある。このソフトウェアは、UNIX風OSとMAC OS XとWindowsに対応している。 XChatのライセンスはちょっと変わっている。、UNIX風OSとMAC OS X用はGPLv2(ただしOpenSSLリンクの例外条項あり)で、Windows用はプロプライエタリソフトウェアとなっている。 1999年に初めて公開されたこのソフトウェアは、当初無料ソフトだったが、2004年からWindows用のみシェアウェアに移行した。公式な理由によれば、Windows用の開発に必要な技術とビルドに必要なコンピューター資源を捻出するためだという。 ただし、依然としてGPLv2(OpenSSL例外条項)なので、ソースコードは公開されている。そのため、実質は公式のWindows用ビルド済みバイナリがプロプライエタリになったというわけだ。この変更に対して、第三者がWindo

    tmatsuu
    tmatsuu 2013/05/23
    へー。そう言えば昔xchat使ってたな。終盤はweechatに乗り換えたけど。 / “本の虫: XChatの謎とHexChatの始まり”
  • Ubuntuのディスク暗号化のコスト

    [Phoronix] The Cost Of Ubuntu Disk Encryption phoronix.comで、Ubuntuのディスク暗号化のコストを比較している。 Ubuntuはふたつのディスク暗号化のオプションを提供していて、Ubiquityインストーラーから選択することで簡単に使うことができる。 ひとつはeCryptfsを使ったhomeディレクトリの暗号化。もうひとつは、LUKSとLVMを使ったディスク全体の暗号化だ。 phoronixでは、この2つの暗号化を使ってインストールされたものにくわえて、暗号化していない場合のディスク性能のベンチマーク結果を比較している。 最近のIntelやAMDCPUでは、暗号化復号化を高速に実装できるAES-NI命令が実装されていて、このような暗号化の実装でも、使える環境では使うようになっている。 ベンチマークは、AES-NIをサポートしたC

    tmatsuu
    tmatsuu 2013/05/21
    これ興味深くみてた。LVMの方がスコアが良いの意外だった。LVMベースってlvextendも問題ないのか気になってたので一度試してみるかな / “本の虫: Ubuntuのディスク暗号化のコスト”
  • 本の虫: 記録からみるLinus TorvalsのC++観

    On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Gitのソースコードを始めてみた時、2つのことが頭にひっかかった。 > 1. C++じゃなくて純粋なC。理由は不明。移植性とか言わないでよ。 > クソだ。 クソまみれなのはオメーの方だ。 C++は悲惨な言語だ。しかも、少なからぬ数のプログラマーが使っていて、完全無欠のどうしようもないクソを生成するのがめちゃめちゃ簡単になっているという点で、よけいに悲惨だ。マジで、Cを選択する理由が「何もなかった」としてもだ、C++プログラマー避けになるというだけで、Cを使う大義名分になる。 つまりだ:Cの選択は唯一のまともな選択なんだよ。Miles Baderがふざけて、「いやがらせによる追い返し目的」なんていってたが、実際のところ正しい。俺の出した結論では、プロジェクトにCよりC++を使いたがるプログラマーは、む

    tmatsuu
    tmatsuu 2013/05/18
    相変わらずのlinus節、ブレない。まぁboostは頻繁にバージョンが上がるうえにコンパイルに時間がかかるのでgentoo使いとしても結構辛いんですがね… / “本の虫: 記録からみるLinus TorvalsのC++観”