タグ

ブックマーク / qiita.com (406)

  • メールというインターネットの闇とIPレピュテーション(だけど重要)(後編) - Qiita

    ※この投稿について 前半でIPレピュテーションとは何か?という説明をしていますので、未読の方は一読することをお勧めします。 メールというインターネットの闇とIPレピュテーション(だけど重要)(前編) https://qiita.com/nfujita55a/items/5848fcfbbe6cbf7d98c3 この後半では、IPレピュテーションをよくしてメールを滞りなく送りたいときの光要素と闇要素を、光→闇の順に書いています。 メールを円滑に送るためIPレピュテーションを高めたい、何ができるの(光要素) まずは、IPレピュテーションを含めて、メール送信を円滑に行うためにすることが大別して3つくらいあると思います。 送信ドメイン認証する いわゆるSPFやDKIMです(最近はこれにDMARCが加わる)。SPFなら送信側が「DNSを使ってこのEnvelope-FromのメールはこのIPアドレス

    メールというインターネットの闇とIPレピュテーション(だけど重要)(後編) - Qiita
  • メールというインターネットの闇とIPレピュテーション(だけど重要)(前編) - Qiita

    と、この例では3回の通信がなされます。1が終わったら 2、2が終わったら 3とバケツリレーされます。 ※3の後に、メールボックスにあるメールをWebで見たりPOP3などでメーラーがメールを取得したりする このSMTPを使用したメールのバケツリレーの様相は、ブラウザとWebサーバーが End to End なHTTP(S)と大きく異なります(HTTPにもプロキシはあって通信が多段になることはありますが、バケツリレーではない)。 「IPレピュテーション」という概念は、上の表の2の通信、インターネット越しに送る側と受け取る側がSMTP通信するところに係わります。 レピュテーション=評価、です。メールにおけるIPレピュテーションとは、受け取る側の送る側の送信元IPアドレスに対する評価 です。この評価によって、受け取る側のメールサーバーは メールを速やかに受け取り受信者の受信箱に配送する メールを受

    メールというインターネットの闇とIPレピュテーション(だけど重要)(前編) - Qiita
  • 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
  • PostgreSQLでパーティション数が多いほどプラン生成時間が長くなる問題の確認 - Qiita

    PostgreSQLのパーティショニング機能には、パーティション数が多いほど親パーティションに対するクエリのプラン生成時間が長くなる問題がある。これは、PostgreSQL10のネイティブ・パーティショニング機能でも従来のパーティショニング機能でも同様である。 今回は以下5パターンにおけるクエリのプラン生成時間を比較して、パーティション数が多いほどプラン生成時間が長くなることを確認する。 パーティション分割しない 10パーティションに分割 100パーティションに分割 500パーティションに分割 1000パーティションに分割 PostgreSQL10のネイティブ・パーティショニングの場合 -- 指定の数だけ分割されたパーティションを作成する関数を登録する CREATE OR REPLACE FUNCTION create_partition_native ( parent TEXT, num

    PostgreSQLでパーティション数が多いほどプラン生成時間が長くなる問題の確認 - Qiita
  • jq コマンドを使う日常のご紹介 - Qiita

    jq コマンドとは http://stedolan.github.io/jq/ JSONから簡単に値を抜き出したり、集計したり、整形して表示したりできるJSON用のgrepとかawkみたいなコマンドです。 WebサービスがJSONを吐いたり、AWS CLIが JSON を吐いたりする現代社会で大変便利なコマンドです。 マニュアル だいたいここ読めばOK. http://stedolan.github.io/jq/manual/ あ、これで、終わってしまう。だけど気にせず進めます。 簡単な例 まず、空気をつかみましょう。 以下jqコマンドの記法を見ていきます。JSON { "hoge": "value" } があった場合、 . がルート {} を表します。.hoge で "value" を表現します。だいたいこんな感じです。 ただの整形 しばらく下記のJSONを例に進めます。itemsには配

    jq コマンドを使う日常のご紹介 - Qiita
  • perlのワンライナーで複数行の置換を行う - Qiita

    $ echo "hoge\nfuga\npiyo" | perl -pe 's/ge/GE/; s/pi/PI/;' hoGE fuga PIyo この場合、1行ずつ評価するため複数行の書き換えは出来ない。 複数行の場合-0オプションを使ってオプション修飾子にmつけて実行すれば良い。

    perlのワンライナーで複数行の置換を行う - Qiita
  • Python で Slack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おう - Qiita

    PythonSlack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おうPythonPython3Slackslackbotslack-api こんにちは、Slack で公式 SDK の開発に従事している @seratch と申します。 これから SlackPython SDK について日語のチュートリアルを書いていく予定で、この記事はそれらのエントリーページにしようと思っています。ご興味あれば、ぜひこの記事をストックしておいてください (良いと思ったら LGTM もぜひ) え! SlackPython 公式 SDK なんてあったの? ・・と思った方も多いかもしれません。PythonSlack の Incoming Webhooks や Web API を使うとき、requests のような HTTP クライア

    Python で Slack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おう - Qiita
  • jQuery UI と BootstrapのTooltipの競合を回避して共存させて両方使う - Qiita

    よく使いそうで忘れそうなので個人メモ。 タイトルの通り。jQueryUIBootstrapのTooltip関数は名前が同じなので競合する。実際の動作は対象へのホバーでツールチップが表示される、というもので、使い方は同じだけれど、その設定や挙動は結構違う。 Bootstraphtml要素自体にパラメータを設定したりできるのでjsファイルを用意する必要がなかったりして、その分では便利だけれど、ajaxでデータを持ってきて表示させたりする時に不便。htmlコードも扱えるけれど、複雑なコードを書こうとすると面倒くさい。title=''に基全部書き込む必要があるので、例えば、 これはあからさまだけれど、画像のsrcが表に出てきちゃう。divとかリスト要素のネストとかを複雑に入れ込もうとすると、その中の"'に全部気を配るのは大変だし、非生産的このうえないわけで。 もちろん、BootstrapのT

    jQuery UI と BootstrapのTooltipの競合を回避して共存させて両方使う - Qiita
  • 忘れやすい人のための git diff チートシート - Qiita

    git diff は色んな場面で当によく使うんですが、できることが多いだけに全然覚えられずに毎回調べてしまいます。 なので、場面ごとに使えるコマンドを一覧でまとめてみました。 先にワークツリーとインデックス【Gitの基】- サルでもわかるGit入門を読んでおくと、ここに書いてある diff について理解しやすいと思います。 git pull する前にリモートとの変更点を見る git pull をする前にローカルの最新コミットと pull 先のリモートリポジトリとの変更点が見たいときはこのコマンドで見れます。 ここでいうリモート名は origin とかそういうやつです。 git push する前にリモートとの変更点を見る 上記のコマンドは、こんな感じで逆にもできます。

    忘れやすい人のための git diff チートシート - Qiita
  • オブジェクト指向と10年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向は難しい!わかった気になって実践すると詰みます... ウギャー この記事は10年以上オブジェクト指向と戦った筆者が、通常とは異なるアプローチでオブジェクト指向を解説したものです。 筆者はJavaを使って格的なシステム開発をしたことがありませんが、オブジェクト指向言語として最もポピュラーなJavaをベースにオブジェクト指向について解説させていただきました。 また、この記事の続編にあたります「なぜオブジェクト指向は難しいのか」を更に2年の時を経て執筆させて頂きました!是非こちらも一読していただけると嬉しいです。 オブジェクト指向三大要素の謎 オブジェクト指向三大要素ってありますよね。オブジェクト指向は「カプセル化」「継承」「ポリモーフィズム」の3つの要素で成り立つと言われています。最近では、この三大要素が語られる傾向は薄いようですが、一度は耳にしたことがある

    オブジェクト指向と10年戦ってわかったこと - Qiita
    shimooka
    shimooka 2020/12/15
  • 静的リソース(HTML,JS,CSS,画像)のブラウザキャッシュを制御 - Qiita

    前回のエントリ(ブラウザのキャッシュコントロールを正しく理解する)でブラウザ側のキャッシュ制御について説明しました。 ただ動的スクリプトなら、次の例のようにHTTPレスポンスヘッダを操作すればいいのですが、 <?php header('Content-Type: text/plain; charset=UTF-8'); header('Cache-Control: max-age=0'); echo "Hello World!"; ?> スクリプトを介さない静的リソース(HTMLファイル、JSファイル、CSSファイル、画像ファイルなど)はどうやってHTTPレスポンスを操作すればいいかというと、もしApacheを利用している場合は mod_header と mod_rewrite を利用して次のように簡単に出来ます! 設定例 想定ケースとして、次のようにブラウザ側のキャッシュを制御したいと仮

    静的リソース(HTML,JS,CSS,画像)のブラウザキャッシュを制御 - Qiita
  • ModSecurityのルール設定を読めるようになりたい! - Qiita

    ラクス Advent Calendar 2016の9日目です。 昨日は@nyakomeさんの「Selenideでテストコードを書いてみた」でした。 何を書こうか迷ったのですが、WAF(Web Application Firewall)について書いてみようと思います。個人的に興味がありつつも漠然とした知識しかなかったので、この機会に調べてみました。 WAFにも色々あるようですが、オープンソースのModSecurityというWAFがあるので、今回はこれを選択しました。 WAFの概要 WAF(わふ)は「Web Application Firewall」の略で、その名の通り、Webアプリケーションを悪意のある通信から守ることを目的としています。 万が一、Webアプリケーションに脆弱性があった場合に、SQLインジェクションやクロスサイトスクリプティングなどの攻撃から守ってくれたりします。もちろん絶対

    ModSecurityのルール設定を読めるようになりたい! - Qiita
  • sedでこういう時はどう書く? - Qiita

    シェルでデータ加工するときSEDをよく使いますが、その利用例と覚え書きです、参考になれば sedコマンドはLinux/Unix/BSD/OSXに標準で入っているので、Macの人なら覚えておくと捗るかも(Linuxとは少し違うのでそこは調べてね?) 当方の利用環境がRedhat系Linuxメインですので、微妙に書式が異なることがありますが、大体の書式は同じはずですので、そこは、ご容赦願います (4/15 ちょっと追加…) Windowsでもsed使いたいという人がいたので、ちょっと追記、以下のサイトからWindows用のバイナリを取得すれば、Windowsでもsedが使えます。WSLなどLinux環境を追加したくない、sedのコマンドだけほしい、PowerShellやプロンプトで使えればいいだけという人にお勧めです。 sed for Windows Site 使用例をいろいろ上げてみる '#

    sedでこういう時はどう書く? - Qiita
  • GUIテストツール一覧 - Qiita

    GUIテストツールについての比較 現場での:GUIテストツール導入にあたり 「メリット」 と 「デメリット」 を纏めてみました。 (昨今、ツールの数が多く何がどのテストツールがマッチしているのかも含め。) 今まで色々とGUIテストツールの導入検討してきましたが、業務タスクに沿った選定ができればと思い、纏めております。 もちろんテストツールには有償・無償ありますが、「費用対効果も含め」 選定ができれば尚良し。 Seleniumファミリーだけではなく、最近のテストツールトレンド傾向を調査し、どのツールがベストなのか。 Selenium(WebDriver) E2Eテストの王道、WebDriverに依存するため最新ブラウザには注意が必要であるが、プログラミングライブラリが豊富。 ※Seleniumは、テストツールではなく 「ブラウザ操作ツール」 であるがここでは「テストツールグループ」に入れてお

    GUIテストツール一覧 - Qiita
  • AWS Lambdaを使ってサーバレスアプリを作成(CRUDのR) - Qiita

    記事を閲覧いただき、ありがとうございます。中村です!! 2020年10月にAWSエンジニアとして転職したので、AWSの予習も兼ねてLambdaを使ったアプリ作成について書いきます。 AWS Lambdaとは? ここでつらつら説明するより公式動画の方がわかりやすいという結論に至りました。まずはご覧ください。 以下を使用して作成ます。 フロントエンド : Vue.js AWS(インフラ) : S3, API Gateway, Lambda, DynamoDB 構成 構成はこんな感じです。 DBはDynamoDB、アプリケーションサーバの代わりにlambdaを使ってサーバレスにする。 lambdaプログラムをAPI Gatewayと連携し、APIとして呼べるようにする。 Webサーバのように使えるS3にフロントエンドのプログラムをデプロイする。 画面 画面こんな感じです。 めちゃシンプルですが、

    AWS Lambdaを使ってサーバレスアプリを作成(CRUDのR) - Qiita
  • Bashの便利な構文だがよく忘れてしまうものの備忘録

    Bashでスクリプトを書く場合のポイントをまとめた Bashなどで書くシェルスクリプトは文法がシンプルで覚えると便利。他のプログラム言語だと何行もかかなければならないファイル操作や中身のデータ処理を、ちょちょいと数行レベルで書けとても強力だ。コマンドとの親和性が高い恩恵だろう1。 旧来バッチ処理で領を発揮するシェルスクリプトだったが、昨今はDockerDockerfileや起動スクリプトなど)で活用される機会も多いだろう。 しかしながら他のプログラム言語ではみられない記法があったり、逆に似た書き方もあったりと、混乱しがちなのもシェルスクリプトの特徴かもしれない。 いちいちGoogle先生に確認するのもめんどうなので、このページに整理した2。 主な参照先(よくお世話になっているページ): UNIXの部屋(68user's page) - http://x68000.q-e-d.net/~

    Bashの便利な構文だがよく忘れてしまうものの備忘録
    shimooka
    shimooka 2020/11/20
    マジ忘れる
  • Laravelの標準ディレクトリの変更方法 まとめ - Qiita

    なにがしたい? Laravelは「ディレクトリ構成が自由」と言われますが、それはネームスペースで管理されるクラスとそのPHPファイルのお話なんだと思います。 そうではなくて、Laravelフレームワークのシステムファイルや重要なデータが入っていそうな「標準のディレクトリ」≒「小文字のディレクトリ」は変更できるのでしょうか? 変更できるでしょ? やっといてね! というご要望を、最近ちらほら頂いたので、ざっくりまとめてみました。 仕様 変更できるかできないのか? にパッと答えられるようにするもの 詳しい変更方法は別の記事か、Google先生におまかせします 調査方法は主にLaravel5.5/5.6のソースコードをチェック ざっくりしていますので、ヌケモレ間違いがあるかもしれません。気づかれましたら、ご指摘いただけるとありがたいです。 参考 ディレクトリ構造(Laravelドキュメント) La

    Laravelの標準ディレクトリの変更方法 まとめ - Qiita
  • 【git】マージしたけどやっぱりやめたい時のやり方4種類 - Qiita

    20190501追記 わかりにくい文章を修正しました 「その3 パート1」の方法を追加しました 追記ここまで gitでマージ作業を始めたけど、もろもろの理由からやっぱりやめたいときのやり方3種類です。 その1 「マージしたらコンフリクトした。やっぱりやめよう。」 マージしたらコンフリクトした、コンフリクトするとは思わなかった、いったんやめよう、などといういうときです。 コンフリクトの編集をしていないときに限ります。

    【git】マージしたけどやっぱりやめたい時のやり方4種類 - Qiita
    shimooka
    shimooka 2020/11/06
  • PHP-CS-FixerとGit フックで治安保持活動 - Qiita

    こちらはJoolen Advent Calendar 2019 8日目の記事です。 カレンダーのURLはこちら Joolen Advent Calendar 2019 まえがき PHPを書いてるとコーディング規約とか守らない人出てきますよね。 私も気付かず破ってしまうことがあります。 それを防ぐためにPHP-CS-FixerとGitフックを利用して治安保持を目指します。 PHP-CS-Fixerとは コードの整形ツールと呼ばれるものです。 .php_cs.distという設定ファイルにルールを記述することで、コマンド一つでルールに沿ったコードに整形してくれます。 ルールはPHPの配列形式で設定します。 またFinderと呼ばれるものもあり、こちらを設定すると、整形して欲しくないファイルやディレクトリを指定できます。 例: return PhpCsFixer\Config::create()

    PHP-CS-FixerとGit フックで治安保持活動 - Qiita
  • composer.jsonのrequireを直接編集してはいけない - Qiita

    Composerで依存関係を追加する際に「composer.jsonを編集してrequireに追加してください」といった作業指示が時折見られますが、それはバッドノウハウです。 原則 依存関係を追加・削除するときはコマンドラインから composer require vendor/package で追加 composer remove vendor/package で削除 composer require --dev vendor/package で開発時に必要なものを追加 composer remove --dev vendor/package で開発時に必要なものを削除 番運用環境と同じバージョン・近い環境で実行する さもなくば、依存パッケージのバージョンを自分で特定しなければならなくなる 依存関係をアップデートするときに引数なしで composer update してはいけない マイ

    composer.jsonのrequireを直接編集してはいけない - Qiita