タグ

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

  • macOSのM1とx86-64におけるベンチマーク比較の考察

    世間ではAppleの新しい製品に使われるARM64 CPUであるM1の話題でもちきりだ。ただし、日語を話す記者というのは極めて非科学的かつ無能であり、M1の現物を手にしても、末端のソフトウェアを動かして、体感で早いだの遅いだのと語るだけだ。そういう感想は居酒屋で酒を片手に漏らすべきであって、報道と呼ぶべきシロモノではない。 と思っていたら、Phoronixがやってくれた。M1とi7で動くmacOSでベンチマークをしている。 これを考察すると、M1のMac Miniは、一世代前のi7のMac Miniに比べて、メモリ性能とI/O性能が高く、演算性能は低いようだ。このことを考えると、M1の性能特性としては、動画のエンコードやソフトウェアレイトレーシングをするには不向きだが、その他の作業は遜色ないだろう。 問題は、仮想化とRosettaを組み合わせることができないという点だ。x86-64のユー

    rin51
    rin51 2020/11/24
  • 500マイル以上離れた場所にメールが送れないのだが

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

    rin51
    rin51 2020/11/04
  • 検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない

    検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない PCILeechというソフトウェアスタックがある。 ufrisk/pcileech: Direct Memory Access (DMA) Attack Software これはPICeデバイスを使ってターゲットコンピューターのメモリをDMAで読み取るためのPCIeデバイスのFPGAの実装とその操作のための一連のソフトウェア群だ。 原理は簡単だ。ターゲットコンピューターのPCIeスロットにつないだPCIeデバイスからDMAをするだけ。これによりターゲットコンピューターのメモリ領域を読み取ることができる上、ターゲットコンピューターからは検出不可能だ。なぜならばDMAはCPUを介さずに行われる上、ターゲットコンピューターにカーネルスペース/ユーザースペースともに追加のコード実行を必要と

    rin51
    rin51 2020/04/18
    アプリケーションのメモリ領域をどうやって知るのかが知りたいけどそれリンク先に書いてあるのか(読んでない
  • AMDのZen 2でRDRANDが-1を返すので最近のGNU/Linuxがブートできない問題

    AMDのZen 2アーキテクチャの新製品が発売されて沸き立っているが悲しいお知らせがある。最近のGNU/Linuxディストロはブートしない。例えばUbuntu 19.04はブートしない。 理由は、ハードウェア乱数を返す命令、RDRANDに不具合があり、常に-1を返すのだという。このため、rdrandを直接使っているsystemdが失敗し、結果としてブートできなくなる。 AMDによればこの問題はBIOSアップデートで修正可能であるという。しかしこれはとても怪しい陰謀論を考えたくなる。なぜRDRANDが常に-1を返すような不具合が未然に発覚せずに製品リリースまでこぎつけてしまったのか。なぜファームウェアのアップデートで修正可能なのか。まさかバックドアなのではないか。 陰謀論はともかくとして、もう一つの問題は、なぜsystemdはRDRANDを直接使っているのかということだ。Linuxカーネルの

    rin51
    rin51 2019/07/15
  • 本の虫: かつてPSエミューレーターにスラップ訴訟を仕掛けたソニーのPSクラシック、自由ソフトウェア実装のPSエミュレーターであるPCSX ReARMedを使っていることが判明

    かつてPSエミューレーターにスラップ訴訟を仕掛けたソニーのPSクラシック、自由ソフトウェア実装のPSエミュレーターであるPCSX ReARMedを使っていることが判明 かつてPSエミュレーターをスラップ訴訟により嫌がらせをして事実上の販売停止に追い込んだ邪悪なソニーが販売するPSクラシックには、自由なソフトウェア実装のPSエミュレーターであるPCSX ReARMedが使われていることが判明した。 Kotakuによるレビューによれば、PSクラシックの使用する自由ソフトウェアのライセンス表記の一覧にPCSX ReARMedが確認できたという。 PCSXは自由ソフトウェアによるPSエミュレーター実装で、2000年に公開された。その開発は停滞したが、2006年にPCSX-dfとしてforkされた。またPCSX-Revolutionいうforkもあった。2009年にはこの2つのforkを参考にPCS

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

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

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

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

    rin51
    rin51 2018/09/17
    禅でもやるんだろか
  • 世の中にはプログラミングを理解できない人間が存在する

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

    rin51
    rin51 2018/05/30
    ココア吹いた> 当然だ。なぜならこれはUnityで
  • 本の虫: 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命令でカーネルモードに入り、かつハードウェアブレイクポイントが設定されたことにより割り込みを起こせば、カーネルモードに入った直後にカーネルのコード

    rin51
    rin51 2018/05/15
  • ffmpegとlibavの背景事情

    ffmpegをインストールしようとしたら、なにやらちょうど一年前あたり、大規模なforkが起こったらしい。いまや、ffmpegとlibavに分裂している。forkは自由なソフトウェアではいたって普通の出来事だ。大抵の場合、開発者の間での意見の不一致により起こる自然な現象だ。自由なソフトウェアであれば、fork自体はそれほど悪いことではない。どちらも自由であるので、双方の開発者がIRCやMLで広角泡を飛ばしながら喧嘩しつつ、何事もなかったかのように相手のコードをこちらのコードベースにマージできる。なぜならば、どちらも自由なソフトウェアという共通点を持っているからだ。 しかし、ffmpegは、だいぶ巨大なソフトウェアだ。おそらく、現時点でこれ以上にでかい動画と音声のソフトウェアは、mplayerしかあるまい。mplayerはffmpegを包括しつつ、さらに変態的なことをしている。これについては

    rin51
    rin51 2017/02/24
  • 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)ステータスコードを規定するものである。 このステータスコードは、法律や一般大衆の雰囲気がサーバー

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

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

    rin51
    rin51 2015/04/09
  • C++の正規表現ライブラリ: std::regex

    いまさらながら、C++の正規表現ライブラリを調べている。 C++の正規表現ライブラリ、std::regexは、boost::regexを土台に設計されている。boost::regexの正規表現の文法は、perlなのに対し、std::regexは、ECMAScriptである。この理由は、しっかりと正規表現の文法が定義されていて、外部規格として参照できる品質のものが、perlには存在しないためだ。std::regexはposixと拡張posixとawkとgrepとegrepの正規表現にも対応している。 記事では、ECMAScriptの正規表現を使う。また、参考のためのECMAScriptのコードも使う。 全体一致 文字列全体が正規表現に一致するかどうかを調べたいとする var re = /1234/ ; var text = "1234" ; var result = re.test( te

    rin51
    rin51 2015/01/21
  • 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

    rin51
    rin51 2014/07/27
  • Matthew Garrett、開発者にMacユーザーが多いことについて語る

    mjg59 | The desktop and the developer Matthew GarrettがGNU/Linux上で動くソフトウェアの開発者であっても、不自由なOSであるMacユーザーが多いことについて記事を書いている。 Matthew Garrettは、今や開発者の作業環境は、ターミナルとWebブラウザーなので、作業環境という点で、GNU/LinuxがプロプライエタリなMacに対して十分な利点を提供できていないとしている。 開発には、単にコードを書く以外の作業も多い。Webブラウザーで複数のWebサービス間を行き来して情報をコピペしたりするのは、極めて非効率的であるし、開発者の好む作業ではない。とはいえ、開発者がやらなければならない作業であることには変わりない。 このため、デスクトップ環境に、一般的な開発ワークフローを支援する組み込み機能を増やすなどして、GNU/Linux

    rin51
    rin51 2014/05/22
  • 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

  • みずほ銀行の信じられない契約軽視姿勢

    仕事のため、みずほ銀行の個人の口座を作る必要があったのだが、その銀行口座を解説する手続きで、対応にあたった行員が、極めて信じられないほどに契約というものを軽視していた。 みずほ銀行に口座を開く手続きのために、書類に必要な事項を記載し、署名捺印となった。行員は捺印の二箇所を私に指示した。一箇所は単に捺印するだけであったが(法的にも、印鑑は署名の代わりに補助的に用いることができるだけの極東の奇妙な風習である)、もう一箇所には、「私は規約に同意しました」的な文面があった。 はて、これはなんだろう。 私「すみません、これはなんですか」 行員「そこに押してください」 私「いえ、この規約ですが、これはどこにあるのですか」 行員「それでしたら裏にあります」 なるほど、裏にかかれていた。その規約を確認すると、みずほ銀行は私の個人情報を、市場調査などの統計解析のために使うことができるし、ダイレクトメールを送

    rin51
    rin51 2014/03/19
    SPAM缶は欲しいな
  • AtomとかいうGitHub発の不自由なテキストエディターについて

    GitHubが存在を公開した(流出したと言うべきかもしれないが)、Atomというテキストエディターの話題で持ちきりである。 このテキストエディターは、邪悪な不自由ソフトウェアであるので、自由の価値を重んずる読者は使ってはならないことはもちろんである。自由、不自由をさておいても(もちろん、さておくことはできない相談だが)、もちろん、敬虔なVim教徒である読者は即座に了解しているだろう。AtomがEmacsよりはいくらかは--自由の価値を重んじない浅はかな利用者にとっては--使いやすくなる可能性はないでもないが、Vimの牙城を崩すことは不可能である。Vimを倒すものはVimであり、NeoVimかもしれないが、Atomであることはありえない。その点で、我々信徒は安心できる。 さて、このAtomというテキストエディターは、自由ソフトウェアではない。その理由は、以下で言及されている。 Why is

    rin51
    rin51 2014/02/28
  • ドワンゴに入社した

    そう。タイトル通りだ。筆者、江添亮はドワンゴに雇用された。一体、どのような経緯でドワンゴに入社するに至ったのか。また、どんな仕事をしているのか。それを説明するには、時系列を追って書いたほうがいいだろう。 2013年8月21日 ふとみると、以下のようなサブジェクトのメールが届いていた。 【ご相談】ドワンゴ主催の C++11, 14 に関する勉強会にスピーカーとしてご参加頂けないでしょうか C++11? C++14? なんと、日C++14などという単語を知っている企業があったのか。しかし・・・ドワンゴ? SPAMだろうか。いや、こんなにピンポイントなSPAMがあるわけがない。 それにしても解せないメールだ。ドワンゴといえば、もちろん、あの有名なニコニコ動画の企業だ。ニコニコ動画と言えばWebサイトだ。ニコニコ動画やその関連サービスの開発にC++を使っているのだろうか。いやまて、たしか子会社

    rin51
    rin51 2014/02/13
  • 東京は住みにくい

    さて、東京に引っ越して数週間たった。結論から言うと、東京は住みにくい。 東京に来てまず気がついたのは、メシのまずさだ。どの飯屋に入っても、京都より数百円高い上に、クソまずい。私は未だに、東京でまともなメシ屋を発見したことがない。それは、何万円も払うような店ならば、少しは違うのかも知れないが、私はそんなごちそうをべたいのではない。普通のメシを普通の値段でべたいのだ。東京の飯屋は、800円や1000円も取る割に、どうやったらこんなにまずく作れるのだと疑問に思うほどまずいメシしか出てこない。 色々と考えた挙句、結局、東京には出汁という文化がないのではないかという結論に達した。東京には油か醤油の薄め液しかないのだ。 とくに、うどんとそばが最悪だ。そばはまだともかく、うどんはつゆの良し悪しで味が大きく左右されるというのに、東京の飯屋のめんつゆは、醤油の薄め液のようなものしか出てこない。パスタにケ

    rin51
    rin51 2014/02/10
    > 東京には出汁という文化がないのではないかという結論に達した