並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 4939件

新着順 人気順

awaitの検索結果1 - 40 件 / 4939件

  • References are like jumps

    In a high-level language, the programmer is deprived of the dangerous power to update his own program while it is running. Even more valuable, he has the power to split his machine into a number of separate variables, arrays, files, etc.; when he wishes to update any of these he must quote its name explicitly on the left of the assignment, so that the identity of the part of the machine subject to

    • TypeScriptとGraphQLで実現する型安全なAPI実装

      この記事はTSKaigi2024での以下の私の発表内容を書き下ろしたものです。 なぜAPIに型をつけたいのか 現代のWebのシステム開発において、クライアント・サーバーともに型のある言語で開発されることが増えてきました。静的な型検査はコードの堅牢性やよりよいメンテナンス性の向上をもたらします。 プログラミング内部だけで型検査をするだけでも十分メリットはありますが、外部I/Oに対する型付けが不十分だとそのメリットを最大限に発揮してるとは言えません。外部I/Oとは、例えばWebフロントエンドだとLocalStorageやDOMからの入力値、それからネットワーク通信(今回はこれをAPIと呼びます[1])などですね。サーバー側でいうとAPIからの入力・レスポンスやデータベースへの読み書きが該当します。 個人的な経験から言うと、Webシステムの開発におけるエラーの多くはAPIやデータベースとのやり取

        TypeScriptとGraphQLで実現する型安全なAPI実装
      • フロントエンドから Amazon S3 にマルチパートアップロードしたい - カミナシ エンジニアブログ

        はじめに Presigned URL(*) などで、Amazon S3 へのアップロード処理を実装していると、大きなサイズのファイルをアップロードしようとしたときに、以下のような課題に直面することがあります。 一回のPUT リクエストでアップロードできるサイズの上限が 5GB まで 単一の HTTP リクエストでアップロードするため、大きなサイズをアップロードしようとしたときに問題が起きる。例えば、アップロードの処理の途中で失敗したとき、最初からやり直しになる。 このようなときに活用したいのが、マルチパートアップロードです。マルチパートアップロードとは、その名の通り、アップロード対象のオブジェクトを小分けにしてアップロードする方法です。 AWS の SDK には、マルチパートアップロードが簡単に行えるような API が用意されているものの、多くは、S3 にアップロードを行うことができる I

          フロントエンドから Amazon S3 にマルチパートアップロードしたい - カミナシ エンジニアブログ
        • Node.js v22の主な変更点 - 別にしんどくないブログ

          引用元: https://nodejs.org/en/about/branding 2024年4月24日にリリースされたNode.js v22の主な変更点を紹介します。 Node.js v22はLTS(長期サポート)のバージョンになります。10月の後半にLTSとしてサポートが始まります。 nodejs.org require()がESMをサポート V8 12.4 アップデートによる JavaScript の機能 Array.fromAsync() Set methods union() intersection() difference() symmetricDifference() isSubsetOf() isSupersetOf() isDisjointFrom() Iterator Helpers map() filter() reduce() --runオプションによるpacka

            Node.js v22の主な変更点 - 別にしんどくないブログ
          • BlazorでJavaScriptから.NETの動的(インスタンス)メソッドを呼び出す - Qiita

            はじめに 仕事で作成しているBlazorのアプリケーションで、Handsontableを使用して一覧表を表示しています。 検証作業を実施している同僚から、2台のPCで同じ画面を表示した際に一覧表を表示する処理を実施すると、後から起動したPC側に一覧表が表示され、本来表示されるPC側には何も表示されないとの報告を受けました。 土日の休日を使って解決策を見つけることが出来たので、備忘録として記事に残しておきます。 問題1 現象 会社では複数PCが使用できますが、自宅ではPC1台です。 そこで、違うブラウザChromeとEdgeで同じ現象が出るか試してみました。Visual Studio上で Chromeを起動しておき、後からEdgeを起動して、一覧表を表示する処理を実施するとEdge側に一覧表が表示されました。 これなら Visual Studio上から デバッグ も可能で調査が進みます。 調

              BlazorでJavaScriptから.NETの動的(インスタンス)メソッドを呼び出す - Qiita
            • TypeScript 版 Mackerel API クライアントライブラリを作った - Object.create(null)

              作りました. jsr.io リポジトリはこっち. github.com (2024-05-12 現在, 筆者は Mackerel を開発している株式会社はてなの社員ですが, これは個人プロジェクトで, API ドキュメントなどの公開されている情報に基づいて作成されています.) なぜ JSR になんか publish したくなった 乗るしかないこのビッグウェーブ TypeScript で Mackerel を操作するちょっとしたスクリプトを書きたかったが, 意外とクライアントライブラリがなかった 単に JSON を fetch してくるだけなら簡単だが, それだけでは型もないし使いづらい 使い方 1. JSR からインストール # Deno deno add @susisu/mackerel-client # Node.js npx jsr add @susisu/mackerel-clie

                TypeScript 版 Mackerel API クライアントライブラリを作った - Object.create(null)
              • 楽観的更新を行うための React の useOptimistic フック

                楽観的更新を行うための React の useOptimistic フック 2024.05.12 React v19 では楽観的更新を行うための `useOptimistic` フックが導入される予定です。楽観的更新とは、ユーザーの操作に対して非同期処理の完了を待たずに UI を更新する手法のことです。楽観的更新によりユーザーの操作に対して即座にフィードバックを提供できるため、UX の向上につながります。 React v19 では楽観的更新を行うための useOptimistic フックが導入される予定です。楽観的更新とは、ユーザーの操作に対して非同期処理の完了を待たずに UI を更新する手法のことです。楽観的更新によりユーザーの操作に対して即座にフィードバックを提供できるため、UX の向上につながります。 楽観的更新を使用している例として、X(旧 Twitter)のいいねボタンがあります

                  楽観的更新を行うための React の useOptimistic フック
                • neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する

                  Result 型 (類似するものとして Either Monad の方が有名かもしれません) を導入する場合、アプリケーション全体の設計を変えたり、全箇所を書き換える必要はありません。 neverthrow は部分的に使用でき影響範囲も閉じるので、局所的に使い始めることができます。 (Rust のような) Result 型 とは ざっくり言うと関数の処理の結果と成否を 1 つの型 Result<T, E> で表したものです。(T は期待する結果の型、 E はエラーを表現する型) 筆者は詳しくはないのですが、 Haskell 等にある Either<L, R> とは厳密には違うようです(Either は両方の値が使用可能であることを前提としている?) 参考: Rust ではなぜ、Either 型ではなく Result 型を採用しているのか neverthrow とは TypeScript で

                    neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
                  • TypeScriptとGraphQLで実現する型安全なAPI実装

                    この記事はTSKaigi2024での以下の私の発表内容を書き下ろしたものです。 なぜAPIに型をつけたいのか 現代のWebのシステム開発において、クライアント・サーバーともに型のある言語で開発されることが増えてきました。静的な型検査はコードの堅牢性やよりよいメンテナンス性の向上をもたらします。 プログラミング内部だけで型検査をするだけでも十分メリットはありますが、外部I/Oに対する型付けが不十分だとそのメリットを最大限に発揮してるとは言えません。外部I/Oとは、例えばWebフロントエンドだとLocalStorageやDOMからの入力値、それからネットワーク通信(今回はこれをAPIと呼びます[1])などですね。サーバー側でいうとAPIからの入力・レスポンスやデータベースへの読み書きが該当します。 個人的な経験から言うと、Webシステムの開発におけるエラーの多くはAPIやデータベースとのやり取

                      TypeScriptとGraphQLで実現する型安全なAPI実装
                    • Cloudflare AI Gatewayを利用して、Amazon Bedrockを使ったAPIの利用状況の可視化、分析、ロギングできるか試してみた | DevelopersIO

                      Cloudflare AI Gatewayを利用して、Amazon Bedrockを使ったAPIの利用状況の可視化、分析、ロギングできるか試してみた どうも!オペレーション部の西村祐二です。 以前、Hono + Cloudflare Workers + AWS SDK for JavaScript v3 + Amazon Bedrockの構成でAIモデルの動作確認用のAPIを作りました。 Hono + Cloudflare Workers + AWS SDK for JavaScript v3の構成でAmazon Bedrockが利用できるか試してみた | DevelopersIO 今回このAPIに対して、AIアプリケーションの利用状況を可視化、分析、キャッシュ、生成された回答のロギングなどの環境を提供するCloudflare AI Gatewayを試してみたいと思います。 Cloudfl

                        Cloudflare AI Gatewayを利用して、Amazon Bedrockを使ったAPIの利用状況の可視化、分析、ロギングできるか試してみた | DevelopersIO
                      • Hono + Cloudflare Workers + AWS SDK for JavaScript v3の構成でAmazon Bedrockが利用できるか試してみた | DevelopersIO

                        Hono + Cloudflare Workers + AWS SDK for JavaScript v3の構成でAmazon Bedrockが利用できるか試してみた どうも!オペレーション部の西村祐二です。 APIを作るときにHono + Cloudflare Workersの構成は開発体験もよく、この構成で検証をおこなっております。 AWSの環境もよく利用しており、AWSのサービスと連携するためにはSDKの利用がほぼ必須になってます。 最近、AIのサービスも利用する機会もあるので、Hono + Cloudflare Workers + AWS SDK for JavaScript v3の構成でAmazon Bedrockが利用できるか試してみました。 その手順などを備忘録のためにまとめておきたいと思います。 環境 Hono: 4.3.4 AWS SDK for JavaScript v

                          Hono + Cloudflare Workers + AWS SDK for JavaScript v3の構成でAmazon Bedrockが利用できるか試してみた | DevelopersIO
                        • VS Code Extensions and WebAssembly

                          It is important to note that the component model does not support low-level (C-style) pointers. As such, you cannot pass object graphs or recursive data structures. In this respect, it shares the same limitations as JSON. To minimize data copying, the component model introduces the concept of resources, which we will explore in more detail in a forthcoming section of this blog post. The jco projec

                            VS Code Extensions and WebAssembly
                          • Temporal Python 1.0.0 – A Durable, Distributed Asyncio Event Loop

                            We are excited about the GA release of the Temporal Python SDK. Python is now a fully-supported workflow language in Temporal, and our use of native asyncio constructs makes it a perfect fit for Python developers looking to write durable workflows. Here are some links to read more about Temporal Python: Repository Application Development Guide Code Samples API Documentation Like essentially all of

                            • Rust through the ages

                              How has Rust changed over the years? It's been nine years since 1.0 was released (well, next week, technically). In that time, there have been 78 major releases and two editions, with a third due later this year. Quite a lot has changed! Those changes have been fairly incremental, so if you've been using Rust all that time, it probably doesn't feel like a lot. But comparing the 1.0 flavour of Rust

                              • Running code after returning a response from an AWS Lambda function | Amazon Web Services

                                AWS Compute Blog Running code after returning a response from an AWS Lambda function This post is written by Uri Segev, Principal Serverless Specialist SA. When you invoke an AWS Lambda function synchronously, you expect the function to return a response. For example, this is the case when a client invokes a Lambda function through Amazon API Gateway or from AWS Step Functions. As the client is wa

                                  Running code after returning a response from an AWS Lambda function | Amazon Web Services
                                • How Python Asyncio Works: Recreating it from Scratch

                                  How Python Asyncio Works: Recreating it from Scratch Posted on May 6, 2024 Right now, asyncio is one of the trendier topics in Python, and rightfully so – It’s a great way to handle I/O-bound programs! When I was learning about asyncio, It took me a while to understand how it actually worked. But later, I came to find out that it’s basically just a really nice layer on top of Python Generators. In

                                    How Python Asyncio Works: Recreating it from Scratch
                                  • Cloudflare WorkersのJS RPCを理解する

                                    前置き 4月の第1週に行われたCloudflare Developer Week 2024でAIやデータベース関係のアップデートの影に隠れ、WorkersをつくってるKenton氏のブログが2つ投下されました。 そして「JS RPC」という機能が追加されました。 これが一見地味なんですが、非常に楽しい未来を想像できるので、書いてみます。というか以前chimameさんが書いた記事でだいぶ理解できるのですが、もう少し噛み砕いて書いてみます。 Bindings Cloudflareにはいくつもプロダクトがあります。ストレージのR2、データベースD1、KVストアのKVなどです。そしてそれらに繋ぐ方法が「Bindings」という方法です。このBindingsで繋げられるものはたくさんあります。 AI Analytics Engine Browser Rendering D1 Environment

                                      Cloudflare WorkersのJS RPCを理解する
                                    • Cloudflare Workersを使って定期的なタスク自動化を実質無料で行う(不要な画像、アカウントの定期削除など)

                                      Cloudflare Workersなら定期的なタスクを自動化 Google Cloud Schedulerのような機能を実質無料で実行できます(1日あたり最大100,000リクエストまで) 実際に自分のサービスで使っている例 Cron 実行履歴(不要な画像の定期削除) 自分の扱っているサービスの場合1日1度不要な画像の処理を定期実行するので1日1リクエスト 30日で30リクエスト リクエスト サブリクエストを含めると先月(4月6日から〜5月6日まで) 1ヶ月あたり90リクエスト 1日あたり最大100,000リクエスト以内なので無料で使える! Cloudflare Workersの料金体系(2024/5/6現在) 2024年5月時点の料金体系 最新の料金情報はCloudflareの公式ウェブサイトで確認してください。 基本プラン Free: Cloudflare Workersの無料プラン

                                        Cloudflare Workersを使って定期的なタスク自動化を実質無料で行う(不要な画像、アカウントの定期削除など)
                                      • Flutter採用理由_2024 - Continuity is The Father of Success

                                        GWでたくさん寝て頭がスッキリしたので、久々にブログで。 個人の感想です LogicとViewの共通化 Native SDK APIへのアクセス 描画パフォーマンス 画面遷移の選択肢 CI/CDのセットアップ容易性 LogicとViewの共通化 flutter.dev Flutter allows you to build apps for mobile, web, desktop, and embedded devices — all from a single codebase. マルチプラットフォーム向けのフレームワークを使う場合、そのフレームワークは複数のプラットフォーム向けのコードを共通化します。 Flutterの特徴の一つは、共通化する対象がLogicとViewの両方である点です。 Logicの共通化は、FlutterのアプリケーションをDartで記述できる点で達成されます。

                                          Flutter採用理由_2024 - Continuity is The Father of Success
                                        • Figma’s journey to TypeScript | Figma Blog

                                          May 1, 2024The evolution of Figma’s mobile engine: Compiling away our custom programming language We’ve long written core parts of our mobile rendering architecture in Skew, the custom programming language we invented to squeeze additional performance out of our playback engine. Here’s how we automatically migrated Skew to TypeScript without disrupting a single day of development. Skew began as a

                                            Figma’s journey to TypeScript | Figma Blog
                                          • クリーンアーキテクチャを説明するときに使う例え話 - Qiita

                                            はじめに おはようございます。Watanabe Jin(@Sicut_study)です。 今回は私の会社でよく使われるクリーンアーキテクチャのレイヤーの説明をたとえ話を交えながらせつめいしていきます。 コードはTypeScriptですが、他の言語のレポジトリもありますのでご確認いただければと思います。 毎朝5分で読める 朝5分で読めるシリーズは平日7時にエンジニアの方に気づきが与えられるような記事を投稿しています。 よければ@Sicut_studyのフォローを宜しくおねがいします! 聞いて学びたい方はこちら👇 私がよく使っているクリーンアーキテクチャ クリーンアーキテクチャは厳密にやっていくこともできますが、私がよく利用するのは実装も比較的簡単で、テストもしやすいという理由から以下の構成で実装をしています。 私は以下の4層を実装で利用して使います usecase gateway driv

                                              クリーンアーキテクチャを説明するときに使う例え話 - Qiita
                                            • kyju.org

                                              Piccolo - A Stackless Lua Interpreter 2024-05-01 History of piccolo A "Stackless" Interpreter Design Benefits of Stackless Cancellation Pre-emptive Concurrency Fuel, Pacing, and Custom Scheduling "Symmetric" Coroutines and coroutine.yieldto The "Big Lie" Rust Coroutines, Lua Coroutines, and Snarfing Zooming Out piccolo is an interpreter for the Lua language written in pure, mostly safe Rust with a

                                              • Agents for Amazon Bedrock で Webサイトにチャットボット機能を足してみる

                                                この記事は Agents for Amazon Bedrock をアプリケーションに組み込む際の全体像を掴んでもらうためのものです。詳細な構築手順などは別資料をあたってみてください。 はじめに いったい何をしようとしているのかというと、生成AIを使ってWebサイトにチャットボットを手軽に実現してみよう、という試みです。 今回は Agents for Amazon Bedrock というサービスを使ってみることにします。 何をしてくれるサービスなのかは「よくある質問」を引用して紹介します。 Amazon Bedrock のエージェントとは、生成 AI ベースのアプリケーションをデベロッパーが簡単に作成できるようにするフルマネージド型の機能です。これにより、さまざまなユースケースの複雑なタスクを実行したり、独自のナレッジソースに基づいて最新の回答を提供したりすることができます。 素晴らしいです

                                                  Agents for Amazon Bedrock で Webサイトにチャットボット機能を足してみる
                                                • Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO

                                                  今回はPythonで簡単にリトライ処理を追加できる「tenacity」を使ってみます。 デコレータ形式で簡単にリトライ処理を追加できるので便利です。 tenacityについて プログラムを書いていて、HTTPの通信などでリトライ処理を実装する機会は多いと思います。 今回はそんなリトライ処理を簡潔に書けるtenacityの使い方を説明します。 インストール インストールはpipで可能です。 インストール pip install tenacity 使い方 シンプルな例 シンプルな例 import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!

                                                    Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO
                                                  • SvelteのESLintおすすめ設定

                                                    0.はじめに最近ESLintの有用性を実感している清水琢巳です。 私は、株式会社ネクストビートで「おもてなしHR」という地方創生に関わる、宿泊業界に特化した転職支援プロダクトの開発をしています。 現在おもてなしHRでは、Svelteを採用して開発しています。 その開発する中で、SvelteのESLint設定について調査をしました。 今回はその結果を共有します。 ※ 本記事はeslint-plugin-svelte[1]を参考にし、私が翻訳した内容を記載しています。そのため言い回しが異なっている場合がありますが、ご了承ください。 目次本記事の構成は以下のとおりです。 1. SvelteのESLintの導入方法 2. plugin:svelte/recommendedの設定内容 3. 個別に追加したおすすめの設定 4. 私のベスト3 5. まとめ 6. 参考文献 7. 告知 1. Svelte

                                                      SvelteのESLintおすすめ設定
                                                    • Functional Semantics in Imperative Clothing

                                                      Functional Semantics in Imperative Clothing There's an old joke about programming with pure functions: “Eventually you have to do some effects. Otherwise you're just heating up the CPU.” I've always wanted the purely functional Roc programming language to be delightful for I/O-heavy use cases. But when I recently sat down to port an I/O-heavy shell script from Bash to Roc, I wasn't happy with how

                                                      • Rustのtokioを使ってLSP, DAPサーバーを書く

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

                                                          Rustのtokioを使ってLSP, DAPサーバーを書く
                                                        • バックエンドエンジニアやめませんか?【KiZooNa.js】 - Qiita

                                                          バックエンドなくてもフロントで完結するライブラリ作りました。サンプルでTodoアプリにしました See the Pen KiZooNa.js TODOs by John Doe (@04) on CodePen. ソースコード 使用方法 使い方はLaravelのクエリビルダーとまったく一緒です。Laravelのpluck()やcount()やinsertGetId()など全部使えます! <html> <body> <script src="https://github30.github.io/KiZooNa.js/KiZooNa.js"></script> <script type=module> const db = new DB({ url: 'http://localhost/sql-injection.php', dsn: 'mysql:host=127.0.0.1;dbname=

                                                            バックエンドエンジニアやめませんか?【KiZooNa.js】 - Qiita
                                                          • AnthropicAI Tool で Retrieval-Augmented Generation を実装してみた

                                                            LangChain なんか使わなくてもシュッと作れたので記事にしておく。 RAG とは 生成AIに検索能力をもたせるやつ。 要は検索機能をこちらで提供してやって、AIにそれを読ませる。 AnthropicAI Tool OpenAI でいう Function Calling JSONSchema で関数シグネチャを与えると、それを使うDSLを生成する。実際の関数は自分で実装して、AI が生成した引数(JSONSchema に従う)を渡す。 TypeScript の Mapped Types でツールの実装部分に型をつける簡単なラッパーを書いた。 RAG の CLI を作る Google検索をするAPIを実装 Google Custom Engine API を使った 本文要約をするAPIを実装 Mozilla の実装を使った 与えられた URL を fetch して、その本文部分を抽出する

                                                              AnthropicAI Tool で Retrieval-Augmented Generation を実装してみた
                                                            • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

                                                              Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の本質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、本当にプラットフォームに足りていなかったものと、それを補っていった経緯、本当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

                                                                令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
                                                              • Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers

                                                                はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレートして、データがシステムを通じて適切に流れるかや、最終的なアウトプットが正しいかどうかを確認します。E2Eテストにより、部分的な単体テストや統合テストでは見逃されがちな問題を発見することができます。

                                                                  Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers
                                                                • 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!
                                                                  • Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita

                                                                    はじめに みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。 私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。 その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。 そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。 負荷試験対象のAPIサーバー 今回は(1) Hello, World!を返すAPI(2) ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。 (1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。 (2)につ

                                                                      Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita
                                                                    • iOS/macOSオンデバイスで爆速で動作する音声認識モデルWhisperKit - Sansan Tech Blog

                                                                      iOSエンジニアの堤です。先日3月28日に開催された弊社主催のLTイベントで、「WhisperKitがだいぶ良いので紹介する」というタイトルで発表しました。 スライドはこちら: www.docswell.com 本記事は、同発表をベースとしつつ、(LTでは時間が足りないので)発表ではカットした内容を盛り込んで記事として再構成したものになります。 WhisperKitとは iOS/macOSオンデバイスで動く音声認識のすごいやつ デモ:標準の音声認識フレームワークSpeechとの比較 Speech WhisperKit なぜ速いのか - WhisperKitの系譜 OpenAI Whisper whisper.cpp Core ML とは whisper.cpp から WhisperKitへ argmax社とApple モデルサイズとメモリ消費量 各モデルのファイルサイズ一覧 メモリ使用量

                                                                        iOS/macOSオンデバイスで爆速で動作する音声認識モデルWhisperKit - Sansan Tech Blog
                                                                      • 管理画面にWasm入れてみた | CyberAgent Developers Blog

                                                                        こんにちは、CyberFight DX 事業本部で web フロントエンドエンジニアをしている久保です。CyberFight DX 事業本部は複数のエンタメサービスを開発、運用するFANTECH本部に所属しています。今回は、管理画面を対象に WebAssembly ( Wasm ) を導入した事例をご紹介します。 FANTECH 本部では技術ブログでの発信を強化しており、最近では下記のような記事を投稿しています。ぜひご一読ください。 Cloud Run サイドカーで Fastly の Prometheus Metrics を収集して Grafana で可視化する reminder-lintでFeature Flagsの削除漏れを防ぐ マルチリージョンで稼働する内製Feature Flagsの実装 私たちのプロダクト WRESTLE UNIVERSE では、ユーザー対象のキャンペーンを実施す

                                                                          管理画面にWasm入れてみた | CyberAgent Developers Blog
                                                                        • Node.js + TypeScriptのモジュールを整理してみる

                                                                          はじめにlink 最近受けるNode.js + TypeScript環境の相談の中で、CommonJSやECMAScript Modulesのあたりで落とし穴にはまっている人が多いという事に気づいた。 Node.jsは歴史的にCommonJSとECMAScript Modules(以後ESMと表記)がどうしても入り乱れる環境にあり、これにTypeScriptのモジュールが加わると組み合わせでさらに複雑度が増すのが現状である。 説明する際に口頭より整理した文章が欲しいと思ったので記事にする。 以下のリポジトリで検証コードを管理している。 https://github.com/koh110/module_test Node.jsモジュールチェックシートlink まず最初にNode.jsにおけるCommonJSとESMの挙動について整理する。 いきなり書かれても把握できないかもしれないが、一旦こ

                                                                            Node.js + TypeScriptのモジュールを整理してみる
                                                                          • 個人的によく使う、省スペースで表示できて雑然としないUI with TailwindCSS

                                                                            1.Tooltip こちらは定番ですね! 特に、何か注釈などの追加情報をユーザーに知らせる時はよく利用します。要素のホバー時だけ表示できるので、エリアの狭い箇所でも利用できるUIです。ただ、警告などの内容には非推奨な点やモバイルユーザーの考慮を必要とする点はデメリットですかね。 // page.tsx <div className="mt-10 mx-auto text-center"> <Tooltip label="ここに説明が入ります。ここに説明が入ります。ここに説明が入ります。ここに説明が入ります。"> <span className="p-2 bg-gray-100 rounded-full">🗑️</span> </Tooltip> </div> // Tooltip.tsx import { ReactNode } from "react" type TooltipProp

                                                                              個人的によく使う、省スペースで表示できて雑然としないUI with TailwindCSS
                                                                            • Vercel AI SDK で Ollama を使う方法

                                                                              はじめに Vercel AI SDK (React 等から LLM の API をいい感じに stream で呼び出せるようにするやつ) から Ollama (OSS の LLM をローカルで動かすやつ) を呼び出す方法を調べました。 参考 課題 Vercel AI SDK の サンプルコードを、OpenAI から Ollama の langchain のモデルを使って、置き換えて動かそうとしたけど、なぜかうまくいかなかった。 解決方法 ここのディスカッションにいろんな解決方法が記載されている。その中からいくつか試した。 解決方法 1 OpenAI Compatibility API を使う OpenAI API と同じ API で呼び出す方法。呼び出せるモデルに制約がある。マルチモーダルの llava は呼び出せない。 URL 変えるくらい。シンプル。すんなり動いた。 解決方法 2 la

                                                                                Vercel AI SDK で Ollama を使う方法
                                                                              • レベルアップしたい人必見 Qiita記事43選 - Qiita

                                                                                はじめに 本記事ではレベルアップしたいエンジニアが読んでおくべきQiita記事を紹介します。厳選に厳選を重ねた43記事です。全ての記事を読んでおく必要はありませんが、ちょっとでも「分からないな」「興味あるな」など思ったタイトルがあれば読んでみてください。 次の4種類に分類して紹介しています。参考にしてください。 フロントエンド バックエンド インフラ・Linux周りの知識 その他 それでは、早速紹介していきます! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 フロントエンド まず最初はフロントエンドエンジニアに読んでおくべきとおすすめできるQiita記事を11個選びました!フロントエンドエンジニアとしての基礎が身に付く

                                                                                  レベルアップしたい人必見 Qiita記事43選 - Qiita
                                                                                • フォントを様々な形式に変換する fontconv を作った

                                                                                  フォントを様々な形式に変換する fontconv を作りました。 .ttf, .otf, .svg, .woff, .woff2 の相互変換とサブセット化に対応しています。.eot も出力だけは対応しています。 なぜ作ったかというと、フォントを Web 上で利用するための woff2 最適化に苦労したからです。 私の場合は以前 ttf2svg を自作したので、 ttf2svg -> svg2woff2 の2回で woff2 は最適化できるようにしていたのですが、 巷のアイコンは woff2 形式でしか配布されていないことがあることに気付きました。 これがなかなか強敵で、woff2 をロードして最適化した後、 woff2 へ再変換できるライブラリが見つかりませんでした。 具体例を上げれば Material Icons の最適化は大変で、びっくりしました。 さすがにこれはおかしいなと思い、様々

                                                                                    フォントを様々な形式に変換する fontconv を作った