タグ

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

  • 標準C++規格が3年おきに制定される理由

    現在、C++の標準規格は3年おきに制定されている。このスケジュールはC++14から厳しく守られていて、C++20は2020年に制定される予定だ。 なぜなのかを議長のHerb Sutterが解説している。 Draft FAQ: Why does the C++ standard ship every three years? – Sutter’s Mill まず現状認識として、C++の標準規格は3年おきに制定される。ドラフトにバグがあるので遅らせるべきではないのか。ダメだ。そのために2年間の機能追加と1年間の機能フリーズとバグ修正の期間が儲けられている。 しかし、ある「機能」はあと数回の会議を経たならば完全に合意できて入れられる状態になっている。この「機能」のためにC++20を少しだけ遅らせられないのか? ダメだ。期限までにC++20に入れられない「機能」はC++23に回される。 このスケジ

    mnnn
    mnnn 2019/07/16
  • Steam Playで不自由なWindows用ゲームをGNU/Linux上で実行するにはPython 2が必要

    Steam Playが発表されたので、早速使ってみた。 Steam PlayというのはWineからforkしたValveのProtonを使ったGNU/LinuxWindowsゲームを実行する機能だ。なぜWineをforkしているかというと、ProtonではWineにまだ入っていない変更を使っているからだ。例えばDirectXをVulkanで実装したdxvkや、同期処理をユーザースペースで行うValveが開発したWineに対するパッチesyncを使っている。 https://github.com/ValveSoftware/Proton Steam Playを使うには、まずSteamクライアントのSettings→Account→Beta participationからSteamクライアントBetaを使う設定であるSteam Beta Updateに切り替え、Steamクライアントをアッ

    mnnn
    mnnn 2018/08/23
  • しないでマイクロソフトのスタイルガイドライン準拠の翻訳

    マイクロソフトは将来的に買収する見込みのGitHubで.NETのドキュメントを公開している。ハロウィーン文書が公開された頃のマイクロソフトからは考えられないほど変わったものだ。 https://github.com/dotnet/docs.ja-jp その中にある変数名の命名規則に関するスタイルガイドラインについて書かれたドキュメントの文章がおかしい。 https://github.com/dotnet/docs.ja-jp/blob/live/docs/standard/design-guidelines/names-of-type-members.md しないで動詞または動詞句は、メソッドの名前を指定します。 しないで名詞、名詞句、または形容詞を使用してプロパティの名前を付けます。 しないで次の例のように、"Get"メソッドの名前に一致するプロパティがあります。 しないで後に"List

    mnnn
    mnnn 2018/07/24
  • 警察官に職務質問をされた話

    とても日差しの暑い7月、木場の自宅から銀座にある職場まで5kmの道を、5kgはある荷物を背負って徒歩で通勤していた。その日の私の出で立ちは、日焼けを防止するための大きな帽子、OD色の即乾シャツ、クライミング用のジーンズ風ストレッチパンツ、半長であった。勝鬨橋を超えて自販機で飲み物を買うと、急に警察官が3人近寄ってきた。 警察官「ちょっといいですか」 私「何ですか」 警察官「荷物の中を確認させていただきたい」 私「嫌です」 警察官「なぜですか」 私「応じる義務がないからです」 警察官「危険なものが入っているのではないですか」 私「入っていません」 警察官「では見せて証明してください」 私「見せる義務はありません」 このような問答がしばらく繰り返された挙句、私は出社をしなければならないのでその場を離れようとした。すると、警察官は回り込んで私の往来を妨害してくるではないか。人の往来を妨害するの

    mnnn
    mnnn 2017/07/04
  • マストドン会議で技術と自由を語る

    マストドン会議というものがあり、清水亮も登壇するというので行ってきた。 マストドン会議 ―― その無限の可能性を、いま語らずしていつ語らう! ~コミュニティもマーケティングも揺るがすTwitterのライバル出現~ | Peatix マストドンは日ではやってからまだ2週間しかたっていない。一体そんな状況で誰が集まるのだろうか。主催は角川が絡んでいるらしいが、まあ、あまり期待はせずに行くことにした。 その日は来るべき超会議2017のリハーサルの日だった。会場の幕張メッセではマストドンブースが設営されていた。私が担当なので当然私も現地にいた。そして少し遅れてマストドン会議の会場に着いた。清水亮は私よりも更に少し遅れて会場入りした。 会場に入ってみると、ぬるかる氏のmastdn.jpにサーバーを提供しているさくらインターネットの人とぬるかる氏が、サーバーの運営上の話をしていた。とても技術的な話だ

    mnnn
    mnnn 2017/04/29
  • マストドンが直面している問題はすでにP2P技術が15年前に遭遇した問題だ

    Media content caching strategy · Issue #1847 · tootsuite/mastodon勢がマストドンに目をつけ始め、Pixivがマストドンのインスタンスを立ち上げてからというもの、マストドンは2つの問題に直面している。 日国内で合法である現実に基づかない純粋な思想の表現である絵が海外基準では児童ポルノであり違法なデータである 画像投稿を主目的とするPixivの利用形態により大量のトラフィックとストレージがキャッシュとして消費されるため貧弱なインフラでは耐えられない これにより、Pixivによるマストドンのインスタンスは海外で主流のマストドンのインスタンスから遮断された。 現在、マストドンのコミュニティではこの問題に対する議論が行われているが、この問題には見覚えがある。15年前のP2P技術が流行した時代と同じ問題だ。我々は歴史に学ぶべきであ

    mnnn
    mnnn 2017/04/16
  • 超会議2016でドワンゴの運営スタッフとして焼きそばを焼いた感想

    「江添さん、超会議で焼きそばを焼きませんか?」 恰幅のいい同僚が話しかけてきた。この男はドワンゴの料理研究部の部長である。 ドワンゴには福利厚生として同好会の設立を会社に申請でき、受理された同好会には部費も支給される。最も、会社が経費として出す金なので、いろいろと制約がある。例えば、飲費用には使えない。料理研究部は調理器具や職場近くのキッチンのレンタルなどに部費を使っている。 「焼きそば? 少し前に話題になったアレをネタにするつもりですかな。しかし、もう旬は過ぎてしまったのではありませんかな」 「アレ」というのは他でもない。一時期、ドワンゴから退職が相次いだ時期があり、その時のある退職者に対して、退職理由がよくわからないとドワンゴの川上宣夫会長と伊藤直也氏がスシをつまみながらのインタビュー記事で書かれたことを受けて、元ドワンゴ社員のkuzuhaが、言及されている退職者というのは自分であろ

    mnnn
    mnnn 2016/05/01
    “プログラマーにとって単調作業は忌避すべきものであるが、我々はたまに単調作業の魅力に惹かれてしまう。” / “本の虫: 超会議2016でドワンゴの運営スタッフとして焼きそばを焼いた感想”
  • 闘会議2016のアナログゲームのとある運営スタッフの感想

    闘会議2016のアナログゲームのインスト要員として2日間運営スタッフとして入っていたので、その感想を書く。 筆者は江添亮、ドワンゴにエンジニアとして雇われている。ドワンゴのボードゲーム同好会のメンバーでもある。今年の闘会議でも、アナログゲームは設置される。もちろんカタンもある。カタンのインストをするために運営スタッフとして参加した。 今回の闘会議には不安が大きかった。なにしろ、今回のアナログゲームエリアには、30卓ほど立てるという予定である。1卓にスタッフを2人配置するとして、60人必要になる計算だ。60人ものボドゲがインストできるスタッフをどこから集めてくるというのか。あまりにも無謀すぎる。私が一切関わっていない会社の企画するイベントが失敗するのは私の知ったことではないが、カタンのインストが失敗し、カタンに悪い印象を与える事態だけは、ガチのカタンプレイヤーとして見過ごすことはできぬ。そこ

    mnnn
    mnnn 2016/02/01
    イイハナシダナー “なんと、去年私がカタンを教えた子供が今年もやってきてカタンをするというのか。” / “本の虫: 闘会議2016のアナログゲームのとある運営スタッフの感想”
  • とても賢いコンパイラーの逆襲

    The Hacks of Life: The Dangers of Super Smart Compilers Clangの最適化が未定義の挙動を検出してコード片を消し去ってしまったことに引っかかった開発者の嘆き。 今日初めて、RenderFarmのDSF render(global scenaryを作成するのに使っている内部ツール)をClangで最適化コンパイルして実行した。 結果はsegfaultだった。これは驚きだ(そして自身消失だ)。というのも、最適化していないデバッグビルドは問題なく動くし、GCCでコンパイルされた最適化ビルドも正しく動く。-O0ではバグがない(つまり#if DEVコードのバグではない)ので、「最適化は何をやっているんだ」の時間だ。 大量のprintfと試行錯誤の結果、最適化は以下のようなコード片を丸ごとすっ飛ばしていることが判明した。 for(vector<me

    mnnn
    mnnn 2015/12/21
  • HTTPステータスコード451(政治的な検閲)が正式に承認される

    mnot’s blog: Why 451? draft-ietf-httpbis-legally-restricted-status-04 HTTPステータスコード451がIETFで正式に承認された。近いうちにRFCとしても発行される。 元ネタは、Ray BradburyのFahrenheit 451(華氏451)というタイトルの小説で、これはディストピアな検閲社会を描いている。 451の意味は、403(禁止/権限がない)と似ているが、正確な意味は、ドラフトを引用すると、以下の通り。 このドキュメントはサーバーオペレーターが、あるリソース、あるいはあるリソースを含むリソース群に対し、閲覧を検閲するよう法的な命令を受け取った時に使うHypertext Transfer Protocol(HTTP)ステータスコードを規定するものである。 このステータスコードは、法律や一般大衆の雰囲気がサーバー

    mnnn
    mnnn 2015/12/20
  • GoogleのエンジニアがAmazonで片っ端からType-C USBケーブルをレビューしている

    Amazon.com: Profile for Benson Leung GoogleChromebook PixelのエンジニアであるBenson Leungが、アマゾンで売られているType-C対応を謳っているUSBケーブルとアダプターを片っ端からレビューしている。 なぜそんなことをしているのか。Googleの製品であるChromebook PixelはUSB Type-Cによる充電ができるが、巷に出回っている自称USB Type-C対応の製品の多くが、USB規格に違反していたり、十分な性能がない欠陥品だったりするからだ。 そもそも、USB Type-C規格は、3A, 5V, 15Wの電力供給ができる。3Aの電力供給は、途中の経路がすべてUSB Type-C対応の製品である場合に限る。例えば、途中にUSB 2.0などのレガシーケーブルを挟む場合は、USB Type-C規格準拠のケーブ

    mnnn
    mnnn 2015/11/05
  • コマンド間違えると「コマンドではない。」って返してくれる江添プラギン

    コマンド間違えると「コマンドではない。」って返してくれる江添プラギンほしい — 尾上* (@on_orikami) May 27, 2015 bashの場合、.bashrcに以下のように書けばよい。 command_not_found_handle() { echo "コマンドではない。" } ちなみに、もともとのシェル関数をリネームする方法について興味深い方法があった。 bashrc - How do I teach bash in Ubuntu some curse words? - Ask Ubuntu How do I rename a bash function? - Stack Overflow これを元にUbuntuに提供されている便利な機能も維持すると、以下のように書ける。 alias_function() { eval "${1}() $(declare -f ${2}

    mnnn
    mnnn 2015/05/31
    “本の虫: コマンド間違えると「コマンドではない。」って返してくれる江添プラギン”
  • ask.fmの回答を簡単にするブラウザー拡張を書いた

    Big Sky :: 江添さんに簡単に質問出来るコマンドを golang で書いた。 珍しくフルチンではないmattnさんが、ask.fmの私のアカウントに質問を投稿するCLIのツールをgoで書いたようだ。そのためと、しばらく回答していなかったため、ask.fmが大量のオヤジギャグを含む質問で埋まってしまった。 ask.fmをブラウザーから閲覧して質問に答えるのはいいが、UIに不満がある。マウスを使わなければ質問に答えられない。このため、キーボードだけで質問に答えられるよう、ブラウザー拡張を書いた。 https://github.com/EzoeRyou/askfm-mod 質問の一覧でショートカットキーを押すと、最新の質問の回答URLに移動する。回答を入力してショートカットキーを押すと、回答ボタンをクリックする。何も回答を入力しないままショートカットキーを押すと、「質問ではない」と回答す

    mnnn
    mnnn 2015/05/20
    “何も回答を入力しないままショートカットキーを押すと、「質問ではない」と回答する。”www / “本の虫: ask.fmの回答を簡単にするブラウザー拡張を書いた”
  • ビッグデータツールチェインのセキュリティはビッグリスク、あるいは、誰もHadoopをスクラッチからビルドする方法を知らない件について

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

    mnnn
    mnnn 2015/04/30
    “本の虫: ビッグデータツールチェインのセキュリティはビッグリスク、あるいは、誰もHadoopをスクラッチからビルドする方法を知らない件について”
  • gitの10周年を記念したLinus Torvalsへのインタビューの翻訳

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

    mnnn
    mnnn 2015/04/10
    “最初の一日分はないがね。gitでgitのコミットをする、「セルフホスト」をするのに一日ほどかかった” / “本の虫: gitの10周年を記念したLinus Torvalsへのインタビューの翻訳”
  • コンパイラーを負かす

    roguelazer's website: beating the compiler なかなか面白かったので翻訳して紹介する。 たとえば、97%の場合において、僅かな効率など忘れるべきである。。早すぎる最適化は諸悪の根源である。とはいえ、残りの重要な3%の機会を逃すべからず。 -- Donald Knuth 計測せよ。計測するまで速度の最適化を施してはならぬ。たとえ計測したにせよ、一部のコードが残りを圧倒するまではまだ最適化してはならぬ。 Rob Pike 最新のWebサービスを主体とした技術の業界に長年浸かった我々は、パフォーマンスの問題を忘れがちである。SQLAlchemy ORMの中で行うリクエスト一つが8,9秒かかる中で、関数呼び出しひとつを3ミリ秒最適化したところで何になるというのか。とはいえ、時にはそのような最適化スキルを養っておくのもいいことだ。今回は、ある簡単な課題を最適化

    mnnn
    mnnn 2015/03/31
  • メンバー関数へのポインターを返すメンバー関数へのポインターを返すメンバー関数

    class Foo;が存在したとして(1)Fooのメンバ関数ポインタ(2)を戻すメンバ関数のポインタが欲しいと思った(なお(1)で戻すメンバ関数もFooのメンバ関数ポインタを戻す)のだが、どうあがいても記述出来ないものだったりするのだろうか? ようするに、以下のようなことがしたいわけだ。 class Foo { public : // メンバー関数a void a() { } // メンバー関数aへのポインターを返すメンバー関数b ??? b() { return &Foo::a ; } // メンバー関数aへのポインターを返すメンバー関数bへのポインターを返すメンバー関数c ??? c() { return &Foo::b ; } } ここで、???の部分に戻り値の型を記述しなければならない。 もちろんこれは記述できる。ただしその記述は、C++の規格のバージョンにより難易度が異なる。 C

    mnnn
    mnnn 2015/03/25
  • cpで大量のファイルをコピーした(4億3200万件、39TB)

    GNUのcpを使って大量のファイルをコピーしたところ、cpの設計上の問題で、極めてコピーが遅かったというお話。 My experience with using cp to copy a lot of files (432 millions, 39 TB) よう。俺は最近、大量のファイルをコピーする必要があったんだが、UNIXは20年もやってきた俺の経験からも、cpの挙動には驚かされたし、俺の意見はコミュニティに共有されるべきだと思う。 環境:古いDellのサーバー(2コア、初期メモリ2GB、追加して10GB、Ubuntu Trusty)と、新しいDellのストレージ格納機(MD 1200)にある、12個の4TBディスクでRAID 6が設定してあって、全体で40TBの要領を持ち、二つのドライブが同時に失敗しても問題ない環境。サーバーは遠隔地バックアップに使われていて、ディスクへの書き込みし

    mnnn
    mnnn 2014/09/14
    “本の虫: cpで大量のファイルをコピーした(4億3200万件、39TB)”
  • fork()は失敗するんだぜ、覚えときな

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

    mnnn
    mnnn 2014/08/21
    “本の虫: fork()は失敗するんだぜ、覚えときな”
  • 任天堂の使っている自由ソフトウェア

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

    mnnn
    mnnn 2014/08/02
    クッキークリッカー遊ばれたのせいぜい数日だけじゃないですかー / “本の虫: 任天堂の使っている自由ソフトウェア”