タグ

dorapon2000のブックマーク (815)

  • Cloudflare のIPアドレスってどうなってる? - Qiita

    この記事では、CloudflareIPアドレスがどのようにIPアドレスを効率的に活用しているのかについて紹介します。 筑波大学情報科学類1年の@appare45です。 この記事は、2023年12月3日に UNTIL.LT#0x03 で発表した内容の解説です。 Cloudflareとは みなさんはCloudflareというサービスをご存知ですか? もしかしたら、次のような画面を見たことがあるかもしれません。 このとき中央に表示されている雲のマークのサービスがCloudflareです。 Cloudflareは簡単に言うとサービスとユーザの間でプロキシを提供するサービスです。 通常のサービスではサービス提供サーバとユーザが直接接続されます。 一方、サービスがCloudflareを使うとサーバとユーザの間Cloudflareが挟まり、ファイアウォールやキャッシュなどの恩恵を受けられます。 しかし

    Cloudflare のIPアドレスってどうなってる? - Qiita
    dorapon2000
    dorapon2000 2023/12/15
    “このように、一つのIPアドレスが複数の異なるサーバのいずれかに接続される仕組みをIP Anycastといいます。”
  • 3PCA 4 日目: 3rd Party Cookie の正体 | blog.jxck.io

    Intro このエントリは、 3rd Party Cookie Advent Calendar の 4 日目である。 3rd Party Cookie のカレンダー | Advent Calendar 2023 - Qiita https://qiita.com/advent-calendar/2023/3rd-party-cookie 前回は「サブリソースにまで Cookie が送られて何が嬉しいのか」という話だった。 今回はそのユースケースについて考えていく。 「さっき見てた商品が出る」のからくり 例えば、 EC サイトで色々な商品を探した後に、全然関係のないサイトで、なぜかさっきまで見ていた商品がそのサイト内でおすすめされている、という経験があるだろう。 今回はリアルワールドの例として、楽天の実装を引用する。 まず、楽天市場のサイトでミネラルウォーターを物色する。 その後、 Yaho

    3PCA 4 日目: 3rd Party Cookie の正体 | blog.jxck.io
    dorapon2000
    dorapon2000 2023/12/15
    “このリクエストを受け取った楽天は、「アカウントは不明だが、このユーザは、先ほどミネラルウォーターを見ていたユーザだ」とわかる。”
  • TypeScriptとも相性抜群なライブラリ──Vue.jsで状態管理を行う新定番「Pinia」を解説!

    連載では、JavaScriptフレームワーク「Vue.js」を、型定義が利用できるようJavaScriptを拡張した言語「TypeScript」で活用する方法を、順を追って説明していきます。前回は複数のコンポーネントをURLによって切り替え表示できる「Vue Router」の利用法を説明しました。今回はVue.jsの状態管理ライブラリ「Pinia」について説明します。 はじめに 連載では、JavaScriptを利用して動的なWebページを構築できるフレームワークVue.jsを、データの型定義ができるように拡張されたAltJS(コンパイルしてJavaScriptにする言語)であるTypeScriptで活用する方法を、順を追って説明しています。 一般にWebページは、ユーザーの入力値やWeb APIから取得したデータなど、さまざまな状態を持ちます。これらの状態がさまざまなコンポーネントに散

    TypeScriptとも相性抜群なライブラリ──Vue.jsで状態管理を行う新定番「Pinia」を解説!
    dorapon2000
    dorapon2000 2023/12/15
    “対話的に表示される「Add Pinia for state management?」に「Yes」と回答します。”
  • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターンの紹介」

    この記事は 株式会社ログラス Productチーム Advent Calendar 2023 13日目の記事です。 はじめに 〇〇を削除できるかどうかのビジネス処理、皆さんはどう実装していますか? 同僚の話題になった記事でも削除の認可処理をどこに記述すべきか?は難しいと説明されています。今回はお題は認可っぽいもので書きますが広範に「削除ができるかどうか?」のビジネスロジックをドメイン層にどう閉じ込めるかの便利な実装パターンを紹介します。 削除処理のビジネスロジックの取り扱いは難しい 削除処理のビジネスロジックの実装はシンプルだけど更新処理や作成処理と比べて意外と難しいです。 それはなぜかというとドメインオブジェクト内の実装に削除処理を書くことができないからです。 例えば権限に管理者と一般ユーザーの二つの権限があるとします。

    削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターンの紹介」
    dorapon2000
    dorapon2000 2023/12/14
    “DeletableTodoIdを発行しないと削除処理が呼び出せないのでどの経路から削除しようとも認可処理の呼び出しを強制できるようになりました。”
  • GitHub、1200台以上のMySQL 5.7を8.0へアップグレード サービス無停止のまま成功させる

    この記事は新野淳一氏のブログ「Publickey」に掲載された「GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる」(2023年12月12日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。 米GitHubが提供するGitHub.comは、世界最大のソースコード管理システムを始めとするソフトウェア開発者向け支援サービスを提供しています。 そのGitHub.comはRuby on Railsで構築されており、同社はつねにRubyRuby on Railsをアップデートし続けていることを今年(2023年)4月に明らかにしています。 参考:GitHubは200万行規模のRailsアプリケーションであり、毎週RailsRubyを最新版にアップデートし続けている そして同社はこのGitHub.comを支える1200台以上

    GitHub、1200台以上のMySQL 5.7を8.0へアップグレード サービス無停止のまま成功させる
    dorapon2000
    dorapon2000 2023/12/12
    “継続的インテグレーションにMySQL 8.0を追加し、バグや非互換を検出して対応 アップグレードスケジュールを策定し、社内に伝達”
  • 共有会をより効果的にするために考えたあれやこれ - エムスリーテックブログ

    この記事は エムスリー Advent Calendar 2023 の 8 日目の記事です。 前日は小栗さんによる kannonを実プロダクトに組み込んで3倍高速化を達成した話 でした こんにちは、SREチームの後藤です。 エムスリーでは各チームのSREが集まって情報共有をする SRE Meetup という共有会を7月から新たに始めました。 このように情報共有のために集まるということは一般的に良くあることかと思いますが、効果的に運営していくには実は考えることが多いです。 今回はSRE Meetupの企画から実施までに意識して取り組んだ工夫を紹介していきたいと思います。 背景:エムスリーのSREを取り巻く組織事情 SRE Meetupの開催へ向けて 1. 目的意識をしっかりと持って集まる。 2. 双方向のコミュニケーションを重視する 3. 主催者が情熱をもって取り組む 実際にやってみてどうだっ

    共有会をより効果的にするために考えたあれやこれ - エムスリーテックブログ
    dorapon2000
    dorapon2000 2023/12/09
    “ここに関しては、事前アンケートで共有会のそもそもの必要性を確認することと、共有会のコンセプトを明文化して伝えるということを行いました。”
  • Enumとてもつらい、でも負けない - エムスリーテックブログ

    列挙型、JavaでいうならEnum型、使っていますか。使わないわけにいきませんよね。 でも、Enumを使っていたせいで辛い目にあったことありませんか。ないですか。それならきっともうすぐに辛い目にあうと思います。 Enumはすべてのプログラマに等しく辛みを与えてくれるからです。そんな辛みについて、ちょっと一緒に直視してみましょう。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の6日目です。 アプリケーションプログラミング上の辛み 1. 既存のif文が偶発的に意図しない方に倒れる 2. switch文に至っては「どちらでもない」で処理不発に アプリケーションプログラミング上の対策 1. 分岐条件をEnumに持たせる 2. swi

    Enumとてもつらい、でも負けない - エムスリーテックブログ
    dorapon2000
    dorapon2000 2023/12/07
    “switch式とはswitch文をベースにしつついくつかの点で強化された複数分岐構文なのですが、中でもswitch文と違って網羅性チェックをしてくれるという大きな特徴があります。”
  • ロードバランサ配下のサーバを全部切り離してサービス停止させてしまった話 - Qiita

    はじめに この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023 の6日目です。 この記事で取り上げるやらかしは数年前の出来事です。 当時新卒2年目のエンジニアだった私が、ロードバランサ配下のサーバを全部切り離してサービス停止させてしまった話について、ここに供養させていただきます。 自分の失敗談なんて書きとぉないんじゃ、、というのが音ですが、毎年やらかし系のアドベントカレンダーに勇気と希望をもらっていたので、今年は私もその一助となれたらという思いです。 やらかして死にたくなっているあなたへ。 背景 新卒で入社した会社で社内システム向けインフラの保守運用に携わっていました。 2年目となって仕事にも慣れてきた頃(フラグ)、事を起こしてしまいました。 環境 やらかしの対象となった環境はこちら。 AWS環境上で、ロードバランサとしてELBがあり、その配下にサーバ(

    ロードバランサ配下のサーバを全部切り離してサービス停止させてしまった話 - Qiita
    dorapon2000
    dorapon2000 2023/12/06
    “その日はたまたま、別件でプロキシサーバに対する変更作業があり、並行して作業が進んでいました。”
  • ファイル直下でexportされている関数にjest.spyOnを使いたい | DevelopersIO

    こんにちは。サービスGの金谷です。 JestにはspyOnという便利なメソッドが用意されています。 Jestオブジェクト · Jest これを使うとJestでのテスト時に指定したメソッドがコールされているかどうかを確認できたりします。 具体的な使い方のイメージは先輩が書かれているこちらの記事が参考になると思います。 jest.spyOn() で Vue.js コンポーネントからのサービス呼び出しをテストする 公式ドキュメントを見ると第一引数にObject、第二引数にメソッド名(文字列)を受け取ると書かれています。 jest.spyOn(object, methodName) では、オブジェクトのメソッドではない、ファイル直下でexportされている関数にはどう使ったらいいの・・・? と思ったので調べてみました。 以下のようなコードを想定します。 helloWorldService.ts e

    ファイル直下でexportされている関数にjest.spyOnを使いたい | DevelopersIO
    dorapon2000
    dorapon2000 2023/12/06
    “以下のように * asを使ってあげると上手くいきました。 default exportしている場合は関数名がdefaultになるので注意しましょう。”
  • 本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita

    この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023 の4日目です。年末進行、いかがお過ごしでしょうか?みなさま無事に仕事が納まることを願っております… 新人インフラエンジニアが、番ウェブサーバー60台のホスト名を全部 cat にしてしまった話について、ここに供養させていただきたいと思います 背景 おそらく今から7年くらい前、インフラエンジニアとして転職してきて1年ほどが経ち、番環境での作業もこなれてきたなというバッチリのタイミングで事を起こしてしまいました。サーバーは CentOS 6 だったと思います。 職場としてはまだまだベンチャー感にあふれ大きな裁量が与えられスピード感のある環境ながら、サービスの登録ユーザー数は1,000万を超え、番環境の規模としては既になかなかの大きさがあり、ウェブサーバーだけでも60台くらいあったと思います。ひと山につき

    本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita
    dorapon2000
    dorapon2000 2023/12/05
    “hostname コマンドは、引数に渡された名前をそのサーバーのホスト名として設定する仕様だったのです。もし hostname -s(...)をミスって hostname s と打ったときには、すべてが s になります。”
  • 100m先からQRコードに“肉眼で見えない”レーザーを当て偽物にする攻撃 読み込むと悪性サイトへ

    100m先からQRコードに“肉眼で見えない”レーザーを当て偽物にする攻撃 読み込むと悪性サイトへ:Innovative Tech 東海大学に所属する研究者らは、最大100m離れた場所からQRコードに不可視光レーザーを照射し、偽装QRコードに変更する手法を提案する研究報告を発表した。ユーザーが攻撃中のQRコードをスキャンすると、悪性サイトへ誘導されるリスクがある。

    100m先からQRコードに“肉眼で見えない”レーザーを当て偽物にする攻撃 読み込むと悪性サイトへ
    dorapon2000
    dorapon2000 2023/12/05
    “またレーザー光が照射された際に表示される赤点が肉眼では見えず、見抜かれにくい点が挙げられる。”
  • データモデリングにおける適切な関連の作り方 - Qiita

    この投稿はちゅらデータアドベントカレンダー2023の4日目の記事です。 導入 RDBを使ってデータベースを構築するときは、必ずデータモデリングを行う必要があります。RDBのRは リレーション リレーショナルのRなので、テーブル同士の リレーション リレーションシップ(関連)を適切に作成することが重要です。しかし、この「適切」というのは、具体的にどういうことなのでしょうか? この記事では一つの提案として、テーブルをいくつかの種類に分けて、種類ごとの関連の条件をつけることで、システマチックに適切と思われる関連を作る方法を、披露したいと思います。 あまりよく考えていないモデリングの例 あるユーザーが、ECサイトで商品を購入して、入金されたら出荷するという、よくある構造のモデリングを行ってみます。この説明から単語を抜き出して、以下のようなテーブルが必要でないかと検討してみます。 少し単純ですが、良

    データモデリングにおける適切な関連の作り方 - Qiita
    dorapon2000
    dorapon2000 2023/12/05
    “ユーザー主導テーブルを、一度追加したら基本的には更新されないもの(トランザクションテーブル)と、ユーザー操作により何度も修正されるもの(ステートテーブル)に分ける”
  • Terraform職人のためのOpenTofu入門 - Qiita

    この記事は クラウドワークス Advent Calendar 2023 シリーズ1 の 4日目の記事です。 はじめに 「父さんな、Terraform職人やめてお豆腐職人でっていこうと思うんだ」と言いたいだけの @minamijoyo です。 2023年8月HashiCorpはこれまでMPL2のOSSライセンスで公開していた主要製品をBSL(Business Source License)に変更することを発表し、Terraformはv1.6.0からOSSではなくなりました。 このライセンス変更を受けて、OSS版のTerraformを求める人たちで、MPL2時点のコードベースからforkしたOpenTofuの開発が進められています。 HashiCorpのBSLは、実質的に競合他社の商用利用に制限をかけたもので、ほとんどの一般的なユーザに直接的な追加の制限はありませんが、間接的にTerrafo

    Terraform職人のためのOpenTofu入門 - Qiita
    dorapon2000
    dorapon2000 2023/12/05
    “一方で、OpenTofuはRFCという形で、設計変更を提案できるようにする方針で、長年Terraformで放置されていたissueが掘り起こされて、OpenTofu側で再度議論されています。”
  • https://d1.awsstatic.com/whitepapers/ja_JP/aws-kms-best-practices.pdf

  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる』でした! 世の中には再現が難しく一見してバグがありそうに思えないコードもありますが、一方でプロダクションコードの中にはひと目見てバグが有りそうなコードもまた多いものです。いくつかの特定のパターンをとる文字列(環境名など)やenum(以下どちらもenumと表現します)に関する条件分岐もその一つです。プルリクを見てこのようなパターンがあれば、バグの疑いが強くなります。周囲を見渡すと、大抵すでにバグっているか潜在バグを含むコードが見つかります。すべてバグというのは言い過ぎにせよ、わかりやすさと変

    プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    dorapon2000
    dorapon2000 2023/12/04
    “enumが実際には比較対象としてではなくなにかしらの意味のまとまりである場合、コード上にそのように書くことがわかりやすさと変更のしやすさを向上させます。”
  • Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) - Qiita

    メールの世界にGmailさんが新たな闇を投入 (インターネットの)メール受信・送信は闇あふれる世界だと思うのですが(*1)、そこに 2023年10月7日、新たな闇要素をGmailさんが投げ込んでくれました。(正しくは2023/12月頭現在、闇がモリモリ増えてる。補足①②参照) (*2 最下部キャプチャあり) えーと、「1日あたり 5,000 件を超えるメールを送信する送信者」はこの事項を守ってね……とあります。要件と書いてあり、2024/2/1から実施と急なうえに、項目が SPFとDKIMの設定 逆引き 迷惑メール率 メール形式 Gmail の From: ヘッダーのなりすまし ARC DMARC ダイレクトメールの場合(……なんとかかんとか) 登録解除 と9個もある。 何これ……?と様々な人を戸惑わせています。 インターネットにつながっているそこそこの規模の組織は、1日あたり 5,000

    Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) - Qiita
    dorapon2000
    dorapon2000 2023/12/04
    “迷惑メールの報告率が高くなって、君のとこが送ったメール届かないのは困るよね。だから、受信者が迷惑メールの報告ボタンを押す前に、メールを簡単に止められるようにしてくださいね。”
  • MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita

    この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの

    MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita
    dorapon2000
    dorapon2000 2023/12/03
    “MySQL 8.0 はクラッシュリカバリに利用する REDO ログ関連で変更がかかっており、この影響で大幅に遅くなった”
  • 質の低い決定しかできない上司や社長に「どうしますか」と決定を丸投げするのは悪手だよ(パート2) - フジイユウジ::ドットネット

    以前、質の高い打ち手を選択できる人が判断をせず、質の低い決定しかできないような上司や社長に「どうしますか」と委ねるのはチームがダメになる要因なんよという記事を書いたのですが、今日はその逆で課題解決に必要な能力と情報を持っている人が判断をしなくても上手くいったことについて雑に語ります。 先日、会議に参加してたんですよ。 その会議では、ある課題をどう解決するか話し合って打ち手を決定するというものだったのですが、参加者のひとりが僕より明らかに専門性を持っているプロフェッショナルだったのですね。 なので僕は「どうするかは専門性のある人に決めてもらった方が質の高い意思決定になるし、僕は相手がそれをしやすいよう情報を渡すような役割に徹しよう」と考えていました。 しかし、実際の会議を進めてみると、一番質の高い打ち手を決められる能力があるはずの人が「フジイさんどうするか決めて欲しいです。」と言ってくるので

    質の低い決定しかできない上司や社長に「どうしますか」と決定を丸投げするのは悪手だよ(パート2) - フジイユウジ::ドットネット
  • 2023年度版フロントエンド開発環境構築徹底解説 - Qiita

    この記事はNuco Advent Calendar 2023の1日目の記事です。 はじめに 2023年最新のフロントエンド開発環境についての紹介記事です。 分野別に、おすすめツール群と、その特徴などを紹介していきます。 デファクトスタンダードとみなせるようなツールや、最近盛り上がりを見せているものなどをラインナップしました。 これからフロントエンド開発を始めたい人はもちろん、長くご経験のある人にもプラスになる情報がきっとあるため、ぜひ参考にしてもらえると嬉しいです。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 フロントエンド開発おすすめツール集 エディタ エディタやIDEは好みの問題も大きいので、メジャーなものを簡単

    2023年度版フロントエンド開発環境構築徹底解説 - Qiita
  • squash and mergeしか使ってないけど全く困ってない

    こういうことはレポジトリ構成・ワークフローと密接に紐づいているので、そういう前提を抜きにはどれがいいとかはいうことはできない。が、自分はいわゆるsquash and mergeのみの環境しかほとんど経験がないし、それで困ったことが一度もない、という話をしておきたいので書いておきたい、ので書いておく。 squash and mergeのメリットは書いてある通りで、基的にPR内の細かい修正というのはゴミみたいなコミットが多く、メッセージも雑なことが多いので、それをコミットログに残しておくのは嫌だということがある。それよりは意味のある単位のコミットを残しておきたいし、それの単位はPRで行うのが良い、ということだ。 “Google-style” workflow デメリットの方は、いわゆるfeature branchというワークフローで顕在化する問題であると思う。で解決策はあり、それはワークフロ

    squash and mergeしか使ってないけど全く困ってない