タグ

ブックマーク / future-architect.github.io (45)

  • 署名付きURLを利用したファイルアップロードWeb API設計の勘所 | フューチャー技術ブログ

    はじめに現代のWebアプリケーションにおいて、ユーザが写真や動画などのファイルをアップロードする機能は、しばしば求められます。 記事では、ファイルアップロードを実現するための一手段として、「署名付きURL」を利用した方式を取り上げ、その設計について詳しく解説します。 今回は、Amazon Web Services(AWS)を利用する前提のもと、このアプローチを探求していきます。 前半部分は署名付きURLをそもそもよく知らない方向けの導入部となっていますので、要点だけ抑えたい方は設計上のポイントから読まれることをお勧めします。 ファイルアップロードの実現方式パターン署名付きURLの話をする前に、ファイルアップロード機能をWeb APIとして実現する方式について、いくつか代表的なものを紹介します。 Pattern 1. multipart/form-datamultipart/form-da

    署名付きURLを利用したファイルアップロードWeb API設計の勘所 | フューチャー技術ブログ
    progrhyme
    progrhyme 2024/07/07
  • 個人的docker composeおすすめtips 9選 | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめにみなさん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 この記事ではある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用docker-composeではなく docker composeコマンドも利用可能になっています。 Docker Desktopでは v3.4.0から利用可能で、基的にはコマンドの互換性あります。 ファイル監視による自動更新docker compose 2.20.0からCompose

    個人的docker composeおすすめtips 9選 | フューチャー技術ブログ
    progrhyme
    progrhyme 2024/06/21
  • AirPods Proで頭の角度を検出し、リアルタイムにキャラクターを動かす | フューチャー技術ブログ

    はじめにHealthCare Innovation Group(HIG)1の橋です。 先週末注文していたAirPods Pro第2世代が今日手元に届きました! 約4年間使っていたAirPods Pro第1世代の調子が悪くなってしまったため、買い換えました。 せっかく新しいAirPods Proが届いたので、なにかできることないかな〜と思いながら、AirPods Proの機能一覧を見ていました。 私はその中の一つ、空間オーディオ機能でヘッドトラッキングしていることに目をつけ、頭の角度の取得をしてみました。 環境OS: macOS Sonoma 14.5Xcode: 15.4 (15F31d)Swift: 5.10AirPods Pro(第2世代)※ 空間オーディオ機能搭載端末 AirPods(第3世代)、AirPods Pro(全世代)、AirPods Max (参考URL: AirPod

    AirPods Proで頭の角度を検出し、リアルタイムにキャラクターを動かす | フューチャー技術ブログ
    progrhyme
    progrhyme 2024/06/05
    おー、こんなことできるんだ💡
  • Real World HTTPの第3版ができあがりました | フューチャー技術ブログ

    https://www.oreilly.co.jp/books/9784814400669/ ひとえに読者の皆さんが買ってくれたおかげで、Real World HTTPを改訂し、このたび3版を上梓しました。ありがとうございます。2016年ごろから書き始めて、2017年に初版を出版したので、執筆段階からすると8年ほど経過しているのですが、これだけ長くこのに関わり続けられるというのは、書を買ってくださるみなさまのおかげです。 今回は、ひさびさに無料のミニ版も更新しました。日、このブログと同時にリリースしました。よりミニ版が学習コンテンツとして使いやすくなるように、そもそもブラウザってどんな動きをするの?というイントロの章をミニ版とオリジナル版に追加しました。 また、オリジナル版だけになりますが、HTTPが単なるブラウザとの通信を超えてプラットフォーム API化していっている流れに合わせて

    Real World HTTPの第3版ができあがりました | フューチャー技術ブログ
    progrhyme
    progrhyme 2024/05/13
    おめでとうございます👏
  • 登録プロダクトオーナーを取得しました | フューチャー技術ブログ

    2年前にスクラムマスターを取得しましたが、今後スクラムプロジェクト運営をしていきたい、DXチームを社内で組織化して手綱を握っていきたいのでプロダクトオーナーを自分たちでやっていきたいというお客さんが増えてくるだろうな、ということでそういうお客さんの支援をしっかりしていけるように知識をアップデートしようということで参加してきました。前回、Scrum Inc.版のスクラムマスターをとったので、同じScrum Inc.版のプロダクトオーナー研修を受けました。 認定スクラムマスターの資格を取得しましたスクラムマスター研修との違い前回受けたスクラムマスターの講習の構成とだいたい同じで、4H程度のスプリントが4回で、2日間の研修があり、最後にオンラインの試験を受けて認定を取得という感じです。内容も、無料で公開されているスクラムガイドで説明されているプロセスをベースにプロダクトオーナーに特化したトピッ

    登録プロダクトオーナーを取得しました | フューチャー技術ブログ
    progrhyme
    progrhyme 2024/05/12
  • 2024年Gitワークフロー再考 | フューチャー技術ブログ

    春の入門祭り2024の2記事目です。 Gitは、出自としては1週間で作られたLinuxカーネルのための分散バージョン管理システムでした。当時のワークフローに合わせてパッチをテキスト化してメールに添付できるような機能だったりが備わっています。 一方で、現代のGitは、デファクトスタンダードなバージョン管理システムになりLinuxカーネル以外のアプリケーション開発で利用されています。分散バージョン管理ではあるものの、サーバー・クライアント型の使われ方をしていて、GitHubGitLabを核にして、ローカルで作ったブランチをpushして、Pull Requestの形にして管理しています。少なくとも周りで見る限りでは、それ以外の使われ方の方が少なくなってきてます。そんなこんなで求められている使われ方が変わってきていて、それに合わせた機能がぼちぼち増えています。それを活用することで、ウェブ画面上で

    progrhyme
    progrhyme 2024/04/11
    そういう流儀もある、と。
  • 土地勘に頼らずに地の利がある場所をみつける方法 | フューチャー技術ブログ

    記事は「秋のブログ週間2023」2週目の記事です。 はじめに旅行をするときや引っ越しをするとき、周辺の商業地域や、観光地にアクセスのよい「地の利」のある場所を探したいですよね? 「地の利」がある場所を探すには、インターネットで調べるか、長らくその地域に住んでいて土地勘のある人に聞くのが一般的ではないでしょうか。 今回は、数理的なアプローチで「地の利」の良い場所を見つける方法を紹介します。 「地の利」とは”地形や土地の位置が、ある事をするために有利な条件を備えていること”です(引用:コトバンク)。記事では単純に、他の場所へ行きやすい「アクセスが良い場所」のような意味で使っております。記事は都市と地域を数理的に分析する楽しさを伝えたいという気持ちと、共著『スマートモビリティ時代の地域とクルマ』を手にとってくれる方が一人でも増えるといいなという邪な気持ちで書いております。 地利値とはアクセ

    土地勘に頼らずに地の利がある場所をみつける方法 | フューチャー技術ブログ
    progrhyme
    progrhyme 2023/11/08
    面白い。地利値はどうやって求めたんだろう?
  • 設計ドキュメント腐る問題、Git管理で運用してみた結果 | フューチャー技術ブログ

    はじめにTIG真野です。 秋のブログ週間2023 の3目は、設計ドキュメントをGit管理して腐らせないようにがんばってみた話をします。 前段として6年前、「我々はいかにシステム開発におけるドキュメント腐る問題と戦えば良いのか」という記事を書いたのですが、その後の試行錯誤はどこにも残していないことに気づきました。普段のフューチャー技術ブログですとちょっと引け目を感じるテーマですが、秋の夜長を楽しむため読み物成分を多めに書くというテーマのこのブログリレーにピッタリな気がするため、この機会をお借りします。 ドキュメントも色々な種別があるかと思いますが、この記事では設計ドキュメントを指すことにします。設計ドキュメントは開発メンバーが参照するもので、ステークホルダーへの説明資料に引用して使うことはあれど、主目的は異なるという前提です。Design Docの場合もありますし、システム構成図、ERD、

    設計ドキュメント腐る問題、Git管理で運用してみた結果 | フューチャー技術ブログ
    progrhyme
    progrhyme 2023/11/02
  • 腰痛と闘うプログラマー | フューチャー技術ブログ

    秋のブログ週間2023の1日目です。 はじめに※この記事やこのを読んだからと言って自身で診断を行わず、まずは整形外科などの医療機関にて診断を受けて、医師の方と治療方針を決定しましょう。また既に治療中の方は、取り組む前に一度医師や理学療法士の方と相談しましょう。 腰が痛くて仕事にならない、プログラマーこそが天職なのにこの痛みと一生付き合っていかないといけないのか…と思っている方は結構多いのではないでしょうか? かく言う自分も腰痛持ちで、20代前半で椎間板ヘルニアと診断されました。当時はヘルニアが神経を圧迫し歩くのもつらい時期もありましたが、通院によってなんとか回復しました。 しかし完全にはよくならず、残りの人生全てを腰を気にしながら生きないといけないのか、、、と絶望しておりました。 そんなこんなで腰痛人生を送ってきたわけですが、ケリー・スターレット式 「座りすぎ」ケア完全マニュアルは自分の

    腰痛と闘うプログラマー | フューチャー技術ブログ
    progrhyme
    progrhyme 2023/10/31
    姿勢とセルフケアやなぁ
  • stree:S3バケットをtreeするCLIコマンド | フューチャー技術ブログ

    はじめにこんにちは。TIG/EXユニット所属の宮永です。 記事ではS3バケットをtreeするCLIコマンドを紹介します。 クラスメソッドさんの記事(S3 バケットの中身を tree 形式で表示してくれる s3-tree を Amazon Linux 2 にインストールして使ってみた)を拝見して、s3-treeというツールの存在を知ったのですが、profileを指定できなかったり、バケット単位でしか指定できなかったりと細かな部分で不自由さを感じたためGoでCLIツールを作成しました。 作成したツールは以下リンク先で公開しています。 streeは「エスツリー」と読みます。先に語感の良い名称を思いついたため、衝動に身を任せて開発しました。 機能概要まずは利用画面を見ていただいたほうがイメージ付きやすいかと思いますのでgif画像を添付します。 streeは以下の機能をサポートしています。 バケッ

    stree:S3バケットをtreeするCLIコマンド | フューチャー技術ブログ
    progrhyme
    progrhyme 2023/09/26
  • SQLBoiler(とoapi-codegen)でつくるREST APIサーバ | フューチャー技術ブログ

    ライブリッツの筒井です。 GoのORマッパー連載、折り返して5日目です。 SQLBoilerを使用したDBスキーマ駆動なREST APIサーバの開発ワークフローを紹介します。 なぜSQLBoilerを選ぶのか?自分たちのチームでは、REST APIサーバを開発する際にはまずデータベースのテーブル設計から始めることが多いです。その次にAPI定義の設計へ入るのですが、既にテーブル定義は出来上がっているため、なんとなくSQL文が頭に思い浮かんだ状態でAPIのRequest / Responseを考えることになります。 ゆえにORMに一番に求めるのは、「いかにストレスなく思い描いていたSQL文を実行し、Goの文脈に持ち込めるか」ということです。 この基準を元に、次のような観点からSQLBoilerを選定しています。 複雑なSELECT文でDSLに苦悩したくない前述の通り、我々の頭の中にはなんとなく

    SQLBoiler(とoapi-codegen)でつくるREST APIサーバ | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/08/27
  • 100%型安全なgolangORM「ent」を使ってみた | フューチャー技術ブログ

    はじめにgolang ORM連載の2記事目となります。TIGの宮崎将太です。 突然ですがみなさん、ORMは何を使用していますか? golangだとGORMがデファクトスタンダードの位置を勝ち取りつつあり、当社でも特に理由がない限りはGORMを使用するケースが多い印象です。 今回は新たな可能性としてFacebook社謹製のent/entを検証します。個人的なORM経験としてはRuby on RailsのActiveRecordから始まり、当社謹製のUroboroSQLというORMからGORMまで割と多めに触れているので、大体どのORMでも気になる機能を中心に作りながら検証します。 entとは 公式から引用してくると以下の通りとのこと。 データベーススキーマをグラフ構造として簡単にモデル化 スキーマをプログラムのGoコードとして定義 コード生成に基づく静的型付け データベースクエリおよびグラフ

    100%型安全なgolangORM「ent」を使ってみた | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/08/27
  • Go1.17における go get の変更点 | フューチャー技術ブログ

    The Gopher character is based on the Go mascot designed by Renee French. TIGの辻です。 Go 1.17連載の5日目の記事です。記事ではGo1.17の go get に関するアップデートの詳細をお伝えします。 go get に関する変更点サマリ モジュール外からの go get におけるコマンドインストール時に、警告を出力する go get の -insecure フラグは使えなくなった、代わりに環境変数 GOINSECURE を使う モジュール外からの go get におけるコマンドインストール時に、警告を出力するgo get 時の警告Go1.16のリリースノートでも、コマンドのインストールで go get を使うのは非推奨、とお知らせがありましたが、Go1.17では、モジュール外からコマンドのバイナリを go

    Go1.17における go get の変更点 | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/08/18
    この辺、要注意だな
  • Go 1.17のtesting新機能 | フューチャー技術ブログ

    TIGの伊藤真彦です。 この記事はGo1.17連載の3記事目です。 Go1.17からのtestingにおける新機能Go1.17のリリースノートにこのような記載があります。 testing Added a new testing flag -shuffle which controls the execution order of tests and benchmarks. The new T.Setenv and B.Setenv methods support setting an environment variable for the duration of the test or benchmark. テストとベンチマークの実行順序を制御する新しいテストフラグ-shuffleを追加しました。 新しいT.SetenvおよびB.Setenvメソッドは、テストまたはベンチマークの期間中の

    Go 1.17のtesting新機能 | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/08/16
  • k6の使い方 シンプル&軽快な負荷試験ツールを試す | フューチャー技術ブログ

    TIGの伊藤真彦です。 業務で行っている開発がいよいよリリースを視野に入れたフェーズに入り、E2Eテストや各種性能試験を行いました。 負荷試験とはリリース前に行いたい試験の一つに負荷試験があります。 なるべく実際の運用に近い環境、データベースの状態を整え、実際に利用されるであろうユーザー数、もしくはそれ以上の同時接続にシステムが耐えられるかを試験します。特にソーシャルゲームの世界では想定を超えたアクセスによりリリース直後にサーバーがダウンしてしまう悲劇が発生しがちです。IT業界の外にいる人々にとっても覚えのある経験かもしれません。 そんな負荷試験ですが、実際に数百人、数万人規模の同時アクセスを人力で再現するには膨大な予算が必要です。そのため、一台のコンピュータで複数人からの同時アクセスを再現する負荷試験ツールが数多く存在します。 負荷試験ツールの定番と言えばApache Jmeterがあり

    k6の使い方 シンプル&軽快な負荷試験ツールを試す | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/04/08
  • Bashのシェル展開 | フューチャー技術ブログ

    Photo by Fotis Fotopoulos on Unsplash はじめにこんにちは、TIGの岸卓也です。 シェルスクリプト連載 の7日目です。 シェルスクリプトで前提とするシェルは、大抵のコンピューターにインストールされていることが多いbashを選択することが多いと思います。当記事ではそのbashを対象に、意外と色々あるシェルの展開処理の概要をまとめました。シェルスクリプトに限らず普段のコマンド操作でも展開処理が便利なシーンは多々あると思いますので、皆さんの時間の節約に役立てば幸いです。 以降では、処理される順番に展開処理を紹介します。また、説明している動作と具体例はGNU bash version 5.1.4で確認しました。 なお、Windowsでは初期状態ではbashがありませんが、インストールする方法はいくつかあります。gitを使うためにインストールするGit for

    Bashのシェル展開 | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/04/06
  • Cloud Spannerのローカル開発環境をdocker-composeでサクッと立ち上げる | フューチャー技術ブログ

    最小構成のリージョン+1ノード構成でも、なかなかのコストが掛かりますね。 開発環境どうするかコストが高いので、開発環境用に気軽にインスタンスを立ち上げるのは難しそうです。 ということで、記事ではGCPが公式で提供してくれている Spanner エミュレータ を使って開発環境を立ち上げます!(エミューレータあってよかったありがとう!) gcloud CLIとdockerイメージでの提供がありますが、今回はdocker-composeで利用する例を紹介します。 サンプルコードはこちら: tarosaiba/docker-compose-spanner 以下2点工夫したポイントです。 通常、Spannerエミュレータ起動後にインスタンスの作成手順(gcloud spanner instances create)が必要になりますが、docker-compose立ち上げ時に自動でインスタンス作成さ

    Cloud Spannerのローカル開発環境をdocker-composeでサクッと立ち上げる | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/03/23
    minikubeでも作れそうに見える
  • 本番データが急に欲しくなったアナタに贈る、CloudSQLのサーバレスエクスポートを試してみた | フューチャー技術ブログ

    はじめにこんにちは。TIG 市川です。GCP連載2021の2日目です。 番運用しているデータをサクッと引っこ抜いてCSV錬金したり、DWHなどに連携していないデータを元にDataStudioでコネコネしたり・・・(負荷を気にせず)気軽にやりたいなぁ・・・というアナタに贈る記事になります。 おことわり 実際のシステムにおける番データは正しく取り扱いましょう。運用ポリシー・セキュリティポリシーに従い、機密情報などを気軽に引っこ抜いてはいけません サーバレスエクスポートとは? https://cloud.google.com/blog/products/databases/introducing-cloud-sql-serverless-exports より引用 データベースからデータをエクスポートすることは運用上起こりえるタスクではありますが、その実、エクスポートの仕方を誤ると番のワーク

    本番データが急に欲しくなったアナタに贈る、CloudSQLのサーバレスエクスポートを試してみた | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/03/10
  • PubSubのメッセージスキーマを試してみる | フューチャー技術ブログ

    はじめにTIG DXユニット真野です。 GCP連載2021の1日目です。2020年のGCP連載でもCloud Loggingネタでトップバッター、2021年も先陣を切ることができて光栄です。 記事では2021年3月に発表されたCloud PubSubのメッセージスキーマを試します。 Creating and managing schemas なお、2021/03/07時点ではプレビューであるのでご注意ください。今後フィードバックにより挙動なり設定方法が変更される可能性があります。 Cloud PubSubとは 公式ドキュメントから引用します。 Pub/Sub は、イベントを処理するサービスとイベントを生成するサービスを切り離す非同期メッセージング サービスです。メッセージング指向のミドルウェア(ストリーミング分析パイプラインにイベントの取り込みと配信を行う)として、Pub/Sub を使用

    PubSubのメッセージスキーマを試してみる | フューチャー技術ブログ
    progrhyme
    progrhyme 2021/03/09
  • Engineer Camp2020でSQLフォーマッタを開発しました | フューチャー技術ブログ

    はじめにはじめまして。フューチャーのインターン”Engineer Camp”に参加した中村と申します。 フューチャーのインターンについてはこちらの記事をご覧ください! この記事では、今回のインターンで私が取り組んだ内容を紹介します。 SQLフォーマッタとは今回のインターンで私は、SQLフォーマッタの作成に取り組みました。 SQLフォーマッタとは以下のようにSQLのインデントなど整形するツールのことです。 SQLフォーマッタを用いることで、SQLの見た目を整える手間を削減したり、チームで統一感があるコーディングを実現できます。 取り組んだ課題もともとフューチャーではuroboroSQL formatterというSQLフォーマッタが開発されていました。(このフォーマッタについてはこちらの記事をご覧ください!) しかし、このフォーマッタはPythonベースで書かれていたため、(現在広く使われてい

    Engineer Camp2020でSQLフォーマッタを開発しました | フューチャー技術ブログ
    progrhyme
    progrhyme 2020/09/19