タグ

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

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

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

    オープンソースビジネスの挑戦と現実|Rui Ueyama
    fumikony
    fumikony 2023/06/07
  • IPv4と互換性のあるアドレス拡張プロトコルを考えてみたら、どういう感じになるんだろうか?|Rui Ueyama

    前回の記事ではIPv6の普及がなぜなかなか進まないのかを説明した。一つの根的な問題は、IPv6がIPv4と互換性がないことだった。では、IPv4と互換性のあるプロトコルは、一体どういうものがありえたのだろうか? この記事では、ASCIIをUTF-8に拡張したみたいに、IPv4と互換性を維持したままアドレスを64ビットに拡張したプロトコル(ここではIPv4+と呼ぶ)について考えてみたいと思う。そして、IPv4+ならば、IPv6のような長い移行期間を経ることなく、段階的にネットワークをアップグレードしていけることを示そうと思う。 なお、このIPv4+プロトコルは、筆者としてはそれなりに真面目に考えてみたものではあるけれど、単なる思考実験にすぎない。また、ここで提案するものがベストだと主張したいわけでもない。あくまで、現在の知識と経験を元に1995年くらいに戻って考え直せるとしたら、どういう世

    IPv4と互換性のあるアドレス拡張プロトコルを考えてみたら、どういう感じになるんだろうか?|Rui Ueyama
  • IPv6がなぜいまだに普及していないのか|Rui Ueyama

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

    IPv6がなぜいまだに普及していないのか|Rui Ueyama
  • 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama

    UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語

    絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama
  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

    自分の中のプログラミングの常識というものは、ときどき現実のハードウェアに合わせて調節しないといけない。ハードウェアが進歩し続けているので、コンピュータで簡単にできることと相対的に難しいことのバランスが変化し続けているからだ。ここでは特にストレージにフォーカスして書こうと思う。 昔はメモリが相対的にとても貴重な資源だったので多くのプログラマがメモリを節約することに血道を上げていた。例えばWindowsの初期の頃に設計されたデータ構造には、メモリをバイト単位ででもいいから節約したいという意図の痕跡がいまでも多く見受けられる。DRAMの次に速い記憶装置はHDDだったので、メモリが足りなくなればHDDにデータを保存せざるを得ないのだが、DRAMとHDDのランダムアクセスの速度差は、机の上のの開いているページを見るのと、そのAmazonで注文して到着するのを待つのと同じくらいのスケールで違うの

    「プログラミングの常識」を時々見直す必要性について|Rui Ueyama
    fumikony
    fumikony 2017/11/03
  • スタンフォードのコンピュータサイエンスの授業の感想|Rui Ueyama

    いまのところ25単位分(マスター修了に必要な単位数の約半分)の授業を取ったので感想を時系列でちょっとまとめたい。昔のやつは記憶が曖昧になっているけど。 CS243 プログラムの解析と最適化 (2014Q4)要するにコンパイラの最適化の授業。前半はデータフロー解析とかでかなり実用的な感じがしたが、後半は行列計算の命令の依存関係を抽出してベクトル最適化とか、ItaniumみたいにレジスタのたくさんあるCPUでループアンローリングするみたいな話で、実際に役に立つのかはよくわからなかった。 と、そのときは思ったが、巨大な行列の計算はよくあるので、興味を持てなかった僕がダメだっただけかもしれない。 とにかく難易度が高かった。かなりがんばって夜中までやっていたつもりだけどもっと真剣に取り組むべきだったかもしれない。なにせこれが最初の授業だったのでレベル感がよくわかっていなかった。教授がドラゴンブックの

    スタンフォードのコンピュータサイエンスの授業の感想|Rui Ueyama
  • ソフトウェアエンジニアならもっと気軽にアメリカ移住を考えたほうがいいよ|Rui Ueyama|note

    なんか数年に一回くらいシリコンバレー移住は割りに合うのかという話が上がってくる気がする。前の地獄のシリコンバレーはトンチンカンで噴飯ものだったけど、今回の海外移住アメリカは止めた方がいいよはまあまあまともな意見な気がする。でも、なんか違うよなーと思った。 まず第一にやっぱりアメリカの方が待遇がずっとよくて、物価差を考慮に入れてもやっぱり全然違うと思う。やや大げさかもしれないけど、日のプロ野球と大リーグみたいな違いがあるように思うんだけど。 第二に、お金だけではないよね、ということ。現実としてソフトウェアの世界はアメリカを中心に動いていて、他の国はアメリカで開発されたものを使っている。シリコンバレーなら伝説的なプログラマがわりとそこらへんにいて、普通に話をしたり一緒に仕事をしたりすることができる。カンファレンスであまりにも有名人過ぎて話しかけるのに躊躇するようなレベルの人が職場のすぐそこ

    ソフトウェアエンジニアならもっと気軽にアメリカ移住を考えたほうがいいよ|Rui Ueyama|note
  • オープンソースプロジェクトを最初から英語で運営してみてわかったメリットについて|Rui Ueyama

    僕は最近とあるオープンソースプロジェクトをオーナーとしていわば運営しているのですが、英語プロジェクトをまわすというのは良いなと思うようになりました。他の言語を使うのに何も悪いことはないのですが、英語のほうがコミュニティがずっと大きいので想定外の幸運なことが起こる可能性が高くなるというのが理由です。 僕がやっているプロジェクトは開発ツールを作るというもので、それなりに専門的な知識が必要になるプロジェクトです。人間が書いたプログラムのコードは最終的に何らかの形でコンピュータが直接実行可能な形に変換されて実行されるわけですが、僕が作っているリンカというのは最後の実行ファイルを作成する部分を担当するプログラムです。つまり僕はプログラムを出力するプログラムを書いているわけで、そのためにはOSやCPU、入力や出力のファイルの形式などについてよく知っている必要があります。 また僕らの目標は既存のものよ

    オープンソースプロジェクトを最初から英語で運営してみてわかったメリットについて|Rui Ueyama
  • ソースコードって実際のところどういうふうに書いていますか?|Rui Ueyama

    私はプログラミングは結構自信があるんですが、他の人の作業をつぶさに観察したことがあるわけでもないので、自分で当たり前だと思っているコーディングの方法が他の人にとってはそうではないこともあると思ってます。上手い人がどういうふうにしてプログラムを書いているのか知りたいんですよね。 逆に私はどういうふうに書いているかちょっとまとめてみました。自分はこうしている、というのがあったらぜひ教えてください。 まず私の場合、ゼロからコードを書くよりも現在のプロジェクトのためのコードを書くことのほうが多いので、コードを書くというのは既存のコードに変更を加えることがほとんどです。既存のコードに手を加えるときは、新機能追加か、リファクタリング(動作は変えずにコードをきれいにすること)のどちらかになるわけですが、まず前者をどうしているかどうかをできるだけ説明してみます。 まず必要なのは考えることです。よく知ってい

    ソースコードって実際のところどういうふうに書いていますか?|Rui Ueyama
  • 1