タグ

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

  • Ted Ts'oがEXT4で暗号化を実装

    Encryption Support For EXT4 - Phoronix GoogleのTed Ts'oが、EXT4に直接暗号化機能を実装したそうだ。 Linuxカーネルにおけるストレージの暗号化にはいくつか方法がある。ファイルシステム自体が暗号化機能を備えているというのはわかりやすいが、その他にも方法がある。 eCryptfsはEXT4のような通常のファイルシステムの上に、さらに暗号化されたファイルシステムのレイヤーをかぶせる方法だ。eCryptfsは、、ホームディレクトリ以下を暗号化するのによく使われている。 dm-cryptは、ブロックデバイスレベルの暗号化で、これは通常のファイルシステムの下で暗号化を行うレイヤーだ。 今回は、ファイルシステム自体に暗号化機能をもたせたわけだが、[PATCH 00/22] ext4 encryption patchesによると、Androidで使

    Haaaa_N
    Haaaa_N 2015/04/14
    てっきりAndroidはSamsungを中心にF2FSに走るのかと思っていた
  • 500マイル以上離れた場所にメールが送れないのだが

    http://web.mit.edu/jemorris/humor/500-miles From: Trey Harris <trey@sage.org> 今から私が書く話は、起こりようのない問題についてだ。この話を広く一般に公開してしまうのは惜しい。というのも、いい酒の話のネタになるからだ。この物語は、退屈な詳細や問題を隠すために、多少事実を変えていて、物語を面白く脚色している。 数年前、私はキャンパスのメールシステムを保守する仕事をしていて、統計学部の学部長から電話を受けた。 「大学の外にメールを送るのに不具合が発生しているのだが」 「どんな問題でしょう?」と私はたずねた。 「500マイル以上メールを送れないのだよ」と学部長は説明した。 私はラテを吹き出した。「何だって?」 「ここから500マイル以上離れた場所にメールを送信できないのだよ」と学部長は繰り返した。「実際は、もう少しあるの

    Haaaa_N
    Haaaa_N 2015/04/10
    sendmailこわ…
  • ChromiumがLinuxカーネル3.17より前のサポートを打ち切り

    Chrome/Chromium To Require Newer Version Of Linux Kernel - Phoronix ChromiumLinuxカーネル3.17以前のサポートを打ち切るようだ。 というのは釣りタイトルだが、Linuxカーネル3.16までで、最新のChromiumを使うと、ブラウザー拡張がインストールできないという問題がある。この理由は、Linuxカーネルのサンドボックス機能であるseccompに最近入ったTSYNC(SECCOMP_FILTER_FLAG_TSYNC)をChromiumが使っているためだ。 興味深いは、LinuxカーネルにTSYNCをいれたのは、Chromium開発者で今はGoogle社員でもあるKees Cookだ。Ubuntuの12.04と14.10のLinuxカーネルには、TSYNCをbackportするパッチがあたっているが、これ

    Haaaa_N
    Haaaa_N 2015/03/09
    3.18以上だったらnvidiaドライバと干渉してchromium使えなくなってたな…
  • C++標準: 2015-02 mailingsのレビュー: N4340-N4359

    2015-02 mailingsが公開された。 N4340: Remove Deprecated Use of the register Keyword registerキーワードを非推奨扱いに変更する提案。将来的には廃止して、registerキーワードは別の機能に使うことができるようになるだろう。 N4346: Multidimensional bounds, index and array_view, revision 5 連続したストレージを多次元配列に見せかけるライブラリ、array_viewの提案。 N4349: WG21 2014-12-05 Ballot Resolution Telecon Minutes 2014年12月5日に行われた電話会議の議事録。 [面倒なPDF] N4350: Agenda and Meeting Notice for WG21 Concepts

    Haaaa_N
    Haaaa_N 2015/02/17
    いい… / >Parallelism TS
  • C++1zに採択された新機能

    C++1zともC++17とも呼ばれているC++の次の規格には、まだ大きな機能は採択されていない。それでも、いくつかドラフト入りしている新機能はあるので、ここではその機能を紹介していく。 いつも通り、ここに書かれている内容はまだドラフト段階の機能であり、今後変更されたり、取り除かれたりする可能性もある。 N3928: メッセージ無しstatic_assert C++11で追加されたstatic_assertには、文法上、必ず文字列リテラルを記述しなければならなかった。 static_assert( expr, "Captain Obvious To the Rescue! expr is false.") ; この文字列リテラルは、実装が診断メッセージ(例えばコンパイラーのエラーメッセージ)に使うことができる。しかし、C++14までは、文字列リテラルが文法上必須で、必ず記述しなければならなか

    Haaaa_N
    Haaaa_N 2014/12/12
    fold式に限られた演算子しか使えないのは非常に残念だ
  • C++に提案されている統一関数呼び出し文法(Unified Call Syntax): N4165, N4174

    C++に提案されている統一関数呼び出し文法(Unified Call Syntax): N4165, N4174 N4165: Unified Call Syntax N4174: Call syntax: x.f(y) vs. f(x,y) この二つのC++標準化委員会の文章は、統一関数呼び出し文法を提案している。 現在、フリー関数とメンバー関数では、呼び出しの文法が異なる。フリー関数は、f( x, y, z )と呼び出すが、メンバー関数は、x.f( y, z )と呼び出す。これは汎用的なコードを書くのに都合が悪い。 template < typename T > void f( T x ) { // Tがクラス型である場合これを使いたい x.swap( 1, 2 ) ; // Tがクラス型ではない場合これを使いたい f( x, 1, 2 ) ; } 現状では、このようなコードは、テンプ

    Haaaa_N
    Haaaa_N 2014/11/04
    D言語でうまく行くことはわかってるので普通に欲しい
  • C++でfinally

    一部の言語には、finallyという機能がある。あるブロックスコープを抜ける時に、必ず実行される処理を記述することが出来る。 try { // 処理 } finally { // ブロック文を抜けた時に必ず実行される処理 } C++にfinallyがない理由は、特に専用の文法が必要なく、ライブラリで十分なためだ。デストラクターとlambda式を使えばよい。 class scoped_guard { std::function< void() > f ; public : explicit scoped_guard( std::function< void () > f ) : f(f) { } scoped_guard( scoped_guard const & ) = delete ; void operator = ( scoped_guard const & ) = delete ;

    Haaaa_N
    Haaaa_N 2014/10/21
    出来ることはわかるけど,書くのが面倒くさい.標準ライブラリに入るなら嬉しいことだ
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

    Haaaa_N
    Haaaa_N 2014/08/21
    -1のエラー通知,つらいな…
  • Debianがeglibcからglibcに戻る

    Debianはしばらく、libcとして、glibcではなく、glibcと互換性を維持したforkであるeblicを使っていたが、このたび、glibcに戻る決定をしたそうだ。 glibcを使っていた理由はいろいろあるが、Debianにとって重要なパッチが、glibcでは開発体制の問題により受け入れられないという政治的な理由もあったそうだ。その問題が解決されたのと、eglibcがプロジェクトとして死んだので、戻るのだそうだ。 Debian is switching (back) to GLIBC | Aurelien's weblog 5年前、Debianと多くの派生ディストロは、標準であるGNU C Library (GLIBC)から、Embedded GLIBC (EGLIBC)に乗り換えた。Debianは、GLIBCに再び乗り換えることにする。EGLIBCの最後のリリースは2.19と、プ

    Haaaa_N
    Haaaa_N 2014/06/19
    とっくに死んでると思ってた…Debian使ってたんですね
  • rm -rfしちゃったけどどうする

    rm -rf remains rm -rfの後に残りしもの 遊びのために、筆者は新しいLinuxサーバーを立ち上げて、rootでrm -rf /を実行して、何が残るかをみてみた。どうやら、今のrmというのは筆者のようなアホを相手にしなければならない未来に生きているようなので、実際に実行するには、--no-preserve-rootをつける必要があった。 # rm -rf --no-preserve-root / かかるおろかなる行為の後では、 /bin/ls /bin/cat /bin/chmod /usr/bin/file のような、偉大なるツールのたぐいはみな消え失せてしまった。まだ、ssh接続とbashセッションは生きているはずだ。つまり、bashの組み込みコマンドであるechoとかは残っているということだ。 Bashマクガイバーたれ root@rmrf:/# ls -bash: /

    rm -rfしちゃったけどどうする
    Haaaa_N
    Haaaa_N 2014/06/15
    /dev/tcpはこういう時に使うのだな
  • 最近の妖怪ハウスの様子

    最近の妖怪ハウスの様子はどうか。 妖怪ネットワークに、新しいWiFi APを追加した。たまたま、NECのAterm WR9500Nを安く手に入れたので、これまで部屋が密集している場所に設置されていたバッファローの貧弱な無線LANルーターと交換した。とりあえず、各部屋にまともなWiFiが提供されたようだ。 それにしても、無線だけで満足なこの妖怪ハウスの住人たちというのは、よくわからないものだ。筆者はもとより無線を信用していない。有線でなければ満足できないのだが。 あとは、奥の部屋がひとつ、無線難民になっている。ところが、ここの住人は、テザリングでも構わないと言っている。ますます理解できない。 妖怪ネットワークの抱えているもうひとつの問題としては、午後10時頃から深夜にかけて、インターネット回線がかなり遅くなるということだ。調べてみると確かに遅い。しかし、特に今この瞬間、誰かが帯域を大幅に消費

    Haaaa_N
    Haaaa_N 2014/05/15
    そう言えば,OCNで混雑すると物凄く遅くなって,使い物にならないから解約しようとしたら高額の違約金を請求された事案があったな
  • 超会議3の超チューニング祭の感想

    さて、超チューニング祭が終わったので、感想を書こうと思う。すでに、参加者の中で、感想を書いている人もいる。 レポート - 超チューニング祭で努力賞(最速賞)をとるためにやったこと - Qiita ニコ動 超チューニング祭で最優秀賞もらいました 超チューニング祭に参加した - masarakki's blog JavaScript - 超チューニング祭に参加&表彰した - Qiita kmizu/slide_cho_tuning また、いつの間に行ったのか、優勝者に取材したところもあるらしい。 『ニコ超3』の超チューニング祭で、“創世神”戀塚昭彦氏を上回ったカップルが見せたバランス感覚 - エンジニアtype さて、筆者の視点からみた超チューニング祭はどうだったか。 そもそも、私がスタッフとして配置されるブースは、超時空ニコニコ研究所であるはずだった。しかし、超会議にさかのぼること三週間前、

    Haaaa_N
    Haaaa_N 2014/04/30
    専門職ってすごい
  • Ubuntu 14.04のリリースと、Ubuntu 14.10のコードネーム決定

    Ubuntu 14.04がリリースされた。そして、ようやくMark Shuttleworthが、Ubuntu 14.10のコードネームを発表した。 Mark Shuttleworth » Blog Archive » U talking to me? [訳注: タイトルは「タクシードライバー」の名セリフが元ネタ] [訳注: この文章はやたらとUで始まる英単語が多く使われている] この浮上したる約束されしUbuntuは、同僚のMPTが明言したるごとく、パフォーマンスのアアトなり。ただにアアトなるのみならず、こはdeadlineを行わざるべからず。かかる最新のリリースを成し遂げ、Trusty Tahrを14.04 LTSとして固めたりし諸氏に感謝感激雨あられ。そしてこの湧き上がる歓声とリリース後の休息を経て、今こそ水門を開きて種々の改良を成し遂げ、いでいで次の晴れ舞台の準備をせん。 [訳注:

    Haaaa_N
    Haaaa_N 2014/04/26
    ibus-1.5,今のバージョンはちょっとマシなのか
  • GCC 4.9リリース

    GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF) GCC 4.9がリリースされた。少なくとも、公式Webサイトのトップページからは、リリースされたことになっている。ただし、なぜかリンクをたどると GCC 4.9 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) GCC 4.9がリリースされた。興味深い変更点を上げると。 大昔の、もはや保守もテストもされていないようなプラットフォームのサポートがobsolete扱いになった。もし、活発な活動が行われない場合、次のリリースでは取り除かれるそうだ。特に、Solaris 9が挙げられている。 Cla

    Haaaa_N
    Haaaa_N 2014/04/13
    シンタックスハイライターの数値区切りサポート大変そうだな
  • 余は如何にしてDを書くにいたりしか

    How I Came to Write D | Dr Dobb's Dr. Dobbsの記事で、Walter Bright(C++とDプログラマーでウォルたんの名前を知らないものはモグリである)が、なぜDを書くに至ったのかを書いている。 余は如何にしてDを書くにいたりしか Walter Bright著 Walter Brightが、世界で最も使われている言語20位までに入る言語を書くに至った道は、興味と・・・侮辱。 私は小さい頃から、ものが如何にして動き、設計されているかを調べるのが好きだった(Tom Swiftは大好きだ)。小さい頃の将来の夢は、列車とか水上機の設計だった。私の専門は機械工学だった。ただ、機械工学は、何を作るにも多額の費用がかかり、それに私自身の製作スキルの低さという点で、不満だった。 一方、プログラミングでは、私はコンピューターにアクセスさえできれば、何の費用もかか

    Haaaa_N
    Haaaa_N 2014/04/10
  • 2014-02 post Issaquah mailingsのレビュー: N3950-N3966

    Post Issaquah論文集のレビューも、これが最後。長かった。 N3950: Defaulted comparison operators かつて、Alexander Stepanovは、regular typeを提唱した。regular型は、自動的にコピー、代入、比較できるべきであると。 さて、C++では、コピーと代入は自動的にできるが、比較だけは自動的に出来ない。 class X { int a ; int b ; int c ; int d ; } ; X a, b ; a == b ; // ill-formed. 呼び出し可能なoperator ==は宣言されていない。 a < b ; // ill-formed. 呼び出し可能なoperator <は宣言されていない さて、このクラスXの比較を実装してみよう。 bool operator == ( X const & l,

    Haaaa_N
    Haaaa_N 2014/04/09
    どんどんDに追いついてきてるんだが,後方互換を守らなければならないというのが足枷になってるな
  • Linus様がSystemdにぶちきれる

    systemdは、/proc/cmdlineをパースして、もし、その中に"debug"という文字列を発見した場合、大量の冗長なデバッグメッセージをdmsegに出力する。これは様々な問題を引き起こす。まず、"debug"というあまりに一般的すぎる文字列に勝手に反応してしまうことがひとつ。dmseg、すなわちカーネルのリングバッファーをsystemdの冗長なデバッグメッセージだけで溢れ返させてしまうことがひとつ。そして、なぜかLinuxカーネルのブートに失敗してしまうことがひとつ。 Bug 76935 – Do not parse "debug" command line parameter カーネルコマンドラインに"debug"を与えると、systemdによりパースされる。適当なassertに引っかかると、こんな風にぶっ放される。 [ 150.308000] systemd-journald

    Haaaa_N
    Haaaa_N 2014/04/04
    kernel moduleが存在しないとか,そういう時も画面が全く見えなくなるほどのエラーを出すし…同じ物が100回連続したら標準出力に出すのはやめるべきじゃないか
  • MSVC++コンパイラーの中に入っているWebブラウザー

    You Got Your Web Browser in my Compiler! | Random ASCII 筆者は最近、MicrosoftのVC++コンパイラーがmshtml.dll、すなわちInternet Explorerを読み込むことを発見した。/analyzeオプション(静的コード解析を指示)を使うとコンパイラーがこの挙動を示す。筆者はコンパイラーアーキテクチャの専門家ではないが、インターネットエクスプローラーを読み込むコンパイラーというのはいかにも奇妙だ。 これは単なる気持ちの問題ではないのだ。筆者の環境で静的解析を並列コンパイルすると、コンピューターが数分間も反応が悪くなる。どうやらmshtmlウインドウが、その原因らしいのだ。 いつも通り、筆者はxperf/ETWを使って原因を探った。 当に問題なのか? 筆者は問題を探すために何日もの時間を浪費したりはしない。問題が私を

    MSVC++コンパイラーの中に入っているWebブラウザー
    Haaaa_N
    Haaaa_N 2014/04/01
    GUIが分離されてないと大変ですなぁ
  • なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと

    c - Why doesn't GCC optimize a*a*a*a*a*a to (a*a*a)*(a*a*a)? - Stack Overflow 俺は科学技術計算の数値計算の最適化をしてたんだけどさ。GCCはpow(a, 2)をa*aにしてくれるんだな。うん。で、pow(a, 6)は最適化されずに、ライブラリ関数であるpowを呼んじゃうんだ。パフォーマンス的に最悪。(Intel C++ Compilerはpow(a,6)のライブラリ関数呼び出しを消し去ってくれるんだけどな) どうもよくわからんのが、pow(a, 6)をa*a*a*a*a*aで置き換えて、GCC 4.5.1をオプション"-O3 -lm -funroll-loops -msse4"で使ったら、mulsd命令を5個使う。 movapd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd

    Haaaa_N
    Haaaa_N 2014/03/29
    GentooのGCCオプションに-ffast-mathを追加するか悩んでいる
  • MozillaがMetro版Firefox開発中止を発表

    Update on Metro | Future Releases 今週のはじめ、筆者はリードエンジニアとリリースマネージャーに、Windows Metro版のFirefoxの開発中止を指示した。開発チームはよくやってくれたが、Metroプラットフォームを取り巻く環境を考慮すると、1.0をリリースするのは、間違いだった。 Mozillaは世界をより良くするためにソフトウェアを開発している。しかし、我々は戦いを選ばねばならない。今や我々は、Firefox 1.0をリリースした時ほどちっぽけな存在ではないが、我々の労力は、我々が誓った目標を達成するために、集中して振り向けねばならない。我々の競合相手の強大さと、労力の多大さにより、我々は労力を適切に集中させなければならないのだ。 2012年末、筆者がMetro用Firefox開発チームを立ち上げた時(もうMicrosoftは、Metroという名

    Haaaa_N
    Haaaa_N 2014/03/15
    Metroで動かないのはどうでも良いのだが,Windows RTにまともなブラウザが存在しないのは困るな.まともなOSを使えば良い話だが.