並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 3295件

新着順 人気順

awaitの検索結果241 - 280 件 / 3295件

  • フルスクラッチして理解するOpenID Connect (2) トークンエンドポイント編 - エムスリーテックブログ

    こんにちは。デジカルチームの末永(asmsuechan)です。この記事は「フルスクラッチして理解するOpenID Connect」の2記事目です。前回はこちら。 www.m3tech.blog 7. トークンエンドポイントの実装(POST /openid-connect/token) 7.1 アクセストークン 例 7.2 ID トークン 例 7.3 IDトークンを返す部分を作る 7.4 アクセストークンを返す 7.5 パラメーターの検証 7.6 認可コードの検証 7.7 クライアント認証 8 イントロスペクションエンドポイントを作る(POST /openid-connect/introspect) まとめ We're hiring 今回は全4回中の第2回目です。 (1) 認可エンドポイント編 (2) トークンエンドポイント編 (3) JWT編 (4) stateとnonce編 7. トーク

      フルスクラッチして理解するOpenID Connect (2) トークンエンドポイント編 - エムスリーテックブログ
    • AWS SDK for Rust is now generally available

      Today, AWS announces the general availability of the AWS SDK for Rust, allowing customers to now use this for production workloads. The AWS SDK for Rust empowers developers to interact with AWS services and enjoy APIs that follow Rust idioms and best practices. AWS SDK for Rust provides idiomatic, type-safe API and supports modern Rust language features like async/await, non-blocking IO, and build

        AWS SDK for Rust is now generally available
      • Maximum call stack size exceeded について解説

        "Maximum call stack size exceeded" というエラーに関する解説を書きます。JavaScript を前提に解説しております。 ざっくり解説 Uncaught RangeError: Maximum call stack size exceeded これは、関数が何度も深く深く呼ばれてしまった場合に出るエラーです。 大抵は、間違って自分自身の関数を呼んでしまった、もしくは再帰の終了条件をミスった場合に発生します。 ここに検索で来た方は、自分自身を呼んでいたり、関数同士が循環的に呼びあっていたりするミスを犯していないか確認してください 。 図にすると、こんな感じです ちなみに、関数呼び出しがなければこのエラーは発生しません。ただの無限ループでは決して発生しないエラーです。以下、解説を書きます。 「関数を深く呼ぶ」とは? ここでは、関数からリターンせず再度関数を呼び

        • Cloudflare WorkersとKVを使ってパフォーマンスを上げる話

          先日行われたCloudflareのDeveloper Week 2024の記事の中にPicsartというサービスの事例記事がありました。 よくよく読んでみると「Cloudflareを導入したらパフォーマンス上がった」という簡単なセリフでは済まされない努力と工夫が書かれていました。非常に面白いので、自分なりに噛み砕いた要約を書いてみます。コードはあまり出てきませんがテクニカルな内容になっています。 Picsartとは そもそもPicsartとは?ということなんですが、iOSとAndroidのモバイルデバイスとWebに対応した、世界的なオンラインの写真編集サービスです。 Wikipediaによると180カ国で10億ダウンロードを超えているとのことです。 問題 Picsartには固有の問題がありました。 各アプリの起動時にクライアントデバイスは1.5MBの設定ファイルをダウンロードする クライア

            Cloudflare WorkersとKVを使ってパフォーマンスを上げる話
          • Azure AI Bot ServiceとAzure OpenAIを使って「生成AIチャットボット」を作ってみる – 第1回:シンプルな「オウム返し」ボットを作る | DevelopersIO

            Azure AI Bot ServiceとAzure OpenAIを使って「生成AIチャットボット」を作ってみる – 第1回:シンプルな「オウム返し」ボットを作る みなさん、こんにちは! 福岡オフィスの青柳です。 Microsoft Azureには「Azure AI Bot Service」というチャットボット (会話型AIボット) を作成できるサービスがあります。 今回は、この「Azure AI Bot Service」と生成AIサービス「Azure OpenAI Service」を使って、「生成AIと会話できるチャットボット」を作ってみたいと思います。 「Azure AI Bot Serviceを使うのは初めて」という方も多いと思いますので、ステップ・バイ・ステップ形式で何回かに分けて進めたいと思います。 第1回: シンプルな「オウム返し」ボットを作る ← 当記事です (Azure A

              Azure AI Bot ServiceとAzure OpenAIを使って「生成AIチャットボット」を作ってみる – 第1回:シンプルな「オウム返し」ボットを作る | DevelopersIO
            • Node.js の --require/--import オプションについて - mizdra's blog

              Node.js には --require=module と --import=module というオプションがあります。このオプションを使うと、エントリポイントとなるプログラムよりも前に、任意のモジュールを実行できます。 例えば以下のようなコマンドを実行すると、Node.js ランタイムはまず最初に preload.cjs を実行し、それから main.mjs を実行できます。 node --require ./preload.cjs main.mjs エントリポイントよりも前に、何かしらの処理を実行したい時に使うことを想定しています。 --require と --import の違い --import も --require と同じように、モジュールをプリロードするためのオプションです。両者の違いはプリロードするモジュールの読み込み方です。 --require は require(...

                Node.js の --require/--import オプションについて - mizdra's blog
              • ライブラリのアップデートを自動化した仕組みの紹介 - Classi開発者ブログ

                こんにちは!学習動画・Webテストの開発を行っています エンジニアの daichi (id:kudoa) です。 この記事では、最近チームで導入したライブラリアップデートを自動化した仕組みとその経緯について紹介します。 なぜ自動化しようと思ったか サービスを開発するだけではなく、日々の運用も必要です。 その運用業務の1つとして、ライブラリのアップデートがあります。 これはサービスを運用する上では大切なことではありますが、日々ライブラリアップデートのPRをさばき続けるのも大変です。 その時間をできるだけ減らし、その分空いた時間をユーザーへの価値提供や将来の投資に充てるために、今回の自動化の仕組みを作成しました。 この辺りの話は以前勉強会でLTしたことがありますので、興味があればご覧ください。 作ったもの 前置きは長くなりましたが、凝ったものを作ったわけではありません。 作成したものはライブラ

                  ライブラリのアップデートを自動化した仕組みの紹介 - Classi開発者ブログ
                • RDS Proxyが拡張クエリプロトコルに対応し、ピン留めの発生条件が緩和されました | DevelopersIO

                  CX事業部@大阪の岩田です。 本日のアップデートによりRDS ProxyがPostgreSQLの拡張クエリプロトコルをサポートするようになりました。本ブログではこのアップデートについてご紹介します。 ちなみに以前はpinningが「ピン留め」翻訳されていましたが、最近は「固定」翻訳とされているようです。個人的にはピン留めの方がしっくりくるので、本ブログにおいては公式日本語ドキュメントが「固定」と翻訳している事象を全て「ピン留め」と呼ぶことにします。 そもそも拡張クエリプロトコルとは? PostgreSQLではクエリを実行するためのプロトコルに、簡易クエリプロトコルと拡張クエリプロトコルという2つのプロトコルが存在します。ざっくりとした理解として、簡易クエリプロトコルの場合は生のSQL文をそのままサーバーに送信するのに対して、拡張クエリプロトコルの場合はパラメータを利用したSQL文を送信した

                    RDS Proxyが拡張クエリプロトコルに対応し、ピン留めの発生条件が緩和されました | DevelopersIO
                  • Visual Regression Testをサポートするreg-actionsをリリースした

                    Visual Regression Test(以下VRT)をやろうと思うと画像をどこに保存するかを検討する必要がでてくるケースがある。 (web アプリケーションのVRTを前提とすると)多くの場合、テキスト形式である*.snapとは異なり、画像取得時のOSやfont、ブラウザのversionなどにより差分がでやすくなってしまう。そのため画像はCIなど環境を極力そろえた状態で取得し、S3などに上げVRT対象の画像を管理するケースがみられる。 今回はこのフロー・管理の簡略化を目指しactionsを作成・リリースした。 成果物 repositoryは以下。yamlに後述するstepを記述すれば使用できる。 セットアップ 最小の記述は以下となる。これで./images以下の画像に対してVRTを行ってくれる。VRTに必要な画像管理はactionsが受け持ち、PRごとにレポートをコメントする。 nam

                      Visual Regression Testをサポートするreg-actionsをリリースした
                    • Speedometer 3.0: The Best Way Yet to Measure Browser Performance

                      As announced on browserbench.org today, in collaboration with other browser engine developers, Apple’s WebKit team is excited to introduce Speedometer 3.0, a major update that better reflects the Web of today. It’s built together by the developers of all major browser engines: Blink, Gecko, and WebKit with hundreds of contributions from companies like Apple, Google, Intel, Microsoft, and Mozilla.

                        Speedometer 3.0: The Best Way Yet to Measure Browser Performance
                      • 特級呪物と化したAWS IoT Enterprise Buttonを勤怠ボタンとして活用する - Qiita

                        この記事はHRBrain Advent Calendar 2023 9日目の記事です。 はじめに 初めまして。11月からHRBrainで業務委託として関わっている yakiniku0220です。 12月になり、いよいよ年末感が少しずつ出てきましたね。 年末といえば大掃除ですが、一気にやるのは億劫なので私は週末に細かくやっています。 そこで久々にあるものを発見しました。 そうですAWS IoT Enterprise Buttonです。 HRBrainでは各々がtimesのチャンネルを作っており、そこで作業の開始と終了を投稿しているのですが、毎回打ち込むのは面倒くさいのでアドベントカレンダーのネタとして面白いと思ったのと、実用的にも使えそうだなと思ったので今回記事として作りました。 AWS IoT Enterprise Buttonとは AWS IoT Enterprise Button ボタ

                          特級呪物と化したAWS IoT Enterprise Buttonを勤怠ボタンとして活用する - Qiita
                        • neue cc - ConsoleAppFramework v5 - ゼロオーバーヘッド・Native AOT対応のC#用CLIフレームワーク

                          ConsoleAppFramework v5 - ゼロオーバーヘッド・Native AOT対応のC#用CLIフレームワーク 2024-06-13 ConsoleAppFrameworkの完全に新しいバージョンをリリースしました。完全に設計しなおして実装も完全に作り直された、何もかもが新しいフレームワークになっています。設計指針として「Zero Dependency, Zero Overhead, Zero Reflection, Zero Allocation, AOT Safe」を掲げ、もちろん、他を圧倒的に引き離すパフォーマンスを実現しています。 これはコールドスタートアップ・ウォームアップなしでのベンチマークとなっていて、CLIアプリケーションでの実際での利用に最も即したものだと考えています。System.CommandLineと比較すれば280倍!メモリアロケーション量もほかのフレ

                          • Google I/O 2024で発表されたFirebase App HostingでNext.jsのSSRを試す

                            先日のGoogle I/O 2024でFirebaseの新機能が発表されました。 これを読んでいて気になったのが、App Hostingという機能です。どうやらAngularとNext.jsのSSRをサポートしてくれるようになったようです。 自分はboobyというOSSコントリビュートしやすそうなリポジトリを探せるサービスを過去にリリースしています。 これのホスティング先として最初に検討していたのがFirebase Hostingでした。が、「?SSRどうやって動かすんだ?」と思いながらデプロイのための調査をしていたところ、どうやらCloudRunなどのサーバーサイドランタイムも使いながらでなければ動かせないということに行きつきました。 これまでやってきたCSRのHostingと異なり色々と手間が増えるなという結論に至り、結果初期構築が楽なVercelにデプロイすることにしました。当時の奮

                              Google I/O 2024で発表されたFirebase App HostingでNext.jsのSSRを試す
                            • Introducing humanfs (formerly fsx): A modern filesystem API for JavaScript - Human Who Codes

                              The JavaScript APIs we have today are so much better than those we had even a decade ago. Consider the transition for XMLHttpRequest to fetch(): the developer experience is dramatically better, allowing us to write more succinct, functional code that accomplishes the same thing. The introduction of promises for asynchronous programming allowed this change, along with a series of other changes that

                              • process.getBuiltinModule(id) は TypeScript を ESM 化させるか?

                                こんにちは teppeis です。普段は開発本部長をやってますが、ブログフェスに駆り出されました! 本日は Node v22.3.0 に続いて v20.16.0 にもバックポートされた process.getBuiltinModule(id) について解説します。 問題: 同期的な条件付き require を ESM 化できない Node v22 にて、フラグ付きで CJS (CommonJS Modules) から ESM を require できるようになりました。いわゆる require(esm) です。これにより、今までは互換性の懸念で ESM 化を足踏みしていた著名ライブラリも ESM 化を試みる動きが出てきました。 TypeScript もその一つで、TypeScript チームは TypeScript 自体を ESM 化しようと試みました。しかしながら、今回の主題である条件付

                                  process.getBuiltinModule(id) は TypeScript を ESM 化させるか?
                                • ESModules プラットフォームとエコシステムの狭間で | poteboy

                                  一定の規模以上のWebアプリケーションにおいて、JavaScriptを開発時のままの形で配信することは滅多にありません。webpackやRollupなどのバンドラを使用して、ファイルをまとめた上で配信することが一般的です。 ESModulesが普及しバンドル工程なしでも主要ブラウザがJavaScriptのモジュールを直接解釈できるようにはなりましたが、我々は依然としてバンドラを使用してWebアプリケーションを開発しています。一体なぜでしょうか? いくつか理由はありますが、その内の1つに importのコストが高い ことがあげられます。 これはv8チームが公開しているベンチマーク測定を見ても明らかです。モジュールの読み込みに時間がかかると当然ページの読み込み速度が遅くなり、ユーザー体験が悪化します。 出典: ES Module loading importのコストを削減するためにエコシステム

                                    ESModules プラットフォームとエコシステムの狭間で | poteboy
                                  • Running Serverless Puppeteer with Workers and Durable Objects

                                    Running Serverless Puppeteer with Workers and Durable Objects2023-09-28 Last year, we announced the Browser Rendering API – letting users running Puppeteer, a browser automation library, directly in Workers. Puppeteer is one of the most popular libraries used to interact with a headless browser instance to accomplish tasks like taking screenshots, generating PDFs, crawling web pages, and testing w

                                      Running Serverless Puppeteer with Workers and Durable Objects
                                    • コンポーネントをアクセシブルに保つ技術

                                      アクセシビリティ Advent Calendar 2023 21日目の記事です。 Ubie株式会社 デザインエンジニアのtakanoripです。 Ubieではデザインシステムの1要素としてコンポーネントライブラリの実装を進めています。その中でコンポーネントをアクセシブルに保つための仕組みをいくつか導入しているので紹介します。 Linter まず一番オーソドックスなものとして、アクセシビリティ向けLintツールを導入しています。 Ubieではeslint-plugin-jsx-a11yとMarkuplintを導入しています。 両者は重複する部分もありますが、eslint-plugin-jsx-a11yはよりReactでの実装を考慮したチェック、Markuplintは純粋なマークアップのチェックに強みがあるので、両方のツールを使用することでより網羅的にチェックができます。 上記Lintはコンポ

                                        コンポーネントをアクセシブルに保つ技術
                                      • TypeScript5.2 で追加された using Declarations and Explicit Resource Management をテストで活用する - ドワンゴ教育サービス開発者ブログ

                                        こんにちは。N予備校 Webフロントエンド開発チームの堀です。 先日 TypeScript@5.2 が正式リリースされました。 TypeScript@5.2 で新しく追加された using Declarations and Explicit Resource Management (using 構文と明示的リソース管理)によって、N予備校のフロントエンドのテストでの本質的でない処理をカプセル化し、コード上のノイズを削減することができました。 この記事では、using 構文の活用方法や利用するまでの手順、調査した using 構文の挙動について紹介します。 N予備校のPCブラウザ向けフロントエンドの紹介 N予備校のPCブラウザ向けUIのテストについて テストの種類 UIコンポーネントの単体テストについて リクエスト内容のテスト 課題: 本質的でない処理が afterEach に漏れ出ている

                                          TypeScript5.2 で追加された using Declarations and Explicit Resource Management をテストで活用する - ドワンゴ教育サービス開発者ブログ
                                        • 「本日クラスターに入社したUnity Engineerが読む記事」の紹介 - Cluster Tech Blog

                                          こんにちは、クラスターでUnity Engineerをやっている獏星(ばくすたー)です! 突然ですが、この記事を読んでいるという事はあなたは本日クラスターに入社したUnity Engineerのはずです。 もし違う場合でも、「そうか、自分は本日クラスターに入社したUnity Engineerだったのか…」と受け入れて読んで下さい。ただし入社ツイートは無しで。 そして本記事を読んでいるあなたに朗報です。 つい先日、クラスターに入社したUnity Engineer向けの社内用オンボーディング資料として「本日クラスターに入社したUnity Engineerが読む記事」が作成されました!そのまんまのタイトルですね。 社内slackの投稿風景 クラスターではエンジニアのオンボーディングフロー改善に日々取り組んでおり、その一環として資料整備が進みました。 そこで今回は本日クラスターに入社したUnity

                                            「本日クラスターに入社したUnity Engineerが読む記事」の紹介 - Cluster Tech Blog
                                          • neue cc - Redis互換の超高速インメモリデータストア「Garnet」にC# CustomCommandを実装してコマンドを拡張する

                                            Redis互換の超高速インメモリデータストア「Garnet」にC# CustomCommandを実装してコマンドを拡張する 2024-03-19 MicrosoftからIntroducing Garnet – an open-source, next-generation, faster cache-store for accelerating applications and servicesという記事が今日公開されて、Garnetという新しいインメモリデータストアがOSSとして公開されました。Microsoft ResearchでFASTERを手掛けていたチームによるもので、FASTERはC#実装の高速なキーバリューストアでした。今回のGarnetはその発展形のようなもので、FASTERベースのストレージと、Redis互換のプロトコルによる、インメモリデータストアになっています。詳しく

                                            • ブラウザ上で可愛いフィルターを実現!TensorFlow.jsを使ったリアルタイム顔認識 - ICS MEDIA

                                              顔認識技術を利用したアプリケーションは身近なところにあります。たとえば、カメラで映した顔に猫耳やリボンなどのスタンプを自由に追加できる加工アプリ「SNOW」や、ビデオ会議ツール「Zoom」、「Microsoft Teams」で使用できるフィルター機能などがあります。これらの機能は、フェイストラッキング技術を利用しています。 この技術はアプリだけでなく、ウェブブラウザ上でも実現できます。今回は、Googleが開発した機械学習用JavaScriptライブラリ「TensorFlow.js」を使って、ウェブカメラでリアルタイムに顔が認識されるデモを作成してみました。 TensorFlow.jsとは TensorFlow.jsは、Pythonで広く利用されている機械学習ライブラリ「TensorFlow」をJavaScript用にラップしたもので、ブラウザ上で機械学習モデルを手軽に利用できるようにする

                                                ブラウザ上で可愛いフィルターを実現!TensorFlow.jsを使ったリアルタイム顔認識 - ICS MEDIA
                                              • Server Actions で経費削減できた話

                                                はじめに 個人開発にて、App Routerのフロントエンドとkotlin / Spring Boot / REST APIのサーバーサイドで構築されるシステムを2022年くらいから運用していました。機能的には問題なく使えていたのですが、如何せんAWS / EC2 上にNginx, Tomcat, RDBを立てているため、初年度無料枠で使用できても2年目からは月々2000~3000円ほど利用料が発生していました。 どうにかいい方法はないかと模索していたら、Server Actionsが使えるのでは?ということで思い切ってサーバーサイドを刷新することにしました。 以下は、この刷新を受けて得られたメリット・デメリットです。 メリット 今回採用した環境ではすべて無料なので、サーバー使用量がまるッと浮いた。(2024/08/13時点) kotlin のお守りがなくなり、TypeScriptのみの改

                                                  Server Actions で経費削減できた話
                                                • レガシーブラウザ向けのビルドオプションを剪定する - ドワンゴ教育サービス開発者ブログ

                                                  この記事はドワンゴ Advent Calendar 2023 の 20 日目の記事です。 はじめに こんにちは。今年の 10 月に教育事業本部にフロントエンドエンジニアとして入社したユーンです。 この記事では、 2016 年から新陳代謝を続けている N予備校 Web フロントエンドのコードベースにおいて、 2019 年ぶりにビルドターゲットの設定を見直した話をします。 N予備校 Web フロントが約 8 年近くも新陳代謝を続けてきたあゆみについては、チームの古株である berlysia さんの以下の記事をご覧ください。 blog.nnn.dev はじめに 現状確認と課題設定 具体的な調査の取り組み 結果 今後の方針 終わりに We are hiring! 現状確認と課題設定 話はチーム内で以前から core-js のサイズが大きいと認知されていたことから始まります。(前提知識: @babe

                                                    レガシーブラウザ向けのビルドオプションを剪定する - ドワンゴ教育サービス開発者ブログ
                                                  • Recoil で管理する状態を atom から atomFamily に変更した話 - spacelyのブログ

                                                    目次 目次 はじめに 状態管理したいデータ構造と機能要件 atom と atomFamily について atom atomFamily atom と atomFamily の使い分け atomFamily を使った実装 atom で実装した場合 atomFamily で実装した場合 atomFamily だからこその課題 atomFamily からデータを取得するためにはパラメータが必要 atomFamily の default に selector を設定できない 課題に対応した結果 リファクタリング前の状態一覧 (atom を使った実装の場合) リファクタリング後の状態一覧 (atomFamily を使った実装の場合) まとめ 最後に はじめに フルスタックエンジニアとして開発を行っている五十嵐です。弊社でリリースしている パノラマ変換 3D プレイヤー について、サーバサイドの Ru

                                                      Recoil で管理する状態を atom から atomFamily に変更した話 - spacelyのブログ
                                                    • OpenAIよ。2022年1月より先の未来を見たくないか?【Azure OpenAI × LangChain ハンズオン】

                                                      目次 はじめに 今回作成するシステムの概要と前提条件 Azure Bing Search セットアップ Next.jsコーディング 動作確認 お片付け はじめに 2022年1月...。 このワードを聞いてピンときた方は日頃かなり勉強されているつよつよエンジニアに違いありません。 2022年1月というのは、OpenAIのGPT-3.5モデルの学習範囲の果てと言われています。 ということは...2022年1月以降の知識であれば... ファーー!! 2022年1月以降の情報であればマウント取り放題です! ... でも、マウントをとっていても仕方がありません。 私は以前、恩師よりマウントはドライブだけで充分です。という言葉を教えていただいたことを思い出しました。 では、2022年1月以降の情報でも適切に回答できるようにするにはどうすれば良いのか? そんな方々に向けたアンサーの一つをこの記事にまとめ

                                                        OpenAIよ。2022年1月より先の未来を見たくないか?【Azure OpenAI × LangChain ハンズオン】
                                                      • Hyperdrive: making databases feel like they’re global

                                                        Hyperdrive: making databases feel like they’re global2023-09-28 This post is also available in 简体中文, 日本語, 한국어, Deutsch, Français and Español. Hyperdrive makes accessing your existing databases from Cloudflare Workers, wherever they are running, hyper fast. You connect Hyperdrive to your database, change one line of code to connect through Hyperdrive, and voilà: connections and queries get faster (

                                                          Hyperdrive: making databases feel like they’re global
                                                        • Node.js で X(Twitter)、Bluesky、Mastodon に JSON データから同時投稿(クロスポスト)する

                                                          Node.js で X(Twitter)、Bluesky、Mastodon に JSON データから同時投稿(クロスポスト)する JSON データから X(Twitter)、Bluesky、Mastodon などの SNS にクロスポストする JavaScript(Node.js)を書いてみたので GitHub で公開しました。 私事ながら、現状、SNS としては X (旧 Twitter)、Bluesky、Mastodon を日常的に使っていて (Threads と Nostr も使っていますが特に Threads は放置気味......)、全部じゃないにしても、一部の投稿については、これらすべてのサービスに同時投稿したいなと、なんとなく思っていました。 巷にはそういう Web サービスも探せばあるとは思うんですが、なるべく自前でやろうということで、週末に思い立って手を付けたら見事に週末

                                                            Node.js で X(Twitter)、Bluesky、Mastodon に JSON データから同時投稿(クロスポスト)する
                                                          • UnityのWebGLアプリ開発における"使えないライブラリ問題"の回避策 - Gaudiy Tech Blog

                                                            ファンと共に時代を進める、Web3スタートアップのGaudiyでUnityエンジニアをしているくりやま(@xamel7)です。 Gaudiyでは"Gaudiy Fanlink"というブロックチェーンや生成AIなどの技術を活用したファンプラットフォームで、漫画、アニメ、アイドルといったIP(知的財産コンテンツ)独自のコミュニティの開発・運営をしています。 service.gaudiy.com このFanlinkの一機能として、現在、新たに開発を進めているのがIPのカジュアルゲームです。 「GANMA!コミュニティ」で先日公開されたカジュアルゲーム ▼登録不要で遊べます ganma-community.com WebサービスであるFanlinkとの連携が必要なこともあり、GaudiyのUnityチームではWebGLビルドによるアプリケーション開発を行っています。 WebGLビルドは、スタンドア

                                                              UnityのWebGLアプリ開発における"使えないライブラリ問題"の回避策 - Gaudiy Tech Blog
                                                            • 各言語の非同期処理の仕組みまとめ - Qiita

                                                              はじめに 非同期処理はアプリケーション開発においてほぼ必須となっていますが、プログラミング言語やライブラリによってその実現方法は大きく異なります。 この記事では、以下の言語における非同期処理の実現方法を調査し、分類した結果をまとめたものです。 JavaScript/TypeScript(Promise) Kotlin(Coroutines) Java(Reactor Core/Completable Future) Python(asyncio) Golang(goroutine/conc) Haskell(async) Rust(tokio) 非同期処理の分類 構文 async/await 採用している言語: JavaScript/TypeScript/Python/Kotlin/Haskell/Rust もっとも代表的な非同期処理の構文です。 asyncとawaitという対になる二つの

                                                                各言語の非同期処理の仕組みまとめ - Qiita
                                                              • Passkeyを個人開発サービスに導入したお話

                                                                初めまして。都内でソフトウェアエンジニアをやってご飯を食べているWintuというものです。今回は私が開発してるライブ配信プラットフォーム「CASPUR」にPasskeyを導入した話をしていけたらと思っております。 今回はPasskeyのある程度の仕組みを理解して、実際に実装したいと思ってるエンジニアさんに少しでも参考になればと思い書いてます。なのでPasskeyなどの基礎知識とかの解説は省かせてもらいます 完成した認証フロー なるべくPasskeyを登録して欲しかったので、登録導線に組み込んで後のログインを楽にするよう設計しました。いろいろデザインが投げやりなところは個人開発なので許してください...😛 CASPURの現状 CASPURでは認証周りにFirebase Authenticationを利用し、バックエンドはMySQL + Express.js。フロントエンドにはVue.jsを

                                                                  Passkeyを個人開発サービスに導入したお話
                                                                • Rustのtokioを使ってLSP, DAPサーバーを書く

                                                                  はじめに 最近はioliteという言語とそのコンパイラを書いています。 そこで、VSCode上の言語機能やデバッガーの機能を作りたくなったので、それをRustのtokio上で動くLSP,DAPサーバーを書いたのでそれに関する記事です。 (この記事執筆時点のリポジトリ) LSPとDAPについて この記事を読んでいる人はLSPについては知っている人が多いと思いますが、LSPはmicrosoftが定める規格で、エディター上のautocompleteや定義ジャンプ、エラーの表示やホバー時の型表示などの機能を提供することができる規格です。 一方でDAPはLSPのデバッガーバージョンのようなもので、VSCodeのデバッガーを起動した時に提供される、ブレイクポイントやステップ実行などの機能について定めた規格です。 いずれもエディターから呼ぶためのプロトコルとして定義されており、通信は必ずしもサーバーを立

                                                                    Rustのtokioを使ってLSP, DAPサーバーを書く
                                                                  • Cloudflare Workers で Dependency Injection

                                                                    NOT A HOTEL ではガッツリ Cloudflare Workers の上でアプリケーションを動かしています。 本格的にアプリケーションを開発しようとすると、ある機能 A を作成するために、それに依存する機能 B、機能 C を事前にセットアップしなければいけません。これらをスッキリさせる手法として Dependency Injection(以下 DI)があります。 環境変数もセットアップに必要な機能です。うちではどのように DI を行なっているか、一つの事例として紹介します。言語は TypeScript です。 ディレクトリ構成 di.ts を worker.ts と同じ階層に作成しています。 di.ts の中身 以下のようなコードを書いています。 使う時は new DIContainer(env, req) もしくは new DIContainer(env) と記述して利用できます

                                                                      Cloudflare Workers で Dependency Injection
                                                                    • フルスタックプログラマーの卵どもにおくる、独学チートシート - Qiita

                                                                      フルスタックプログラマーの卵どもにおくる、独学チートシート お前ら、まず初めに、ホヤホヤのひよこの身分で卵ども などと上から目線で発言してしまい、大変失礼いたしました。非礼をお許しください。 自分自身独学ウェブプログラマーの身分として体験してきた事ですが、バックからフロントまで全部自分で仕上げられる立派なプログラマーになろうと思って勉強を始めようとすると、まず圧倒される。 勉強すべき事が多すぎるからである。 HTML/CSSからHTTP、サーバーサイド、セキュリティー、Auth、データベース、無数にあるフレームワークやライブラリ、GitやDockerなんかのツール類。 一体毎日勉強しても何年かかるのか、さらに技術が陳腐化して新しいものに取って代わられていくペースを眺めていると、勉強してもしても追いつかない様な気分になってくる。 ただ、物事には芯というものがあり、そこをまず抑えておけば、全体

                                                                        フルスタックプログラマーの卵どもにおくる、独学チートシート - Qiita
                                                                      • Node.js — Node.js 22 is now available!

                                                                        We're excited to announce the release of Node.js 22! Highlights include require()ing ES modules, a WebSocket client, updates of the V8 JavaScript engine, and more! Node.js 22 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months. We encourage you to explore the new features and benefits offered by this latest release and evaluate th

                                                                          Node.js — Node.js 22 is now available!
                                                                        • Valkey GLIDE – Valkey と Redis OSS向けのオープンソースクライアントライブラリのご紹介 | Amazon Web Services

                                                                          Amazon Web Services ブログ Valkey GLIDE – Valkey と Redis OSS向けのオープンソースクライアントライブラリのご紹介 本記事は 2024年7月9日に公開された “Introducing Valkey GLIDE, an open source client library for Valkey and Redis open source” を翻訳したものです。 2024年7月9日、私たちは Valkey General Language Independent Driver for the Enterprise (GLIDE) を発表しました。これは、オープンソースでパーミッシブライセンス (Apache 2.0 ライセンス) の Valkey クライアントライブラリです。Valkey は、キャッシュ、セッションストア、リーダーボード、メッセ

                                                                            Valkey GLIDE – Valkey と Redis OSS向けのオープンソースクライアントライブラリのご紹介 | Amazon Web Services
                                                                          • 記事中のURLプレビューを実装した (Cloudflare Pages Functions) | Marginalia

                                                                            記事中のURLプレビューをiframeで表示するためのエンドポイントをCloudflare Pages Functionsで実装した。実はこれまで長らくはてなブログのembed APIを勝手に借りていた。倫理的によろしくない面もあったり、パフォーマンスや信頼性の面でもセルフホストしたいと思っていたが、着手するのを先延ばしにしていた。別に技術的に困難なポイントがあったわけではないが、備忘録としてやったことを書く。 /embed エンドポイントの作成このブログはCloudflare Pagesでホスティングしている。Cloudflare PagesのFunctions機能は、デプロイするレポジトリの /functions ディレクトリの中に配置したスクリプトを動的なWorker関数として呼び出せるようにしてくれる。 今回はこの機能を使って、 /functions/embed/index.tsx

                                                                              記事中のURLプレビューを実装した (Cloudflare Pages Functions) | Marginalia
                                                                            • キャッシュ可能な署名付きURLを考えてみる

                                                                              この記事は2023年10月06日に開催された 「Cloudflare Meetup Nagoya 第3回」 で登壇した資料に基づいて作成されています。 登壇資料も併せてアップロードしていますので、そちらも併せてご覧ください。 今回のコンセプト 今回のコンセプトはタイトルにもある通り、 「キャッシュ可能な署名付きURL」 です。 昨今、画像はCDNを経由して配信されることが当たり前となりました。 ですが、たとえCDNを挟んでいたとしても画像配信は想像以上に金額がかかることは、AWSやGCPなどのストレージサービスを利用している人はご存知の通りでしょう。 そこで、Cloudflareのデータ転送料金は無料ということもあり、画像や動画コンテンツだけはCloudflareを使うケースが増えてきました。 例えば、実データはCloudflare以外のサービス(例えばS3)に配置し、CDNだけCloud

                                                                                キャッシュ可能な署名付きURLを考えてみる
                                                                              • wasm-image-optimization で一括画像最適化

                                                                                cloudflare workers routes を利用するので、cloudflare が ns を持つドメインを持っている必要があります。 import { Hono } from "hono"; import { createMiddleware } from "hono/factory"; import { optimizeImage } from "wasm-image-optimization"; import { cache } from "hono/cache"; const app = new Hono(); const via = createMiddleware((c, next) => { if (c.req.header("via")) { console.log("pass through", c.req.raw.url); return fetch(c.req

                                                                                  wasm-image-optimization で一括画像最適化
                                                                                • Progress toward a GCC-based Rust compiler [LWN.net]

                                                                                  This article brought to you by LWN subscribersSubscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible. The gccrs project is an ambitious effort started in 2014 to implement a Rust compiler within The GNU Compiler Collection (GCC). Even though the task is far from comp