タグ

ブックマーク / zenn.dev (44)

  • Design Docの書き方

    背景、目的 (Why?) 検討した別の方法 (alternatives considered) トレードオフ (Why not?: なぜ別の方法にしなかったのか?) 設計、アーキテクチャ (How?) メンバー (担当者やレビュワー) (Who?) セキュリティやプライバシーについての考察など 他プロジェクトとの関連性 テスト,モニタプランなど 基的には、ソースコードを見てもわからない部分をDesign Docに書いて、議論するのが一般的のようです。 Design Docは、Googleに代表される最先端の技術企業で取り入れられている設計ドキュメントのスタイル。 単にドキュメントの書式だけを指すのではなく、書いた後の使い方までを含めた『開発のやり方』につながっているドキュメント方式。 アジャイルなどの現代的なソフトウェア開発スタイルにフィットしているため、シリコンバレーのスタートアップ企

    Design Docの書き方
  • ログコスパ最強!?OpenObserveを触ってみた

    概要 昨今オブザーバビリティに関する需要は益々高まっています。GoogleトレンドでObservabilityについて調べても右肩上がりに増加していることがわかります。 過去5年間の検索推移 その一方でオブザーバビリティツールの選定につきましては機能面、コスト面などさまざまな事情を考慮する必要がありどれを選べばいいのかわからない人も多いでしょう。 その中でもログ監視につきましてはストレージコストや運用設計など頭を悩ます項目が多いかと思われます。 会社でも私が入社してからログの保存先に関しては、CloudWatch Logs→OpenSearch→Datadogと転々と変更してきました。 今のところDatadogのLogs管理につきましては、使いやすく機能面では満足しています。ただ一方でストレージコストが高いこともあり、どうにかストレージコストを下げるために保存量や保持期間の調整など工夫を凝

    ログコスパ最強!?OpenObserveを触ってみた
  • docker-compose.ymlで使用可能な${VARIABLE:-default}とは?

    はじめに Kong OSS版を触っている際に、docker-compose.ymlに記載されている${VARIABLE:-default}の表記に出会いました。 出会った当初、意味や挙動が分からず悩んでしまったので、残しておきます。 記載例: version: '3.9' x-kong-config: &kong-env KONG_DATABASE: ${KONG_DATABASE:-off} ・・・略・・・ services: kong-migrations: image: "${KONG_DOCKER_TAG:-kong:latest}" command: kong migrations bootstrap ・・・略・・・ ※コードの参照元: 結論 dockerの公式リファレンスに記載がありました。 Both $VARIABLE and ${VARIABLE} syntax are s

    docker-compose.ymlで使用可能な${VARIABLE:-default}とは?
    asa_ca3
    asa_ca3 2023/09/15
    environment default
  • Kubernetesエンジニア向け開発ツール欲張りセット2022

    はじめに 記事では、筆者や筆者の同僚がKubernetes関連の開発をしているときによく利用しているツールを紹介します。 主にKubernetes上で動くプログラムをGoで書いたり、マニフェストのYAMLを書いたりするエンジニアが対象となります。 記事の内容は極力環境依存を減らし、Linux, WSL2, Macなどの環境で利用可能となっています。 WSL2(Ubuntu 20.04)、およびM1 Macで動作確認していますが、環境によって多少の違いが生じることもあるのでご了承ください。 基となるツール make & brew 記事ではmakeコマンドを利用します。 Ubuntuの場合は以下のコマンドでインストールをおこなってください。 Macの場合は、以下のページを参考にHomebrewとCommand line tools for Xcodeをインストールしてください。 Doc

    Kubernetesエンジニア向け開発ツール欲張りセット2022
  • データ指向アプリケーションデザインから見るGraphQL

    グラフモデルとSoEとGraphQL / TECH STAND #7 GraphQL 2022/03/03 に行われた stand.fmさん主催の TECH STAND #7 にて上記のタイトルで登壇しました。 今回の内容は GraphQLの採用を検討するにあたって、RESTとの違い、BFFとの違いをデータの観点から言語化したかった Hasuraが良いという意見と, Apollographql-ruby, gqlgenなどのハンドライティングなGraphQLが良いという意見の違いがどこから生まれているかの考察がしたかった データ指向アプリケーションデザイン(2017年リリース)にSoEやGraphQLへの言及がないため, 今だとこういう内容が書かれているんじゃないかという考察がしたかった をモチベーションに調査・検討しました。 発表のハイライトはこちらです。 以下発表内容です。一部発表時

    データ指向アプリケーションデザインから見るGraphQL
  • なかなかアウトプットできないあなたが技術記事を書くときのコツ

    技術記事を書くまでのステップについて順にコツを解説していきます。 特に、技術記事を書きたくてもテーマ選定が難しい、文章が苦手だ、なぜか筆が進まない、うまくまとめられないといった方に読んで欲しい記事です。 一応、エンジニア歴としては数年以内のジュニアレベルの方を想定しています。 以下のように技術記事を企画して、書いて、公開するためのプロセスごとにちょっとしたコツをまとめています。気になるセクションだけでも読んでいただければ幸いです。 テーマを決めよう 対象読者を決めよう 章立てを決めよう 書こう タイトルを決めよう 【余談】技術記事を書く理由とは 筆者について QiitaとZennにて6年以上の記事発信経験があり、 Qiitaでは5,942Contributionsを記録、 Zennでは3,253Likesをいただいています。 テーマを決めよう コツ:テーマのカテゴリによって執筆のポイントや

    なかなかアウトプットできないあなたが技術記事を書くときのコツ
  • Zodで真のTypeScript firstを手にする

    fullstack TSなアプリケーションも増えてきた昨今、TSでvalidatorを実装する際に何を採用するかは一大トピックです。今回は、その中でも新しめなライブラリでありBlitzも採用しているZodについて見ていきます。 Zodとは Zodの特徴として、Schema firstなvalidationライブラリであるというのがあります。 validateするschema(単一のschemaからobject, arrayまで)を定義し、それをベースにparseするというものです。 公式にあるexampleを見てみましょう。 import { z } from "zod"; // creating a schema for strings const mySchema = z.string(); mySchema.parse("tuna"); // => "tuna" mySchema.p

    Zodで真のTypeScript firstを手にする
  • TypeScriptのゾッとする話 ~ Zodの紹介 ~

    現在( 2021/09/13 )、この記事の情報は古くなっている可能性があります! そのため、なるべくは公式ドキュメントを参照してください。 参照: 公式ドキュメント この記事について 先日、「 エンジニアとして一番怖いモノは何? 」と知人に尋ねると、 「 実は、TypeScript が一番怖い 」 と言ってきました。 そんな訳ないだろうと思っていたのですが、どうやら知人は気の様子。 「 TypeScript が嫌いならまだしも、TypeScript が怖いとは、これはナニかあるな 🤔 」 と思った私は、TypeScript First なライブラリである Zod を知人に紹介して、事の真意を確かめようとしたのでした。 怖いならもっと怖がらせてやろうと思ったのは内緒 🤫 しかし、知人に紹介するだけでは勿体ないので、今回は皆さんに知見を交えながら Zod の事を紹介していこうと思います

    TypeScriptのゾッとする話 ~ Zodの紹介 ~
  • ChatGPT相当モデルでWebサイトを爆速でチャットボット化できるようにしてみた!

    はじめに こんにちは、maKunugiです。meboという会話型AI構築サービスを開発・運営しています。 先日、ChatGPT相当の言語モデルである「GPT-3.5」を利用してチャットボットをノーコードで作れる機能を追加したところ、ありがたいことに多くの方に利用していただくことができました。 ChatGPT相当のモデルを使ったチャットボットをプログラミング不要で作れることは、かなり役立つことだと感じたため、腰を入れてさらなる進化に取り組んでおります。 そして今回は、ChatGPT相当の言語モデルを利用したチャットボットに、「Webサイトの情報」を吸収させるという試みについて紹介しています。ChatGPTの持つ課題を和らげ、独自のコンテンツを踏まえた会話をさせることができるようになるためのチャレンジです。上記の記事の続きになりますので、ぜひ合わせてお読みいただけると幸いです。 ChatGP

    ChatGPT相当モデルでWebサイトを爆速でチャットボット化できるようにしてみた!
  • AWS CDK ドキュメント(和訳メモ)

    AWS CDK ドキュメントの個人用メモ。最新を追従したりはしないつもりです。

    AWS CDK ドキュメント(和訳メモ)
  • ChatGPTは馬鹿じゃない! 真の実力を解放するプロンプトエンジニアリングの最前線

    はじめに ChatGPTをはじめとしたLLMを使いこなすための必須スキル、プロンプトエンジニアリング について解説します。 最近は動きが早すぎてキャッチアップが難しくなっていますが、特に以下のような手法が注目されているようです。 In-context Learning (ICL) Chain-of Thought (CoT) Zero-shot CoT ReAct Self-Consistency Program-aided Language Model (PAL) 今回は、6つのテクニックの中からPart1として、ICL、CoT、そしてZero-shot CoTの3つを紹介します。 これらのテクニックは、ChatGPTをはじめとするLLMのポテンシャルを最大限に引き出すために必要不可欠です。 さらに、各テクニックを詳しく解説した論文も紹介していますので、是非ご一読ください。 In-con

    ChatGPTは馬鹿じゃない! 真の実力を解放するプロンプトエンジニアリングの最前線
  • 「有能なバカ」ChatGPTを使って1週間でiOSアプリを公開する方法

    初めまして、にわとろです。 さて今回は、ChatGPTを使ってiOSアプリをイチから作ってみました。ChatGPTの記事なんてもうオーバーフローするほどあるのですが、今のところiOSアプリを最後まで作り通した記事はありません。 理由は簡単で、ChatGPTは「バカ」なのでiOSアプリなんて複雑なモノを完成させられないからです。 しかしバカも使いようです。上手く使いこなしてやれば、アプリだって作ることができます。ChatGPTはバカですが、有能なバカです。でもあなたがヤツをわかっていなければ、やっぱり無能のままです。だから、この記事を読んで理解してあげないといけません。 それじゃあ、ChatGPTと仲良くなりにいきましょう。 ChatGPTを使う極意 早速ChatGPTを使う極意を教えます。全部読み通せなくても、これだけは覚えてください。 いい上司になれ。 何を言っているかというと、Chat

    「有能なバカ」ChatGPTを使って1週間でiOSアプリを公開する方法
    asa_ca3
    asa_ca3 2023/03/13
    試してたらやってる人がいた
  • 「GitHub Actions × AWS」のトレーサビリティ向上委員会

    GitHub ActionsからAWSを操作できると便利です。OIDC(OpenID Connect)を使えばアクセスキーも不要で、セキュアに運用できます。しかし複数システムにまたがる特性上、トラブルシューティングは面倒です。そこで記事ではトレーサビリティを向上させ、メンテナンスしやすくする手法を紹介します。トレーサビリティが向上すれば、運用はもっと楽になります。 GitHub ActionsとAWSは赤の他人 当たり前ですが、GitHub ActionsとAWSはまったく異なるシステムです。何を言っているんだという感じですが、トレーサビリティの観点では重要です。なぜなら複数のシステムを扱うときは、トレースできるよう設計しないとトレーサビリティは生まれないからです。 GitHub ActionsやAWSに限らず、普通は他所様のシステムなど知ったこっちゃありません。このお互いに知らんぷりを

    「GitHub Actions × AWS」のトレーサビリティ向上委員会
  • コードレビューにラベルを付けるだけでチームの心理的安全性を高めた話

    ハコベルシステム開発部のおおいし (@bicstone) です。普段はフロントエンドエンジニアとして物流DX SaaSプロダクトの開発を行なっています。 この記事ではハコベルの開発チームが心理的安全性の向上を目的に採用した、プルリクエスト (マージリクエスト) コメントにラベルを付ける手法についてご紹介します。 背景 プルリクエストをレビューする時、レビュアーとして上から目線になってしまい相手を傷つけないか緊張したり、ちょっとした確認のつもりで書いたコメントが修正必須と捉えられてしまったりした経験はないでしょうか。 来、ピアレビューは対等な関係であるはずなのに、レビューする側の方が上になってしまいお互いに恐縮してしまいがちです。「勘だと怪しいけど間違っていたら怖いから言えないな」や、「将来的に辛くなりそうな実装だけどわざわざ指摘するほどでもないな」など荒波を立てずにApproveしてしま

    コードレビューにラベルを付けるだけでチームの心理的安全性を高めた話
    asa_ca3
    asa_ca3 2023/03/07
    なんとなく付けてたけど、明文化して書きやすくしようと思った
  • やはりお前らの「公開鍵暗号」はまちがっている。

    ※タイトルの元ネタは以下の作品です。 はじめに この記事は、公開鍵暗号の全体感を正しく理解するためのものです。数学的な部分や具体的なアルゴリズムは説明しません。気になる方は最後に紹介するオススメ書籍をご覧ください。 少し長いですが、図が多いだけで文字数はそこまで多くありません。また、専門的な言葉はなるべく使わないようにしています。 ただしSSHやTLSといった通信プロトコルの名称が登場します。知らない方は、通信内容の暗号化や通信相手の認証(人確認)をするためのプロトコルだと理解して読み進めてください。 公開鍵暗号の前に:暗号技術とは 公開鍵暗号は暗号技術の一部です。暗号と聞くと、以下のようなものを想像するかもしれません。 これは情報の機密性を守るための「暗号化」という技術ですが、実は「暗号技術」と言った場合にはもっと広い意味を持ちます。まずはこれを受けて入れてください。 念のため補足して

    やはりお前らの「公開鍵暗号」はまちがっている。
  • ChatGPT の GPT-3 API を使って Slack bot を作ってみた

    背景 ChatGPT を皆さんは既に活用しているでしょうか。 ChatGPT が利用するAPIと一般公開されている GPT-3 API は異なるものですが、兎に角性能が高いので皆さんにも使って頂きたいという思いで SlackApp で使えるようにしてみました。 概要 目指すアーキテクチャ ⇒ 流れは数字の通りで、登場人物としては以下の4つです。 Slack(SlackApp) SlackApp は Event Subscriptions により bot へのメンションイベントをフックして Lambda にコメントを送信します。 Lambda Slack コメントを受け取り、最初に GPT-3 API にそのままコメントを送信、そのレスポンスを SlackAPI に送信します。 OpenAI(GPT-3) Lambda からコメントを受信し、GPT-3 のエンジンが回答を返します。 Slac

    ChatGPT の GPT-3 API を使って Slack bot を作ってみた
    asa_ca3
    asa_ca3 2023/02/22
     最後にニッコリした
  • Python x DDD x Clean Architecture

    はじめに PythonでDDDでクリーンアーキテクチャで実装してみました。 良くも悪くも、"Pythonでは"あまりネット上で見かけない構成になったので共有しようと思います。 つくったものは、めちゃ簡単なTodoアプリです。 経緯 DDDについて全く知らないので、とりあえずPythonで軽量DDDやってみよう ついでにクリーンアーキテクチャも全く知らないのでコレもやろう という軽い気持ちで始めました。 参考 nrslibさんの記事を最も参考にさせていただきました。 (というより、実装していくとほぼPythonに書き直しただけのようになりました) 使用ライブラリ 今回作成したものは使用ライブラリに大きく依存するため、先に使用ライブラリを記載しておきます。 DDDのため 今回、メインで紹介する部分です。 pydantic 型チェックや設定管理に富んだライブラリ 個人的にすごくお気に入り inj

    Python x DDD x Clean Architecture
  • GraphQLが解決する問題とその先のユースケース

    サーバーサイドからみたGraphQL Serverlss Meetup#19 2021/03/31 に行われた Serverlss Meetup#19 で上記のタイトルで登壇してきました。サーバーサイドの話をしようと思ったけどGraphQLの解決している話をしようと思ったらクライアントの事もかなりはいってしまったので記事のタイトルは変えました。 以下内容です。記事の最後に資料を書くにあたって参考になった資料のリンクを置いてます。 GraphQL and me この1年書いたQiita記事 GraphQLの特徴を分解する ~API インターフェース・Universal BFF・API Gateway~ GraphQLはサーバーサイド実装のベストプラクティスとなるか GraphQLの全体像とWebApp開発のこれから 今回話す事 そもそもGraphQLはなんで作られたのか、何を解決しようとして

    GraphQLが解決する問題とその先のユースケース
  • Slack APIをPython SDKで使う

    Python Slack SDKを使ってSlackにメッセージを送ってみた。Slack Appに触るの久しぶりなのでいろいろ変わってた。 準備: Slack Appを登録する 詳細な説明は省きます。 https://api.slack.com/apps からCreate New Appから作成 OAuth & Permission に移動 -> Scopeから Bot Token Scopeを追加 chat:write.public を追加。これでメンバーでないchannelにも書けるようになる 上のほうのinstall to workspace で使えるようになる Bot User OAuth Access Tokenをコピーして.envなどに記入しておく 使うAPIによってはOAuth Access Tokenが必要 Slack APIのクライアントを作る slack_sdk をインス

    Slack APIをPython SDKで使う
  • 話題のStable Diffusionがオープンソース化されたのでローカルで動かしてみる

    話題のStableDiffusionがオープンソースで8/23に公開されたので、手元のマシンで動かすまで試したいと思います🖼 (下記に記載していますが、自分の環境だとVRAMが不足しているエラーが出てしまったのでイレギュラーな対応をしています🙏) ※ ↑追記 コメント欄にて、 @kn1chtさんが紹介してくださっているように、マシンのVRAMが10GB未満の環境では半精度(float16)のモデルがオススメされています。 記事では、別の最適化されたものを紹介していますが、こちらの利用も検討してみると良さそうです👉 https://zenn.dev/link/comments/7a470dc767d8c8 StableDiffusionがどんなものかは、深津さんの記事が参考になります。 1. 環境 Razer Blade (RTX 2070, VRAM 8GB) CUDA Toolk

    話題のStable Diffusionがオープンソース化されたのでローカルで動かしてみる