moneysharkのブックマーク (72)

  • まだdocker-composeのホスト側portを考えるのに疲弊しているの? 〜IP指定してwell-known ports使い放題、同時に1677万案件回す〜 - 勉強日記

    対象読者 問題提起 解決案 -- ポートをバインドするIPを指定する nginx-proxyとの違い macOS固有の問題 Docker Desktop for mac 2.2.x の不具合 127.0.0.1 以外のローカルループバックアドレスがデフォルトで使えない タイトルは釣りです 1677万案件は試してません 対象読者 開発環境を docker-compose で構築しているWebプログラマの人々 複数案件を抱え、ホスト側ポート番号を考えるのに疲弊している人々 HTTP 80 -> 80はとっておいて8080にしたろ! あの案件で8080を使ったからこっちは10080にしたろ! 10080の次だからとりあえず20080にしたろ! うーん、8000!w HMRで8080使いたいけれど使われてるから8081にしたろ! 問題提起 docker-compose.ymlの例 anken-1/

    まだdocker-composeのホスト側portを考えるのに疲弊しているの? 〜IP指定してwell-known ports使い放題、同時に1677万案件回す〜 - 勉強日記
  • Docker for Mac のホストを volume マウントするときに cache モードで高速化する - Fuji Haruka's blog

    Docker 公式ドキュメントにあるこの話。 Performance tuning for volume mounts (shared filesystems) Docker for Mac ではホストを volume マウントすると非常に遅くなる。これは Mac のファイルシステムが Linux と異なるので、ホストとコンテナのファイルを同期するのにオーバーヘッドが生じるために起きる。そのため大量のファイルをマウントすると、ファイルの読み書きに時間がかかるようになる。 そこで、Docker 17.04 から、docker run の --volume オプションに cached と delegated が加えられた。 今回は cached オプションでどれくらい高速化されるかを実験してみる。 各オプションの説明 --volume のオプションは 3 つあって、それぞれ以下のようになってい

    Docker for Mac のホストを volume マウントするときに cache モードで高速化する - Fuji Haruka's blog
  • RDS Proxyが拡張クエリプロトコルに対応し、ピン留めの発生条件が緩和されました | DevelopersIO

    CX事業部@大阪の岩田です。 日のアップデートによりRDS ProxyがPostgreSQLの拡張クエリプロトコルをサポートするようになりました。ブログではこのアップデートについてご紹介します。 ちなみに以前はpinningが「ピン留め」翻訳されていましたが、最近は「固定」翻訳とされているようです。個人的にはピン留めの方がしっくりくるので、ブログにおいては公式日語ドキュメントが「固定」と翻訳している事象を全て「ピン留め」と呼ぶことにします。 そもそも拡張クエリプロトコルとは? PostgreSQLではクエリを実行するためのプロトコルに、簡易クエリプロトコルと拡張クエリプロトコルという2つのプロトコルが存在します。ざっくりとした理解として、簡易クエリプロトコルの場合は生のSQL文をそのままサーバーに送信するのに対して、拡張クエリプロトコルの場合はパラメータを利用したSQL文を送信した

    RDS Proxyが拡張クエリプロトコルに対応し、ピン留めの発生条件が緩和されました | DevelopersIO
  • フロントエンドから Amazon S3 にマルチパートアップロードしたい - カミナシ エンジニアブログ

    はじめに Presigned URL(*) などで、Amazon S3 へのアップロード処理を実装していると、大きなサイズのファイルをアップロードしようとしたときに、以下のような課題に直面することがあります。 一回のPUT リクエストでアップロードできるサイズの上限が 5GB まで 単一の HTTP リクエストでアップロードするため、大きなサイズをアップロードしようとしたときに問題が起きる。例えば、アップロードの処理の途中で失敗したとき、最初からやり直しになる。 このようなときに活用したいのが、マルチパートアップロードです。マルチパートアップロードとは、その名の通り、アップロード対象のオブジェクトを小分けにしてアップロードする方法です。 AWS の SDK には、マルチパートアップロードが簡単に行えるような API が用意されているものの、多くは、S3 にアップロードを行うことができる I

    フロントエンドから Amazon S3 にマルチパートアップロードしたい - カミナシ エンジニアブログ
    moneyshark
    moneyshark 2024/05/14
    マルチパートまとまってる。
  • pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ

    はじめに こんにちは。ドワンゴ教育事業でエンジニアをしているユーンです。 N予備校アプリケーションやその他複数のプロジェクトで pnpm を採用しました。pnpm とは何か、npm とどう違うのかというのを node_modules の構造を追いながら理解しつつ、教育事業での採用した結果についてお話します。 pnpm とは pnpm とは、npm や yarn とレイヤーを同じくするパッケージマネージャであり、サードパーティのものです。 pnpm.io pnpm は他のツールと比較して高速でありディスク効率が良いと謳っています。 その pnpm の最大の特徴は、 node_modules の構造にあります。 例えば npm では v3 からフラットな node_modules を使うようになっております。yarn もデフォルトでは同様にフラットな node_modules を提供しています

    pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ
  • 友達がやってたら止めたいことリスト「水道がぶっ壊れた時に”24時間いつでも駆けつけます”マグネットの業者に電話すること」

    しをはら @hakatano_shiwo 友達がやってたら止めたいことリスト、 『水道がぶっ壊れたときに〝24時間いつでも駆けつけます〟って書かれてるマグネットの電話番号に電話すること』かな……… お住まいの自治体名+ 「指定給水装置工事事業者」、で検索すると、ぼったくらない地元の業者さんのリストが出てくるのでそこに📞してね 2024-05-05 18:13:22 しをはら @hakatano_shiwo ほとんどの自治体(市区町村)の水道担当課さんが「○○市指定給水装置工事事業者名簿 (地区別 )」みたいなリストをホームページに載せてくれてると思うので 万が一なければ電話すれば教えてくれるはずだし 2024-05-05 18:14:53

    友達がやってたら止めたいことリスト「水道がぶっ壊れた時に”24時間いつでも駆けつけます”マグネットの業者に電話すること」
  • ブラウザキャッシュの仕組みについてまとめた

    Web開発において、ページの読み込み速度は非常に重要になります。 そのためにもブラウザのキャッシュは効率的なWebサイト運営に不可欠な機能です。 ブラウザのキャッシュには次のHTTPヘッダを設定することができます。 Expiresヘッダ Cache-Controlヘッダ Last-Modifiedヘッダ ETagヘッダ これらのキャッシュには強いキャッシュと弱いキャッシュで分類が可能です。 「Expires」「Cache-Control」は強いキャッシュであり、「Last-Modified」「ETag」は弱いキャッシュに分類できます。 強いキャッシュと弱いキャッシュ 強いキャッシュは設定された期間内は完全にローカルキャッシュを利用して、サーバーへのリクエストを行いません。 一方で弱いキャッシュはキャッシュされたリソースの検証が必要であり、ETagやLast-Modifiedヘッダを利用して

    ブラウザキャッシュの仕組みについてまとめた
    moneyshark
    moneyshark 2024/05/04
    expires や cache-control は一般的に強いキャッシュであり、これが ない場合は、Etag や last-modified という弱いキャッシュ(条件次第のキャッシュ)が使われる感じ
  • Practical Vim command workflow | Max Shen Dev

    In Vim, there’s a variety of commands that let you accomplish tasks in different ways. This can be overwhelming for beginners trying to figure out the most efficient keystrokes for editing. In this tutorial, I’ll share my approach to using Vim commands and offer some real life examples to help you improve your workflow. Guidelines Here are some general rules of my workflow: Don’t use mouse and arr

    Practical Vim command workflow | Max Shen Dev
  • スレッドとプロセスの違いを完全に理解する

    はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、記事は 5 分程度で読み終えることができます。 記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

    スレッドとプロセスの違いを完全に理解する
  • OIDCって何なんだー?から、実際に使うまで - BASEプロダクトチームブログ

    ごあいさつ はじめましての人ははじめまして、こんにちは!BASE BANK Divisionのフロントエンドエンジニアのがっちゃん( @gatchan0807 )です。 今回は、ここ数ヶ月の間にOIDC(OpenID Connect)という技術を使った開発を複数行い、この技術の概観を理解することができたので、OIDCの技術概要に触れつつBASE BANKの中でどのように使ったのかをご紹介しようと思います。 OIDCとは何なのか このパートでは、まずOIDCという技術について概要を紹介します。いくつかのWebページに記載されていた内容を参考にしてまとめさせて頂いているので、記事の最後に参照元のリンクを記載しておきます。 また、OIDCをはじめとした認証・認可の仕組みには様々な用語があり、自分自身も「調べれば調べるほど知らない用語が増えて、どんどんわからなくなってきた…」という経験をしたので、

    OIDCって何なんだー?から、実際に使うまで - BASEプロダクトチームブログ
    moneyshark
    moneyshark 2024/05/01
    samlのだめなとこがまとまってた
  • SOLID原則完全に理解した!になるための本

    SOLID原則を学び、完全に理解した!になるための

    SOLID原則完全に理解した!になるための本
    moneyshark
    moneyshark 2024/05/01
    open/closeの例が勉強になる “バリエーションのある振る舞いを抽象化する”
  • How an empty S3 bucket can make your AWS bill explode

    Update AWS started investigating the issue: https://twitter.com/jeffbarr/status/1785386554372042890 Imagine you create an empty, private AWS S3 bucket in a region of your preference. What will your AWS bill be the next morning? A few weeks ago, I began working on a PoC of a document indexing system for my client. I created a single S3 bucket in the eu-west-1 region and uploaded some files there fo

    How an empty S3 bucket can make your AWS bill explode
    moneyshark
    moneyshark 2024/04/30
    ひどい
  • 「誰にもできる」より良いコードを書くためのテクニック - Qiita

    はじめに こんにちは、愛知でWEBエンジニアをしているkokuboと申します。 ここ最近の業務でコードレビューをすることが多くなり、人によって読みやすさの違いがあることや過去に自分で書いたコードが読みにくかったことから、良いコードとは何かを調べて見ました。 今回は「リーダブルコード」を元に良いコードとは何かを簡単紹介させていただきます。 この記事では難しい技術がいらないため、初心者や私と同じようにレビューを始めた方達の参考になれば幸いです。 概要 【このでの「良いコード」とは】 他の人(過去の自分も含む)が最短時間で理解ができるコードのこと 【メリット】 理解しやすい コードを読んだだけで、そのコードが何をしようとしているのかがすぐに理解できる メンテナンスしやすい バグの修正や機能の追加など、コードを変更する際に、その意図を把握しやすくなる チームで開発しやすい 複数の開発者が同じコー

    「誰にもできる」より良いコードを書くためのテクニック - Qiita
  • MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭

    今回答えを出したい問いはこちら!! インデックスはどのような仕組みを以て、何を実現したいものなのか それを踏まえたとき、インデックスはどういう場合になぜ貼る方が良いのか。また、どういう場合になぜ貼らない方が良いのか 大体分かっているよって人はサヨナラって感じのおさらい記事だぜ!!!!それじゃいってみよー🎉 あと、おれは今回MySQLにしぼっていくぜ👶 ってわけでOracleとかに興味があるやつは引き返しな! indexの概要 公式の見解としては「where句を使ったselectクエリの実行速度を向上させるために実装されている、各行へのポインターのような振る舞いをする仕組み」って感じ👶 The best way to improve the performance of SELECT operations is to create indexes on one or more of t

    MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭
  • Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50

    Kyoto.go #50 LT https://kyotogo.connpass.com/event/313309/

    Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
  • 滅びてほしい認証系の実装の話

    こんにちは、富士榮です。 ちょっと前に某所でダメダメな認証系の技術実装ってなんだろうねぇ、、という話をしていたことをXで呟いたところ、色々とご意見を頂けましたのでまとめて書いておきます。 考えていると結局のところ、サービス提供側が意図していることとは全然違うことが起きている気がするので、この辺はしっかり考えて実装したいところですね。(実装ミスは問題外として) カテゴリ滅びてほしいもの実装側がやりたいこと利用者が感じること実際に起きていること代替手法認証CAPTCHAbot避けぐにゃぐにゃ文字が読めない バイクと自転車の違いとは?ユーザの離脱、カゴ落ちパスキーの利用 新しいタイプのCAPTCHA(通常は画面に出ない) リスクベース認証との組み合わせによる抑制認証パスワード誰でも使える認証手段の用意忘れる。複雑なパスワードをそれぞれのサービス毎に管理するのは無理パスワードの使い回し。パスワード

    滅びてほしい認証系の実装の話
  • 境界づけられたコンテキスト 概念編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab

    境界づけられたコンテキストとは 公式DDD Referenceの定義は以下の通りです。(和訳はだいぶ意訳しています) bounded context A description of a boundary (typically a subsystem, or the work of a particular team) within which a particular model is defined and applicable. 境界づけられたコンテキスト 特定のモデルを定義・適用する境界を明示的に示したもの。 代表的な境界の例は、サブシステムやチームなど。 まぁなかなかよくわからないですよね。DDD用語の中でもかなり難解なワードです。 境界づけられたコンテキストは、2つの観点から解説が必要でしょう。 ・概念としての境界づけられたコンテキスト ・境界づけられたコンテキストをどう実装に

    境界づけられたコンテキスト 概念編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
    moneyshark
    moneyshark 2024/04/23
    境界づけられたコンテキストの理解と、コンテキストの実際のappへの落とし方
  • ポストモーテム: AWS Lambda内のリクエストからHTTPヘッダが消えた日

    AWS Lambdaで突如としてHTTPヘッダが消失し、それにより悩まされることとなった日の経験を共有します。この問題がどのように生じ解決に至ったのか、また、私たちが学んだ教訓について述べていきます。 対象のLambda関数 今回問題が起きたLambda関数では、ランタイムにNode.jsを利用していました。Lambda関数の中には、外部のAPIサーバに対するリクエスト処理が含まれます。 環境情報は以下の通りです。 ランタイム: Node.js 18 (18.18.2) リクエストライブラリ: ky v1.0.1 エラーの発生 ある時、APIサーバからのレスポンスが"415 Unsupported Media Type"というエラーで返ってくるようになりました。エラーメッセージは以下のようなものです。 問題が起きる前は一度も発生していないエラーでしたが、一度発生した後は、全てのリクエストが

    ポストモーテム: AWS Lambda内のリクエストからHTTPヘッダが消えた日
  • 【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita

    この書き方でも for 文は正常に動作します。 しかしながらこの書き方は 以下の書き間違いが生じることがあります。 for(var i = 0; i < array1.length; i++) { //長い処理 for(var i = 0; i < array2.length; i++) { } } 長い処理の中で i を宣言したことを忘れて 再び i を宣言してしまうことで 外側の for 文のカウントにバグが発生し 期待した動作にならない例になります。 私も他の人が作成した web アプリで このバグを見かけたことがあります。 for の変数を宣言する場合 必ず let で宣言して下さい。 var でなければ正常に動作しないのは 構造的欠陥のハズです。 let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; for(let i = 0; i <

    【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita
  • タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ

    とあるプロジェクトでナノ秒からミリ秒への変換で四捨五入してきた人がいて、時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなーと思ったので。 2023-10-01 を、何年か表示する時に、2024年に丸める人はいないだろう。 13:45 が何時か表示する時も、13時と表示するだろう。(口頭で何時?と聞かれたら14時と答えるかもしれないけれど) つまり、ある精度で表した時刻は、実際には次のような半開区間を示しているのである。 2023-01-01 00:00:00 <= 2023年 < 2024-01-01 00:00:00 13:45:00.000 <= 13:45 < 13:46:00.000 そして、そう決めたからには一貫して同じように、指定精度未満は切り捨てというルールを維持しなければならない。秒以下は四捨五入で、とかやってはいけないのだ。 一貫しないと何が問題

    タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ