タグ

ブックマーク / voluntas.medium.com (25)

  • GitHub Copilot Enterprise のススメ

    GitHubGitHub Copilot Enterprise というサービスをはじめました。かなり革命的なのですが、とにかく高い。利用するには一人 60 ドル/月 (GitHub Enterprise Cloud 21 ドル/月 + GitHub Copilot Enterprise 39 ドル/月)かかります。なので、気になってる人向けに実際に使ってみて何が嬉しいのかを雑に書いてみます。 Pull-Request サマリーの自動生成GitHub の Pull-Request を出すとき、レビューして貰うためにこの Pull-Request の変更点を整理して書くと思うのですが、これを自動生成してくれます。 https://github.com/sile/pixcil/pull/2これは弊社の社員が個人のリポジトリで GitHub Copilot Enterprise の機能を利用

    GitHub Copilot Enterprise のススメ
  • Lua はオープンソフトウェアだが、オープン開発されたことは一度もない

    これは Lua のよくある質問からリンクされているメールの文章に書かれている文章で、 Lua のスタンスについて書いてある。 Lua is open software, but it has never been open developed.メールにはもう少し踏み込んで書かれているので興味ある人は読んでみてほしい。 この開発をオープンにしないという考えが自分にフィットしている、そのため自社で公開しているオープンソースは基的にこの考えを適用している。 理由としてはオープンな開発は負担が大きすぎると感じているのが一つある。小さな会社はリソースが少ないため、オープンな開発をやっていくのはとてもむずかしい。 もう一つの理由は、なにかあればパッチではなく、フォークして開発してもらうという方針を取りたいというのがある。自分たちでコントロールできる範囲で開発していきたいう考えが強いからだ。 開発をオ

  • E2EE を開発していて思うこと

    ここ数ヶ月は自社製品向けの End to End (Media) Encryption の設計と実装をしています。年内での提供を目標として開発を進めてい見ていますが、色々感じることがあったので雑に書いていこうと思います。 前提自分は暗号やセキュリティの専門家ではない自社製品向けの E2EE は Signal や Google Duo が利用している実績のある仕組みを採用しているE2EE や暗号の専門家を招聘し、相談しながら開発している自分の E2EE に対する考え悪意あるサービス管理者からユーザを守るために存在する機能と考えています。 Signal プロトコルはよく考えられすぎているSignal が考えた Curve25519 (x25519/ed25519) を利用した X3DH / Double Ratchet の仕組みは安全すぎると感じるくらいです。 相手からメッセージを受信するたび

  • 商売の脆弱性

    ソフトウェアのパッケージ販売に携わってもう 10 年以上になるが、どうもこのビジネスってずるすぎないか?ってずーっと思いながらやっているのだが、 ajiyoshi が商売の脆弱性という、うまい表現を使っていたのでパクることにして、ブログを書いてみることにした。タイトル重要。 前提自分はミドルウェアという分野のソフトウェアパッケージ製品を専門にしている開発者(あと経営者)という立場。会社を持つ前も同じ分野を担当していた。 ここでのソフトウェアのパッケージ販売というのはミドルウェア製品のパッケージ製品のサブスクリプションライセンス販売を指している。 ソフトウェアのパッケージ販売在庫が不要ほんとこれ。なんだよそれって思う。うちの例だとダウンロード URL とライセンスファイルをメールで送ってそれで納品完了。 在庫がないのに物が売れるって当に意味がわからない。ダウンロード URL から製品をダウ

  • mDNS を利用したWebRTC のローカル IP 隠蔽機能

    Chrome Canary M74 や Safari Technology Preview 74 では mDNS を利用したローカル IP 隠蔽機能が利用できるようになりました。 要約ローカル IP アドレスはすべて UUID.local になるローカル内で mDNS を利用し名前解決を行い IP アドレスを取得する名前解決できない場合は UDP ホールパンチングを試みず破棄できるUUID.localまずはどうなるのかを見てもらおうと思います。 ちょっとわかりにくいですが Chrome Canary M74 で取得した Candidate です。UUID.local となってるのがわかるでしょうか? a=candidate:3252390177 1 udp 2122262783 56264e2a-1cc6-433f-8330-1594df32034c.local 64557 typ hos

  • HTTP API の設計方向

    見てみると、たしかに Get 系の API だとしても POST を利用しているし、API の URL 設計に get_shared_link_file のようによく言われる REST っぽい設計は使っていなかった。 この方針は同意だ。自分は結構前に REST っぽい API を捨てることにした。だからといって REST API がダメだとかは思っていない。 一般ユーザが使う場合の API は REST API であるほうが慣れ親しんでいる場合が多いからだ。 AWS で利用されている HTTP API 仕様AWS の DynamoDB の Erlang/OTP ドライバーを書いているときに気づいたのだが、AWS の一部のサービスはかなり独特な API の仕様になっている。

    kyo_ago
    kyo_ago 2019/05/10
  • WebRTC の機能を利用した悪意あるローカル IP 取得を防ぐ

    WebRTC の機能でローカル IP アドレスを含んで IP アドレスを収集するという機能がある。それを悪用することでローカル IP アドレスを知ろうとするウェブサイトがある。 最近見つけたサイトだと、えきネットがやっている。えきネットは早めにこの仕組を撤廃したほうがいい。 JavaScript を見たところ見事に IP アドレスを収集している部分でなにかしようとしている。 WebRTC を悪用するのを当にやめてほしいのだが、どうせ悪用するサイトは減らないだろうし、その絶対的な対抗策を書いていきたい。 技術的な話は一番下にリンクを張ってあるので興味がある人は読んでもらいたい。 mDNS 機能を利用して防ぐChrome M73 から入った機能で mDNS 対応というのが WebRTC の機能として入る。これはローカル IP アドレスはすべて UUID.local と変換してしまう機能だ。

    WebRTC の機能を利用した悪意あるローカル IP 取得を防ぐ
  • 無償での情報搾取

    IT 系零細企業を経営していて、特定の技術に強いと外から思われ始めると無償での技術情報の搾取を目的とした問い合わせが多くなる。 自分は残念ながら無償で技術情報の搾取をされた経験があるので、注意喚起として書いておく。この悪しき習慣を潰したい。 情報交換をしたいこのフレーズがメールの文章に含まれていた場合は、とても注意すべきだ。殆どの場合であなたの会社の方が情報を持っており、相手は無償で技術的な情報を得たいと考えていることが多い。 技術の分野の世界はとても狭いので、ほんとうの意味で情報交換を申し込んで来る人はあなたがすでに知っている人の可能性が高い。全く知らない人が情報交換を持ちかけてくるのはまず疑ったほうがいい。 知らない会社から「情報交換をしたい」と言われたら、丁重にお断りをするべきだ。情報交換をしたいと言ってきた会社から仕事につながった経験はまったくない。彼らは一方的な搾取を望んでいるだ

  • 自社製品で食べていけるようになるまでやったこと

    ミドルウェアのパッケージ製品でべていけるようになるまでやったことを自分のメモ代わりにまとめておきます。 製品の事業計画を明確にしない自分が想定したとおりに行くことが少ないこともあり事業計画を書いたりしません。日々の状況を見ながら判断をしていくということをしています。そのため中長期的な計画は品質の向上くらいにしておき、機能追加に関してはその度々に考えて実装していくのが一番です。 変化が早い分野でもあるので、事業計画を用意するメリットが零細企業にはないと考えています。 リリース前の開発進捗を共有するステルスはデメリットが多いと判断し、今開発しているもの開発中の状況などを共有しました。これは「製品をステルスで開発して、出したとしても買ってもらうまでの時間がかかる」と考えたからです。 それよりはあの会社があんなの作ってるそろそろ出るらしいと思ってもらえたほうが検討してもらいやすくなります。 今、

  • 受託開発の罠 – V – Medium

    資金調達していない零細 IT 企業を経営していると抜け出せなくなる受託開発の罠ですが、罠にはまるパターンと、そして自分がどんな方法で罠にはまらないように経営しているのか書いていきます。 前提そもそも受託開発が目的の会社であれば、罠にどっぷりハマって問題はないので、ここでは自社サービスなり自社製品をメインとする会社を前提とします。 経営者が全力で稼いで、社員が自社製品やるパターンや、その逆あったりはここに当てはまりません。当てはまるのは自社製品やりたいけどお金を稼がないといけないといってずるずる行くパターンを受託開発の罠としています。 自転車操業調達していない零細 IT 企業は基的に自転車操業になります。会社にお金がないと当たり前ですがキャッシュフローが苦しくなるため、受託開発を行いお金を稼ぐようになります。 受託開発は毎月契約でお金をもらって開発リソースを提供するタイプと、いくらでお願い

    kyo_ago
    kyo_ago 2018/10/09
  • レベルが高い人を雇って物理で殴る. 先日、門脇(kdxu)とめるぽんと自分で 3… | by V | Medium

    先日、門脇(kdxu)とめるぽんと自分で 3 人でやっていたお手伝い案件が終わった。納期は一ヶ月前倒し、顧客の要望はほぼ全て実現という内容で、顧客も大喜び。 門脇とめるぽんはフリーランスとして仕事をしており、自分がお手伝いさせて頂いている会社(それぞれ別の会社)でふたりともフルタイムとして働いている。 そのため、平日の夜や土日が主な作業時間になる。完全非同期で作業して、うまくいったのでそれを記録しておきたい。 案件内容、技術については一切触れない。 自分はプロジェクトマネージメントのみコードは書かないプロジェクト開始前に一通りの要望は洗い出しておいた追加要件にできるだけノーを言わないロードマップを1ヶ月単位で引いた二人を作業者として雇った設計や交渉などはすべて自分が行った顧客には二人が作業者として伝えてある顧客と直接のやり取りは二人は行っていない顧客との打ち合わせにも参加してもらっていない

    kyo_ago
    kyo_ago 2018/07/12
  • 同時接続 700 万、秒間 2 万通という Nintendo Switch 向けプッシュ通知システム NPNS の資料を読んで

    AWS Summit Tokyo 2018 で実施されたセッション資料・動画をダウンロードすることができます。(順次公開) ※AWS Summit 2018 へお申し込みいただいていない場合、別途ダウンロード申し込みが必要となります。… 【任天堂様ご登壇事例】Nintendo Switch (TM) 向けプッシュ通知システム「NPNS」AWS はよくわからないので Erlang/OTP 視点のみです。 ejabberdejabberd はフランスの ProcessOne という会社が開発している XMPP サーバです。XMPP が何かはここでは説明しません。 ejabberd は TLS や XML 周りの性能を出すため C で書かれている以外、他はすべて Erlang/OTP で書かれています。 ejabberd の歴史はとても古く、自分が Erlang を学び始めた頃にはすでにありまし

    kyo_ago
    kyo_ago 2018/06/25
  • MediaStream.getDisplayMedia()

    Chrome ではスクリーンシェア機能を利用するには今まで Chrome 拡張が必須でした。さらに Chrome 拡張をインストールさせるのは、その拡張機能が必要になったタイミングで、ということでインラインインストールを活用することがほとんどでした。

    kyo_ago
    kyo_ago 2018/06/14
  • コードを書き続ける

    「開発者は経営者になったらコードを書くのやめて、経営に集中すべき」という考え方を聞いたことがある人はいるだろうか? 自分はこの考えを持っていた経営者の元で働いていたことがあるので、強く印象に残っている。そして優秀な開発者たちが無理やりコードを書く時間を取り上げられ、経営者とされていったのを何度か見ている。 ここに書くのは自分の経験談であり、こうすべきとかではない。そしてなにより自分は死ぬまでコードを書き続けたいと考えているタイプであるということだ。 伝えたいことは一つだけでコードを書き続けたい経営者からコードを書くのを取り上げるのが良い方法だと思わないということだ。 また、経営者だから偉そうにコードを書くとかは当たり前だがなしだ。経営者関係なく、ただの開発者としてコードを書くという前提のお話。 開発者と経営者起業して 5 年が過ぎた。経営者としても 5 年、開発者としても 5 年。社員をし

    コードを書き続ける
    kyo_ago
    kyo_ago 2018/06/11
  • 経営者になってわかったこと

    起業して 8 年しか経っていないが、だらだら書いてみる。 自分の会社は従業員は片手で足りるくらいの IT 系零細企業。 税金は高い売上はすぐ入ってこない自分の給与は自分で決められる仕事は簡単に見つからない社員を雇うのは難しい経理、総務、法務、営業事務、書類仕事は多い賞与はいくら出してもいいオフィス賃貸費用は安いほうがいい銀行はとにかくお金を貸そうとしてくる資金は銀行からお金を借りない限りどうでもいい経営の相談ができない顧問税理士は役に立たない帝国データバンクや東京商工リサーチへの登録が必要になる時がある自分宛ての投資マンション迷惑電話がくる社員の月給が低ければ低いほど経営が楽になる社員の年収は可能な限り高いほうが良い自分の年収に興味がなくなる収入を増やすのも、支出を減らすのも難しい賞与はいつ出してもいい顧問弁護士は必要だが、いつも必要なわけではない自社製品だけで会社を回すのは現実的ではな

  • カスタマイズしないとどうなるか

    続き。自社製品のミドルウェアでカスタマイズをしないと実際にどうなるかを書いていく。 カスタマイズの相談をされた場合一切対応していない事を伝える。メールが返ってこない事が多い。そのためビジネスチャンスを逃している可能性は高いが、カスタマイズをするリスクのほうが高いため問題ない。 カスタマイズを要求していくる会社から相手にされなくなる。 注文から提供までメールにて申込書を送り、記載して返送してもらう総務が社内に立っているライセンスサーバでライセンスを発行する製品のダウンロード URL とライセンスファイルをメールで送る終わり。製品の提供まで 30 分くらい。自社製品は最小ライセンスの費用が 60 万円/年なので 30 分で 60 万円の売上になる。これが毎年。 この後はサポートのお仕事。 サポート対応全ての顧客が同じ製品を利用しており、自社製品は最新版を利用していることがサポートを受ける前提と

    kyo_ago
    kyo_ago 2018/04/14
  • Unifed Plan への道

    kyo_ago
    kyo_ago 2018/04/13
  • リモートワーカー達との働き方

    最近リモートワークな人とお仕事をする事が多い。自分がプロジェクトマネージャー的に働くことが多いので、リモートワークで働いている人がどうしてくれると自分が楽かということを書き出してみることにした。 殴り書きなので、読みづらいと思う。 2つのタイプの案件でリモートワーカー達とやりとりしているので、わけて書き出す。 外貨稼ぎ案件外貨稼ぎ(社外のお手伝いをしてお金を稼ぐ)は自分がプロジェクトマネージャーとしてリードして、社外のお手伝い二名が開発担当として入ってくれている。 連絡はすべて Slack でのみ行う情報共有は SlackGitHub で行うフェーズに分けて進捗管理完全非同期で労働するタイミングは縛っていないQA は GitHubMarkdown で質問してもらうお手伝い二人共技術的には申し分がない仕事は開発案件で、顧客とのやりとりは全て自分がやっており、お手伝いしてくれている

  • YouTube が WebRTC 配信に対応した

    Today we're making it easier to go live and interact with your community from your computer and phone. First, if you've… YouTube が WebRTC を利用した配信に対応した。つまり今まで YouTube で配信するには何かしらのツールが必要だったが、WebRTC を利用した配信機能を使うことでブラウザとウェブカメラだけあれば配信ができるようになる。 そう、つまり pixiv Sketch Live が実現したあの手軽な配信が YouTube でも可能になった。ただ、まだ画面共有に関してはまだできなさそうだ。 配信者はブラウザから配信して、あとは YouTube が HLS や MPEG-DASH に変換してくれるので、スケーラビリティを気にする必要はない。もちろん

  • WebRTC スタック Python 実装の紹介

    このライブラリはとてもシンプルに書かれており、 WebRTC がどのように機能しているのかを理解したい人にぴったりです。 また Python のエコシステムに乗っかっているので Python から気軽に利用できます。なにより libwebrtc を使っていないのは負荷をとても下げています。libwebrtc は闇しかありません。 このライブラリの素晴らしい点はいくつもあるのですが、何よりコードがとてもキレイです。そして丁寧に書かれています。 また、MediaChannel 向けに libvpx や libopus をラップしてくれており、現時点では音声の配信までできるようです。 DataChannel は双方向でやりとりまでできるところまで作られています。SCTP は自前です、偉い。 ちなみに DTLS (openssl)や SRTP (libsrtp)は外部ライブラリを使っておりますが、