ブックマーク / note.com/ruiu (7)

  • オープンソースビジネスの挑戦と現実|Rui Ueyama

    いい感じのオープンソース・ソフトウェアを書いて、それを元に起業することを考えてみたことがある人は結構いるようだ。実際に僕はここ1年半ほど、自作のオープンソース・ソフトウェアを元にビジネスを立ち上げようと試行錯誤してきた。その経験についてここでシェアしてみようと思う。 あらすじ薄々予期していたことではあったけれど、結論から言うと、そんなにはうまくいかなかった話ということになる。要点をまとめると次の通りだ。 「moldリンカ」というオープンソースのツールを開発して、それを元にビジネスを行おうとしていた そこそこ稼ぐことはできたものの、大きなリターンを得るのは難しかった ほとんどの企業はオープンソースを大々的に活用していても「無料のソフトウェア」にはお金を払うつもりはないし、払いたくても社内制度上できない 大きなリターンを得たいのならば、自作のオープンソース・ソフトウェアを元にサービスを立ち上げ

    オープンソースビジネスの挑戦と現実|Rui Ueyama
    mdlmn
    mdlmn 2023/06/07
  • コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama

    コンピュータセキュリティというのは微妙なもので、正面からの攻撃には安全でも、攻撃対象とは思われていなかった部分を突くとあっさり情報が盗めるパターンがある。そういう攻撃手法をサイドチャネル攻撃という。ここではサイドチャネル攻撃についていくつか見てみよう。 たとえば社外秘の文書をセキュアにブラウズしたいとしよう。VMwareなどを使って仮想マシンにOSを2つインストールして、通常利用環境とセキュア環境を完全に分離して、セキュア環境からしか社内ネットワークにアクセスできないようにして、そちら側をインターネットから完全に隔絶しておけば、仮に両方のOSが乗っ取られたとしても、VMware自体が乗っ取られない限りは依然として分離が有効に機能しているので、インターネットに情報がリークすることは原理的になさそうだ。 しかし実際にはこのような分離は完全な防護壁にはなってくれない。たとえばセキュア環境は「なに

    コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama
    mdlmn
    mdlmn 2020/03/09
  • IPv6がなぜいまだに普及していないのか|Rui Ueyama

    現在のインターネットの基をなしているIPv4というプロトコルには、広く知られた大きな欠点がある。パケットのアドレスフィールドの幅が32ビットなので、ネットワークに接続可能なホスト数の上限が2³²(約43億)になってしまっているのだ。その欠点を修正するために、1990年代後半にIPv6という新たなプロトコルが設計されたのだけど、いまだにインターネットではIPv6は少数派で、主流ではいまだにIPv4が使われている。 1990年代当時は、IPv6は規格を策定すれば比較的すぐに普及するはずで、それによってインターネットが抱えているアドレス枯渇の問題が解決されるという雰囲気だったように思う。1998年にタイムトラベルして、20年たってもまだIPv4を置き換えることに成功していないと当時の人のIPv6推進者たちに教えたら、多分すごくびっくりされるだろう。一体どうしてこんなに普及が遅れてしまったのだろ

    IPv6がなぜいまだに普及していないのか|Rui Ueyama
    mdlmn
    mdlmn 2019/11/05
  • 音の良いポッドキャストを録音するために ― Turing Complete FMの収録テクニック|Rui Ueyama

    僕は最近Turing Complete FMというポッドキャストを運営しているのですが、その収録のためにポッドキャスト録音テクニックを結構研究しました。ここではそのノウハウをシェアしようと思います。音がよくて聞きやすいポッドキャストの収録に役立ててもらえると幸いです。 はじめにポッドキャストでは音質は死活的に重要です。音質の大切さは強調してしすぎることはないと思うのですが、この点は甘く見られがちなようです。音の悪い録音を何十分も聞くのは耳が辛くて不必要にストレスがかかります。よいコンテンツを届けたいのなら、音質という、コンテンツ以前の問題は解決しておくべきです。 良い音質のポッドキャストを作成するためには、良い音質で録音する必要があります。良い録音から良い出力を作るのは簡単ですが、悪い録音から良い出力を作るのは、どんなにポストプロダクションを工夫してもほとんど不可能です。悪い音で録音してし

    音の良いポッドキャストを録音するために ― Turing Complete FMの収録テクニック|Rui Ueyama
    mdlmn
    mdlmn 2018/04/25
  • もしコンパイラを全世界で同時にうっかり削除してしまったら、元の状態に復旧できるのだろうか?|Rui Ueyama|note

    思考実験として、全世界の人が同時に、自分の持っているコンパイラやインタープリタなどの実行ファイルをうっかり全部消してしまったとしよう。そうするとそれ以降、ソースコードが残っていても、コンパイラ自身も含めてどのようなプログラムもコンパイルできなくなってしまう。この状況から人類は元のコンピュータ文明を復旧することができるのだろうか? 僕は結論としては、かなり簡単に復旧できると思う。ここではその手順についてちょっと考えてみよう。 コンパイラのバイナリファイルが全部消えてしまった後、復旧のために目指すべきマイルストーンは、おそらくCコンパイラを元に戻すことになるだろう。Cで書かれたプログラムはOSやコンパイラ自身を含めてたくさんあるので、そこを起点にすれば、たくさんのプログラムを芋づる式に復旧していけるからだ。 ほとんどのCコンパイラはCかC++で書かれている。最近のGCCやClangは巨大かつC

    もしコンパイラを全世界で同時にうっかり削除してしまったら、元の状態に復旧できるのだろうか?|Rui Ueyama|note
    mdlmn
    mdlmn 2018/02/04
  • コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama

    コンパイラのソースには書いていないのにバイナリだけで代々伝わっていく情報というのがあって、それはコンピュータのセキュリティに大きく関わっている。ここではそれについて書いてみよう。 僕は8ccというCコンパイラをスクラッチから書いたことがあるのだけど、8ccには文字列を読む部分で、"\"の後に"n"がきたら"\n"という文字(改行文字)を読んだことにするという箇所がある。これはよく考えてみれば自己言及的になっていて、ソースコードの中に"\n"のASCIIコードが一体当は何なのかという情報が含まれていない。しかしコンパイラをコンパイルするコンパイラからその情報が受け継がれるので、できたバイナリは改行文字をきちんと出力できる。つまり8ccの改行文字は何度セルフコンパイルしても最初に使ったGCC起源ということになる。 コンパイラは、改行文字の文字コードというレベルではなく、もっと大きな情報をバイ

    コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama
    mdlmn
    mdlmn 2018/02/04
  • 十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama

    いろいろなソフトウェアで、大きいランダムな値をユニークな値とみなすということが行われている。例えばユニークな識別子としてよく使われるUUIDはただの122ビットの乱数だ。gitもSHA-1ハッシュ値が160ビットの乱数のように扱えることを期待して、それをユニークな識別子として使っていた。実際にはランダムな2つの値が同じになる確率はゼロではないのに、なぜこれが安全なやり方だと言えるのだろうか? それについてちょっと説明してみよう。 あるシステムが、乱数で生成された識別子の衝突のなさに依存しているとして、仮に衝突が発生した場合、相当悪い結果、例えば復旧不可能な形でデータベースが壊れてしまうとしよう。これはどれくらい危険なのだろうか? 数学の問題で、学校のクラスの中で同じ誕生日の人が1組以上いる可能性は思ったより高いという話を聞いたことがあると思う。あるランダムに生成された値が衝突する確率という

    十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama
    mdlmn
    mdlmn 2017/11/29
  • 1