kumapo0313のブックマーク (938)

  • メール診断ツール「mail-tester」でGmailに届かない神奈川県立高校の出願システムのメールを診断してみた | DevelopersIO

    迷惑メール判定サービスの mail-tester を利用して神奈川高校入試出願サイトのメールを診断。 SPF、DKIM、DMARCなど送信者ドメイン認証や、SPAM判定される要素が無い満点の診断結果であっても、Gmailにメールが届かない原因を推察してみました。 神奈川県立高校の入試出願システムで、Gmailへメールが届かない問題が再発しました。 令和6年1月24日14時掲載(第1報(新)) 日より募集期間となりましたが、@gmail.comのメールアドレスのみを登録している志願者に、出願システムからのメールが遅延している、あるいは届かない不具合が発生しています 神奈川県公立高等学校入学者選抜インターネット出願システムの稼動状況について 以前、出願システムから送信されるメールにYahooメール、Gmailに届いたメールより、送信者ドメイン認証などは正しい事を確認できていました。 Gmai

    メール診断ツール「mail-tester」でGmailに届かない神奈川県立高校の出願システムのメールを診断してみた | DevelopersIO
  • JavaScriptでObjectに空のStringを足すと0になる!?……わけではなかった

    ASTをみてみよう この不思議な現象を調査するために、AST(Abstract Syntax Tree: 抽象構文木)の状態を見てみることにしました。ASTはソースコードを構文解析した結果をツリー構造にしたもので、AST Explorerを使うと簡単に見ることができます。 ({}) + "" のAST ({}) + "" のASTをみると、ひとつの ExpressionStatement となっているのがわかります。ExpressionStatement の leftは ObjectExpression 、 operator は + 、rightは Literal となっていて、たしかに Object と String の足し算になっています。これなら確かに"[object Object]" が返ってくるでしょう。 {} + ""のAST しかし、{} + "" のASTをみると、Bloc

    JavaScriptでObjectに空のStringを足すと0になる!?……わけではなかった
  • DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog

    Gmailが「メール送信者のガイドライン」を改訂し、なりすましメールへの対策を強化する旨を発表しています。今までは原則、なりすましメール対策の有無にかかわらず、メールはいちおうは届いていました。しかし今後は、なりすましとみなされたメールは届かなくなる方向に向かいつつあります。 なりすましメールとみなされないようにするために、メール送信者には、「メール送信ドメイン認証」への対応が求められます。メール送信ドメイン認証の技術には、主に以下の3つがあります。 SPF: Sender Policy Framework (RFC 7208) DKIM: DomainKeys Identified Mail (RFC 6376) DMARC: Domain-based Message Authentication, Reporting, and Conformance (RFC 7489) SPFは従来

    DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog
  • Googleの新しい送信者ガイドラインに備えてDMARCレポートに基づいて具体的にやったこと

    2023年10月にGoogleYahoo!がメール送信者向けのガイドラインを更新してから早3か月。いよいよ適用開始の2024年2月が近づいてきました(ドキドキ)。 私は昨年から件の対応を進めていて、地味に大変だな、と感じています。多くの企業では自社ドメインから様々なメールを送信していると思います。利用しているツール・サービスも様々で、たとえば、Sendmail/Postfix/Eximのサーバを立てている、Google WorkspaceやMicrosoft 365を使っている、といった他に、CRMであるSalesforce、マーケティングツールのHubspotやAccount Engagement(旧Pardot)、メール送信用のAmazon SESやSendGridを使っているなど、多くのツール・サービスを併用している企業が多いのではないでしょうか。 そういった状況では自社のどこか

    Googleの新しい送信者ガイドラインに備えてDMARCレポートに基づいて具体的にやったこと
  • パスワードはおしまい! 認証はパスキーでやろう

    はじめに パスワードは古来より認証に良く使われる方法ですが、その運用の難しさからセキュリティの懸念とその対策としての運用の複雑さ(複雑で長い文字列、90日でパスワード変更など)が要求される大きく問題をもった仕組みです。 その根的な解決策としてFIDO Allianceを中心に推進されている 「パスワードレス」 が注目されています。これはPINや生体認証とデバイス認証を使ったMFAからなっており、フィッシングやパスワード流出に強い上に、ユーザも複雑なパスワードを覚えなくて良い、という大きなメリットがあります。最近はこの流れでPassKeyというものが登場し、Apple/MS/Googleのプラットフォーマが対応したことで、格運用に乗せれるフェーズになってきました。というわけで以下に解説動画を作ったのですが、動画中で時間の都合で触れきれなかったところや、JavaScriptによる実装のサン

    パスワードはおしまい! 認証はパスキーでやろう
  • はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog

    この記事は、はてなエンジニア Advent Calendar 2023の2024年1月17日の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog id:hagihala です。先日、はてなブログの DB を RDS for MySQL 5.7 から 8.0 へアップグレードしたので、工夫した点などを共有します。 Aurora MySQL 3.x にしなかった理由 MySQL 5.7 -> 8.0 で対応した変更点 character set や collation のデフォルトが変更される explicit_defaults_for_timestamp がデフォルトで有効になる SQL mode の変更 デフォルトの認証プラグインが caching_sha2_password になり、 mysql_native_passw

    はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog
  • 型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog

    SmartHRで届出書類という機能を担当しているプロダクトエンジニアのsato-sと申します。 今日は、以前私が調査にとても苦労したパフォーマンス上の問題の話を紹介したいと思います。 TL;DR PostgreSQLのアップグレードを実施した アップグレード後、今までは問題のなかった特定のクエリの実行に1時間超かかり、DBCPU使用率がピッタリ100%に張り付くようになった 色々調査した結果、PostgreSQL上の型キャストの場所のせいで、良くないクエリプランが選択されることが原因だった 型キャストの場所には気をつけよう PostgreSQLのアップグレードと挫折 SmartHRでは基的にWebアプリケーションのデータベースとしてGoogle CloudのCloudSQLによって提供されるPostgreSQLを利用しています。 私の担当している届出書類機能では、利用中のPostgre

    型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog
  • もうjsなんていらない!世界で流行っているHTMXについてまとめてみた - Qiita

    HTMXとは https://htmx.org/ HTMXは、JavaScript を記述せずに、Ajax通信や高度なUXを実現できるライブラリ。 軽量 で 高速 で、既存のサーバーサイドのフレームワークとシームレスなやり取りができる。また、AJAX通信の発火、フォームの送信処理、DOMの更新などを既存のHTML要素を拡張するだけで可能とする。WebSocketやSSEにも対応しているので、チャットアプリなどにも適している。 2023 JavaScript Rising Starsでは、 フロントエンド・フレームワーク部門で見事2位に輝いた!(一位はReact、全部門だとshadcn/ui) 似たような機能として、Ruby on RailsHotWireがあるらしい。 2024年はHTMXがくると言われているぐらい世界で騒がれているのだが、あまり日では流行っていない。以下はGoogle

    もうjsなんていらない!世界で流行っているHTMXについてまとめてみた - Qiita
  • CSRF 対策はいまだに Token が必須なのか?

    CSRF 対策は One Time Token を form なりに付与して、サーバ側でチェックすれば良い。 それをデフォルトでサポートしてるフレームワークなどもあるし、なくてもライブラリでいくらでも対応できる。 どうせ完全にステートレスなサービスはなかなかないので、サーバ側に redis や memcache を用意するのも別に大変じゃない。 なので、 CSRF 対策として Token を付与するのは、最も安全で推奨できる方式ではある。 っていうのを踏まえた上で、もう SameSite=Lax デフォルトだけど、今でも Token 必須なの?みたいなのがたびたび話に出るので、いい加減まとめる。 前提 この話は、スコープがどこなのかによって話が多少変わるので、そこを絞る。 今回は Passive ではなく Active に対策していく場合を考えるので、前提をこうする。 SameSite=l

    CSRF 対策はいまだに Token が必須なのか?
  • HTTPが全てを飲み込む(前編)~HTTPの2層構造と、HTTP Semanticsとは何か?

    Webを構成する重要な要素の1つであるHTTPは、その最新仕様で2層構造となり、バージョンに関係なく使えるSemanticsと、特徴の異なる通信仕様を定めたHTTP/1.1、2、3に分割されました。 さらに現在では、HTTPの上にあらためてUDPやIP、イーサネットなどのプロトコルを実装する提案が行われており、まさにHTTPは通信の全てを飲み込む勢いで進化しつつあります。 こうしたHTTPの最新動向の解説が、大手CDNベンダでエッジクラウドなども展開するFastlyが2023年11月8日開催したイベント「Yamagoya 2023」で同社シニアプリンシパルエンジニアの奥一穂氏が行ったセッション「HTTPが全てを飲み込む」にて行われました。 記事ではこのセッションをダイジェストで紹介していきます。記事は以下の3つに分かれています。 HTTPが全てを飲み込む(前編)~HTTPの2層構造と、H

    HTTPが全てを飲み込む(前編)~HTTPの2層構造と、HTTP Semanticsとは何か?
  • AWSコンテナ系アーキテクチャの選択肢を最適化する | 外道父の匠

    これまでもコンテナ関連の記事はそれなりに書いてきましたが、改めて最新事情に合わせて練り直したり見渡してみると、大きなところから小さなところまで選択肢が多すぎると感じました。 コンテナ系アーキテクチャを丸っと他所の構成で真似することって、おそらくほとんどなくて、参考にしつつ自分流に築き上げていくでしょうから、今回は築くにあたってどういう選択肢があるのかにフォーカスした変化系で攻めてみようと思った次第です:-) 目次 今年一発目の長いやつです。半分は学習教材用、半分は道楽なテイストです。 はじめに 基盤 インスタンス or コンテナ ECS or EKS on EC2 or FARGATE X86 or ARM64 ロードバランサー メンテナンス:ALB or ECS Service 共有 or 1環境毎 アクセスログ:ALB or WEBサーバー ECS / EKS デプロイ:Blue/Gr

    AWSコンテナ系アーキテクチャの選択肢を最適化する | 外道父の匠
  • これは知っておくとかなり便利! details要素にname属性を与えると、連動して開閉するアコーディオンを実装できます

    <details>要素でアコーディオンを簡単に実装できますが、懸念点は複数のウィジェットが個別に開閉してしまうことです。1つ目を開いて、2つ目を開くと、1つ目は開いたままです。1つ目を閉じるには、1つ目をクリックして閉じる必要がありました。 しかし、<details>要素にname属性を与えると、すべてのウィジェットを連動して開閉させることができます。1つのウィジェットだけを開くことができる排他的アコーディオンをHTMLCSSだけで実装する方法を紹介します。 Exclusive Accordion by Bramus 下記は各ポイントを意訳したものです。 ※元サイト様のライセンスに基づいて翻訳しています。基づいてというのは、貢献部分に関して同ライセンスも含みます。 アコーディオンの実装 1つのウィジェットだけを開くことができる排他的アコーディオン 排他的アコーディオンのポリフィル アコー

    これは知っておくとかなり便利! details要素にname属性を与えると、連動して開閉するアコーディオンを実装できます
  • POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which) - Qiita

    重要 2022-01-30 追記 この記事で解説していた警告の出力は 2022-01-21 に取り消されました(参照 Revert deprecation of which)。そのため Debian which が GNU which に変わることは(少なくとも近い未来では)ないと思います。しかしながら which を使うよりは POSIX で規定されている command と type を使う方を推奨します。 はじめに which コマンドはシステムにインストールされてるとは限りません。実際に最小構成でインストールされてない環境として CentOS があります。一方 command -v は POSIX 規定されているので POSIX に準拠したどのシェルでも問題なく使えます。シェル上では which コマンドを使っても良いと思いますが、シェルスクリプトでは command -v を使う

    POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which) - Qiita
  • 『詳解Rustアトミック操作とロック』(Rust Atomics and Locks) - Don't Repeat Yourself

    昨年買っていたんですが、年末年始の時間を使って少し読めました。 著者はRustコンパイラにコントリビューションをしたことがあれば誰でも知っているかもしれない、Mara Bos氏です。 ちなみにですが、原著は下記サイトで無料でも読むことができます。 marabos.nl 書籍は下記です。 詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング 作者:Mara Bosオーム社Amazon なおこの記事内で「書」と明記する場合、それは『詳解Rustアトミック操作とロック』を指します。また、「筆者」は私自身のことであり、「著者」はMara Bos氏のことです。 内容のメモ 1章 2章 3章 4章、5章 6章 Miri Loom 7章 8章 9章 10章 感想 日語での別の資料 内容のメモ 読んだ内容のうち、印象に残ったり初見だったものをメモしておきます。 1章 1章

    『詳解Rustアトミック操作とロック』(Rust Atomics and Locks) - Don't Repeat Yourself
  • マイクロソフト、初心者向け生成AI学習教材「生成AIアプリケーションの開発を始めるために必要な全知識を学べる12講座」を無償公開

    マイクロソフト、初心者向け生成AI学習教材「生成AIアプリケーションの開発を始めるために必要な全知識を学べる12講座」を無償公開 コースの内容には、大規模言語モデル(LLM)がどのように動くかを理解する。「生成 AI と大規模言語モデルの紹介」、ユースケースに適したAIモデルを選択できるようにする「様々なLLMの調査と比較」、プロンプトの構造と使用法の理解のための「プロンプト・エンジニアリングの基礎」、埋め込み技術を利用したデータ検索アプリケーションを構築する「Vector Databasesを利用した検索アプリケーションの構築」、外部APIからデータを取得するためFunction Callingを設定する「Function Callingとの統合」など、入門的な内容から高度なアプリケーションの開発まで多岐にわたるレッスンが用意されています。 レッスン内容は日語による説明と図で構成 各レ

    マイクロソフト、初心者向け生成AI学習教材「生成AIアプリケーションの開発を始めるために必要な全知識を学べる12講座」を無償公開
  • useEffect: 基礎から使用すべきでない例まで

    はじめに useEffect について、きっちり調べようと思い調べてみた。公式ドキュメントのまとめ記事になっている。 useEffect 基礎編 useEffect とは Effect を用いるとレンダリングの後にコードを走らせることができ、React 外のシステムの要素と同期することが可能になる。 なぜ必要か まず、React コンポーネントの二種類のロジックについて整理する。 レンダリング レンダリングをする際、コードはpropsとstateを受け取り、変換し、画面で表示したいJSXを返す。コードのレンダリングは結果のみを計算するべきでそれ以上のことをするべきではない。 イベントハンドラ イベントハンドラはコンポーネントの中にある関数で、Input Field の更新やユーザを他の画面へ誘導したり等、単純な計算以上の役割を担う。イベントハンドラはユーザの行動(ボタンクリック等)による、

    useEffect: 基礎から使用すべきでない例まで
  • 一年の計は元旦にあり! Udemy新年のビッグセールで2024年に学びたいこと、挑戦したい資格、新しいスキルを見つけよう - はてなニュース

    Udemy「新年のビッグセール」は終了しました。はてなによるAmazonギフトカードプレゼントキャンペーンもそれにあわせて終了しています。ご応募ありがとうございました。 あけましておめでとうございます。これまでもUdemyの大きなセールでは目玉の講座を紹介してきた当ニュースですが、2024年1月1日から1月10日まで開催される「新年のビッグセール」では、新しい年にふさわしい夢とキャリアが広がる講座を紹介します。 各種資格試験の対策講座をはじめとして、マスターしたいプログラミング言語や開発手法、昨年から引き続き話題の生成AI、ウェブ解析やプロジェクトリカバリ、簿記や会計、英会話など多様なビジネスキャリアに直結する講座をピックアップ。映像制作や3Dモデリング、GA4や3Dアニメーション制作といった講座も取り揃えています。 一年の計は元旦にあり。みなさんが2024年に挑戦したい目標や習得した

    一年の計は元旦にあり! Udemy新年のビッグセールで2024年に学びたいこと、挑戦したい資格、新しいスキルを見つけよう - はてなニュース
  • SQLiteがバージョン管理システムとしてGitを採用しない理由

    GitLinuxカーネルのソースコード管理に用いるために開発された分散型バージョン管理システムで、GitリポジトリをホスティングするGitHubのユーザー数は1億人を超えます。一方、軽量データベースのSQLiteの開発においてはGitではなくFossilというバージョン管理システムが利用されており、SQLiteの開発陣が「なぜGitを使用しないのか」という理由を公式サイトで説明しています。 Why SQLite Does Not Use Git https://sqlite.org/whynotgit.html なお、Fossilがどんな機能をもつバージョン管理システムなのかについては下記の記事を読むと分かります。 GitGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー - GIGAZINE 1:Gitは適切な状況認識を提供しない SQLiteにどんな変更が加え

    SQLiteがバージョン管理システムとしてGitを採用しない理由
  • パフォーマンスを気にするならReact Hook Formが無難

    React Hook Form は高速。 Formik は早くない。改善は可能。 React Final Form はある程度早い。 React Hook Form が無難ではあるものの、CPU 6× slowdown で 100ms は通常では許容できると考え Formik を採用するのもあり。 比較したライブラリ 計測の対象にしたライブラリは以下の 3 つです。 React Hook Form Formik React Final Form パフォーマンス以外の特徴にも触れておくと、 React Hook Form TypeScript 製 頻繁に更新されている UI とフォームライブラリが密結合になりやすい Formik TypeScript 製 ある程度更新されている UI とフォームライブラリを疎結合にしやすい React Final Form コードのほとんどが JavaScr

    パフォーマンスを気にするならReact Hook Formが無難
  • キャッシュを活用するために必要な知識と勘所 - そーだいなるらくがき帳

    どうもキャッシュバスターズ、 id:Soudai です。 Cache(以下、キャッシュ)は特定の場面に置いて劇的な効果を発揮し、様々な問題を解決する反面、新たなコンポートやミドルウェアが追加され、複雑性が上がり、運用のレベルが上がるため、扱いに注意する必要があります。 キャッシュを活用することで、パフォーマンスの改善や負荷軽減が行われ、コンピュータリソースの最適化によるサーバコストの削減や、レスポンスの改善によるユーザエクスペリエンスの改善がされます。 反面、その劇的な効果に毒され安易に多用すると、サービスが強くキャッシュに依存してしまい、非常に壊れやすくなり、運用が難しくなってしまいます。これをWeb界隈では「キャッシュは麻薬」と比喩されて、戒められてきました。 そのためキャッシュを使わずにサービスが運用できるのであれば使わないに越したことはないのですが、ある一定以上の規模になった際にコ

    キャッシュを活用するために必要な知識と勘所 - そーだいなるらくがき帳