タグ

okinakaのブックマーク (7,170)

  • tRPCを導入したら爆速でWebサービスをリリースできた話

    この記事は 「個人開発Advent Calendar 2022」 8日目の記事です。 はじめに 先日リリースされた、SplarateというWebサービスの開発をお手伝いしています。そこで導入したtRPCが驚くほど便利だったので、実際の体験を交えてその使いやすさを紹介します。 tRPCとは? tRPC allows you to easily build & consume fully typesafe APIs without schemas or code generation. https://trpc.io/docs/ tRPCは、スキーマやコード生成なしで型安全なAPIを簡単に構築し、呼び出すことのできるライブラリです。 tRPC is for full-stack TypeScript developers. と謳われているように、TypeScriptに特化して作られており、Ty

    tRPCを導入したら爆速でWebサービスをリリースできた話
  • Google Apps Script を用いてカレンダーへの自発的な参加登録ができるWebアプリを作成する - takanakahiko’s blog

    こんにちは。 takanakahiko です。 今回は、 Google Apps Script を用いてカレンダーへの自発的な参加登録ができるWebアプリを作成していきたいと思います。 このエントリーはAkatsuki Advent Calendar 2022の2日目の記事です。 adventar.org 昨日は tkmruさんの「脆弱性診断とiOSアプリの再署名」でした。 脆弱性診断に必要な再署名といった複雑な作業を簡単に行えるツールを公開されています。 hackerslab.aktsk.jp 前置き 今回紹介する実装例は Google Workspace ドメインに属している場合にのみ正しく動作します。 個人の Google アカウントでは動作しないためご了承ください。 また、 Google Apps Script に関する初歩的な説明は行いませんのでご了承ください。 モチベーション

    Google Apps Script を用いてカレンダーへの自発的な参加登録ができるWebアプリを作成する - takanakahiko’s blog
  • パスワード管理/MFA管理の戦略

    自分のパスワードやMFA(多要素認証)の管理方法についてまとめた記事です。 パスワード管理とTOTP(Time-based One-time Password)の管理として1Passwordを使い、MFA(多要素認証)の2要素目としてYubiKeyを2枚使っています。 パスワード管理とMFA管理を安全で使いやすくするのはかなり複雑で難しいため、完璧にやるのが難しいです。 そのため、その難しさから二要素認証を設定するべきアカウントも手間などから設定を省いてしまったり、管理方法に一貫性がありませんでした。 この記事では、パスワード管理/MFA管理の戦略を決めることで、どのサイトのどのアカウントのパスワード管理をあまり頭を使わなくてもできるようにするのが目的です。利便性と安全性のバランスを意識はしていますが、この記事のやり方が正解ではないので、各自の目的に合わせて読み替えると良いと思います。 用

    パスワード管理/MFA管理の戦略
    okinaka
    okinaka 2022/11/28
  • Google Apps ScriptからGoogle Tasks を操作する

    はじめに Google TasksはGoogle製のToDoリストアプリです。他にあるWunderlistやTodoistなどに比べると機能面ではまだこれからという印象ですが、最近ではGmailやGoogle Driveとの連携機能が強化されており今後より便利になる可能性が高いです。また、すでにAPIも公開されておりGoogle Apps Scriptから操作できるため、GmailやGoogleスプレッドシートなどと連携したスクリプトも簡単に作成できます。ここでは、Goolge Apps ScriptからGoolge Tasksのタスクを操作するための準備と、実査にGoogle Apps Scriptから読み取ったり新しく追加したりする基的なスクリプトをメモします。 できるようになること Goolge Tasksに対して、以下の操作をGoogle Apps Scriptから実行できるよう

    Google Apps ScriptからGoogle Tasks を操作する
    okinaka
    okinaka 2022/11/21
  • ecspresso+ecschedule+lambrollでCI/CDを作った話 - トラストバンクテックブログ

    前回の記事から間が空いてしまいました、SREのbutadoraです。 年末に向けた準備で忙しなくしているこの頃です。 今回はとある環境で実装したCI/CDのフローを紹介したいと思います。 今回のサービスアーキテクチャ 今回はPHPWEBサービスをデプロイする環境が必要ということで、以下の様な設計としました。 WEBサービス体 → ALB+ECS+RDS 定時バッチサービス → ECS (Task Scheduler)+RDS ファイル設置をトリガーにしたバッチサービス → S3+Lambda(コンテナイメージ)+RDS CI/CD 簡単な構成図はこんな感じです。 大きなポイントとしては、タイトルにある3種の各デプロイツールを組み合わせることで、開発側のリソース管理を切り出しているところです。 弊社ではAWSリソースの管理をTerraformで行っていますが、図にあるようなリソースまで管

    ecspresso+ecschedule+lambrollでCI/CDを作った話 - トラストバンクテックブログ
    okinaka
    okinaka 2022/11/19
  • Docs の独自コマンドはサーバなしで動く。 - freee Developers Hub

    毎週の定例ミーティングで Google Docs にテンプレートを追加するという作業をやったことがあるだろうか? あるいは毎回変わるファシリテータをその度に手動で書いたことがあるだろうか? そういう作業は Google Apps Script (GAS) を用いて自動化することが出来る。 GASを動かすのに面倒なサーバ構築はいらない。Googleが用意したエディタでGoogleが用意した関数を使ってJavaScriptを書けば動いてくれる。 毎週テンプレートを追加するような定期的な作業はこれを使うと便利だ。 さあドキュメントを開いて Extensions -> Apps Script からプログラムを書こう。 メニューを追加しよう 特定の場所にテンプレートを挿入しよう スナップショットを取ろう 次のファシリテータを記入しよう メニューを追加しよう Docsはメニューをカスタマイズして独自の

    Docs の独自コマンドはサーバなしで動く。 - freee Developers Hub
    okinaka
    okinaka 2022/11/16
  • Jason Warnerとマイクロサービス - 西尾泰和のScrapbox

    Jason Warner(Now: MD @redpoint, Prior: CTO @github, @heroku, @Canonical)がマイクロサービスについての考えをツイートしたところ「GithubのCTOが『マイクロサービスは失敗だった』と言っている」みたいに一部分だけ切り取ってバズった。そういうのは当に良くないのでちゃんと全文を読もうよと言うことでまとめた。

    Jason Warnerとマイクロサービス - 西尾泰和のScrapbox
  • @wordpress/env

    フィードバック この P2 ブログの内容に関して質問やご意見がある場合は、WordPress.org アカウントでログインしてコメントできます (新規作成はこちら)。 Topicsクイック (tl;dr) インストラクション 前提ソフトウエア インストール グローバルパッケージとしてのインストール ローカルパッケージとしてのインストール 使用方法 環境の開始 環境の停止 一般的な問題のトラブルシューティング 1. wp-env が動作していることの確認 2. ポート番号の確認 3. 更新と wp-env の再起動 4. Docker の再起動 5. データベースのリセット 6. すべてを破壊して、最初からやり直す 🔥 同梱された WordPress PHPUnit テストファイルの使用 wp-tests-config.php ファイルのカスタマイズ composer、phpunit、wp

    @wordpress/env
  • WordPress制作環境の過去と現在、そして未来はどうなる?wp-envの使い方を紹介 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    はいさい! 沖縄からフルリモートでLIGでお仕事しているうーまーです。 WordPressを触りはじめて、なんやかんや12年くらい経ってました 最初の2年は個人的なサイト作ったりだったので、お仕事としてWordPressを扱いはじめて10年くらいです。歳をとるのって早いですね……。 そんなこんなで、LIGの制作環境をアップデートしたいと思い情報を探っていたら、wp-envなるものをワードプレス公式が公開しているではありませんか! 知らなかったなんてWordPressエンジニア失格だな……と思っていたんですが、あまり知られていないのか、記事も少ないしそんなに話題になっていないみたいな雰囲気が(僕だけじゃなかった)。 理由は恐らく、下記のような感じでしょう。 DockerやLocal(Local by Flywheel)が優秀で、あまり必要性を感じていない せっかく作った制作環境をまた作り直す

    WordPress制作環境の過去と現在、そして未来はどうなる?wp-envの使い方を紹介 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • Schema.org - Schema.org

    Note: you are viewing the development version of Schema.org. See How we work for more details. Welcome to Schema.org Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond. Schema.org vocabulary can be used with many different encodings, including RDFa, Microdata and

  • GASで休日祝日や有給休暇を実行除外判定にいれる | DevelopersIO

    最近軽いスクリプトを組む時はGASを頼るようになりました。コスト低い上によく使うGSuiteにAPIでアクセスできて便利です。ただ、処理後の通知は若干工夫が必要です。 通知用ライブラリというものが殆どみられず、言語次第では日付ライブラリ+休日網羅系ライブラリ等で手軽に判定もできますが、GASは少し工夫は必要です。 この曜日には通知させたくない カレンダーに予定がすでに入っている日は避けたい といった状況に対応させたいために日付判定を試してみました。 今日が土日か判定する 関数名以外は多分よくあるコードです。土日に動作させたくない場合は処理はじめに呼び出すあたりでも問題ないでしょう。 function start() { if (todayIsEnd()) { return } } function todayIsEnd(){ let today = new Date(); let week

    GASで休日祝日や有給休暇を実行除外判定にいれる | DevelopersIO
    okinaka
    okinaka 2022/11/13
  • サービス間通信技術「gRPC」の基礎知識――「Protocol Buffers」とは?

    gRPCの概要 Googleによって開発され、オープンソース化された通信技術である「gRPC」は、マイクロサービスアーキテクチャにおけるサービス間の通信手段としてはもとより、モバイルアプリがサービスにアクセスするためのインタフェースとしても注目されています。現在ではLinux Foundation傘下のCloud Native Computing Foundation(CNCF)のもとで開発されています。 連載では、gRPCについて、さまざまなプログラミング言語によるアプリケーションの実装を通じて、技術的な仕様や開発手法を紹介していきます。 RPCとは? gRPCは、RPCという通信プロトコルです。RPCとはRemote Procedure Callの略で、日語にすると「遠隔手続き呼び出し」となります。RPCは、他の多くのプロトコルと同様にクライアント/サーバ型のモデルを採用しています

    サービス間通信技術「gRPC」の基礎知識――「Protocol Buffers」とは?
  • [アップデート] AWS App RunnerでVPC内からのプライベートアクセスが可能になりました | DevelopersIO

    しばたです。 日からAWS App RunnerでVPC Endpointを使ったプライベートアクセスができる様になりました。 AWSからのアナウンスはこちらになります。 仕組みについて これまでApp Runnerはインターネットからの公開アクセス専用でありプライベートアクセスに制限することはできませんでした。 今回のアップデートではユーザーが利用するVPC内部にVPC Endpointを設け、このVPC EndpointからのみApp Runnerのサービスにアクセス可能に通信を制限できます。 ざっくり図にするとこんな感じです。 また従来からあるApp RunnerからVPCへのアウトバウンドアクセスのためのVPC Connectorとも併用可能です。 ネットワーク周りの詳細についてはAWSからブログが公開されてますのでそちらをご一読ください。 Announcing AWS App

    [アップデート] AWS App RunnerでVPC内からのプライベートアクセスが可能になりました | DevelopersIO
  • 【GitHub Actions 小ネタ】プルリクエスト時に差分ファイルの一覧を取得する | DevelopersIO

    GitHub Actionsを使って、 プルリクエスト作成時(もしくは commit push時)に ベースブランチからの差分ファイルを取得したいです。 例えば base:main ← compare:fix のプルリクエストを作成したとします。 このとき mainブランチとfixブランチの差分ファイル一覧を取得、 差分ファイルに対して Lintを行う、といったことを実現したいです。 以下にそれを実現するワークフローのテンプレート、および活用例を書いてみました。 テンプレート name: run-actions-using-diff-files on: pull_request: types: [opened, synchronize, reopened] branches: [ main ] paths: [ 'docs/**.md' ] env: base_branch: main d

    【GitHub Actions 小ネタ】プルリクエスト時に差分ファイルの一覧を取得する | DevelopersIO
  • デジタルトランスフォーメーション(DX)の推進 | 社会・産業のデジタル変革 | IPA 独立行政法人 情報処理推進機構

    事業背景 あらゆる産業において、新たなデジタル技術を使ってこれまでにないビジネス・モデルを展開する新規参入者が登場し、ゲームチェンジが起ころうとしています。こうした中で、各企業は、競争力維持・強化のために、デジタルトランスフォーメーション(DX:Digital Transformation)をスピーディーに進めていくことが求められています。 このような中で、我が国企業においては、自らDXを進めるべく、デジタル部門を設置する等の取組みが見られます。しかしながら、PoC(Proof of Concept:概念実証。戦略仮説・コンセプトの検証工程)を繰り返す等、ある程度の投資は行われるものの実際のビジネス変革には繋がっていないというのが多くの企業の現状です。 今後DX格的に展開していく上では、DXによりビジネスをどう変えるかといった経営戦略の方向性を定めていくという課題もありますが、これまで

    デジタルトランスフォーメーション(DX)の推進 | 社会・産業のデジタル変革 | IPA 独立行政法人 情報処理推進機構
    okinaka
    okinaka 2022/11/05
  • ゲーム開発で使えるオープンソースソフトウェア個人的まとめ - Qiita

    恐らく最も有名なOSSのゲームエンジンです。 UnityやUE5の代替となるソフトウェアです。 Godot以外にもOSSのゲームエンジンはいくつかありますが、現状実用に耐えうるのは恐らくこのゲームエンジンくらいです。 3D,2D双方の開発ができ、多くのプラットフォーム向けに出力できる、UnityやUE5に引けをとらない出来のソフトウェアです。 特徴は以下の通りです。 OSSかつ無料である すばらしい。 ゲームエンジン自体がかなり軽い(2桁MBくらいしかない) その分起動もかなり早い。この手軽さはやっぱり便利。 有名なゲームエンジンと比べ後発であるためUIが洗練されている 例えばUnityではオブジェクトにコンポーネントを足していくという感じですが、Godotは全てがノードでありシンプルな設計です。 エディタが内蔵されている 外部エディタは必要なく、全てGodot内で済ませられます。 基

    ゲーム開発で使えるオープンソースソフトウェア個人的まとめ - Qiita
    okinaka
    okinaka 2022/10/28
  • バッチ処理 プラクティス

    バッチ処理は既に先人の方々が多くのナレッジを公開してくれていますが、それでもなお難しさが変わらないテーマだと思っています。 この記事は、筆者がこれまでの開発経験で気づいたバッチ処理の実装ナレッジを整理し、体系化を目指して文章にしました。 ここでの内容が、より良い課題解決に貢献できれば幸いです。 自身の断片的な思考整理(メモ書き)の延長で内容を整理したため、一部書き振りが統一されておらず、読みにくいかもしれません。ご了承ください。🙏 バッチ処理の難しさバッチ処理は難しい。 人によっては簡単なテーマかもしれませんが、自分は難しいテーマだと思っています。 「難しさの根源は何か?」を考えると、1. 考慮点が多様にあること 2. 解決する課題によって答えが大きく変わること に整理できました。 この2点は、どのソフトウェア開発にも当てはまる項目ではありますが、ことバッチ処理においては顕著に現れます。

    バッチ処理 プラクティス
  • Selenium と Playwright の両方を使ってみた感想 - 新しいことにはウェルカム

    WebのクローリングにPuppeteerを使っています。 いつかPuppeteerの使い方をまとめたいなと思っていたのですが、そうこうしている内に月日は流れ、Puppeteerと同様のブラウザ操作ツールとして、Playwrightの名前をよく聞くようになってきました。 ならばいっそのこと、新たにクローラーを書く時はPlaywrightに乗り換えて、その使い方をまとめようかなと思い始めました。 一方、ブラウザ操作ツールとしてSeleniumも有名です。 Microsoft Power AutomateでSeleniumが使えると聞いたので、Seleniumならクローリングだけでなく、日々の業務の自動化にも使えて便利かなとSeleniumにも興味がありました。 SeleniumとPlaywright、どちらにしようかと迷ったのですが、どちらも使ったことがなかったので結局両方を使って確かめること

    Selenium と Playwright の両方を使ってみた感想 - 新しいことにはウェルカム
  • Open API はじめました

    始めに こんにちは。株式会社ペライチ のサーバーサイドエンジニアの永見です。 開発プロセスに Open API を導入しました。ここにその知見を書いておきます。 背景 ペライチではメインのサイト作成サービスの他に、予約や顧客管理などさまざまなサービスを扱っています。各サブサービスはマイクロサービス化しており(全部ではないけど)、Web API サーバとして稼働しています。 開発の課題として以下がありました。 課題 1 : 実装とドキュメントが一致していない API の設計を Git 外のドキュメントに記載していた まったく記載がないよりはマシですが、どうしてもメンテナンスが後手になり、 実装と乖離している状態が定常化していました。 課題 2 : フロントエンドとバックエンドの連携 開発メンバーが増え、メンバー一人でバックとフロントの両方を受けもつことが少なくなり、 フロントエンドとバックエ

    Open API はじめました
  • 予算の上限に達したらFirestoreを自動で停止するやつで請求青天井の恐怖に怯える日々を卒業する

    先日、こちらの記事を拝見したのですが、Firebase卒業の理由1位に 「クラウド破産の恐怖」 が挙げられていました。 Firetoreは並列性の高いデータベースですから、ちゃんと作っていれば100万人同時接続でもびくともしません。しかし逆に言えば、もしプログラムに誤りがあって大量の無駄な読み書きが発生すれば、ものすごい勢いでコストが嵩んでいくことになります。実際私も何度か開発中にコーディングミスをして無限再読み込みをしてしまったことがあります。その時は明らかにアプリの動作速度が低下したのですぐに気付きましたが、この危険については私もそれなりに気になるところではあります。そこで、 予算をオーバーしたらFirestoreを自動で停止する仕組み を作ってみることにしました。 プログラムから予算とコストを管理する プロジェクトの現在のコストや予算の通知を受ける方法については、以下の公式ドキュメン

    予算の上限に達したらFirestoreを自動で停止するやつで請求青天井の恐怖に怯える日々を卒業する