ブックマーク / dev.classmethod.jp (111)

  • 突貫でおぼえるSPF、DKIM、DMARC | DevelopersIO

    しばたです。 昨年10月にGoogle(Gmail)および米国Yahoo!においてスパム対策の強化がアナウンスされました。 この件に関してつい先日まで他人事でいたのですが、実は全然他人事では済まないことが発覚し突貫で知識を仕入れています。 アナウンスに対する具体的な対応策についてはこちらのZennの記事を見れば全部わかる感じです。 最高ですね。 また、メール送信にAmazon SESを使っている場合はAWSのブログを確認すると良いでしょう。 「これらの記事を読み解けば万事解決!」という感じではあるのですが、私自身が学んだなかで予め知っておくと良さそうに思えた点がいくつかありました。 記事ではその辺を共有するのと、実際にAmazon SESの環境を作って動作確認をしたのでその結果も合わせて共有します。 はじめに覚えておくと良い基礎知識 Zennの記事でも詳細な解説がありますが、個人的に「最

    突貫でおぼえるSPF、DKIM、DMARC | DevelopersIO
    ttsurumi
    ttsurumi 2024/01/29
  • 【iOSDC Japan 2023 レポート】「iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!」を聞いてきた。 | DevelopersIO

    はじめに 年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。 せっかくなので、参加したセッションのレポートを書きたいと思います。 iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう! 登壇者 miwa_ensanさん 概要 iOSのKeyboard Extensionは、ソフトウェアキーボードを独自に開発し、配布できる機能です。 キーボードを自作する上で大きな問題が日本語入力です。標準のAPIはないので、自力でどうにかする必要があります。 私はキーボードアプリ「azooKey」をiOSでリリースし、2年以上にわたって開発・運用を続けてきました。azooKeyでは日本語入力機能をSwiftで独自に実装しています。 さらに、「学習」「ユーザ辞書」「ライブ変換」「着せ替え」「キーのカスタマイズ」など、さまざまな便利な機能

    【iOSDC Japan 2023 レポート】「iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!」を聞いてきた。 | DevelopersIO
    ttsurumi
    ttsurumi 2023/12/14
  • 【VS Code】tasks.jsonで決まった作業を自動化する | DevelopersIO

    はじめに VS Codeでコーディングをするとき、Gitの操作やビルド、デプロイなど、決まった処理を手動で実行するのが面倒だなと思ったことがあるのではないでしょうか。tasks.jsonというファイルを使えば、そういった面倒な手順を自動化し、開発効率を上げることができます。 この記事でやること この記事では、作業ブランチにmainブランチの取り込みを行うGitコマンドを自動化してみます。mainブランチを取り込むために、以下のコマンドを毎回手で実行しているとします。 git stash git pull origin main git stash pop これをtasks.jsonに定義して自動化したいと思います。 タスクの作成 タスクを作成するには、VS CodeのメニューのTerminal⇒Configure Tasksを選択します。 Create tasks.json file fr

    【VS Code】tasks.jsonで決まった作業を自動化する | DevelopersIO
    ttsurumi
    ttsurumi 2023/11/11
  • 自己流で英語に伸び悩んでいる人は『最新の第二言語習得研究に基づく 究極の英語学習法』を読むべし | DevelopersIO

    学校・仕事・生活など様々な理由で英語を学びつつ、上達が今ひとつで今の勉強法を続けていいのかなぁと不安になっている人も多いのではないかと思います。 タイパが重視される昨今だと、無駄なことはできるだけ避けたいですしね そんな人にピッタリの一冊が出版されたので紹介します。 第二言語(いわゆる外国語)習得、特に、語彙習得が専門の立教大学中田達也教授による『最新の第二言語習得研究に基づく 究極の英語学習法』です。 書の向いている読者層 英語スキルを向上させたい 英語を教えている 子供の早期英語学習に頭を悩ませている 書の特徴 現役の研究者が最新研究に基づいて納得感のある一般論を繰り返しており、安心して読めます。 個人体験談(N=1)をしたためたでは有りません。 書の特徴は以下です 1. 対象読者は一般人 対象読者はあくまでも一般人です。 現役の研究者が書いてはいるものの、専門用語はなるだけ控

    自己流で英語に伸び悩んでいる人は『最新の第二言語習得研究に基づく 究極の英語学習法』を読むべし | DevelopersIO
    ttsurumi
    ttsurumi 2023/11/10
  • AIチャットボットで問い合わせに対応し、回答が難しい内容に限り担当者にエスカレーション[Amazon Connect + Lex + Bedrock] | DevelopersIO

    AIチャットボットで問い合わせに対応し、回答が難しい内容に限り担当者にエスカレーション[Amazon Connect + Lex + Bedrock] はじめに Amazon Connect + LexでAIチャットボットを構築し、問い合わせに対して無人対応し、対応が難しい内容に限り、オペレーター(以降、担当者)にエスカレーションする仕組みを作成しました。 コールセンターの負担軽減や人手不足の解消を目指して、AIチャットボットを活用して有人対応から自動応答に切り替えたいというニーズは増えているように思います。 記事では、お問い合わせをAIチャットボットがヒアリングして、生成AIAmazon BedrockのClaudeを用いて種別判定を行い、回答できるものはチャットボットが回答し、それ以外の内容については、担当者にエスカレーションする方法をまとめました。 今回検証するお問い合わせの種別

    AIチャットボットで問い合わせに対応し、回答が難しい内容に限り担当者にエスカレーション[Amazon Connect + Lex + Bedrock] | DevelopersIO
    ttsurumi
    ttsurumi 2023/11/02
  • あたらしいフロントエンド開発ツール「Nue」 | DevelopersIO

    About Nue 鵺(ぬえ)。 猿の顔、タヌキの体、蛇の尻尾、虎の脚を持つ妖怪です。 日人ならNueと聞いた場合、思い浮かべるのは↑かと思うのですが、 これは先日リリースされた、フロントエンド開発ツールセットです。 *「Nue」はドイツ語で、「新しい」という意味だそうな *「Nue」はドイツ語の「neu」に由来しており、英語で「新しい」という意味だそうな 開発者はTero Piirainenという方で、 現在彼1人で開発しています。 ここを見ると、「Webの開発方法が変わるかも」と かなりすごいことが書いてありますが、どんなものなのか見ていきましょう。 Nueとはなんなのか? 公式を見ると、↓のようなことを言っています。 ReactVueNext.js、Vite、Astroの代わりになる NueはSPAMPAの両方に対するサポートを備えたWebアプリケーションビルダーである Nue

    あたらしいフロントエンド開発ツール「Nue」 | DevelopersIO
    ttsurumi
    ttsurumi 2023/09/23
  • ALB(Application Load Balancer)がボトルネックになっていたか確認する方法を教えてください | DevelopersIO

    困っていた内容 ALB(Application Load Balancer)への急激なアクセス増加により処理が遅延し、一時的にサーバーエラーとなる事象が発生しました。ボトルネックが ALB 側か、もしくはバックエンドサーバー側かを切り分けたいのですが、ALB の性能限界に達していたか確認する方法を教えてください。 どう対応すればいいの? ALB は負荷状況に応じて内部的にスケーリングが行われるため、最大接続数などの情報は非公開となっています。 そのため ALB の性能限界を明確に確認することはできませんが、以下 (1) ~ (3) の指標を確認することで、ALB もしくはバックエンドのどちらがボトルネックになっていたかを推測できます。 (1) 当該時刻に ALB のスケーリングが行われていたかを確認する ALB への接続数が物理ノードの限界に達すると自動的にスケーリングが行われ、その際には

    ALB(Application Load Balancer)がボトルネックになっていたか確認する方法を教えてください | DevelopersIO
    ttsurumi
    ttsurumi 2023/09/18
  • 「AWS CDKの最強の書き方を実践してみる 2023年版」というタイトルでチョークトークを実施しました #DevIO2023 | DevelopersIO

    概要 CX事業部アーキテクトチームの佐藤智樹です。 今回はDevelopersIO 2023のチョークトークで登壇した際の資料を共有します。 チョークトーク自体は質問を交えてかなりインタラクティブに行ったので、これだけ読んでも伝わりづらいですが参加された方の思い出しや参考になれば幸いです。 資料 所感 チョークトークは朝、昼の2回実施したのですが、思っていたよりも積極的に参加いただけて良い意見交換ができたと思っています。参加いただいた皆さん盛り上げてくださりありがとうございます!自分としては初めてほぼアドリブで話す予定だったので発表までドキドキ待ちながらでしたが、楽しい時間だったので今後も同じような取り組みできればと思います。その際はご参加いただけるとありがたいです。

    「AWS CDKの最強の書き方を実践してみる 2023年版」というタイトルでチョークトークを実施しました #DevIO2023 | DevelopersIO
    ttsurumi
    ttsurumi 2023/09/03
  • 「AWSとGitHubを用いたパターン別CI/CD構成解説」というテーマのビデオセッションで話しました #devio2023 | DevelopersIO

    こんにちは、つくぼし(tsukuboshi0755)です! 現在 DevelopersIO 2023の一環として、YouTube でのビデオセッションが公開されています。 今回私の方では、「AWSGitHubを用いたパターン別CI/CD構成解説」というタイトルで投稿しました。 概要 AWS基盤でCI/CD構成を作りたいが、どのようなサービスを組み合わせて作るべきだろうか? 特にCI/CDに関する有名なサービスとして、AWSのCodeシリーズとGitHubがあるが、両者の使い分けはどのようにすれば良いだろうか? そんなお悩みをすっきり解決するため、様々なパターンを想定したCI/CD構成をまとめて解説します。 動画 スライド 参考サイト ECS用のCDパイプラインに対する考察 CodeDeploy / GitHub Actions|Rails × CloudFormation ハンズオン A

    「AWSとGitHubを用いたパターン別CI/CD構成解説」というテーマのビデオセッションで話しました #devio2023 | DevelopersIO
    ttsurumi
    ttsurumi 2023/07/18
  • AWS ソリューション「AWS でのワークロード検出」で自動でシステム構成図作成してみた | DevelopersIO

    AWS ソリューション「AWS でのワークロード検出」をご存知ですか?自動でシステム構成図を作成できるソリューションです! 1. はじめに お疲れさまです。とーちです。 「AWS でのワークロード検出」というソリューションをご存知でしょうか? このソリューションは AWS 上のリソースを自動で検出し、 アーキテクチャ図を自動で生成 してくれるものになっています。使ってみて便利だと感じたので紹介させて頂こうと思います。 実は書き終わってから既に紹介ブログがあることに気づいたのですが、前回の記事から時間も経っていてソリューション名も変わっている(旧称: AWS Perspective)ので、改めて紹介ということでご了承ください。 2. 構築 早速ですが構築です。このソリューションは CloudFormation で提供されているので、CloudFormation テンプレートを使ってデプロイす

    AWS ソリューション「AWS でのワークロード検出」で自動でシステム構成図作成してみた | DevelopersIO
    ttsurumi
    ttsurumi 2023/06/28
  • 『Gitleaks』で機密情報の漏洩を防ぐ〜コマンド編〜 | DevelopersIO

    Gitleaksは機密情報の漏洩を防ぐためのツールです。簡単なコマンド実行を通してGitleaksの使用感を記事にしました。コマンドの使い方や実際の出力内容が分かるようになっています。 はじめに CX事業部 Delivery部の塚です。 Technology RadarでGitleaksが紹介されており、気になったので使ってみました。 記事で取り上げること Gitleaksの基的な情報 Gitleaksの導入手順 Gitleaksのコマンドの使い方 記事で取り上げないこと GitHub Actionsでの利用方法 gitのhooksを利用したコミット前の自動検出: 自動コミット編参照 検出結果の妥当性、信頼性など 他類似ツールとの比較 Gitleaksとは Gitleaks is a SAST tool for detecting and preventing hardcoded s

    『Gitleaks』で機密情報の漏洩を防ぐ〜コマンド編〜 | DevelopersIO
    ttsurumi
    ttsurumi 2023/06/05
  • [Ubuntu] RustでLinux kernel モジュールを開発する | DevelopersIO

    Introduction Linux kernelの6.2からRustでカーネル開発をするための基的なサポートが導入されましたが、 メジャーなディストリビューションは6.2をデフォルトで搭載していませんでした。 なのでRustカーネルを試そうとした場合、 カーネルのソース持ってきてカーネルビルド関連のソフトウェアやライブラリをインストールし、 Rust関連のオプションつけてビルドしなおして Rustで書いたカーネルモジュールをビルドして QEMUとかUTMとかでようやく動作確認ができます。 とりあえずHelloWorldするだけでも、かなり面倒です。 しかし先日、Ubuntu 23.04 ⁠Lunar Lobsterがリリースされました。 これは標準でLinux Kernel 6.2を搭載しているので、面倒な手順を踏まなくても Rust製のLinux kernelが動きます。 また、素晴

    [Ubuntu] RustでLinux kernel モジュールを開発する | DevelopersIO
    ttsurumi
    ttsurumi 2023/06/01
  • ベクトルデータベース Pinecone の概念を整理する | DevelopersIO

    前回の記事ではじめてPineconeを使いました。Pineconeについて、もう少し詳しく知りたいと思ったので、公式ドキュメントを読んで内容をまとめました。基的には分かりやすい概念が多いのですが、1つだけ難しいなと思った概念がでてきたので、サンプルとともに説明します。 ベクトルデータベースとは 機械学習では、文章、画像、音声、動画などのあらゆるデータを、特徴を抽出したベクトルに変換して扱うことが多いです。ベクトルは、数百から数千の次元の数値として表現されます。ベクトルデータベースは、このような特殊なデータ構造を持つデータを扱うために作られたデータベースです。 ベクトルデータベースを使うことで、ベクトル間の類似性を高速に検索することができます。これによって、文章のセマンティック検索、画像・音声・映像などの類似検索、ランキングやレコメンド、重複検出、異常検出、などに応用することができます。

    ベクトルデータベース Pinecone の概念を整理する | DevelopersIO
    ttsurumi
    ttsurumi 2023/04/17
  • ChatGPTで独自データを利用できるLlamaIndexはどんな仕組みで動いているのか?調べてみました | DevelopersIO

    ChatGPTで独自データを利用できるLlamaIndexはどんな仕組みで動いているのか?調べてみました ChatGPT APIがリリースされて、すでにさまざまな試行錯誤が始まっていますね。 なかでも、「自社の独自のデータを使ってChatGPTに質問を答えさせたい」というのは興味を持っている方が多いのでは、と思います。しかしながら、この記事を書いている2023年3月12日現在では、最新のモデルであるgpt-3.5-turboに、標準機能で追加で独自のデータをユーザーが学習させることはできません。 この「独自のデータをChatGPTで使う」ことを簡単に実現させる手段の1つとして、LlamaIndex(旧GPT Index)に注目が集まっています。 このDevelopersIOでも、LlamaIndexを使ってブログ記事を読み込ませて質問してみる、という試みを紹介する記事がいくつか投稿されてい

    ChatGPTで独自データを利用できるLlamaIndexはどんな仕組みで動いているのか?調べてみました | DevelopersIO
    ttsurumi
    ttsurumi 2023/03/30
  • PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO

    CX事業部@大阪の岩田です。Python向けのORMライブラリsqlalchemyは標準でコネクションプーリングの実装が組み込まれており、create_engine()を呼出す際の名前付き引数poolclassの指定によってコネクションプーリングの実装を切り替えることができます。先日コネクションプーリングの実装について調べる機会があったので、内容をご紹介します。 環境 今回利用した環境です。 OS X 10.14.6 Python 3.8.2 sqlalchemy 1.3.16 pymysql 0.9.3 利用できるコネクションプーリングの実装 sqlalchemyは標準で以下のコネクションプーリングの実装を提供しています。 QueuePool NullPool SingletonThreadPool StaticPool AssertionPool 例としてNullPoolを使う場合は

    PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO
    ttsurumi
    ttsurumi 2023/02/08
  • ベーシックな AWS 環境を爆速で提供する「AWS シンプル構築パッケージ」を作ってみた | DevelopersIO

    例3 : RDS なしパターン 上のミニマム構成パターンとほぼ同じですが、提供する AWS 環境から RDS を除くことも可能です。データベース不要な静的なキャンペーンサイトなどを動かしたい場合に最適です。 よくある質問 シンプル構築パッケージに寄せられるご質問について、よくあるものをこちらに記載します。 Q.EC2 や RDS のスペックは指定可能ですか? A. はい、指定可能です。 シンプル構築パッケージではお客様にヒアリングシートへの回答をお願いするのですが、ヒアリングシート内で希望するサーバースペックについても回答いただくことが可能となっています。 Q.利用したい OS や DB エンジンがないのですが、対応可能ですか? A. 対応可能なケースもございますので、まずはご相談ください。 EC2 の OS や RDS の DB エンジンは今後対応の幅を広げていく予定ですので、現在対応し

    ベーシックな AWS 環境を爆速で提供する「AWS シンプル構築パッケージ」を作ってみた | DevelopersIO
    ttsurumi
    ttsurumi 2023/02/03
  • あなたの組織に最適なECSデプロイ手法の考察 | DevelopersIO

    「ECSデプロイの話だけで45分喋った男がいた…」 というわけで、先日、Developers.IO 2020 CONNECTにおいて、以下のタイトルで喋りました。 「あなたの組織に最適なコンテナデプロイ方法とは?〜ECSにおけるデプロイ最新機能てんこ盛り〜」 オンラインセッションは何度か登壇経験あったのですが、今回は45分。正直めっちゃくちゃ疲れました。いやぁ、登壇ってもしかしたら、リアルよりもオンラインのほうがつかれるかもしれません。 そんな登壇だったわけですが、内容あれこれ詰め込んでECSのデプロイだけに内容を絞ったのですが、その甲斐あってかいろんな方に参考にしていただける内容になったのではと考えています。 ぜひ、この記事を、皆さんの現場のECSデプロイをパワーアップする参考にしていただければと思います。 ホンマにECSデプロイだけで45分喋ったの…!? ( ゚д゚) ガタッ /  

    あなたの組織に最適なECSデプロイ手法の考察 | DevelopersIO
    ttsurumi
    ttsurumi 2023/01/26
  • AWS利用料金を毎日Slackに通知する仕組みをCDKで作りたくてやってみた | DevelopersIO

    いろんな記事でよく見かける処理ですが、件はCDK(Typescript)、Lambda(Python3)という組み合わせで作りました どーも、データアナリティクス事業コンサルティングチームのsutoです。 最近仕事が忙しくなると、AWSにて検証で作ったリソースを削除し忘れたことで余計な課金を発生させてしまうことが増えてきました。 自分の個人検証アカウントではAWS Budgetsを使って予算とアラートを設定していましたが、上限近くになってから気づくより毎日通知で気づくほうが良いと思ったので、今回はAWS CDKを使って作ってみました。 ※CDKをTypescriptで書く練習をしたかったという思いもあり、CDKスタックはTypescript、中のLambdaPythonという個人的趣向に沿った組み合わせとなっています。 作るもの 以下の図のとおりです。 毎日AM9時10分(JST)

    AWS利用料金を毎日Slackに通知する仕組みをCDKで作りたくてやってみた | DevelopersIO
    ttsurumi
    ttsurumi 2023/01/17
  • Amazon EventBridge Pipesを使ってプロデューサー/コンシューマー型メッセージ処理のパイプラインを簡略化しよう #reinvent | DevelopersIO

    re:Invent 2022で発表されたAmazon EventBridge PipesはProducer/Consumer型のメッセージング処理をメッセージブローカーやワーカーに関係なく一貫した手法で実装するサービスです。 メッセージブローカーにAmazon SQS、ConsumerのワーカーにLambdaを利用する構成で、従来のLambdaイベントソース型とEventBridge Pipes型を比較しましょう。 Producer/Consumer型メッセージ処理 Producer/Consumer型メッセージは、メッセージキューなどで利用される、非同期のメッセージングパターンです。Producerはブローカーにメッセージを送信し、Consumerはブローカーをポーリングしてメッセージを受信します。 SQS-Lambda構成の場合、SQSがメッセージブローカー、LambdaがConsum

    Amazon EventBridge Pipesを使ってプロデューサー/コンシューマー型メッセージ処理のパイプラインを簡略化しよう #reinvent | DevelopersIO
    ttsurumi
    ttsurumi 2022/12/03
  • [OSS] AWS CloudSaga を使って疑似セキュリティインシデントを起こしてみた | DevelopersIO

    AWS 事業コンサルティング部のイシザワです。 今回は OSS の AWS CloudSaga を使って疑似インシデントを起こしてみようと思います。 (追記)アイキャッチを変更しました。 CloudSaga とは CloudSaga とは AWS 環境で疑似的にセキュリティイベントを発生させるツールです。 ユースケースとして、自分の AWS 環境でセキュリティイベントを検知するための仕組みや調査するための仕組みがあるかをテストすることが挙げられます。 やってみた まず、マネジメントコンソールから AWS CloudShell を起動します。 以下のコマンドで CloudSaga をインストールします。 $ pip3 install cloudsaga インストールが完了したら、以下のコマンドで現在利用可能なセキュリティイベントのシナリオを一覧できます。 $ cloudsaga --ch

    [OSS] AWS CloudSaga を使って疑似セキュリティインシデントを起こしてみた | DevelopersIO
    ttsurumi
    ttsurumi 2022/11/11