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

  • Walter BrightによるEric Engstromの思い出話

    DirectXの作者の一人であるEric Engstromが死去した。これにことよせてD言語のWalter Brightが思い出話を書いている。 I've known Eric since around 1985 or so when he came to work at Data I/O. Our fr... | Hacker News Ericは1985年から知り合いだった。Data I/Oで働いていた頃だ。次第に疎遠になっていったが、あいつは常に特別なやつだった。 今となっては私しか覚えていないであろう思い出話をひとつしてやろう。いつ思い出しても笑えるし、まさにあいつらしい話だ。 あいつが1991年か92年あたりにMicrosoftで働いていた頃、問題を抱えているマネージャーがいた。アセンブリ言語で書かれたプログラムがあった。5万行ほどのサイズだ。プログラムには修正すべき不具合があっ

    rinsuki
    rinsuki 2020/12/20
  • 村上原野追悼旅行記

    発端 村上原野追悼のために、11月7日から9日にかけて岡山に行ってきた。 参考: ボレロ村上逝去 村上原野(ボレロ村上)の思い出 村上原野の訃報プログラマーの界隈に知られてすぐに、追悼のために岡山に旅行する話が持ち上がり、10人以上もの人間が集まったが、COVID-19の感染拡大により東京から大人数で地方に移動するのは感染拡大のリスクがあるので自粛していた。 さて、冬も終わり夏もすぎて秋になり、どうやら冬に感染が拡大するらしいとのことで、今年中に行くならばそろそろ行かなければならないと思っていた矢先、が岡山に行くというので相乗りすることになった。GOTOトラベルキャンペーンを使い、倉敷のホテルに2泊3日の行程だ。せっかくなのでホテルは少々高くてもおしゃれなところにしようと画像を見ておしゃれそうなところに宿を取った。 11月7日 安かった時間帯の14時半に羽田空港から岡山空港に行く。飛行

    rinsuki
    rinsuki 2020/11/23
  • fork()は失敗するんだぜ、覚えときな

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

    rinsuki
    rinsuki 2020/11/08
    こわ
  • Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子

    Linus Torvalds - Google+ - One of the things I end up doing is do a lot of performance… Linus Torvaldsが、最近のIntelのCPUは、通常以外の処理のコスト、つまりPage faultのコストが上がっているので、問題であるとしている。 俺はよくカーネルコードのパフォーマンスプロファイリングをやる。特に、VMとかファイルシステム周りに対してだ。 俺がよくやるのは、「うまくいってるとき」に対する計測だ。つまり、だいたいほぼ完璧にキャッシュされてる状況だな。というのも、俺はもちろんIOのことは気にかけているが、俺の個人的なワークロードはたいてい、うまくキャッシュされてるからだ。たとえば、俺にとってよくあるロードは、pullした後のフルカーネルビルドだ。これにどのくらいの時間がかかるかが問題になる

    rinsuki
    rinsuki 2020/07/25
  • 2020年の日本には2020年にふさわしい日本語の掲示板がない

    情報の流通において最も効率的なのはテキストだ。テキストを効率よく流通させる方法として、古典的なインターネットにはメール、チャット、掲示板があった。 このうち、メールは古典的なEメールがまだ生き残っている他、現代的なSNSがメールの機能を代替し始めてきた。日では今の所LINEが最も普及しているようだ。 チャットもそうだ。古典的なIRCはまだ生き残っている。しかし現代的なSNSや、Slackのようなサービスが代替し始めてきている。 では掲示板は? 現代の日には現代的な掲示板サービスが欠けている。 もちろん、掲示板機能を提供するWebサービスはたくさんある。しかし、日語圏でWebサービスを提供しているものは、いずれもかなり限定的な目的に特化したものだ。例えばユーザー同士で質問と回答をしあうサービス(Yahoo知恵袋など)とか、ソーシャルニュースアグリゲーション(はてなブックマーク)のような

    rinsuki
    rinsuki 2020/01/14
  • もし大工の採用面接がプログラマーのように行われていたら

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

    rinsuki
    rinsuki 2019/04/04
  • Linus Torvalds様、ユーザースペースの互換性を壊した開発者に強い態度をお示しになる

    Linuxカーネル4.18から、userns mountに対して暗黙にSB_I_NODEVを設定するようになったために、既存のsystemdのnspawn実装が壊れた。 以下が問題のパッチだ。 https://github.com/torvalds/linux/commit/55956b59df336f6738da916dbb520b6e37df9fbd Linuxカーネルにおいては、ユーザースペースの挙動は変えないという強い下位互換保障がある。以前のバージョンのカーネルで動いていたユーザースペースのコードが新しいバージョンのカーネルで動かなくなった場合、それは理由が何であれ新しいバージョンのカーネルのバグであるとみなされる。たとえそれが、ドキュメント化していない明示的に保証されているわけではない昔のカーネルの暗黙の挙動であれ、その挙動に依存している既存のユーザースペースのコードがあるので

    rinsuki
    rinsuki 2018/12/25
  • 本の虫: Translation is impossible

    This is one of planning posts explaining about the situation of Japan and programming. This time, I would like to write about non technical matters. How bad the translation is. Last time, I explained Why Japanese don't know English. Short answer is: We don't need to because there are enough translations. So It's all about translation. Is it good? Short answer, No. Long answer, NOOOOOOOOOOOOOOOOO.

    rinsuki
    rinsuki 2018/12/23
  • 本の虫: Japanese programmers don't know English

    "Japanese programmers don't know English." This is a fact. Sure, there are few exceptions. But I can safely say almost all Japanese programmers don't know English. Why is it? Why we don't know English? How could that even be possible? How can we learn programming without knowing any English. Why? Because we don't need to. How? Because there are enough Japanese translations. In the world of program

    rinsuki
    rinsuki 2018/12/23
  • 本の虫: Clang VS 自由ソフトウェア

    オープンソースで有名なEric S. Raymondが、自由ソフトウェアで有名なRichard Stallmanに、GCCのアンチプラグインポリシーについて突っ込んでいる。 GCCは、長年、コンパイラーのモジュール化を政治的な理由で行っていなかった。もし、例えばパーサーや意味解析だけを分離して使えるようにしたり、内部表現を規格化したりしてしまうと、GCCの一部が、不自由なソフトウェアに取り込まれたり、あるいは不自由なソフトウェアがGCCのプラグインという形で入り込むことになってしまう。これは、利用者の自由を第一とする自由ソフトウェアにとって、悪夢のような未来である。そのような未来を未然に防ぐために、政治的な理由で、GCCのはプラグインに反対するポリシーを採用している。もし、GCCを改良したければ、自由なソフトウェアとなるべきなのだ。そして、GCCのプロジェクトに参加するべきなのだ。 とはい

    rinsuki
    rinsuki 2018/11/16
  • 本の虫: 帰ってきたきれいなリーナス・トーバルズ、無作法な開発者をたしなめる

    Linus Torvalds Shows His New Polite Side While Pointing Out Bad Kernel Code - Phoronix 人の心の読み方を学んで復帰したリーナス・トーバルズは、さっそく無作法なプルリクエストをたしなめている。その文章は大文字センテンスも4文字言葉も使っていない優しいものに変わっている。 問題はプルリクエストはBigBenゲームコントローラーに対するドライバーの追加で、このドライバーはデフォルトで有効にされていた。これはLinuxカーネルの慣習にそぐわないものだ。新しく追加された名前もきいたこともないようなデバイス用のドライバーが、いきなりカーネルでデフォルトで有効にはされないものだ。新参者のドライバー開発者は、大抵自分のドライバーはとても重要で、自分の所有しているデバイスは全員所有しているのでデフォルトで有効にするのは当然

    rinsuki
    rinsuki 2018/10/29
    そのうち元に戻りそう
  • 本の虫: Linus、今までの行いを謝罪し一時的にカーネルメンテナーの立場を退いて人の気持ちを勉強してくると発言

    Linus、今までの行いを謝罪し一時的にカーネルメンテナーの立場を退いて人の気持ちを勉強してくると発言 完全に背景事情を調べ上げたわけではないのだが、どうもLinusが毎年参加しているLinuxカーネルの会議に、Linusがスケジュールを間違えて参加できなくなるという事態が発生した。当のLinus人はもう20年も続いている会議だし自分がいなくてもやっていけるだろうと楽観視していたが、会議自体がLinusの都合にあわせてリスケジュールされた。 LinuxにおいてLinus Torvaldsといえば第一人者であり極めて重要な存在で、そのLinusが毎年参加している重要な会議にLinusが参加できないとあれば、その他のあらゆるコストを度外視して根回し調整を行い、Linusが参加できるようにイベント全体のリスケジュールを行うのは人間の感情から考えて当然である。しかし当のLinus人は他人の感情

    rinsuki
    rinsuki 2018/09/17
  • 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クライアントをアッ

    rinsuki
    rinsuki 2018/08/23
    “Steam Playによるゲームの実行は、GNU/Linuxユーザーとしてカウントされ、ゲーム開発者に通知されるしSteamの統計にも出る” あー、勝手にWineで動かすのとは違ってそこがカウントされるのもあるのか(カウントされるなら)。
  • しないでマイクロソフトのスタイルガイドライン準拠の翻訳

    マイクロソフトは将来的に買収する見込みの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

    rinsuki
    rinsuki 2018/07/24
  • プロフェッショナルIPv6の執筆経緯が興味深い

    「プロフェッショナルIPv6」が出版されるそうだ。 すごいIPv6を無料配布!:Geekなぺーじ このの執筆経緯が面白い。クラウドファンディングで金を集めている。 すごい技術書を一緒に作ろう。あきみち+ラムダノート『プロフェッショナルIPv6』 | クラウドファンディング - Makuake(マクアケ) クラウドファンディングでは結果的に400万円ほど集まったそうだ。これはラムダノートと著者の連名のクラウドファンディングなので、著者の総取りというわけでもないだろうが、それにしても400万円は現代の技術書としては異例だ。 技術書とカネの話をしようと思う。私自身、技術書を出版してカネを得た経験がある。 技術書一冊の相場は数千円だ。売上一冊あたりの著者の収入は数百円だ。では著者が数百万円を稼ぐためには何冊売ればいいのだろうか。1万冊だ。問題は技術書で1万冊も売れるは稀だということだ。1万冊

    rinsuki
    rinsuki 2018/07/13
  • NPMのESLintのパッケージにマルウェアが混入された問題

    Postmortem for Malicious Packages Published on July 12th, 2018 - ESLint - Pluggable JavaScript linter https://github.com/eslint/eslint-scope/issues/39 要約 2018年7月12日に、攻撃者がESLintメンテナーのnpmアカウントを不正利用し、悪意あるコードが混入したeslint-scopeとeslint-config-eslintパッケージをnpmレジストリに公開した。インストール時に、悪意あるパッケージがダウンロードされ、pastebin.comからコードを実行し、このコードはユーザーの.npmrcファイルの中身を攻撃者に送信する。通常.npmrcファイルにはnpmでパッケージを公開する際のアクセストークンが含まれる。 悪意あるパッケージ

    rinsuki
    rinsuki 2018/07/13
  • 世の中にはプログラミングを理解できない人間が存在する

    現在、C++によるプログラミングの入門書を書いているので、初心者のプログラミングの学習過程にとても興味がある。私自身も初心者の気持ちを取り戻すためにHaskellを学んでみた。最初の数日は頭が痛くなるほど難しかったが、そこを過ぎてみれば後は楽になってしまった。結局、初心者の気持ちはあまりわからなかった。結局、プログラミングの基礎はすでに学んでしまっているので、 先日、FizzBuzzがわからないから教えてくれという知人がいたので、これは初心者の気持ちを知るいい機会と話を聞いてみたところ、想像を絶する世界が見えてきた。 まずこれが動かないと悩んでいたコードだ。 for ( int i = 0 ; i <= 100 ; i++ ) { } else if ( i % 15 == 0 ) { Debug.log("FizzBuzz") ; } else if ( i % 3 == 0 ) { D

    rinsuki
    rinsuki 2018/05/29
  • 本の虫: OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避

    OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避 “We didn't chase the fad of using every Intel CPU feature” | Hacker News 'Re: CVE-2018-8897' - MARC 前回の記事であるIntelの古いマニュアルを誤読したために生じた脆弱性では、IntelのCPUがスタック切り替えるためにss/spレジスターをアトミックに更新する汚いハックとして、ssレジスターが変更された直後の1命令は割り込みが遅延される古い仕様があるが、多くのOSはこの古い仕様を把握していなかったため、ssレジスターを変更した直後の1命令でカーネルモードに入り、かつハードウェアブレイクポイントが設定されたことにより割り込みを起こせば、カーネルモードに入った直後にカーネルのコード

    rinsuki
    rinsuki 2018/05/15
  • ロシア、Telegramをブロックするために180万ものIPアドレスをブロック

    Russia Bans 1.8 Million Amazon and Google IPs in Attempt to Block Telegram ロシアはインスタントメッセージングサービスのTelegramをブロックするため、AmazonGoogleの所有する約180万ものIPアドレスをブロックした。 以下がそのIPアドレスの範囲で、1835008個のIPアドレスになる。 52.58.0.0/15 18.196.0.0/15 18.194.0.0/15 18.184.0.0/15 35.156.0.0/14 35.192.0.0/12 Telegramの創始者は以下のような声明を出したそうだ。 Telegram: Contact @durov 過去24時間でTelegramはロシアのISPによってBANされた。理由は我々が暗号鍵をロシアの諜報機関に提出するのを拒んだためだ。我々にとっ

    rinsuki
    rinsuki 2018/04/18
    AWSやGCPブロックするのは普通に繋がらなくなるサービスが出てきそうなんだけどどうなんだ
  • vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPU版AirBnBみたいなサービス

    vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPUAirBnBみたいなサービス Rent out your GPU compute to AI researchers and make ~2x more than mining the most profitable cryptocurrency. : gpumining Deep Learningを研究しているある苦学生は、AWSGoogle CloudのようなクラウドでGPGPU計算を提供している高い利用料に頭を悩ませていた。そこで、GeForce GTX 1080Tiを複数枚使ってEthereumを採掘している友人の存在に気が付き、交渉して、Ethereumを採掘するよりも歩合のよい報酬を支払い、機械学習に必要なGPGPU計算を請け負ってもらうことにした。その対

    rinsuki
    rinsuki 2018/03/24