並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 41件

新着順 人気順

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

  • Ruby methods are colorless

    👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 10 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless Concurrent, colorless Ruby: Part 1, Threads Concurrent, colorless Ruby: Part 2, Fiber a

      Ruby methods are colorless
    • Private Browsing 2.0

      When we invented Private Browsing back in 2005, our aim was to provide users with an easy way to keep their browsing private from anyone who shared the same device. We created a mode where users do not leave any local, persistent traces of their browsing. Eventually all other browsers shipped the same feature. At times, this is called “ephemeral browsing.” We baked in cross-site tracking preventio

        Private Browsing 2.0
      • Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita

        はじめに 最近はあまり触れていないが、PythonでDiscordのBOTを作成しようとすると、discord.pyやPycordのようなライブラリを使うのが一般的と思う。 その中でよく使われる構文の中に@bot.commandのような構文を目にすることだろう。 これはデコレータと呼ばれる構文なのだが、私は中身の構造は関数型引数を実装した関数のような感じなんだろうなと予想はしながらも、なんとなしで利用していた。 そんなわけで、調べていきながら便利な使い方なんかを探してみる。 import discord from discord.ext import commands intents = discord.Intents.default() intents.members = True intents.message_content = True bot = commands.Bot( co

          Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita
        • Playing guitar tablatures in Rust

          If you ever tried to learn guitar, chances are you are familiar with guitar tablatures. It is a simple way to visualize music for guitar, using ASCII characters to represent strings and frets as an alternative to sheet music. For instance, here are the first four measures of the song "Smoke on the Water" by Deep Purple: e|-----------------|-----------------|-----------------|-----------------| B|-

          • Next.jsでAI Chat UIを作る(ローカルLLMとGPT-4o mini)

            はじめに GPT-4o miniが発表されたので、APIを使ってNext.js App routerにて簡単なAIチャットページを実装してみました。Vercel AI SDKを使用しています。 以前にも記事を書きましたが実装内容が古くなりましたので新たに記事にしてみました。(今回はLangChain JSは使っていません) GPT-4o mini また、今回はローカルLLM(Ollama)でも利用できる内容としています。 ※ マシンスペックが足りないなど環境がない方は、Ollamaの部分は読み飛ばしてください。 以前の記事 読者対象 Next.js開発の経験者 事前準備 OpenAI プラットフォームから API キーを作成&取得しておく。 https://platform.openai.com/ Ollamaも使いたい場合は起動しておきます。 参考ドキュメント コードを書く ステップ N

              Next.jsでAI Chat UIを作る(ローカルLLMとGPT-4o mini)
            • Reading and writing Node.js streams

              Working with large datasets in Node.js applications can be a double-edged sword. The ability to handle massive amounts of data is extremely handy, but can also lead to performance bottlenecks and memory exhaustion. Traditionally, developers tackled this challenge by reading the entire dataset into memory at once. This approach, while intuitive for smaller datasets, becomes inefficient and resource

                Reading and writing Node.js streams
              • 米国大統領選でドナルド・トランプ氏が銃撃される直前に、ジョー・バイデン氏が銃規制の必要性をうったえていたことは、危機管理能力の高さではないのか - 法華狼の日記

                2024年の大統領選をあらそう候補者では、バイデン氏が新たな銃規制を導入して、その撤廃を前大統領としてトランプ氏が目指している。2月に演説したばかりだ。 トランプ氏、バイデン政権の銃規制撤廃を表明 大統領選勝利なら | ロイター トランプ前大統領は9日、大統領在任中に銃保有の権利を守ったと強調し、返り咲けばバイデン政権が導入した銃規制を全て撤廃すると表明した。 ペンシルベニア州で開かれた全米ライフル協会(NRA)主催のイベントで演説し、「銃の所有者やメーカーに対するバイデン(大統領)の攻撃は、私の就任最初の1週間、おそらく初日に全て終わらせる」と述べた。 7月14にもツイート*1においてバイデン氏は銃規制の必要性をうったえ、トランプ氏がそれをこばんでいると指摘していた*2。 バイデンが直前に「私は銃規制をしたいが、トランプはNRA(全米ライフル協会)に現状維持を約束した」と呟いているのもま

                  米国大統領選でドナルド・トランプ氏が銃撃される直前に、ジョー・バイデン氏が銃規制の必要性をうったえていたことは、危機管理能力の高さではないのか - 法華狼の日記
                • BlueskyのTUI Client Appを作り始めてしまった - すぎゃーんメモ

                  memo.sugyan.com の続き…? I've published `tuisky`, a TUI Client for Bluesky, as v0.0.1. (It's still a work in progress.) Were there already other clients available for use in the terminal? #atdev #bluesky-client #tui crates.io/crates/tuisky [image or embed]— すぎゃーん (@sugyan.com) Jul 1, 2024 at 12:12 AM 経緯 RatatuiによるTUI開発 Asynchronous Event Handling Components Architecture 自作Client用の設計 機能 完全に分離された Multi

                    BlueskyのTUI Client Appを作り始めてしまった - すぎゃーんメモ
                  • テキストエディタってなんやろな?

                    いやぁ〜、テキストエディタの世界、めっちゃディープでんねん!聞いてくださいよ〜。 まず、テキストエディタの心臓部、バッファ管理システムについてや。これ、単なるテキスト保持やないんですわ。例えば、Emacsのガベージコレクション機構。マーク&スイープ方式採用してて、バッファ内のLispオブジェクトを効率的に管理してんねん。これがあるから、長時間の編集作業でもメモリリークせーへんのや。 次に、レンダリングエンジン。これが曲者でんねん。Unicode標準のUAX #9に準拠した双方向アルゴリズム実装せなアカン。さらに、合字処理のためにOpenTypeのGSUB/GPOSテーブル解析も必要や。Harfbuzzライブラリ使うんやけど、カスタムシェーピングエンジン組み込んで、特殊な文字体系にも対応せなアカンのや。 構文解析エンジンも侮れまへんで。LR(1)パーサーじゃ複雑な言語構文に対応でけへんから、

                      テキストエディタってなんやろな?
                    • PlaywrightによるE2EテストでOTP(ワンタイムパスワード) MFAを通す | DevelopersIO

                      PlaywrightによるE2Eテストの実装において、OTP(ワンタイムパスワード) MFAを通す方法について書きました。Google Authenticatorを使っている場合の方法になります。 情報システム室の進地@日比谷です。 PlaywrightでE2Eテストを行うときに、SaaSのMFAを通す必要がありました。本エントリーではOTP(ワンタイムパスワード) MFAをPlaywrightで通す方法について記述します。 必要なモジュールのインストール Playwrightのプロジェクトルートディレクトリで totp-generator モジュールをインストールします。 $ npm i totp-generator また、対象のOTP generatorのシークレットキーを環境変数で渡したいので、dotenvモジュールもインストールします。 $ npm i dotenv OTP gen

                        PlaywrightによるE2EテストでOTP(ワンタイムパスワード) MFAを通す | DevelopersIO
                      • JavaScript Event Loop: A Deep Dive

                        JavaScript, being a single-threaded language, executes one task at a time. However, it handles asynchronous operations with ease, thanks to the event loop. The event loop is a fundamental concept that powers JavaScript's concurrency model, allowing it to manage multiple operations efficiently without blocking the main thread. In this article, we'll explore the intricacies of the JavaScript event l

                          JavaScript Event Loop: A Deep Dive
                        • microCMS + AstroのJamstack構成でキャッシュを活用し、ビルド時間を90%以上短縮した方法

                          microCMS + AstroのJamstack構成でキャッシュを活用し、ビルド時間を90%以上短縮した方法 はじめまして、株式会社メンバーズ メンバーズルーツカンパニーの岸本です。 普段はフロントエンドエンジニアとして、主にmicroCMSとAstroを使用したJamstack構成の開発を行っています。 メンバーズルーツカンパニーでは、今までにmicroCMSとAstroを利用したJamstack環境での開発を複数行ってきました。 今回はその中で直面した、ビルド時間に関する課題とその解決方法として、キャッシュ処理を用いたビルド時間の短縮方法をご紹介いたします。 背景と課題記事詳細ページのビルドに時間がかかることに気づくJamstack構成のウェブサイトを構築するにあたってネックになるのがビルド時間です。事前に全ページをビルドする必要があるため、ビルドには相応の時間がかかります。 弊社の

                            microCMS + AstroのJamstack構成でキャッシュを活用し、ビルド時間を90%以上短縮した方法
                          • Astroチュートリアルメモ その5-2,3【動的ルーティングとタグ一覧ページ】

                            タグのページを作る際に、動的ルーティングを使う。 src/pages/tags/[tag].astroのようにファイルを作り、取りうるURLをgetStaticPathsで指定する。 Next.jsのgetStaticPathsとURLの作り方は同じ。 大きな違いはAstroのgetStaticPathsはNext.jsのgetStaticPathsとgetStaticPropsを合わせた機能を持っているところ。 動的ページの作成 --- import BaseLayout from "../../layouts/BaseLayout.astro"; import BlogPost from "../../components/BlogPost.astro"; export async function getStaticPaths({}) { const allPosts = await

                              Astroチュートリアルメモ その5-2,3【動的ルーティングとタグ一覧ページ】
                            • LambdaでPlaywrightを動かす(Lambdaレイヤー / コンテナ) | 豆蔵デベロッパーサイト

                              今クロスブラウザテストでよく使われるツールといえばPlaywrightですね。 テストでなくとも単純にブラウザ自動化ツールやスクレイピングツールとして使っている現場も多いかと思います。 とある事情で、Lambda上でPlaywrightを動かしてみましたが、予想以上に苦戦したので備忘録も兼ねて手順をまとめます。 Lambdaレイヤーを使う # これが一番簡単な方法です。 Playwright等のツールはそれ単体では動作せず、Chromium等のブラウザをインストールしなければなりません。 とはいえ、基本的にLambdaはマネージドサービスですので、自由にそのランタイム環境をカスタマイズできる訳ではありません。 また、Lambda関数をパッケージングするZIPファイルは、サイズが50MB(解凍後は250MB)以内という制約[1]がありますので、そのままブラウザをインストールできません。 あり

                                LambdaでPlaywrightを動かす(Lambdaレイヤー / コンテナ) | 豆蔵デベロッパーサイト
                              • トランプ暗殺未遂事件が「バイデン政権側によって仕組まれた計画」であると考えざるを得ない「新たな状況証拠」(朝香 豊) @gendai_biz

                                シークレットサービス側の大きな矛盾 トランプの暗殺未遂事件は、バイデン政権側が狙撃犯のトーマス・マシュー・クルックスを泳がせたのではないかと考えたくなるほど警備が杜撰で、シークレットサービス側の説明も大きな矛盾をはらんだものだったということについては、過去2回にわたってお伝えした。今回はこれについての追加情報を挙げたい。 AP通信のファクトチェック記事を読んでいたら、シークレットサービスの広報官が、(シークレットサービスの)スナイパーは脅威を見つけたらいつでも行動するよう訓練され、指示を受けており、容疑者を無力化するのに、発砲前に(上部からの)指示を待つことはない、と語っているとの記述を見つけた。 〈 A spokesman for the Secret Service said snipers are trained and instructed to act whenever they

                                  トランプ暗殺未遂事件が「バイデン政権側によって仕組まれた計画」であると考えざるを得ない「新たな状況証拠」(朝香 豊) @gendai_biz
                                • AstroのサイトでGoogle Adsenseを遅延読み込みする

                                  記事概要 先日のBloggerからAstroへ移行した記事の別途詳細 ※参考 - Blog移行記事 目的 Astroで構築したWebサイトにGoogle Adsenseの遅延読み込みを実装する 前回、GoogleアナリティクスをPartytownで遅延読み込みする実装を行ったがAdsenseには適用できなかった 例としてディスプレイ広告(バナー)を扱う JavaScriptのobserverを使用し、広告が描画エリアに入るタイミングでAdsenseのJSをロードする 用語説明 Astro とは? Astroは、ブログやマーケティング、eコマースなど、コンテンツ駆動のウェブサイトを作成するためのウェブフレームワークです。Astroは、新しいフロントエンドアーキテクチャを開拓し、他のフレームワークと比較してJavaScriptのオーバーヘッドと複雑さを低減することで知られています。高速でSEO

                                    AstroのサイトでGoogle Adsenseを遅延読み込みする
                                  • Denoでのシグナルを使ったプロセス停止ハンドリング - Qiita

                                    この記事の概要 この記事は、常時実行している処理のプロセスを修了した際に処理途中で停止を防ぐ方法を学びましたので記事として残します。 間違った情報を記載している可能性がありますので温かい目で読んでいただければと思います。 通常のプロセス停止 以下に擬似的に処理を100%で完了と表示されるサンプルコードをDeno(TypeScript)で記述しています。 console.log("Start"); while(true) { for (let i = 1; i <= 10; i++) { console.log(`${i*10}%`); if( i === 10 ) { console.log("Complete!"); } // 1秒まつ await new Promise((resolve) => setTimeout(resolve, 1000)); } } console.log("

                                      Denoでのシグナルを使ったプロセス停止ハンドリング - Qiita
                                    • MAUIでバックグラウンド(非アクティブ時でも)で処理を継続する(Android編) - shuhelohelo’s blog

                                      はじめに この記事は,以前にXamarin.Formsで行った「アプリケーションが非アクティブの状態でも動作を継続させる方法」のMAUI版です. 結論から言うと、個人的な趣味でメッセージングにCommunityToolkit.MvvmのWeakReferenceMessengerを使うようにしたぐらいで、あとはほぼそのまま使えました。 shuhelohelo.hatenablog.com 各プラットフォームごとに実装が異なり,この記事はAndroidについてです. アプリケーションが非アクティブ(アプリをユーザーが操作中ではない)ときにも,継続して処理を行うことが目的. Androidのバックグラウンドタスクの実行制限について Android開発者サイトにもあるようにバックグラウンドタスクの実行には以下の制限があるため,非アクティブ時には一定時間後に停止する. developer.andr

                                        MAUIでバックグラウンド(非アクティブ時でも)で処理を継続する(Android編) - shuhelohelo’s blog
                                      • Slackワークフロー開発をして見えてきた沼

                                        Slackのワークフロー開発をする機会があり、色々と試行錯誤し苦労した(沼った)ので、他の人が同じ沼にハマらないよう一助になれば 前提 作ったワークフローの主な機能概要 slackチャンネル作成依頼 チャンネルを作りたい人がワークフロー起動し、依頼をする チャンネル作成&招待 管理者が内容チェックし、承諾すると、チャンネル作成しそこに依頼者を招待する Slack Enterprise Gridを利用 複数のワークスペースに対して利用できるワークフローを作成 沼一覧 似た概念沼 ワークフローとAppは言葉でみると明らかに異なる概念ですが、実際触っていくと機能的に酷似しています。 ワークフローを作る際、難しいことをやろうとするとAppも新規に利用する必要が出てくるのですが、利用者から見ると、ワークフローもAppも同じように実行できるし、App自体にワークフローの機能も備えており、結局、やりたい

                                          Slackワークフロー開発をして見えてきた沼
                                        • 好きなクローラ発表ドラゴン (Scrapy + Playwright) - Qiita

                                          好きなクローラ発表ドラゴン 目次 諸言 なぜ好きなのか クローラの辛みに効くScrapy+Playwright 結言 諸言 初めまして!株式会社 Panta RheiのCEOです。かずさんと呼ばれているので以後そんな感じでお呼びください。Xのハンネはpandasista(@sotsogprinciple)です。 好きなクローラを発表します。 scrapy + Playwright です。 好き好き大好き。 なぜ好きなのか Scrapyが良い ORM(SQLAlchemy)を標準装備しており簡単DB接続 データフローを構築しやすくパブリッククラウドと相性が良い データ取得を自動化しやすい 多種類のWebサイトをクロールを統一の設定で実行できる CookieやCacheなどの多種類の設定をTrueFalseのみで設定 Middlewareとして多くの途中処理を追加できる データを綺麗にする関数

                                            好きなクローラ発表ドラゴン (Scrapy + Playwright) - Qiita
                                          • Bot FrameworkのPython SDKを使ってAzure OpenAI Serviceを利用したBotアプリを作ってみました。 - CCCMKホールディングス TECH LABの Tech Blog

                                            こんにちは、CCCMKホールディングス TECH LABの三浦です。 この前いつも乗り換えをするだけの駅で降りて駅の周りを歩いてみました。のんびり出来そうな公園や、色々なものが売っている商店街などがあって、こんないいところがあったんだと、なんだか得をした気持ちになりました。ゴールデンウィークも始まったので、他にもいつも通り過ぎるだけの駅で降りて、探索してみたいなと思います。 さて、今回MicrosoftのBot開発用のSDK"Bot Framework"のPythonのSDKを使ってAzure OpenAI ServiceのChatGPTと会話が出来るBotアプリケーションの作り方について調べて実際に動かしてみました。Bot Frameworkで作成したアプリケーションはAzure AI Bot Serviceで動かすことでMicrosoft Teamsからアクセス出来るようになるので活用

                                              Bot FrameworkのPython SDKを使ってAzure OpenAI Serviceを利用したBotアプリを作ってみました。 - CCCMKホールディングス TECH LABの Tech Blog
                                            • チュートリアル: .NET MAUI アプリを作成する - .NET MAUI

                                              このチュートリアル シリーズは、クロス プラットフォーム コードのみを使用する .NET Multi-platform App UI (.NET MAUI) アプリを作成する方法を示す目的で設計されています。 つまり、記述するコードは、Windows、Android、iOS、または macOS に固有のコードにはなりません。 作成するアプリはメモを取るアプリであり、ユーザーは複数のノートを作成、保存、読み込むことができます。 このチュートリアルでは、次の作業を行う方法について説明します。 .NET MAUI シェル アプリを作成します。 選択したプラットフォームでアプリを実行します。 eXtensible Application Markup Language (XAML) を使用してユーザー インターフェイスを定義し、コードで XAML 要素を操作します。 ビューを作成し、データにバイン

                                                チュートリアル: .NET MAUI アプリを作成する - .NET MAUI
                                              • FC町田ゼルビア、FW平河悠のブリストル・シティFCへの期限付き移籍を発表 「胸を張って行ってきます!」 :

                                                Twitter Facebook LINEでおくる B! Bookmark 更新通知を受ける FC町田ゼルビアは9日、FW平河悠がイングランドのブリストル・シティFCへ期限付き移籍することを発表しました。 平川選手は山梨大学在学中の特別指定選手を経て2023年にFC町田ゼルビアでプロ入り。2021年、2022年は特別指定選手として所属しました。 [町田公式]平河悠選手 期限付き移籍のお知らせ https://www.zelvia.co.jp/news/news-271505/ この度、平河悠選手が、ブリストル シティFC(イングランド)へ期限付き移籍することが決定しましたのでお知らせいたします。 期限付き移籍期間は2025年6月30日までとなります。 【平河悠 選手 コメント】 「この度ブリストルシティFCに期限付き移籍する事になりました。 まず、この機会を与えて下さった監督・スタッフ・強

                                                  FC町田ゼルビア、FW平河悠のブリストル・シティFCへの期限付き移籍を発表 「胸を張って行ってきます!」 :
                                                • ボーイフレンド | Netflix (ネットフリックス) 公式サイト

                                                  '); doc.close(); } if (!doc) throw Error('base not supported'); var baseTag = doc.createElement('base'); baseTag.href = base; doc.getElementsByTagName('head')[0].appendChild(baseTag); var anchor = doc.createElement('a'); anchor.href = url; return anchor.href; } finally { if (iframe) iframe.parentNode.removeChild(iframe); } }()); } // An inner object implementing URLUtils (either a native URL // ob

                                                    ボーイフレンド | Netflix (ネットフリックス) 公式サイト
                                                  • Unity用ネットワークライブラリSynicSugar Vol.2 - Qiita

                                                    SynicSugar SynicSugarというネットワークライブラリを作って1年以上経ちました。Epic online servicesをリレーとマッチングサーバーに使ったUnity用のライブラリです。 特徴 無料 CCU制限なし フルメッシュのp2p ボイスチャット対応(最大16人) PC(LinuxはVC非対応)、モバイル、CSに対応しておりクロスプラットフォーム マッチメイクやホストマイグレーション、復活機能をライブラリ側でフルサポート 以下でSynicSugarの特色についての紹介をします。 サンプルについては3つほど用意してあるので、それを参考にしてください。機能を一通り見たいならChatというサンプルが全て詰め込んであってわかりやすいと思います。3D風のゲームになる予定のTank、初期に動作確認用に作ったReadHeartというターン制対戦ゲームの三つです。 ドキュメントにR

                                                      Unity用ネットワークライブラリSynicSugar Vol.2 - Qiita
                                                    • AWS Lambdaだけでアンケートフォームを作れる - maybe daily dev notes

                                                      Lambda function URL活用案件として、Lambdaだけを使ってアンケートフォームを作ってみた。 実際は回答の閲覧用にSlackも使ってるが、ほかは本当にLambdaだけ。 アーキテクチャ コード 冗長な部分もあるので、要点だけ抜粋。フルのコードはこちらに載せた。 これをLambdaのマネコンでデプロイし、Function URLを設定すれば良い。 また、 SLACK_WEBHOOK_URL 環境変数を設定すれば、アンケート結果をSlackに送信できる。 const https = require('https') exports.handler = async (event) => { console.log(event) const req = event.requestContext.http; const sourceIp = req.sourceIp; // can

                                                        AWS Lambdaだけでアンケートフォームを作れる - maybe daily dev notes
                                                      • honoとCloudflareでLINE Botを作る

                                                        import { Hono } from 'hono'; type Bindings = { LINE_CHANNEL_ACCESS_TOKEN: string; LINE_CHANNEL_SECRET: string; }; const app = new Hono<{ Bindings: Bindings }>(); Bindingsとして環境変数を定義しておいて、const app = new Hono<{ Bindings: Bindings }>();のように渡すとc.envで値を取得できるようになります。 KV namespaces, D1 database, R2 bucketなどもここで定義してcontext経由で使用するようです。 個人的には少し変な感じがしますが、型もちゃんと付くので慣れれば特に問題ない気がします。 次にメインの/webhookエンドポイントです。 im

                                                          honoとCloudflareでLINE Botを作る
                                                        • フロントエンド(Nuxt.js)でのFireStoreの文法まとめ

                                                          Firestoreでのフロントエンドでの処理についてまとめました。 Firestoreでの繋ぎこみやインスタンスを初期化は済んでいる前提で記載します。 全データを取得(getDocs) getDocsメソッドを使用すると、複数のドキュメントの内容を取得できます。 const fetchData = async () => { const querySnapshot = await getDocs(collection(db, 'todos')) querySnapshot.forEach((doc) => { const todo = { id: doc.id, uuid: doc.id, ...doc.data() } }) return fetchedTodos.value } // 単一データの取得処理 const getTodo = async (route: string) =>

                                                            フロントエンド(Nuxt.js)でのFireStoreの文法まとめ
                                                          • ImageFlux Live StreamingでAIアシスタントを作ってみた | さくらのナレッジ

                                                            こんにちは、テリーです。ChatGPTのライバルサービスが次々に出てきています。GeminiもClaudeもそれぞれ特徴があり、同じプロンプトで比較しても全く異なる返答が来てとても興味深いです。人間の専門家で言うところの「セカンドオピニオン」「サードオピニオン」に相当するでしょうか。これからますます多くの専門家が登場し、いつでもどこでもAIを使う状態(コモディティ化)に向かっていくことが想像できます。 さて、AIと人間が文章で会話できる時代になりました。次は音声による会話の時代がすぐにやってきます。そのあとはAIキャラクターとのビデオ通話も来年には当たり前になっているでしょう。例えば旅行や結婚式のプランニングをカップルが相談するケースです。有料通話サービス中にAIが参加し、専門家として音声でアドバイスをしてくれたら高品質で格安のサービスが実現できそうです。 音声による会話やサポートを自社サ

                                                              ImageFlux Live StreamingでAIアシスタントを作ってみた | さくらのナレッジ
                                                            • 【Next.js】React Hook FormとYupを使って入力フォームのバリデーションを実装した話

                                                              'use client' import * as React from "react" import { yupResolver } from '@hookform/resolvers/yup' import { useState } from 'react' import { useForm } from 'react-hook-form' import { loginSchema } from '@/validations/login' import axios from 'axios' import { Button } from "@/components/ui/button" import { Card, CardContent, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card" import { I

                                                                【Next.js】React Hook FormとYupを使って入力フォームのバリデーションを実装した話
                                                              • Unity向けオブジェクトプールライブラリ「uPools」 - Qiita

                                                                uPoolsとは uPoolsとはUnity向けのオブジェクトプールライブラリです。 汎用的なオブジェクトプールから非同期オブジェクトプールや、既存実装をほぼそのままオブジェクトプール化できる機能が搭載されています。 https://github.com/AnnulusGames/uPools/ ※ 本記事では「UniTask」を使用しています。 サンプルコード https://github.com/TORISOUP/uPools_Samples 導入方法 導入方法はGitHubのREADMEを参考にしてください。 機能紹介 SharedGameObjectPool SharedGameObjectPoolはPrefabの生成と破棄をとても簡単にオブジェクトプール化する機能です。 PrefabのInstantiate()をSharedGameObjectPool.Rent()に置き換え、D

                                                                  Unity向けオブジェクトプールライブラリ「uPools」 - Qiita
                                                                • Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita

                                                                  はじめに 最近はあまり触れていないが、PythonでDiscordのBOTを作成しようとすると、discord.pyやPycordのようなライブラリを使うのが一般的と思う。 その中でよく使われる構文の中に@bot.commandのような構文を目にすることだろう。 これはデコレータと呼ばれる構文なのだが、私は中身の構造は関数型引数を実装した関数のような感じなんだろうなと予想はしながらも、なんとなしで利用していた。 そんなわけで、調べていきながら便利な使い方なんかを探してみる。 import discord from discord.ext import commands intents = discord.Intents.default() intents.members = True intents.message_content = True bot = commands.Bot( co

                                                                    Pythonのデコレータってどう実装するん?ってことでフレームワーク的な実装を試してみた - Qiita
                                                                  • OpenAI APIで簡単な対話アプリを作ってみた - Qiita

                                                                    基本的なAPIリクエストの構造 OpenAI APIにリクエストを送信する基本的な構造は以下の通りです。リクエストには、APIキーと入力テキストを含める必要があります。 const axios = require('axios'); const apiKey = 'YOUR_API_KEY'; const apiUrl = 'https://api.openai.com/v1/completions'; async function getCompletion(prompt) { try { const response = await axios.post(apiUrl, { model: 'text-davinci-003', prompt: prompt, max_tokens: 100 }, { headers: { 'Authorization': `Bearer ${apiKe

                                                                      OpenAI APIで簡単な対話アプリを作ってみた - Qiita
                                                                    • サーバーサイドでESMプロジェクトをesbuildでbundleして実行する(TypeScript)

                                                                      最終的にesbuildでbundleして、nodejsで動くESM(ES Modules)プロジェクトの作成についてメモする。(TypeScript) ※nodeでサーバーサイドで実行する場合普通はCJS(commonjs)だと思うが、top level awaitが出来ないなど色々あってESM化したい動機があった。 全般的なところは あたりがかなり参考になった。 あと、esbuildを使ったビルド方法について も参考になった。(aws-cdkではランタイムがnodejsのlambdaをesbuildでビルド・デプロイすることができる) esbuildでbundleする部分の追加情報、jestをesbuild-jestで実行させる、といったあたりが追加で調べたこと。 以下、 Linux: Ubuntu22.04LTS @WSL2(Windows11) nodejs 18.13.0LTS p

                                                                        サーバーサイドでESMプロジェクトをesbuildでbundleして実行する(TypeScript)
                                                                      • Next.js + Supabase + Cloudflare PagesでWebサービスを開発・デプロイする際に起きた問題と感想

                                                                        表題の通り、モダンな構成で個人開発としてWebサービスを開発し、Cloudflare Pagesにデプロイしました。 開発した際に発生した問題と感想を共有しておきます。 ※Next.jsはApp Routerを使っています。 なぜこの構成で開発したのか? ▶ Next.js 説明割愛します。 もはや開発の標準フレームワークすぎて説明不要ですね! ▶ Supabase 個人開発レベルであれば無料で使えるからです。 そして、まるでバックエンドが存在しないかのように(感覚的には)直接的にDBにCRUDできるし、認証機能も備わっていて便利だからです。 利益が出てから有料化すれば十分に間に合うので金銭的にはリスクゼロで運営できるのは最高な環境ですね! ▶ Cloudflare Pages こちらも同様に個人開発レベルであれば無料で使えるからです。 また、デプロイも簡単ですし、(ステージング的な意味合

                                                                          Next.js + Supabase + Cloudflare PagesでWebサービスを開発・デプロイする際に起きた問題と感想
                                                                        • RustでHatena APIのClientを作った

                                                                          公式ドキュメントにない言語で実装したので,知見として残しておきます.Basic認証で使うのであれば他の言語でも参考になるかと思います. はてなブログのAPIを利用する方法 公式ドキュメントによるとOAuthかWSSEまたは,Basic認証が必要とのことでした. はてなブログAtomPub を利用するために、クライアントは OAuth 認証、WSSE認証、Basic認証のいずれかを行う必要があります。 公式ドキュメントにはPerl,Ruby,Scalaの事例が載っています. Basic認証をheaderに記載する Basic認証をつけるには以下のようにはHeaderを追加します. Rustで環境変数からuriとauthenticationを出力する Clientに全部書き出すとテストができなくなりそうなので分けています.環境変数を読み取り,uriとauthenticationを出力します.

                                                                            RustでHatena APIのClientを作った
                                                                          • 【Deno】Compression Streams APIを使ってgzipを圧縮・展開する

                                                                            はじめに Deno 環境でファイルを Compression Streams API を使用して、gzip 圧縮・展開する方法を紹介します。 Compression Streams API とは Compression Streams API は、gzip 形式や deflate 形式データの圧縮や展開を行う JavaScript の API です。 Deno にはこの Comporession Streams API が標準で実装されている(v1.45.2現在)ため、Deno 環境下では簡単に gzip の圧縮・展開が可能です。 方法 環境 本プログラムの実行環境は以下の通りです。 Deno v1.45.2 TypeScript gzip 圧縮 const file = await Deno.open("test.txt"); const outputFile = await Deno.

                                                                              【Deno】Compression Streams APIを使ってgzipを圧縮・展開する
                                                                            • JavaScript: 圧縮とかPPM star(3) - Qiita

                                                                              PPM star編第3話。圧縮力を高めるためにPPMd等で使われている技術を組み込んでいきます。遺伝法、SEE、そして新たに二次記号推定(Secondary Symbol Estimation, SSE)の3つです。 function Suffix(){this.root=this.point={size:0,cs:-1,sum:0,o:0}} function update(sa,s){ var a,b,e,m,n,r,t, f=sa.fit,p=sa.max,q=sa.med,l=sa.min, o=l,u=f?l.sum+l.cs:0,v=f?f.hit:0, c={size:p.size+1, cs:-1, sum:0, o:0}; for(;p!==q;p=p.dad){ m=p.sum+1,n=2*v*(6+m),m+=u; // inheritance n=n>m*6?3+(

                                                                                JavaScript: 圧縮とかPPM star(3) - Qiita
                                                                              • 【React 19】useOptimistic で楽観的に UI を更新 - Qiita

                                                                                はじめに この記事では、React 19 で新たに追加された useOptimistic という hook による楽観的更新処理について、useOptimistic を利用するケース、利用しないケースを比較することで、理解を深めていきます。 開発環境 開発環境は以下の通りです。 Windows11 VSCode JavaScript React 19.0.0-rc-df5f2736-20240712 Vite 5.2.0 Node.js 20.14.0 npm 10.8.1 サンプルアプリの概要 動作 Like ボタンをクリックしたらカウントアップする 内部処理 Like ボタンをクリックした3秒後にAPIを呼び出し、クリック数を返す クリック処理実行、実行ステートの管理、実行結果の取得は、useActionState を利用する useOptimistic を利用しないケース クリック数

                                                                                  【React 19】useOptimistic で楽観的に UI を更新 - Qiita
                                                                                • 【AWS】CognitoのJWTトークン検証処理時間を比較 - Qiita

                                                                                  比較内容 比較パターン aws-jwt-verify を使用し、初回インスタンス生成 aws-jwt-verify を使用し、呼び出しごとにインスタンス生成 jsonwebtoken を使用 比較コード 共通コード 検証したいパターン以外はコメントアウトして使用する。 console.time('処理時間'); // リクエストヘッダーからアクセストークンを取得 const token = req.headers.authorization?.split(' ')[1]; // アクセストークン検証 try { /** 初回インスタンス生成 */ await verifier.verify(token); /** jsonwebtokenを使用 */ await verify(token); /** 呼び出しごとにインスタンス生成 */ await verifyJwtToken(token

                                                                                    【AWS】CognitoのJWTトークン検証処理時間を比較 - Qiita