タグ

ブックマーク / zenn.dev/satoru_takeuchi (3)

  • オープンソースはオープンな開発を意味しない

    「あるソフトウェアがオープンソースである、OSSである」とみなせる条件は、そのソフトウェアがOpen Source Initiative(OSI)が定義するオープンソースなライセンスの下に頒布されていることです。それ以外の条件はありません。この「それ以外の条件はありません」のところが誤解されやすいので、どのように誤解されるのか、および、実際のところどうなのかということについて書きます。 OSSの代表格といえば、サーバ、スーパーコンピュータ、組み込み機器など様々な用途で世界中で使われているOSカーネルであるLinuxでしょう。Linuxには以下のような特徴があります。 a. オープンソースライセンスであるGPL v2の下に頒布されている b. 世界中の技術者たちが誰でもオープンに開発されていて、その開発過程もメーリングリストなどによってオープンになっている これは事実なのですが、aに加えてb

    オープンソースはオープンな開発を意味しない
  • 「バグを意図的にバグのまま残す」という選択肢がある

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

    「バグを意図的にバグのまま残す」という選択肢がある
  • プログラマに必要になっているプログラミング以外の技術の一例

    はじめに よくソフトウェア技術者にはプログラミング以外にもたくさんの技術が必要といわれます。では具体的に何が必要なのか…というと、実のところ個々人が置かれた状況によって全然異なるので何とも言えません。ただこれだけだと実務経験が無い人には全然ピンと来ないと思うので、現役職業プログラマである私が今の仕事で必要になっている能力について書きます。 私が現在なにを作っているか 私がやっていることはオンプレのインフラ基盤であるKubernetesクラスタの開発、およびその上で動くストレージ基盤であるRook/Cephクラスタの開発です。簡単に言ってしまえばこれらを作るのが現在所属しているプロジェクトのミッションです。 その中でもわたしのわかりやすい仕事はRookの開発です。上記インフラ基盤に必要な機能の開発、バグ修正が中心です。Rookはメンテナとして開発に参加しているので、それ以外にもコードレビュー

    プログラマに必要になっているプログラミング以外の技術の一例
    locke-009
    locke-009 2021/04/05
  • 1