タグ

ブックマーク / medium.com (92)

  • え! QUIC無効化するの? HTTP over QUIC or TCPの接続選択を考える

    図1: QUICの無効化は待ってくださいQUICを無効化?!“Googleが遅く感じるので、QUICを無効化する” そのようなTIPSが散見されます。数年前から見ていましたが、QUICがトレンドになったのと同時に、再び目立ち始めたと感じています。IPv6が普及し始めた時期もそうでしたが、新しいプロトコルの出現時には、決まって現れる文言です。 問題に直面する利用者にとっては切実であり、無効化は間違った解決手段とは言いません。しかしエンジニアならば無効化する前に、原因を探求しなければなりません。 HTTP3/QUIC と HTTP2/TCP どちらが優先?QUICの無効化とは、TCPだけを利用する選択と言えます。はじめにQUIC, TCPの両者が使えるとき、どのように使い分けるのか見ていきます。 ある、HTTPSスキームのURL https://www.example.com/ があったとき、

    え! QUIC無効化するの? HTTP over QUIC or TCPの接続選択を考える
    sora_h
    sora_h 2021/11/08
  • A Short History of Objective-C

    To date, users have downloaded over 140 billion apps to their iPhones.¹ The iPhone’s success is tied to its ecosystem of third-party apps. When the App Store debuted in 2008, all apps were written in a programming language that few outside the Apple community had ever used: Objective-C. Since then, Objective-C’s usage has exploded in a gold rush of developers making apps. Although Apple introduced

    A Short History of Objective-C
    sora_h
    sora_h 2021/09/28
  • RustでLinuxカーネルの機能を拡張しよう!

    Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。実は、Rustで、eBPFのコードを実装することができます。今更、C言語(クラウドネイティブ ではない感じ)を学ぶ必要はありません! eBPFとプログラミング言語eBPFを活用するソフトウェアは、カーネルスペースで動作するeBPFバイトコードと、eBPFバイトコードを制御するユーザスペースのアプリケーションから構成されます。後者は、GoPythonRustなど様々なプログラミング言語で実装することができますが、前者は、制限のあるC言語で実装する必要があります。 eBPFの構成Rust用eBPFライブラリRustでeBPFを扱う一般的な方法は、libbpf-rsライブラリです。これは、C言語でユーザスペースのアプリケーションを実装するため

    RustでLinuxカーネルの機能を拡張しよう!
    sora_h
    sora_h 2021/06/14
  • 新ジャンル「テキスト」の対応とすべての手数料の無料化のお知らせ

    5月22日に総登録者数が120万人を突破いたしました🎉 そして、日6月1日より新ジャンル「テキスト」を追加しました。 TXTファイルとPDFファイルに対応し、小説やレビュー、質問に対する回答を納品することかできます。 是非ご活用ください。 また日よりSkebに関するすべての手数料を無料化いたします。 昨今の情勢下、Skebをご利用いただくクリエイターの方々が急増し、想定を著しく超える収益が発生しているため、クリエイターの方々へ収益を還元いたします。 リクエスト手数料、ブースト手数料、振込手数料が無料となり、100%クリエイターの方へ還元されます。 5,000円のリクエストを送信すると、クリエイターさんの銀行口座へ5,000円が全額入金されます! すべての手数料無料化6月1日12時00分より、リクエスト手数料、ブースト手数料、振込手数料を何件でも無料とさせていただきます。終了期間は未定

    新ジャンル「テキスト」の対応とすべての手数料の無料化のお知らせ
    sora_h
    sora_h 2021/06/01
  • GCP と OAuth2

    はじめにGCP のサービスにプログラムからアクセスするためには必ず認証・認可が必要ですが、以下のような様々なコマンドや概念が出てくるので少しとっつきにくい印象があります。 gcloud auth logingcloud auth application-default loginService AccountApplication Default Credentialsこれらの概念は認証・認可のベースとなっている OAuth2 の文脈で眺めてみると全体像が理解しやすくなるので、記事でまとめてみたいと思います。 GCP での認証・認可GCP の認証・認可は一部(*)を除いて全て OAuth2 ベースでやり取りされています。(* API Key) OAuth2 は三者間の手続きです。 3-Legged OAuth2Client が Resource Owner の代わりに Resource

    GCP と OAuth2
    sora_h
    sora_h 2021/01/28
  • KindleDrip — From Your Kindle’s Email Address to Using Your Credit Card

    Or the story of how I received an 18K$ bug bounty for a critical Amazon Kindle vulnerability. For any questions and inquiries about KindleDrip, you may contact me at baronyogev+kindledrip@gmail.com. If you are interested in a security audit for your products, or special security research, you can contact Realmode Labs at contact@realmodelabs.com. Thanks to Yaar Hahn for the help with this project.

    KindleDrip — From Your Kindle’s Email Address to Using Your Credit Card
    sora_h
    sora_h 2021/01/25
  • マイクロサービスで管理画面が乱立する問題と対策

    こんにちは、qsona (twitter) です。 マイクロサービスアーキテクチャを指向するとき、(主に社内向け)管理画面をそのままサービスごとに作っていくと、マイクロサービスの数だけ管理画面が乱立するという課題があります。FiNC においては、それにより実際に以下のような問題が発生しました。 ユーザの追加/削除や権限管理がとても大変ユーザ(CS対応者)がどこの管理画面を使えばわかりにくい記事では、 FiNC においてこれらの問題に対してどう対処してきたか、歴史とともに紹介します。 tl;dr各マイクロサービスで管理画面を作ること自体はよい。統一管理画面は開発のコストがかかりワークしなかった認証を中央管理にする権限管理は各サービス固有のドメイン知識だが、中央で一覧/変更できる状態になっていると便利マイクロサービスの横断的関心事への対処は、「標準」を意識する黎明期から、問題が起こるまでFi

    sora_h
    sora_h 2020/10/18
    Azure AD 使ってるなら OIDC すればいいのに。SAML はレガシー対応や SaaS 向けなので…
  • gRPCが遅すぎる?eBPFでカーネル内で動かす!

    gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

    gRPCが遅すぎる?eBPFでカーネル内で動かす!
    sora_h
    sora_h 2020/10/15
  • Building Services at Airbnb, Part 4

    sora_h
    sora_h 2020/10/11
  • Building Services at Airbnb Part 3

    Airbnb is moving its infrastructure towards a service-oriented architecture. A reliable, performant, and developer-friendly polyglot service platform is an underpinning component in Airbnb’s architectural evolution. In Part 1 and Part 2 of our Building Services series, we shared how we used Thrift service IDL-centered service framework to scale the development of services; how a standardized servi

    Building Services at Airbnb Part 3
    sora_h
    sora_h 2020/10/11
  • Building Services at Airbnb, Part 2

    sora_h
    sora_h 2020/10/11
  • Building Services at Airbnb, Part 1

    Alexis, one of our hosts, shows some of her guests how to shuck oysters in East Boston Airbnb is moving its infrastructure at an accelerated pace towards a SOA (service-oriented architecture), but moving from a monolithic Rails service towards a SOA while building out new products and features is not without its challenges. In this post, we share what we have designed and built to scale the develo

    Building Services at Airbnb, Part 1
    sora_h
    sora_h 2020/10/11
  • RustのgRPCがGoよりも遅い?

    夏のある日、GogRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Gogrpc-goRustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

    RustのgRPCがGoよりも遅い?
    sora_h
    sora_h 2020/09/10
    “クラウドネイティブ時代に、システムコールを直接使ってHTTP/2サーバを実装するのが許されるのは、学生の課題ぐらいですからね。”
  • Azure AD Pass The Certificate

    sora_h
    sora_h 2020/08/22
  • Moving laterally between Azure AD joined machines

    sora_h
    sora_h 2020/08/20
  • Lateral Movement Graph for Azure AD

    sora_h
    sora_h 2020/08/20
  • DroidKaigi 2020 活動報告

    DroidKaigi 代表理事 mhidaka です。 この活動報告は新型コロナウイルス感染症の影響によって2020年2月のDroidKaigi 2020が中止した影響をまとめています。 DroidKaigi 2020の中止を受けて2020年7月の今もなお新型コロナウイルス感染症は社会へ大きな影響を与えています。技術カンファレンスも変化せざるをえません。記事は今一度、開発者・企業・IT業界の関係各位がカンファレンスの有り様について考えるきっかけとなればという気持ちで公開します。我々の至らないところも目立ちますが、広く共有することで業界に役立ってほしいと考えています。 この中止でご迷惑をおかけした講演者、一般参加者、アプリ開発にコントリビュートした開発者、協賛企業、取引企業、カンファレンスに関わった皆さんにとって残念な結果となったことを改めて、お詫び申し上げます。 DroidKaigi実行

    DroidKaigi 2020 活動報告
    sora_h
    sora_h 2020/07/22
  • 【いでよ障害対応太郎】我々はインシデントにどう向き合っているのか 〜社内向け障害対応リスト付き〜

    「なんかアプリでインシデント起きてエンジニアがどこかで対応してるらしいよ」 「インシデント時のお知らせって誰がどうやって出すんだっけ?」 「インシデントの復旧作業って今どれくらい終わってる?」 「あのインシデントって振り返りしたっけ?」 「似たようなインシデント、前も対応したような、していないような」 このような会話に覚えはありませんか? FiNC Technologies社 (以下FiNC) では今まで インシデント対応をしていても自チーム内で対処しようとしてしまい、他の人が気づけないインシデント対応の仕方にフォーマットがなく、迅速な対応やお客様への報告ができないインシデントの振り返りが実施されず、インシデント時の知見が共有されないという問題がありました。 それらの問題を 気が付きやすく、シェアしやすくする = 統一のチャンネルで情報を整理し、そこにシェアしやすい空気を作る何をすべきかわ

    【いでよ障害対応太郎】我々はインシデントにどう向き合っているのか 〜社内向け障害対応リスト付き〜
    sora_h
    sora_h 2020/07/21
    振り返り会で条文を読み上げる良いですね(以前辛い目にあったため)
  • TCPが遅すぎる?QUICを使おう!

    「それ、QUIC使えないの?」 それがなんであれ、QUICを使うことを主張することで、みんなが「なんか良くわからないけど、TCPを置き換えたほうがいいのかな?」と思うようになるはず。全てのアプリケーションを、TCPの代わりにQUICを使うように修正するとなれば、この先10年間ぐらい、エンジニアみんなの仕事を作ることができます。業界愛ですね。 すでに、SSHやDNSのQUIC対応は始められています。既存のアプリケーションをQUICに対応させる難しさを調査するために、RustでBGP over QUICを実装してみました。 QUICの実装QUICは、TCPと同じく、パケットの再送、輻輳制御など、信頼性のある通信を実現するトランスポートプロトコルです。実装面の大きな違いは、TCPがオペレーティングシステムのプロトコルスタックの一機能として実装されるのに対して、QUICはアプリケーションで実装され

    TCPが遅すぎる?QUICを使おう!
    sora_h
    sora_h 2020/07/14
  • Putting Security into The IaC Pipeline

    sora_h
    sora_h 2020/07/03