2024-07-09 Platform Engineering Kaigi 2024 https://www.cnia.io/pek2024/
ChatGPT APIのChat Completion APIを用いて、チャットの入力に対してその回答をレスポンスで返してくれます。 このチャットの入力に過去のチャットの内容を含めることで、過去の内容を前提とした回答を行うことができますが、これを実現するには、過去のチャットの内容を永続化しておく必要があります。 ユーザーインターフェースとしてLINE(LINE Messaging API)、LINEからの処理受付とChatGPTへのリクエスト、チャット内容の永続化をCloudflareを使って、過去の会話を覚えてるLINEボットを実現することができました。 本記事では、Cloudflare側の構成について紹介します。 [ChatGPT API][AWSサーバーレス]ChatGPT APIであなたとの会話・文脈を覚えてくれるLINEボットを作る方法まとめのCloudflare版の内容になりま
どうも、初めまして。 tokeと申します。 今回は自分の失敗談を話したい、と思います。 実装する前にドキュメントを読まないと、最後になってゴールに辿り着けない可能性がある そういう経験をしたのでご紹介します。 例えば、自社で集めた顧客のデータを活用し、Marketoにデータ連携したいとします。 marketoのAPIドキュメントを調べると、顧客の情報を登録する手段では以下の2パターンがあります。 POST /rest/v1/leads.jsonを使うパターン 以下のドキュメントにあるPOST /rest/v1/leads.jsonを使って、顧客のデータを送信し、連携する事ができます。 https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/leads [※Marketoで
2023/05/05 追記 v13.4.0 をもって App Router は安定版になりました! https://nextjs.org/blog/next-13-4 公式ドキュメントもベータ→正式版にマージされました。 内容が充実してきている様子ので、そちらを確認してください。 https://nextjs.org/docs 加えて、公式ドキュメントの改善で分かったポイントもいくつか修正しています。 Next.js v13 から App Router 機能 (app ディレクトリ) が新しく追加されました。 (v13.3.0 現在はベータ版です。 v13.4.0 をもって安定版になりました!) ファイルベースの Layout 機能 処理の一部を Server Component に移しバンドルサイズを削減できる 例: remark を利用した Markdown のパース が有名なところだ
GitHub、あなたの会社にオープンソース担当部門「Open Source Program Office」を立ち上げて機能させるためのドキュメント群をオープンソースで公開 ソフトウェアの開発や運用において、さまざまなオープンソースが重要な役割を果たすようになってきており、現在ではオープンソースを抜きにソフトウェア開発や利用を行うことがほとんど困難な時代になってきました。 オープンソースと適切に関わり、活用や推進をしていくことは、ソフトウェアに関わる企業にとって(それ以外の企業にとっても)戦略的に取り組むべき事項になってきているといえます。 そうした中で「Open Source Program Office」(OSPO)と呼ばれる組織への注目が少しずつ高まっています。 一般的にOSPOとは、企業のオープンソース戦略の策定と実行といった大きなものから、社内でのオープンソースに関する啓蒙と推進、
はじめに 本記事では、Kubernetesで実現するマルチテナントについて、2020年9月時点での現状と、将来的に利用できるであろう機能の紹介をいたします。各機能についての詳細は、参考ドキュメント等を参照していただければと思います。 本記事の要点 マルチテナントは単一のクラスター上に複数のテナントを共存させることを指す。 Kubernetesにはマルチテナントを実現するための機能が備わっている。 アクセスコントロール:RBAC セキュリティ:Namespace / Network Policy / Pod Security Policy リソースの隔離:ResourceQuota / LimitRange / Affinity / Taintなど Kubernetesのマルチテナント機能は、SIGを中心として機能開発が進められている。 Benchmarks Tenant Controlle
概要 Word や Excel でのドキュメント作成を回避し、なるべく生産性高く、かつ、OS 環境依存なく、すべて基本無料で構成できるツールで、Markdown ベースで設計書を作成することを考えてみます。 GitHub 上で閲覧できる形でドキュメントを作成することを前提に、VSCode(+プラグイン)を用いて、テキスト文書、表(テーブル)、図(構成図など)、キャプチャ、などをスピーディに作成し、PullRequest ベースで運用していけるように、プラグインを構成および、レギュレーションを作成してみました。 GitHub の README.md や Wiki に書いて使えるかと思いますので、併せて markdown 形式および、vscode のプラグイン推奨設定ファイル形式でも載せておきます。 もし、もっとこのプラグインを使うと良い、などアイデアなどありましたら教えていただけると幸いです
ドキュメントツールのインストール(Windows) Macの場合の設定方法は、本項の後に記載 PowerShellの起動 各種ツールをインストールするため、PowerShellを管理者として実行 Windowsボタンを押下 powershell と入力 右クリックで管理者として実行 を選択します Chocolateyのインストール 本手順は前述で起動したPowerShellを利用 1.Chocolatey のサイトにアクセスし、インストールコマンドをクリップボードへコピー 2.前項でコピーしたコマンドをPowerShellにペーストして実行します Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServiceP
概要 定型的な システム開発 では以下のような設計書が使われる。 システム要件定義 システム方式定義 ソフトウェア要件定義 ソフトウェア方式設計 ソフトウェア詳細設計 しかしそれ以前に 開発者目線、開発者発信で顧客に提案する概要資料を作りたい ケースがある。あるいは就職活動時の自身のポートフォリオを採用担当に説明することも同様かもしれません。 オードリー・タンがコード書く前にまずreadme.txtを書く話、Yahoo!がプロダクト開発の最初にプレスリリースから作る話、自分が前職で商品企画する際にまず広告から考えていた話、どれも明確なゴールイメージをまず確定させて必要要件を定義していくという意味で全部共通の考え方 — 菅俊一 / Syunichi SUGE (@ssuge) February 2, 2021 なんて話も。 技術とマーケティングのちょうど中間、開発者と顧客との意思疎通の橋渡し
個人的に、組織の透明性というものに関心を持っている。自分にとって大切なことだし、組織にとっても大切だと思っている。 この記事では、透明性に対する現時点での考えを書いていく。今の自分の頭のなかのスナップショットのようなものなので、あまり整理されていない。 大きく分けて、なぜ透明性が大切なのか、そして透明性を実現するために大切だと思っていることについて、書いていく。 透明性とは何か、透明性が高いとは具体的にどういう状況のことなのか、といった話は扱わない。取り敢えず、情報や意思決定のプロセスがオープンになっており誰でも制限なくアクセスできる、くらいの意味で書いている。本当はそれだけでは不十分で、情報のメンテナンスやサマライズ、適切な通知やアナウンス、なども必要になってくるが。 なぜ透明性が大切なのか 透明性に問題があると何が起こるのか、という角度から述べていく。 モチベーションが下がる もしかし
最近、酢を飲むと健康に良いという話を聞き、頑張って毎日飲んでいるkonnoです。 何となくですが、朝の目覚めは良くなっている気がしますよ! 今回はデータベース設計に欠かせないER図を、ChatGPTを使ってDDL(Data Definition Language:SQLのデータ定義言語)から簡単に作成できるのか試してみたいと思います。 サンプルとなるDDLを用意 DDLのサンプルとして、以下のMySQL公式サイトで公開されている従業員データベースを利用します。 dev.mysql.com 従業員データベースに必要なファイル類一式は、上記サイトで紹介されている以下のGithubリポジトリから、 "test_db-master.zip"としてダウンロードできます。 github.com ダウンロードしたtest_db-master.zipには、従業員データベースを設定するために必要なDDLとし
週に一度まとめて更新のようなパターンだと、体調が悪いときなどにその週はスキップされ、また次の週も更新しようとして偶然タイミングが合わなかった場合などに、1ヶ月更新が止まるみたいな状態は起きやすいです。 1ヶ月更新を止めてしまうと、そこで更新する習慣が失われて、この書籍でいう逆戻りが起きるのかなと思っています。 そのため、JSer.infoではタスクを細分化して進められる時にやっていけるような形を作っています。 ライブラリのメンテナンスのリズムをツール化する JavaScript周りは顕著ですが、ライブラリが細かく分かれていることが多いため、リポジトリの数も多いです。 そのため、リポジトリのCI設定や依存ライブラリのアップデートなどをメンテナンスするだけで無限の時間がかかります。 このメンテナンス作業を手動で毎回やるととても疲れるので、自分の場合はツール化していることが多いです。 作ったり、
📌 Notionとは 簡単にいうと高性能なWikiに強力なデータベース機能が組み込まれたものです.基本はページを作成して,そのサブページを作っていく感じです.ただ,Notionはかなり直感的にコンテンツを作れます.テキストだけではなく,表や画像などかなり扱いやすいです.例えば,2段や3段といった段組が簡単に行えるし,Markdown 方式でもサクサク書けるのはとてもいい感じです.また,外部サービスとの連携も充実してきていて,さまざまなコンテンツをページに埋め込むことができます. 単純なプロジェクトのドキュメントなどでは Wiki のような運用で問題ないと思いますが,さまざまなコンテンツを含むナレッジベースのようなものを構築する場合には,Wiki ベースの管理方法は上手くいかないことはすでに分かっているので,Wikiのように使っていてはダメだと考えます.あくまで,個人的な意見です.それでは
この時はそれぞれ単独のプロンプトで小説家と編集者を演じさせましたが、今回はもうすこしシステマチックに、段階を踏んで小説を生成させてみます。 プロンプトの検討等にはkgmkm氏のリポジトリや記事を参考にさせていただきました。この場を借りてお礼申し上げます。 仕組みを相談するのにClaude (3.5 Sonnet)とやり取りをしていましたので、この記事の草稿も書いてもらいました。所々、なんとなく冗長だったり文体が違ったりしますが、面倒なのでそのままにしてあります(すみません)。 生成スクリプト生成スクリプトとプロンプト定義はgistに置きました。 https://gist.github.com/kohya-ss/68d41a9720bfbdfd87869ec970142f4b 概要近年、大規模言語モデル(LLM)の発展により、AIによる文章生成の可能性が大きく広がっています。今回はローカル環
はじめに 僕の前職は外資系企業でした。 その当時、アメリカ本社からときどき送られてきた社内アナウンスメールのフォーマットがなかなか良かったので、今でもときどき使っています。 特に、このフォーマットは何かをお知らせするだけでなく、社員に何かしらのアクションをお願いするときに有用です。 というわけで、このエントリではこのメールフォーマット(記述スタイル)を紹介します。 「何が起こりますか?対象者は誰ですか?何をしなければなりませんか?」スタイルのアナウンスメールの記述例 どんなフォーマットなのかというと、「何が起こりますか?対象者は誰ですか?何をしなければなりませんか?」を見出しに書いて、本文を埋めていくフォーマットです。 たとえばこんな感じです。 社員各位 ○○○○○の計画メンテナンスについてお知らせします。 以下の内容を確認してください。 何が起こりますか? 2020年1月11日(土)15
PDFやWord、Excelファイルを読み込み、レイアウトなどはそのまま内容だけを翻訳。Google Translation APIに新機能 Googleは、機械学習を用いて翻訳を行う「Translation API」の新機能として、PDF、Word、Excel、PowerPointのファイルを読み込み、レイアウトなどを保ちつつ内容だけを別の言語へ翻訳して出力する「Document Translation」を発表しました。 With Translation API Advanced, translate documents in100+ languages & formats such as Docx, PPTx, XLSx & PDF while preserving document formatting. Learn more about this new feature added
MermaidDiagramming and charting tool JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.
サバイバルTypeScriptは有志で執筆を進めているTypeScriptのOSSドキュメントです。 今回、サバイバルTypeScriptのドキュメントをベースにTypeScriptに関する質問に答えてくれるGPTsを作成・公開しました✨ この記事ではGPTs公開の背景や作成手順、現状の課題などをまとめています。 GPTs公開の背景 LLMによるドキュメント検索は近い将来(既に?)一般的になると思い、サバイバルTypeScriptでも実験的にチャットボットでの情報アクセスを作成・公開しました。 ドキュメントの情報アクセスの課題 ドキュメントが多くなると、目次やサイトマップ、サイト内検索だけでは必要な情報にアクセスするのが困難になる。 チャットボットのメリット 雑な質問でも意図を汲んで、知りたい情報にアクセスしやすい 内容を要約して説明してくれるので、手軽に情報にアクセスできる 回答の信頼性
こんにちは id:masutaka26 です。夜の散歩(意味深)に勤しむ毎日です。 フィードフォースではドキュメント共有ツールには esa と Google ドキュメント1を、コミュニケーションツールには Slack を採用しています。 情報共有はかなり活発で、2021/2/1 現在の esa 記事数は 81,324 です2。 現在のカテゴリ構成と課題 チームのスピードを上げるための大原則 チームのスピードを上げるための情報整理 1. Flow 型と Stock 型の記事を理解する 2. 基本は Flow 型の記事にする 3. 議事録カテゴリは出来るだけ作らない 4. Slack に流れていく情報も Flow 型の記事にする 5. 使い続けられる情報を Stock 記事として引き上げる 6. 整理を頑張らないことで整理の難易度が低くなった 7. esa を全ての情報の起点にする それをチー
フレームワーク「Svelte」「Solid」が話題。画期的だった仮想DOMと脱仮想DOMへの流れ 2024年4月8日 執筆 山内 直 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)に所属するテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。著書に『Bootstrap 5 フロントエンド開発の教科書』、『作って学べるHTML+JavaScriptの基本』など。 監修 山田 祥寛 静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表
3/30 に X で Terraform がトレンド入りしていて何事かと思ったら Terraform が公式ドキュメントとしてスタイルガイドを出したようです。 Terraform Style Guide いままで Terraform のスタイルに関して信頼できるドキュメントといえば Google Cloud の Terraform を使用するためのベスト プラクティス ぐらいしか知らなかったのですが、 Terraform 公式がようやく出してくれてありがたい限りです。 これでわざわざ社内の Terraform 規約を設けずとも「公式ドキュメントに従いましょう。」の一言で済みます。 ということで一通り読んだのでまとめました。 原文だと構文の簡単な使い方なども書いてありますが以下の要約ではだいたい省略しています。 詳細は原文を読んで確認してください。 要約 スタイルガイドについて コードのスタ
はじめに やっぱりwebpackがわからない(エピソード1)、エピソード2を公開しているのですが、そもそもnpmからわからない、という人もいると思いますので、今回はnpmに関して説明します。 なお、やっぱりwebpackがわからないではViteに関して触れていますが、Node.jsもDenoという新しいランタイム環境が登場しています。ですが、やはりまだ開発現場で使用するには難しいと思いますので、Node.jsを使用するうえでnpmはちゃんと理解しておいた方がいいです。 npmとは npm とはNode.jsのパッケージを管理するシステム、所謂パッケージ管理システムです。アプリケーションを作成する際、便利なパッケージをそのプロジェクトにインストールして、使用することができます。 ところで、パッケージとは一体何なのでしょうか? パッケージとは システム開発ではモジュール、パッケージ 、ライブラ
はじめに 自分が読んだ本や記事などを読む時に書いたノートを体系的に管理したいですよね。 現在優秀なナレッジマネジメントツールはありふれています。企業向けだと Confluence DocBase Qiita Team などがあります。個人向けは Notion HackMD Boost Note のようなシンプルで使いやすいツールがあります。マインドマップツールをさらに含めると数え切れません。 筆者自身はミニマリストです。 コードのようにGithubで自分のノートを管理したい Webからマインドマップ形式になっているノートを確認したい サブスクではなく、無料で使いたい なので、個人ナレッジマネジメントツールを自作したいという発想に至りました。 結果としては下記の15行シェルスクリプト、GitHub ActionsとMarkdownマインドマップ変換ツールmarkmapで作りました。 項目をク
GMOペパボ株式会社は、「インターネットで可能性をつなげる、ひろげる」というミッションのもと、レンタルサーバーやドメインの取得、ホームページやネットショップの作成、ハンドメイド作品の売買やオリジナルグッズを在庫を持たずに販売できるサービスなど、多様な事業を、多様なブランドで展開しています。このマルチブランド戦略は、個性的なペパボのサービスを特徴づけるだけでなく、市場を確保しつづけるリスクヘッジとしても機能する一方で、サービスを超えてデザインを展開するのが難しいという側面もありました。 そこで、ペパボでは、各サービスが個別に考えていているようなデザインの原則やガイドライン、その実装としてのカラーパレットやコンポーネントライブラリなどのアセットのうち、重複しているものをすべてのサービスで使えるように一般化した、共通基盤デザインシステムを開発することにしました。ペパボでは、この共通基盤デザインシ
グラフモデルとSoEとGraphQL / TECH STAND #7 GraphQL 2022/03/03 に行われた stand.fmさん主催の TECH STAND #7 にて上記のタイトルで登壇しました。 今回の内容は GraphQLの採用を検討するにあたって、RESTとの違い、BFFとの違いをデータの観点から言語化したかった Hasuraが良いという意見と, Apolloやgraphql-ruby, gqlgenなどのハンドライティングなGraphQLが良いという意見の違いがどこから生まれているかの考察がしたかった データ指向アプリケーションデザイン(2017年リリース)にSoEやGraphQLへの言及がないため, 今だとこういう内容が書かれているんじゃないかという考察がしたかった をモチベーションに調査・検討しました。 発表のハイライトはこちらです。 以下発表内容です。一部発表時
軽く読んだだけですが,研究者・院生にとってもそうですし,学部生でもPCで様々なものを整理するという点から役に立ちそうだと思いました。 概略版と呼べそうな動画もあるのでそちらを先に見るのもよさそうです。 全体の構成は次のとおりです。 第1章 イントロダクション 第2章 研究データ管理の方針決定 第3章 研究データの整理法 第4章 研究データの保存 第5章 研究データの公開 「イントロダクション」よりいくつかとても参考になったことを記しておきます。 フォルダ構造やファイル命名法があるこのドキュメントは例えばフォルダ組織化やファイル命名法といった普段なかなか説明しないところまで目配りされている点が大きな特徴と言えるでしょう。例えばフォルダ組織化は次のようなスライドが用意されています。 「はじめよう、研究データ管理」第3章よりどれも「当たり前」と思うかもしれませんが,徹底することはけっこう努力が必
サーバーレス連載の3回目は検索エンジンを作ってみたお話です。 クラウドサービスが充実してくるにつれて、サーバーレスではいろいろなことができるようになっています。HTTPサーバーは動きますし、RDBやNoSQLなストレージも使えますし、PubSubみたいなサービスも利用できます。これらを駆使するとそこそこ複雑な処理も記述できます。 一方で、上から下までサーバーレスにしようとするとできないものもいくつかあります。例えば、RDBも使えるといっても制約があり、LambdaやCloud FunctionsからRDSやCloudSQLを雑に使うとコネクションを張りすぎる問題があります。LambdaにはRDS Proxyが出始めています。あと、RDBそのものは基本的に常駐型なのでサーバーレスではないです。一応サーバーレスなのもありますが、起動時間が結構かかるらしい(自分ではまだ試してないです)。それ以外
import "@typespec/http"; using TypeSpec.Http; model User { id: string; name: string; birthday?: utcDateTime; address: Address; } model Address { street: string; city: string; state: string; zip: string; } @route("/users") interface Users { list(@query limit: int32, @query skip: int32): User[]; create(@body user: User): User; get(@path id: string): User; } openapi: 3.0.0 info: title: (title) versio
弊社では開発工程の上流である「要件定義、基本設計、詳細設計」において必要となるドキュメント標準が定義されております。本稿では「ドキュメント標準」の一部をご紹介しますので、是非ご参考にしてください。 各工程で必要なドキュメントを定義しましょう 下記のように工程ごとにドキュメント成果物、内容を定めております。 どの企業でも必要なドキュメント成果物になりますが、必要に応じて追加・削除頂ければと思います。 ※業務系のシステム開発に照準を当てております。 要求分析(要件定義) システム開発は要求分析(要件定義)というプロセスから始まります。要求分析(要件定義)は、顧客の要求を把握してシステム要件を確定することです。主に以下のような事項をまとめます。 要求概要 システムの目的 現状の課題と改善案 基本要件と優先順位 到達目標 システムの実現手段 システム化の範囲 概略費用 効果(定性/定量) 体制図
新人教育/通常オペレーション/イレギュラー対応などのマニュアルの作り方について、「チーム作り」という人事の視点を交えて、弊社で大切にしていることをご紹介します。 弊社が提供している「現場向け動画教育システム tebiki」の重要な機能の一つはマニュアル作成で、まさにこの記事で書いたエッセンスを活かしてプロダクト開発しています。 ※tebikiは動画がメインで、現場が苦労してテキストで作っていたマニュアルを動画に置き換えるサービスです。弊社の社内マニュアルは、UIの参考にしたいこともあって、Googleドキュメント、esa、そしてもちろんtebikiの3種類を使い分けています。 本記事のスクショはすべてGoogleドキュメント。 ( 貴山 @tkiyama ) 「マニュアル」とは 一般にマニュアルというと、電気製品の取扱説明書みたいなものをイメージする人が多いと思いますが、弊社では、基本方針
はてなブックマークチームの id:itchyny です。 チームのメンバー間で知見を共有することは、とても大事なことです。 特に開発エンジニア同士のコミュニケーションを増やし、お互いに足りていない知見を共有し合うことでチームの生産性を向上することは、プロダクトの成長につながります。 プロダクトの実装や設計の知見を共有するためによく取られる方法として、詳しい人が講義形式で教えるというスタイルがあります。 特に、チームに新しいメンバーが入ったときには、プロダクトの概要やコードのアーキテクチャについて説明することは一般的に行われています。 講義形式で教えるというスタイルはよく行われる方法でありながら、いくつかの課題があると感じています。 まずは説明会に参加するメンバーが、どうしても受け身になってしまいます。 説明された瞬間は分かったような気になっていても、次の週には忘れてしまうことはよくあること
グラフストックは誰でも無料で使えるグラフや図表の素材サイトです。企業の決算情報や官公庁の統計などのグラフが利用できます。文章を発表する人たちが、より客観的なデータを引用できる世界を目指します。
はじめに 「研究用のプログラムにもテストコードやドキュメント書いたほうがいいよね。」 「分かっちゃいるけど、そんな面倒なことやってられないよ。」 という研究者あるあるを解決すべく、僕が普段実践している開発スタイルを紹介します。 この開発スタイルのすごいところは: テストやドキュメントを一切書かない場合と比べて 追加の工数がほぼゼロ。 普通にコーディングしているだけで、いつのまにかテストコードとドキュメントまでできあがっている。 実装、コメント、テスト、ドキュメントが自然に同期するので、保守しやすい。 Pythonを例に紹介しますが、コメント内にテストを書けるツールと、コメントからドキュメントを生成できるツールをもつ言語ならばどれにでも応用できるはずです。 この開発スタイルに至った背景 ソフトウェア開発において、テストコードやドキュメントを整備することでプログラムの品質が向上することは広く知
(記事は2022年1月に更新) ・ 実装効率を上げたい ・ プログラミング学習の総復習をしたい ・ 世の中に溢れるチートシートを知りたい この記事はそんな方に向けて書いています。 チート集というのは、プログラミングの実装でよく使われるコードが、わかりやすくまとめられているものです。 チートシートを使うことで、効率的にコードの実装を進めることができます。 今回は世の中に出回っている、有益なチートシートを4選を使い方とともに紹介します。 この記事を読めば、でネット上に散らばっている『主要のプログラミング系チートシート』を網羅することができます。 過去にTwitterで紹介した、チートシートも徹底解説します。 全エンジニア必見✨ vscodeのショートカットがまとまってる『チートシート』。ショートカットを使うことで大幅に生産性上がるので重宝。最初はこれでカンニングしつつ、使っていく中で手で覚える
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く