mkusakaのブックマーク (23,728)

  • BufやConnectといった最近のgRPC 開発について調べるメモ

    公式ドキュメントを読む イントロ ProtobufはREST/JSONで開発するAPIよりも多くの利点あるがProtobufを使用して開発するにはなかなか楽ではない。Bufは開発者がアプリケーションロジックに集中できるようにProtocbufまわりの関心ごとを引き受けツールとして公開してくれている。具体的にはBuf CLIとBuf Schema Registoryがある。 従来のProtocbufを使用したAPI開発には以下のような課題がある。 API設計に一貫性がない。(あんまりピンときてない) 依存関係 ファイル間の依存関係の解決にコピペでやるしかなくバグを引き起こしやすい。これはnpmなしでJavaScriptを書くようなもの 前方互換性と後方互換製を強制できてない スタブの配布が難しい 生成されたコードを配布するか、全てのクライアントがprotocを独立して実行する必要がある。これ

    BufやConnectといった最近のgRPC 開発について調べるメモ
    mkusaka
    mkusaka 2024/09/30
  • 内部実装から理解するgRPC - Qiita

    概要 目的 gRPCはDocumentにあるように以下の特徴があるかと思います。 protocol buffer のようなインターフェース定義語 (IDL) から生成されたコードを利用してRPCができる HTTP/2で通信することができ、リクエストとレスポンスをそれぞれ分割できる 多言語に対応している しかし、この記事ではこれらの機能の紹介ではなく、gRPCの仕組みを理解することを意図しています。 なぜそれを意図したかというと普段の開発でgRPCを利用しているものの、どのような仕組みでRPCが実現できているのかイメージが持てていなかったためです。そのために、grpc-goの内部実装(2019/5時点)を読み解きながら、実際の通信の中身を覗いてみました。 そして結果的には以下の効用がありました。 protoc-gen-goがprotocol-buffersから生成したコードがどのように利用さ

    内部実装から理解するgRPC - Qiita
    mkusaka
    mkusaka 2024/09/30
  • gRPC 大きなサイズのオブジェクトをストリームで受信する - Qiita

    gRPC の送受信データサイズには上限がある gRPC ではリクエスト/レスポンスのデータサイズに上限があります。既定値は4MBです。 上限を変更することはできますが、データサイズが不定である場合はストリームを用いることが一般的です。リクエスト/レスポンスの一つ一つが上限を超えなければサイズ超過エラーは発生しません。 service Sample { // 一つのリクエストに対して複数のレスポンスを受け取る rpc GetObjects (Request) returns (stream Response){} // 複数のリクエストに対して複数のレスポンスを受け取る rpc GetObjects (stream Request) returns (stream Response){} // 複数のリクエストに対して一つのレスポンスを受け取る rpc SetObjects (stream

    gRPC 大きなサイズのオブジェクトをストリームで受信する - Qiita
    mkusaka
    mkusaka 2024/09/30
  • C#スタイルガイドを作成する:拡張性のある、よりクリーンなコードを書く | ユニティ・テクノロジーズ・ジャパン株式会社

    このE-Bookは、コードスタイルガイドの作成方法について、業界の専門家からのアドバイスをまとめたものです。チームの各メンバーが従うべきガイドを確立することで、コードベースが確実にプロジェクトを商業規模の生産に成長させることができます。

    mkusaka
    mkusaka 2024/09/30
  • til(Today I Learned) を 4 年間続けてみて

    Photo by Raphael Schaller from unsplash2020/9/28 から til (Today I Learned) を GitHub 上に記録するようになった。 飽き性の自分にとっては珍しく、4 年間根付いた習慣となった。せっかくなので振り返ってみる。 記述する内容に制限を設けない“Today I Learned” と呼んでいるものの、実際の記述内容として「学んだこと」に限っているわけでもない。 エンジニアリングに関係していれば何書いてもよい、くらいの気持ちであるため、半分くらいは「今日やったこと」になる。 他人の技術 Blog を読んだ感想その日覚えたちょっとした Tips勉強会やカンファレンスの視聴メモ技術書読書メモ気にかけている OSS の Release Note自分でメンテしている OSS のメンテ時のメモetc…たとえば、以下は直近に Pris

    til(Today I Learned) を 4 年間続けてみて
    mkusaka
    mkusaka 2024/09/30
  • 世界最大の認証局のLet’s Encryptが「オンライン証明書状態プロトコル(OCSP)」のサポートを打ち切ると発表

    証明書認証局(CA)のLet's Encryptが、公開鍵の証明書の失効状態を取得する通信プロトコルであるオンライン証明書状態プロトコル(OCSP)のサポートを終了することを明らかにしました。 Intent to End OCSP Service - Let's Encrypt https://letsencrypt.org/2024/07/23/replacing-ocsp-with-crls.html Let's Encryptのエグゼクティブディレクター兼共同創設者であるジョッシュ・アース氏は2024年7月23日に、「私たちは日、OCSPのサポートを終了し、証明書失効リスト(CRL)をできるだけ早く導入する意向を発表します」と述べました。 Let's Encryptは記事作成時点で約10年間にわたってOCSPのレスポンダーを提供してきましたが、2022年からはCRLのサポートも行っ

    世界最大の認証局のLet’s Encryptが「オンライン証明書状態プロトコル(OCSP)」のサポートを打ち切ると発表
    mkusaka
    mkusaka 2024/09/30
  • Ant Designで始める管理画面開発

    こんにちは、Ubieデザインエンジニアの takanoripです。 最近はずっととある管理画面を開発しているんですが、そのフロントエンド開発にAnt Design(Antd)を採用してみたので感想と注意が必要なポイントについてまとめました。 Ant Design? Ant DesignはAnt Group(中国アリババグループの金融関連会社)が開発しているUIライブラリです。現在はReactのコンポーネントや周辺ライブラリが公開されています。 なぜAntdを選択したか 今回の管理画面開発でAntdを採用した理由は次の6つです。 コンポーネントの種類が十分豊富であること できる限り新規でコンポーネントを作らずに実装が進められることが重要 特にRange PickerやComboBoxなど複雑Form用コンポーネントが充実していること アントグループが開発をしていて十分に歴史があり現在も活発に

    Ant Designで始める管理画面開発
    mkusaka
    mkusaka 2024/09/30
  • まずはイテレータ(range over func)の仕様を学ぼう - Goのイテレータ深堀りNight - newmo 技術ブログ

    はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 稿では、2024年9月24日(火)にファインディ株式会社主催の「Goのイテレータ深堀りNight」というイベントで登壇してきましたので、その報告と内容について紹介します。 findy.connpass.com 「Goのイテレータ深堀りNight」は、2024年8月にリリースされたGo1.23の機能の1であるrange over func(通称イテレータ)について、6人の登壇者がさまざまな角度で10分のライトニングトーク(LT)を行うイベントです。筆者は、トップバッターということで「まずはイテレータ(range over func)の仕様を学ぼう 」という発表を行いました。 登壇に用いた資料は次のリンクから閲覧ができます。 docs.google.com イテレータの導入経緯 イテレータの導入経緯

    まずはイテレータ(range over func)の仕様を学ぼう - Goのイテレータ深堀りNight - newmo 技術ブログ
    mkusaka
    mkusaka 2024/09/30
  • Jotaiのatomを自由にテストしたいときに見る記事

    Jotaiのテスト方法に関する記事があんまりないので書きました。 公式ドキュメントにもテストに関するページはあるのですが、わりとあっさりしていて実際テストしようと思うと手探り感が強いです。 この記事では、公式の内容に加えて、Reactに依存せず必要なatomのみをテストする方法をまとめます。 環境&バージョン viteのテンプレでReactのアプリを作って、JotaiとVitestを入れます。すべてテンプレのデフォルトまたは執筆時の最新版です。そのほかlinter等(biome, eslint)は好きに調整してください ※ 後述しますが、テストのやり方によってはここまでフルセットに色々入れる必要はないこともあります。ここに書いたのこの記事で書かれているテストを動かすための全部入り構成です。 { "dependencies": { "jotai": "^2.10.0", "react": "

    Jotaiのatomを自由にテストしたいときに見る記事
    mkusaka
    mkusaka 2024/09/30
  • カビュウ | 株式投資管理・分析アプリ

    「カビュウ」とは 証券会社のサイトでは蓄積されない過去の取引データを独自で集計・再整理してグラフ化する株式投資管理・分析アプリです。 米国株式やETF、複数口座にも対応。多彩なビジュアルと豊富な分析機能であなたの株式投資の過去と現在を"見える化"します。 特徴キーワード 投資を可視化 振り返り分析 米国株式対応 複数口座まとめ カビュウでできること データを蓄積・自動で可視化 カビュウでは、証券会社のサイトでは蓄積されない過去の資産増減やポートフォリオの変化を自動的に蓄積・グラフ化します。

    カビュウ | 株式投資管理・分析アプリ
    mkusaka
    mkusaka 2024/09/30
  • Reproducible Node.js built-in snapshots, part 1 - Overview and Node.js fixes

    mkusaka
    mkusaka 2024/09/30
  • The Nine Node Pillars

    9 Principles for Doing Node.js Right in Enterprise Environments

    The Nine Node Pillars
    mkusaka
    mkusaka 2024/09/30
  • オブザーバビリティには限りがない話

    先日NewRelicの清水さんにマンツーマンでオブザーバビリティの話をきかせてもらえるという貴重な経験をした。長年アプリケーションレイヤーも含んでシステム運用の経験があると「あるある」な話なのだが、次のようなことが起こる。 何か不具合や障害が起こる 該当時刻のエラーログなどを見るが情報が少なく、原因を特定する決定打に欠ける 次回、また同じことが起こったときには原因を特定できるように、printfデバッグするコードを大量に埋め込んだバージョンに更新して、デプロイする もう一度起こるのを待つ これは最初の状態が「オブザーバビリティに欠けた状態」だったと言える。めちゃ納得してEnter Sandmanくらいヘドバンして頷いてしまう。 僕の経験上このようなケースを避けるために良い結果を出してきたのは、Javaの例外が出た箇所でスタックトレースを取得しておくことだ(僕らは単にログファイルに吐いておい

    オブザーバビリティには限りがない話
    mkusaka
    mkusaka 2024/09/29
  • - YouTube

    YouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。

    mkusaka
    mkusaka 2024/09/29
  • IntelliJ IdeaにIdeaVimを入れてNeovimとほぼ同じ動作をさせる - Don't Repeat Yourself

    JavaScala仕事をしていたころは毎日使っていたIntelliJですが、いつの間にかRust仕事するようになってまったく開かなくなりました。最近はNeovim仕事をしており、そちらの方がもはや慣れています。 ところが最近Kotlinを使う必要が出てきたので、Neovimでいつも通りセットアップしたところ、kotlin-language-serverがあまり安定的に動作してくれませんでした[*1]。たとえばリネームをかけるとエラーを吐いて死ぬので、パッチを投げるというような状況です(執筆時点ではまだマージされていません泣)。 github.com 他にも不具合を見つけていたり、そもそも定義ジャンプGo To Definition)が私の環境では動作していないように見えるなど、結構不具合がまだ多めです。可能な限りパッチは投げたいと思って調査していますが、喫緊必要なのでIntell

    IntelliJ IdeaにIdeaVimを入れてNeovimとほぼ同じ動作をさせる - Don't Repeat Yourself
    mkusaka
    mkusaka 2024/09/29
  • How to use S3 POST signed URLs

    mkusaka
    mkusaka 2024/09/29
  • Differences between PUT and POST S3 signed URLs

    mkusaka
    mkusaka 2024/09/29
  • Amazon S3 examples using SDK for Go V2 - AWS SDK Code Examples

    mkusaka
    mkusaka 2024/09/29
  • AWSの設定値保存:最適な方法を選ぶためのガイド - KAKEHASHI Tech Blog

    この記事は秋の技術特集 2024の 17 記事目です。 はじめに Musubi AI 在庫管理で DevOps エンジニアをしている kacky です。 Web アプリケーションの開発において、設定値の管理は避けて通れない課題です。データベース接続情報や 機能フラグなど、アプリケーションの挙動を左右する重要な情報を安全かつ効率的に扱う必要があります。 AWS では、設定値の保存に利用できるサービスがいくつか存在します。稿では、特に S3, AppConfig, Parameter Store の 3 つに焦点を当て、それぞれのメリット・デメリットを比較し、最適な設計を選択するための決定法を紹介します。 なぜ設定値の保存先を検討する必要があるのか? 設定値をアプリケーションのコード内に直接記述してしまうと、環境ごとに設定を変更する際にコードを修正する必要が生じ、運用ミスやセキュリティリスク

    AWSの設定値保存:最適な方法を選ぶためのガイド - KAKEHASHI Tech Blog
    mkusaka
    mkusaka 2024/09/29
  • Open Source (Almost) Everything

    Open Source (Almost) Everything 22 Nov 2011 - San Francisco When Chris and I first started working on GitHub in late 2007, we split the work into two parts. Chris worked on the Rails app and I worked on Grit, the first ever Git bindings for Ruby. After six months of development, Grit had become complete enough to power GitHub during our public launch of the site and we were faced with an interesti

    mkusaka
    mkusaka 2024/09/29