タグ

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

  • Linuxカーネルを2038年問題に対応させるには

    System call conversion for year 2038 [LWN.net] lwn.netLinuxカーネルを2038年問題に対応させるにはという記事が公開されている。 32bitLinuxカーネルのtime_tはsigned 32 bitなので、現行の32bitLinuxカーネルをそのまま使い続けるシステムは、2038年問題の影響を受ける。 問題の日付が近づくにつれ、32bitシステムは様々な楽しげな理由により障害を起こすことが予測されるので、今日のLWN読者は、退職から呼び戻されて、紀南を救うために英雄的な活躍をするだろう。今対策をしなければの話だが。 さて、32bit Linuxカーネルでも、time_tなどの時間の表現に64bitの値を使えば2038年問題は解決できるか。実は、問題はそれほど単純ではない。 カーネル内部の時間表現を64bitに移行するだけでは

  • 婚約者が作って欲しい料理:オムライス

    婚約者がオムライスを作って欲しいと言ったので、作ってみた。 オムライスを作るにあたって問題がある。私はケチャップが嫌いだということだ。ケチャップは安直な味がする。スパゲティにケチャップをかけるさもしい異端者になりたくはないものだ。私はケチャップと味覇を封印することを空飛ぶスパゲティモンスター様に誓っている。ラーメン。 色々と調べた結果、ケチャップではなく、ホールトマト缶で作ることに決めた。 作り方 鶏の胸肉を細かく刻んでオリーブオイルと塩とハーブ(コショウ、バジル、オレガノ)を入れたジップロックに入れておく。 タマネギ、人参、ピーマンをできるだけ細かくみじん切りする。 フライパンで肉と野菜を炒める。 ホールトマトを入れて、コンソメと塩とハーブをいれて煮込む。 ご飯を入れて炒める。 卵に牛乳を少しだけいれてよく混ぜる。 フライパンを熱して、多めにバターを入れて、溶き卵を入れる。火は10秒ほど

    dowhile
    dowhile 2015/05/01
    結婚すると家庭内で圧制者になりそう
  • ビッグデータツールチェインのセキュリティはビッグリスク、あるいは、誰もHadoopをスクラッチからビルドする方法を知らない件について

    ビッグデータツールチェインのセキュリティはビッグリスク、あるいは、誰もHadoopをスクラッチからビルドする方法を知らない件について The sad state of sysadmin in the age of containers コンテナー時代のシステム管理者の惨状 システム管理は惨劇に見舞われている。現状は悲惨だ。 筆者は昔気質のシステム管理者に不満はない。システムの稼働を維持し、アップデートし、アップグレードする方法を知っている者達だ。 この憤りは、コンテナーと構築済みVMと、それらがもたらす、「信頼」や「アップグレード」の欠如による悲惨な惨劇に対するものだ。 例えば、Hadoopを見てみろ。誰もHadoopをスクラッチからビルドする方法を知っているようには見えないぞ。依存性とバージョンとビルドツールが悲惨なほどに絡まりあっている。 この手のイケてるツールの中で、古典的なmake

  • GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話

    GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話 New optimizations for X86 in upcoming GCC 5.0: PIC in 32 bit mode. | Intel® Developer Zone GCC 5.0では、x86(32bit)におけるPIC(Position Independent Code)が改善された。これまではEBXレジスターがGOT(Global Offset Table)のために予約されていたのだが、これを使わなくなった。この結果、貴重なレジスターがひとつ多く使えることになった。 32bit x86におけるPICのダメっぷりは、以下の記事に詳しい。 EWONTFIX - 32-bit x86 Position Independent Code - It's that bad 32-

    dowhile
    dowhile 2015/04/16
  • gitの10周年を記念したLinus Torvalsへのインタビューの翻訳

    10 Years of Git: An Interview with Git Creator Linus Torvalds | Linux.com gitの10週年を記念して、リーナス・トーバルズがインタビューに答えている。以下はその翻訳である。 なぜGitを作ったのか? トーバルズ:俺はソース管理ツールなんて作りたくなかったし、コンピューターの業界において最も興味がないものだと見なしていた(データベースは別だが)。それにソース管理ツールなんてどれも嫌いだった。しかし、BitKeeperがやってきてからというもの、ソース管理に対する見方が変わったね。BitKeeperは大抵のことを正しく行っていた。レポジトリのローカルコピーがあることと、分散マージはでかかった。分散ソース管理の何がいいかというと、ソース管理ツールの問題を吹っ飛ばせることだ。「誰が変更を行えるか」といった政治問題があるが、B

    dowhile
    dowhile 2015/04/09
  • 結婚することになった

    突然だが、結婚をすることになった。年内に籍を入れることを考えている。あまりに唐突に決まったため、周囲からも人も、ノリで結婚することになったと言っている。 「契約結婚しましょう」 と女は言った。その言葉は江添に対して発せられたようではあるが、どうにも意図が曖昧である。女は江添に対して結婚を申し込んでいるようにも聞こえ、あるいは、江添は誰かと結婚をすべきであると言っているようにも聞こえる。前者の解釈が誤りである場合、江添は大変なうぬぼれをしたことになる。前者かどうかを確かめるには、ここでわざとらしいにやけ顔を作り、おどけた声で、「私と?」などと答えればよいだろう。たとえ解釈間違いであったとしても、うぬぼれやを気取った冗談で済む対応だ。 ここは筆者の住むシェアハウスのリビングであり、たまたま何人かの男女が集まって、軽く酒を飲みながら話をしている。となりでは、いかにも恋愛経験の豊富そうな大人の女

    dowhile
    dowhile 2015/04/01
  • 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するパッチがあたっているが、これ

    dowhile
    dowhile 2015/03/09
    マルチプラットフォームのブラウザなのにOS特定の機能に依存するとか
  • goのgcコンパイラーがC実装を除去

    all: merge dev.cc (a91c2e0) into master · b986f3e · golang/go Go言語のGoogleが実装するコンパイラーであるgcから、Cコードが取り除かれた。 今後のgc実装は、goによるセルフホストのみになる。 ブートストラップ計画は至って常識的なもので、前のリリースは次のリリースをコンパイル可能な状態を保つことで、ブートストラップ可能な状態を保つのだという。 Go 1.3+ Compiler Overhaul - Google Docs go言語の実装としてのgcは、libcにすら依存しておらず、ツールチェインがすべて既存のものにたよらず自前になっている。Google気度を感じる。 ドワンゴ広告 この記事はC++に関係ないがドワンゴ勤務中に書かれた。ドワンゴではGoも使っているようだ。 ドワンゴは物のC++プログラマーを募集してい

    dowhile
    dowhile 2015/02/24
  • 闘会議2015のアナログゲームエリア、とある運営スタッフの感想

    週末に、闘会議2015が行われた。これはアナログゲームの上級エリアの運営スタッフであった筆者による感想記事である。 筆者は名を江添亮と言う。闘会議ではカタンのインスト要員として参加した。当日はスキンヘッドで口ヒゲを伸ばしていたのが筆者である。 さて、今回の闘会議では、アナログゲームエリアとして、様々なボードゲームを遊べる場所が設置された。 今回初めてとなる闘会議では、色々と突貫作業であり、ボードゲームの理解の浅い人間が企画をしたようで、色々と準備に難があった。 まずボードゲームのインストを出来るスタッフが絶望的に足りないということだ。ドワンゴのボドゲ部員にスタッフ参加の応援要請が来て、開催日の数日ぐらい前に打ち合わせをしたほどだ。 前日にリハーサルで現地を見てみると、ボードゲーム用に用意された机は表面がツルツルと滑り、しかも細長い机を二つ並べたもので、隙間があって使いづらかった。テーブルク

    dowhile
    dowhile 2015/02/04
  • ドワンゴのプログラミングコンテストをクリアできなかったお話

    dwangoプログラミングコンテスト2016 ドワンゴが主催するプログラミングコンテストの予選が、24日に行われたそうだ。筆者はクリアできなかったが、簡単なものだけ解説する。格的な解説が読みたい人は、わざわざこの記事を読まずとも、以下で解説されているようだ。 「dwangoプログラミングコンテスト」予選問題解説 // Speaker Deck A: プレミアム会員 - dwangoプログラミングコンテスト | AtCoder ニコニコ動画には、プレミアム会員という制度があります。このプレミアム会員制度には月額一定の額を支払うことで加入できます。 ニワンゴくんは、この n ヶ月間連続してプレミアム会員です。 また、x ヶ月前に月の一定支払い額が 525 円から 540 円に変わったことを知っています。 つまり、この n ヶ月のうち最近の x ヶ月間は月額 540 円支払っていて、それ以外の

    dowhile
    dowhile 2015/01/29
  • Linus Torvalds、HFS+に激怒

    CVE-2014-9390 aka "Git on case-insensitive filesystems" I did not give the… gitが影響を受けた、HFS+で、一部の文字を区別しなかったり無視したりする問題に対して、Linusが吠えている。 マジで、HFS+はたぶん最悪のファイルシステムだな。クソすぎるぜ。NTFSもutf8の正規化で似たような問題(/の非正規化された表現を使用)があったが、まあ、今は修正されたんだろうよ。OS Xの問題は根的すぎる。 そりゃ、古いさ。そりゃ、データ保護がクソすぎるってのはあるさ。だが、そういうのは、単に「すげーファイルシステムじゃない」って問題だ。「自分のケツすら拭けないマヌケによって設計された信じがたいクソ」ってわけじゃない。 HFS+の恐ろしさは、すげーファイルシステムではない、ということではない。いいアイディアがあると信じ

    dowhile
    dowhile 2015/01/14
    Case insensitiveも間抜けだけどNFDはほんとにひどい癌
  • Google Newsに強制課金する法律、あっけなく失敗

    Spanish Newspaper Publishers' Association Now Asks Government To Help Stop Google News Closure | The Spain Report スペインでは、Webサイトが報道機関のWebサイトをわずかでも引用する場合、報道機関に対し対価を支払わなければならないという法律を、報道機関のロビー活動により成立した。それを受けて、Googleは、Google Newsはそれ自体が金を生み出してはいないので、スペイン版を廃止すると宣言した。 どうやら報道機関のロビー団体はスペイン政府にGoogle Newsを廃止しないように何か行動をせよと言っているらしい。不思議なことだ。 ちなみに、ドイツでも同等の法律ができている。そのときもGoogle Newsは廃止を宣言した。その結果、Webトラフィックが激減したため、報道

  • Tarse Range-Based forがClangから取り除かれていた

    C++1zには、N3994: Tarse Range-based forが提案されていた。これは、Range-based forで型を書かずにすむようになる小粒な新機能だ。 任意のコンテナーを受け取って、その要素をすべて標準出力に出力する関数テンプレートを書くとする。これは以下のように書ける。 template < typename Container > void print( Container const & c ) { for ( typename Container::value_type & elem : c ) std::cout << elem << '\n' ; } いちいち型を書くのが面倒だ。これにはautoを使えばよい。 template < typename Container > void print( Container const & c ) { for (

    dowhile
    dowhile 2014/12/12
    c++1z ....
  • ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?

    ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で? c++ - Replacing 32bit loop count variable with 64bit introduces crazy performance deviations - Stack Overflow stackoverflowで、興味深い質問が行われている。 簡単にまとめるとこうだ。std::uint64_t型の配列の各要素にx86-64のpopcnt(1になっているビット数を数える命令)を適用したい。 コードの肝心の部分を書くと、以下のようになる。 for (unsigned i=0;i<size/8;i+=4) { count+=_mm_popcnt_u64(buffer[i]); count+=_mm_popcnt_u64(buffer[i+1]); coun

    dowhile
    dowhile 2014/08/04
    loop counterはintにしておいたほうがいい
  • 任天堂の使っている自由ソフトウェア

    任天堂ホームページ:任天堂製品に関連するオープンソースソフトウェアのソースコード配布ページ 任天堂がひっそりと、自社製品で使っている自由ソフトウェアを公開している。 残念ながら、彼らはオープンソースという誤った用語を使っている。オープンソースというのは誤った運動であり、誤解を招きやすい用語だ。自由ソフトウェアという用語を使うべきである。 WiiU3DSのファイルは相当に大きいので落として確かめていないが、Hacker Newsによれば、改変版Webkitとか、MSVCでコンパイルできるようにしたBluetoothライブラリとかだ。バーチャルコンソールにはMozillaのnanojitが使われているらしい。 WiiUのバーチャルコンソールがサイズも小さいので実際に落として確認してみたところ、nanojitが入っていた。 気になるのは、マリオカート8に使われている、BluetoothのSBC

    dowhile
    dowhile 2014/08/02
  • Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる

    Phoronixで知ったが、Linus TorvaldsがGCC 4.9.0のコード生成にブチ切れている。 問題はLinuxカーネルのload_balance()がランダムにパニックを起こすというもので、その原因は、報告者の使っているコンパイラーであるGCC 4.9.0のコード生成がおかしかったという話だ。 Linus様は御自ら生成されたコードを読み給い、平生と変わらぬ調子で物事の道理を示された。 Linux-Kernel Archive: Re: Random panic in load_balance() with 3.16-rc From: Linus Torvalds Date: Thu Jul 24 2014 - 14:47:25 EST On Wed, Jul 23, 2014 at 6:43 PM, Michel DÃnzer <michel@xxxxxxxxxxx> wro

  • Linuxカーネルのバグをgit bisectで特定する話

    Odd Bits - Tracking down a kernel bug with git bisect Linuxカーネルのバージョンを3.15に上げたところ、Docker内でのsuやrunuserが謎のシステムエラーで動かなくなった。カーネルのバージョンを3.14に下げると問題なく動作する。明らかにカーネルが影響を及ぼしている。 よろしい、ならばgit bisectだ。git bisectは良いコミットと悪いコミットの間をバイナリサーチして、問題を引き起こしたコミットを見つけてくれる。 しかし、Linuxカーネル3.14と3.15の間には、約15000件のコミットがあるので、git bisectを手動で回すのは現実的ではない。 git bisectには、自動化のための仕組み、git bisect runがある。これは、コミットをチェックアウトした後に、自動でスクリプトを実行して、現在

    dowhile
    dowhile 2014/07/25
  • 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と、プ

    dowhile
    dowhile 2014/06/23
    U.Drepperはゴールドマン・サックスに移ったのか.かつてはglibcからRMSを弾劾したことを考えると諸行無常だ
  • 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しちゃったけどどうする
    dowhile
    dowhile 2014/06/15
    意外と出来ることは多い
  • みなさんスラッシュドットから出てこないほうがいいですよ。

    Objective-Cという汚らしい言語を長年強制し、プログラマーを絶望の淵に叩き込んでいたAppleが、とうとう新言語を発表した。名前はSwiftという。 iTunes - Books - The Swift Programming Language by Apple Inc. ただし、現時点で、Swift言語仕様書のダウンロードと閲覧に、Appleの独自仕様満載の不自由なデバイス、の上で動く不自由なOS、の上で動く不自由な閲覧ソフトウェアが必要だ。そのため、筆者は未だに言語仕様書を読めずにいる。これをもってこれをみると、Appleの新言語にかける姿勢が如実に現れていると言えよう。すなわち、Appleの不自由なシステム以外は、市場として考慮する必要がないということに違いない。事実、Objective-Cは、Appleの不自由なシステムでプログラミングするにあたって、仕方なく使わなければな

    dowhile
    dowhile 2014/06/04