タグ

武内覚に関するmohnoのブックマーク (5)

  • 「バグを意図的にバグのまま残す」という選択肢がある

    はじめに gcc v12.1において、C++の正規表現ライブラリstd::regexに、正規表現のバリデーションを改善するパッチ(以下"改善パッチ"と表記)が取り込まれました。改善パッチによって、これまではバリデーションにひっかからなかった不正な正規表現文字列が"正しく"不正なものと認識されて例外が発生するようになりました。 これだけ聞けばいいことだけのように思えるかもしれませんが、実はそうでもなかったりします。経験豊富なかたであれば見た瞬間ゾッとしたかもしれません。記事では、この一見問題なさそうな改善パッチによって発生しうる問題、および、その具体的例について紹介するとともに、この手のパッチを当てるかどうかは難しい判断になるという知見を共有します。 結論 改善パッチによって発生する問題 発生条件 gcc v12.1以降、あるいは改善パッチをバックポートされた任意のバージョンを使ってC++

    「バグを意図的にバグのまま残す」という選択肢がある
    mohno
    mohno 2022/07/31
    要約すると「バグ仕様」/かつてInternet Explorerで規格に合わせろと言われても合わせなかった理由。/Windowsは旧バージョンとの互換モードが山ほどある。
  • kindleの本が全部消えた話(4) 完結編 ~ 書籍のリスト復旧と自分の記憶の誤り - 覚書

    6/1 - 誤字修正。amacon -> amazon 6.11 - kindle電子書籍がすべて復旧したことを追記 - amazon prime videoやamazon prime musicの不具合についての顛末を追加 以下エントリの続きです。 satoru-takeuchi.hatenablog.com 概要 問題 4月9日にkindleが全部消えた。その後に新たに買ったも読めないように見える。消えたはわかっている範囲で300冊以上、総額は恐らく30-60万円程度 amazon prime videoやmusicなどにも(少なくともAndroidアプリからは)アクセスできなくなっている 問題発生契機 問題発生契機は、かつてamazon.co.jpのアカウントと統合したamazon.comのアカウントを消したこと 解決方法 amazon.co.jpの別アカウントを新規作成の

    kindleの本が全部消えた話(4) 完結編 ~ 書籍のリスト復旧と自分の記憶の誤り - 覚書
    mohno
    mohno 2022/06/01
    「アカウント削除について、私はずっとamazon.co.jpのサポートのかたの指示に従ってやったと思い込んでいたが、事実は異なっていたらしい」←その展開は想像しなかった。amazonが強気なのもしょうがない。
  • kindleの本が全部消えた話(3) 「仕様です」編 - 覚書

    2022/5/27 変更 - この挙動が仕様ということを示すamazon.comのヘルプページへのリンクを張るとともに引用した - amazonのサポートに、amazonの指示によって問題のある操作をしたことがわかる通話履歴があるはずの日時を伝えた - amazon.comのサポートセンターに諸々書くにした旨追記 - こちらからamazonへの要求について補足 2022/6/1 変更 - 「サポートの指示によってamazon.comのアカウントを消した」のではなく「使用していないamazon.comのアカウントを閉鎖してもいいのか」という趣旨の質問を私がしたのに対して「そうですね」と回答されたということがわかったので、訂正。 編集前の記述には取り消し線を引いて、編集後の記述は強調表示しました。 NOTE: 上記変更点にもあるように、「サポートの指示によってamazon.comのアカウントを

    kindleの本が全部消えた話(3) 「仕様です」編 - 覚書
    mohno
    mohno 2022/05/27
    アメリカだったら「仕様ですから」じゃすまないトラブルだと思うんだけどな。どうなんだろう。
  • Linuxカーネルで学ぶC言語のマクロ - 覚書

    はじめに 記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。 #define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) 注目すべきはマクロの定義全体を囲んでいるdo { ... } while (0)という表記です。初見の人には何のことかわからないと思います。考えられる最も単純な定義から遡って、なぜこ

    Linuxカーネルで学ぶC言語のマクロ - 覚書
    mohno
    mohno 2020/06/28
    なんか定番……と思ったらforeachマクロは知らなかった。こういうのもC++なら要らないテク……と思っても、C++は大きすぎて、かえってC言語の需要がなくならない印象。(自分では研修以外で使う機会がないけど)
  • プログラミングでつまづいてきたこと - 覚書

    プログラミング初心者に対してどういう情報が役立つのかをぼんやり考えていると、そこそこコードを書けるベテランが、いつ、どういうことにつまづいてきたのかを書くとけっこう有益なのではないかと思ったので書きました。これを読むと直接プログラミング能力が上がるわけではないですが、「ああ、こういうところでつまづいてもいっぱしのプログラマになれている人もいるのだな」と思ってもらうのが目的です。成功談よりも失敗談のほうが役立つとよく言われますが、それと少し似ているのかもしれません。 全段落で「いっぱしのプログラマ」とか言った手前、自分のことを書いておきます。18歳ごろから20年くらい前からプログラミングをしていて、主に有名どころのOSSに向けてコードを書いてきました。昔はLinuxカーネルを10年少々やっていて、ここ最近はCephオーケストレータであるRookの開発とかをしています。プログラマとしてはスーパ

    プログラミングでつまづいてきたこと - 覚書
    mohno
    mohno 2020/01/16
    「初心者は何かにつまづくと「それくらい知っていて当然」とか「これが理解できない奴はセンス無い」とかいう暴言が飛んできがち」←そういうの、あまり見かけない気はするが(教える側に対して暴言吐くことはある)
  • 1