木曜日, 12月 18, 2025
No menu items!
ホーム ブログ ページ 3207

「幽☆遊☆白書」×サンリオ、豪華コラボ!

「幽☆遊☆白書×サンリオキャラクターズ」コラボ詳細

2025年7月14日から始まる、人気アニメ『幽☆遊☆白書』と「サンリオキャラクターズ」による特別コラボが話題を呼んでいます。コラボには、様々なキャラクターの組み合わせが登場します。

  • 浦飯幽助×ハンギョドン
  • 桑原和真×ポムポムプリン
  • 蔵馬×マイメロディ
  • 飛影×バッドばつ丸
  • 妖狐蔵馬×クロミ
  • コエンマ×ハローキティ

このユニークな組み合わせが、ファンの心をつかむこと間違いなしです。

グッズラインナップ

コラボのグッズには、等身イラストやミニキャライラストを使用したアイテムが豊富に用意されています。以下は主な商品です。

  • ホログラム缶バッジ(57mm)
    • 単品:572円(税込)、コンプリートセット:3,432円(税込)
  • アクリルカード
    • 単品:660円(税込)、コンプリートセット:3,960円(税込)
  • 缶バッジ
    • 単品:550円(税込)、コンプリートセット:3,300円(税込)
  • パーツ付きアクリルキーホルダー
    • 単品:990円(税込)、コンプリートセット:5,940円(税込)
  • アクリルスタンド
    • 各1,925円(税込)
  • ゆらゆらアクリルスタンド
    • 各1,100円(税込)
  • A4静電気ポスター(2枚セット)
    • 各1,320円(税込)
  • クリアファイル(集合デザイン)
    • 550円(税込)
  • ホログラムステッカー
    • 各440円(税込)
  • ブリューム缶小物入れ(集合デザイン)
    • 990円(税込)
  • レトログラス(集合デザイン)
    • 1,980円(税込)
  • ミニ色紙
    • コンプリートセット:3,300円(税込)

購入特典

さらに、対象商品を2,200円(税込)以上購入するごとに、特典ポストカード(全7種)が1枚ランダムでプレゼントされます。

購入特典

販売スケジュール・購入方法

  • 先行通販

  • 店頭販売

    • 開始日:2025年8月29日(金)~
    • 販売店舗:サンリオアニメストア 池袋P’PARCO店

このコラボは、1990年代に人気を博した『幽☆遊☆白書』と、今も愛され続けるサンリオキャラクターズという、世代を超えた作品同士のコラボレーションです。懐かしさと新しさが共存するアイテムが多数登場しますので、ぜひ楽しみにしてください。

詳しくはサンリオアニメストアの公式Xをご確認ください。

🧠 編集部より:

「幽☆遊☆白書×サンリオキャラクターズ」コラボ

「幽☆遊☆白書×サンリオキャラクターズ」コラボ詳細

今回のコラボでは、人気キャラクターの組み合わせが登場しています。

  • 浦飯幽助×ハンギョドン
  • 桑原和真×ポムポムプリン
  • 蔵馬×マイメロディ
  • 飛影×バッドばつ丸
  • 妖狐蔵馬×クロミ
  • コエンマ×ハローキティ

この6コンビは、等身イラストとミニキャライラストを用いたグッズで展開されています。

グッズラインナップ


「幽☆遊☆白書×サンリオキャラクターズ」コラボグッズ

引用:「サンリオアニメストア」公式X

以下は、主なグッズの価格です:

  • ホログラム缶バッジ(57mm):単品572円(税込)/ コンプリートセット3,432円(税込)
  • アクリルカード:単品660円(税込)/ コンプリートセット3,960円(税込)
  • 缶バッジ:単品550円(税込)/ コンプリートセット3,300円(税込)
  • パーツ付きアクリルキーホルダー:単品990円(税込)/ コンプリートセット5,940円(税込)
  • アクリルスタンド:各1,925円(税込)
  • ゆらゆらアクリルスタンド:各1,100円(税込)
  • A4静電気ポスター(2枚セット):各1,320円(税込)
  • クリアファイル(集合デザイン):550円(税込)
  • ホログラムステッカー:各440円(税込)
  • ブリューム缶小物入れ(集合デザイン):990円(税込)
  • レトログラス(集合デザイン):1,980円(税込)
  • ミニ色紙:コンプリートセット3,300円(税込)

購入特典


「幽☆遊☆白書×サンリオキャラクターズ」コラボグッズ購入特典

引用:「サンリオアニメストア」公式X

対象商品を2,200円(税込)以上購入すると、特典ポストカード(全7種)が1枚ランダムでもらえます。

販売スケジュール・購入方法

先行通販は2025年7月14日(月)から7月21日(月)の間、サンリオアニメストアで行われます。店頭販売は2025年8月29日(金)から、サンリオアニメストア 池袋P’PARCO店にて開始されます。

『幽☆遊☆白書』は1990年代に大ヒットしたアニメ・漫画で、サンリオはキャラクターづくりのパイオニアとして知られています。両者のコラボは世代を超えたファンにとって、非常に魅力的なものです。懐かしさと新しさが共存するアイテムで、ぜひ新たな推し活を楽しんでみてください!

その他の詳細はサンリオアニメストアの公式Xをチェックしてみてください。

  • キーワード: コラボレーション

ホログラム缶バッジ をAmazonで探す
アクリルカード をAmazonで探す
アクリルスタンド をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 4

「限界突破!吉乃が語る新たな魅力」

吉乃の新曲「天伝バラバラ」が話題に

7月11日に、吉乃は柊マグネタイトとのコラボによる新曲「天伝バラバラ」を配信リリースしました。この楽曲は、現在放送中のテレビアニメ「気絶勇者と暗殺姫」のオープニングテーマとして使用されています。

ノリの良いダンスミュージック

「天伝バラバラ」は、アニメのストーリーと見事にマッチしたダンスミュージックで、吉乃が制作の裏話を語りました。アニメは、勇者を暗殺しようとする3人の女の子たちの物語で、同時に彼女たちの恋愛模様も描かれています。楽曲中のリリックも、それらのテーマと繋がりがあります。

  • 楽曲の特徴: 吉乃自身も、これまでにないスタイルのビートを取り入れた点を強調しています。楽曲は、ディスコ風のリズムが特徴で、新しい音楽性に挑戦できたことを嬉しく思っていると語っています。

期待のワンマンライブ

また、吉乃は8月29日に東京・Zepp Hanedaで初のオリジナル曲を披露するワンマンライブを開催します。ファンに楽曲を楽しんでもらうためのプレッシャーを語りながらも、「誰のことも置いていかない」という姿勢で望むと語りました。

「止める」ことを意識した歌唱

新曲のレコーディングではリズムの「止める」ことに特に気を付けたとのこと。吉乃は、このプロセスを通じて歌い方を見直したと語りました。彼女は、楽曲の魅力を最大限に引き出すため、ボーカルアプローチのスタイルを変化させる努力を重ねています。

新しいステージの感覚

今回のライブでは、カバーライブでの「筒の限界」を感じた吉乃が、その筒から出てパフォーマンスを行う予定です。これにより、より自由な表現が可能になることが期待されています。

結論

吉乃の新曲「天伝バラバラ」と初のワンマンライブは、彼女の音楽的成長と挑戦の象徴です。楽しみでドキドキするライブが待ち遠しいですね。

🧠 編集部より:

補足説明と関連情報

吉乃の新曲「天伝バラバラ」は、レトロなダンスミュージックの要素を取り入れた、非常にユニークなオープニングテーマです。彼女は製作を担当した柊マグネタイトに「平成女児アニメ風のキラキラ曲」をリクエストしました。このリクエストから、アニメ「気絶勇者と暗殺姫」との相性も良い楽曲が生まれたのです。

製作秘話と音のスタイル

「天伝バラバラ」では、リズム感や歌い方の工夫が光ります。特に「止める」ことを意識したボーカルアプローチが曲に生かされています。吉乃自身が言うように、彼女はサビやBメロでの歌い方に巧妙な変化を感じており、これまでのスタイルを超える試みをしていると感じています。

ワンマンライブに向けて

2024年8月29日に開催されるワンマンライブ「吉乃 1st LIVE “逆転劇”」では、オリジナル曲を中心にライブを行う予定です。オリジナル曲を知らない観客にも楽しんでもらいたいという心境が印象的です。また、舞台セットの変更により、彼女の新しい魅力を引き出そうとしています。

豆知識

吉乃はこれまで多くのカバーライブを行ってきたアーティストで、ファンとの繋がりを大事にしているあたりが彼女の魅力の一つです。カバー曲でも独自の解釈を加えることが多く、彼女ならではの表現を見せてくれます。

関連ページ

新曲「天伝バラバラ」と今後の活動にぜひ注目してみてください!

  • キーワード: 新曲

天伝バラバラ をAmazonで探す

気絶勇者と暗殺姫 をAmazonで探す

吉乃 をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

GoogleのAI「NotebookLM」に接続!新機能で情報収集が進化!

無料で使えるGoogleのAI情報収集アプリ「NotebookLM」新機能追加

2025年07月15日 11時54分

Googleが提供する無料ウェブアプリ「NotebookLM」が新しい機能を追加しました。このアプリは、ウェブページやYouTube動画などの情報をAIを使って要約したり、関連質問に答えたりすることができます。新たに追加された「Featured notebooks」では、特定の情報ソースがあらかじめまとめられており、ユーザーは容易に質の高い情報にアクセスできるようになりました。

「Featured notebooks」とは?

「Featured notebooks」は、Googleが研究機関や著者と協力して作成した情報のひな形です。この機能の導入により、ユーザーは自分で情報ソースを登録する必要がなく、高品質なコンテンツをすぐに利用開始できるようになりました。現在公開されているFeatured notebooksの例には、シェイクスピア全集や2025年第1四半期の世界トップ企業の決算報告書などがあります。

  1. エリック・トポル氏による長寿に関するアドバイス
  2. The Economistの2025年予測
  3. アーサー・C・ブルックス氏のライフアドバイス
  4. イエローストーン国立公園の科学ガイド
  5. 人間の幸福に関する長期的なトレンド分析
  6. 科学的な子育てアドバイス
  7. ウィリアム・シェイクスピア全集
  8. トップ50企業の2025年第1四半期決算報告

特に決算報告書は、AppleやAmazon、トヨタなどの詳細な経済状況や今後の戦略をAIが要約でき、非常に便利です。

NotebookLMのイメージ

ノートブックの公開機能

さらに、新たに追加された機能として、ユーザー自身が作成したノートブックをインターネット上に公開できるようになりました。この機能は、「共有」ボタンをクリックし、リンクの設定を行うことで簡単に行えます。

  1. 「共有」をクリック
  2. 「リンクを知っている人全員」を選択
  3. 「リンクをコピー」し、保存

これにより、自分のノートブックを他のユーザーと共有し、コミュニティで情報を広めることが可能になりました。

ノートブックを公開する手順

NotebookLMは、情報収集を効率化し、知識を広げる強力なツールとしての可能性を秘めています。興味のある方はぜひ利用してみてください。

🧠 編集部より:

この記事では、Googleの無料ウェブアプリ「NotebookLM」について紹介しています。このアプリは、インターネット上の情報をAIを使って要約したり、関連する質問に答えたりできるツールです。最近、新しく追加された「Featured notebooks」は、厳選された情報源をすぐに利用できる機能を提供しており、特に学術的な内容や大企業のデータを簡単にアクセスできるようになっています。

NotebookLMの特徴

  • カスタマイズ可能: ユーザーがライティングや研究に使用したい情報源を自由に登録でき、自分だけのAIチャットボットとして機能します。
  • 動画要約対応: YouTube動画を登録し、重要なポイントを短く要約することができます。
  • 情報公開機能: ユーザー自身が作成したノートブックを簡単にインターネット上で公開でき、リンクを共有することが可能です。

豆知識

  • Trivia about featured notebooks: 「Featured notebooks」の内容は著名な著者や研究機関の協力によって作られており、最新の研究やデータを基にしているため、信頼性が高いです。
  • AIの活用: AIによる情報処理は、クリエイティブな作業や時間の短縮に非常に役立つ技術として注目されています。

参考リンク

このように、NotebookLMは研究者や学生、企業の従業員など幅広いユーザーにとって非常に便利なツールと言えるでしょう。興味のある方はぜひ一度試してみてください!


  • キーワード: NotebookLM

    このキーワードは、Googleが提供する情報収集アプリである「NotebookLM」についての重要なポイントを示しています。このアプリは、さまざまな情報ソースを利用し、AIによる要約や質問応答機能を提供しており、新たに厳選された情報源を集めた「Featured notebooks」も追加されました。

NotebookLM をAmazonで探す ウィリアム・シェイクスピア全集 をAmazonで探す 大企業の決算報告 をAmazonで探す

※以下、出典元 ▶ 元記事を読む

Views: 0

「E-1男子日韓戦、今夜19時放送!」

東アジアE-1サッカー選手権―日本代表の韓国戦を前に

2025年7月15日、サッカーファンにとって注目の一戦が韓国・龍仁ミルスタジアムで行われます。男子サッカー日本代表が韓国代表と対戦し、この試合は2026年のFIFAワールドカップ出場を目指すための重要なステップとなります。

試合の詳細

  • 対戦国: 日本 vs 韓国
  • 日時: 2025年7月15日(火)19時
  • 場所: 龍仁ミルスタジアム(韓国)
  • 視聴方法: 地上波放送及びU-NEXTでライブ視聴可能

背景情報

今回の「東アジアE-1サッカー選手権」は、アジアにおけるサッカーの強豪国同士が技術と戦略を競い合う場です。この大会は、来年に迫るFIFAワールドカップ出場権獲得に向けた重要な戦いと位置付けられており、日本代表にとって気合の入った一戦になることは間違いありません。

特に、日本と韓国の対戦はライバル関係にあることから、いつも盛り上がりを見せます。観客は熱い応援を送り、選手たちはその期待に応えようと全力でプレーします。

この重要な試合の結果は、両国のサッカー界に影響を与えるだけでなく、ファンにとっても記憶に残る瞬間となることでしょう。試合の模様は多くの人々が注目しており、期待が高まっています。

サッカーファンの皆さんはこの試合をお見逃しなく!

🧠 編集部より:

東アジアE-1サッカー選手権とは?

東アジアE-1サッカー選手権は、アジアのサッカー強豪国が集まって行われる大会で、日本、韓国、中国、香港などが参加しています。この大会は、FIFAワールドカップ本大会への出場に向けた重要なステップですよ。

男子代表最終戦の見どころ

本日、2023年7月15日(火)の19時から行われる「日本×韓国」の試合は、特に注目されています。両国はライバル関係にあり、この対戦は盛り上がりを見せること間違いなしです。試合の場所は韓国の龍仁ミルスタジアムで、地上波放送に加えて、U-NEXTでもライブ視聴が可能です。

背景と豆知識

  • E-1選手権の歴史: E-1選手権は、もともと「東アジアサッカー選手権」という名称で、2003年に始まりました。この大会を通じて、地域内の競争を促進し、サッカーのレベルを向上させることが目的です。

  • 日本と韓国の対戦成績: 歴史的に見ると、日本と韓国のサッカーの対戦は非常に白熱しており、FIFAランクでも互いに高い順位を誇る国同士です。最近の対戦では、韓国が優位に立っているとされることもありますが、日本代表も負けてはいません。

  • ワールドカップに向けて: 2026年のワールドカップ開催に向けて、このE-1選手権は選手たちにとって重要な試金石となります。代表チームは選手の選定や戦略の確認を行う貴重な機会となるでしょう。

関連ページ

この試合がどのような展開になるか、多くのサッカーファンが注目しています。ぜひテレビやネットで観戦して、日本代表を応援しましょう!

  • キーワード: E-1サッカー選手権

東アジアE-1サッカー選手権 をAmazonで探す

龍仁ミルスタジアム をAmazonで探す

U-NEXT をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

コスパ最強かつ使いやすさ抜群の非同期メッセージングサービスUpstash/QStash入門 #TypeScript – Qiita



コスパ最強かつ使いやすさ抜群の非同期メッセージングサービスUpstash/QStash入門 #TypeScript - Qiita

こんにちは、うるるの眞下です
QStashというサービスを使用し始めて、

  • 使い勝手が良い
  • いろいろなユースケースで使用できる
  • qstash以外のUpstash製品もとても良い
  • コスパ最強

ということでまずは、QStashについて紹介させて下さい。

QStashとは?

image.png

QStashは、Upstashが提供するサーバーレスメッセージングおよびスケジューリングソリューションです
ClientとAPIとの仲介役として動作し、自動リトライなどを提供するサービスです
直接エンドポイントを呼び出すのではなく、QStashを経由することで信頼性の高いシステムを構築できます

この記事の概要

  • QStashの主要機能をTypeScript + NestJSで実装する方法を網羅的に解説します
  • 遅延処理、キュー、FlowControlなど実務で必須の機能を実装例付きで紹介します

環境構築

今回は筆者が使用しているNestJSを実装例に挙げています
NestJSの環境構築については、以下のリンクを参考に進めてください:
https://docs.nestjs.com/first-steps

@upstash/qstash TypeScript SDKのインストール

npm install @upstash/qstash

Upstashアカウント作成とAPIキーの取得

  • Upstash Consoleでアカウント作成
  • QStashプロジェクト作成後、環境変数をコピーします
  • Consoleから取得した環境変数をセットします

ローカル環境での開発

QStashはWebhookを送信するため、ローカル開発時には公開可能なエンドポイントが必要です。以下の2つの方法で対応できます:

方法1: QStash CLI(推奨)

QStashが提供する開発用CLIを使用します:

npx @upstash/qstash-cli dev

これにより、ローカル環境でQStashサーバーをシミュレートできます。本番環境との差異を最小限に抑えながら開発が可能です

方法2: ngrokを使用したトンネリング

# ngrokのインストール
npm install -g ngrok

# ローカルサーバーを公開(例:3000番ポート)
ngrok http 3000

ngrokで生成されたHTTPS URLを、QStashのWebhook URLとして使用します。

基本的なHTTPサーバーの作成

NestJSでQStashを活用するシンプルなAPIサーバーを構築しましょう
以下のコントローラーがあれば、QStashの全機能を試すことができます

import { Controller, Post, Body, Headers, Get, Query } from '@nestjs/common';
import { Client } from '@upstash/qstash';

const qstash = new Client({
  token: process.env.QSTASH_TOKEN!,
});

@Controller('qstash')
export class QstashController {
  
  // QStashからのメッセージを受信するエンドポイント
  @Post('webhook')
  async receiveMessage(
    @Body() body: any,
    @Headers() headers: Recordstring, string>
  ) {
    console.log('Received message:', body);
    console.log('Headers:', headers);
    
    // 処理完了を示す2xxステータスを返す
    return { status: 'processed', timestamp: new Date() };
  }

  // エラーハンドリング用エンドポイント
  @Post('webhook-error')
  async receiveErrorMessage(@Body() body: any) {
    console.log('Processing with potential error:', body);
    
    // 50%の確率でエラーを発生させてリトライをテスト
    if (Math.random() > 0.5) {
      throw new Error('Random processing error');
    }
    
    return { status: 'success' };
  }
}

QStash SDKの導入と基本操作

publishとpublishJSONの違い

QStashには2つの主要なメソッドがあります:

  • publish: 生のHTTPリクエストをそのまま送信
  • publishJSON: JSONデータを自動的にシリアライズして送信

publishJSONの方がTypeScript環境では使いやすいです!

基本的なメッセージパブリッシュの実装

publish メソッドの場合

// publish:手動でJSONを文字列化
@Get('send-basic')
async sendBasicMessage() {
  const response = await qstash.publish({
    url: 'https://your-app.com/qstash/webhook',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ 
      message: 'Hello QStash!',
      timestamp: new Date() 
    }),
  });
  
  return { messageId: response.messageId };
}

publishJSON メソッドの場合(推奨)

// publishJSON:自動でJSONを処理
@Get('send-basic-json')
async sendBasicJSONMessage() {
  const response = await qstash.publishJSON({
    url: 'https://your-app.com/qstash/webhook',
    body: { 
      message: 'Hello QStash!',
      timestamp: new Date(),
      metadata: {
        source: 'api',
        version: '1.0'
      }
    },
    // オプションパラメータ
    delay: '30s',        // 遅延配信
    retries: 3,          // リトライ回数
    callback: 'https://your-app.com/callback', // コールバックURL
  });
  
  return { messageId: response.messageId };
}

publishJSONの主要プロパティ

  • url: 送信先のWebhook URL(必須)
  • body: 送信するJSONオブジェクト(必須)
  • headers: カスタムヘッダー
  • delay: 配信遅延時間(例:’30s’, ‘5m’, ‘2h’)
  • retries: 最大リトライ回数
  • callback: 配信完了時のコールバックURL
  • failureCallback: 配信失敗時のコールバックURL
  • notBefore: 配信開始時刻(Unix timestamp)

この基本実装だけで、自動リトライ付きの確実なメッセージ配信が実現できます。

機能の紹介

遅延メッセージ(Delay)機能

ユースケース

  • 決済処理後の確認メールを30分後に送信
  • 無料トライアル期間終了の3日前に通知
  • 注文キャンセル処理を24時間後に自動実行

実装例

// 相対的な遅延(30分後)
@Get('send-delayed')
async sendDelayedMessage() {
  const response = await qstash.publish({
    url: 'https://your-app.com/qstash/webhook',
    body: JSON.stringify({ 
      action: 'send_reminder',
      userId: 12345 
    }),
    delay: '30m', // 30分後に配信
  });
  
  return { messageId: response.messageId };
}

// 絶対時刻指定(特定の日時)
@Get('send-scheduled')
async sendScheduledMessage() {
  const futureTimestamp = Math.floor(Date.now() / 1000) + (24 * 60 * 60); // 24時間後
  
  const response = await qstash.publish({
    url: 'https://your-app.com/qstash/webhook',
    body: JSON.stringify({ 
      action: 'process_subscription_renewal',
      subscriptionId: 'sub_123' 
    }),
    notBefore: futureTimestamp,
  });
  
  return { messageId: response.messageId };
}

リトライ機能

ユースケース

  • 外部API呼び出しの一時的な障害を自動復旧
  • データベース更新の競合状態を自動リトライ
  • メール送信サービスのレート制限を自動回避

QStashのリトライ機能は、指数バックオフアルゴリズムを採用しています。
参考:https://upstash.com/docs/qstash/features/retry

実装例

// カスタムリトライ回数の設定
@Get('send-with-retry')
async sendWithCustomRetry() {
  const response = await qstash.publish({
    url: 'https://your-app.com/qstash/webhook-error',
    body: JSON.stringify({ 
      action: 'critical_process',
      data: { important: true }
    }),
    retries: 3, // 最大3回リトライ
  });
  
  return { messageId: response.messageId };
}

// リトライ情報を含むWebhook受信
@Post('webhook-retry-aware')
async receiveWithRetryInfo(
  @Body() body: any,
  @Headers('upstash-retried') retriedCount: string
) {
  const retryCount = parseInt(retriedCount || '0');
  
  console.log(`Processing attempt: ${retryCount + 1}`);
  
  if (retryCount > 0) {
    console.log('This is a retry attempt');
    // リトライ時の特別な処理
  }
  
  return { processed: true, retryCount };
}

キュー機能(enqueue機能)

ユースケース

  • 画像処理タスクの順序保証実行
  • 決済処理の競合状態防止
  • バッチ処理の確実な順序実行
  • データ整合性が重要なワークフロー

FIFO(先入先出)が保証されたキューシステムは、データ整合性を重視するシステムバッチ処理の順序実行に活用できます

キュー操作の実装パターン

QStashでは、キューの作成と操作は以下のように行います:

キュー作成方法
// キューの作成と設定
@Get('setup-queue')
async setupQueue() {
  // キューインスタンスを取得してからupsertを呼び出す
  const queue = qstash.queue({ queueName: 'image-processing-queue' });
  await queue.upsert({ parallelism: 1 }); // 順序保証のため並列度1

  return { message: 'Queue created successfully' };
}

// キューへのメッセージ送信
@Get('enqueue-task-v1')
async enqueueTaskV1(@Query('taskId') taskId: string) {
  const response = await qstash.publish({
    queue: 'image-processing-queue',
    url: 'https://your-app.com/qstash/webhook',
    body: JSON.stringify({
      action: 'process_image',
      taskId: taskId,
      priority: 'high'
    }),
  });

  return { messageId: response.messageId, queue: 'image-processing-queue' };
}
queue.enqueueJSON()
// より直感的なキュー操作
@Get('enqueue-task-v2')
async enqueueTaskV2(@Query('taskId') taskId: string) {
  // キューインスタンスを取得
  const queue = qstash.queue({ queueName: "image-processing-queue" });

  // JSONメッセージをエンキュー
  const response = await queue.enqueueJSON({
    url: "https://your-app.com/qstash/webhook",
    body: {
      action: 'process_image',
      taskId: taskId,
      metadata: {
        enqueuedAt: new Date(),
        source: 'api-v2'
      }
    },
    // オプション設定
    delay: '10s',           // 10秒後に処理開始
    retries: 5,             // 最大5回リトライ
  });

  return {
    messageId: response.messageId,
    queue: 'image-processing-queue',
    method: 'enqueueJSON'
  };
}

キューの詳細設定パターン

高パフォーマンス用途(並列処理あり)
@Get('setup-high-performance-queue')
async setupHighPerformanceQueue() {
  // キューインスタンスを取得してからupsertを呼び出す
  const queue = qstash.queue({ queueName: 'bulk-email-queue' });
  await queue.upsert({ parallelism: 10 }); // 同時に10個まで処理

  return {
    message: 'High performance queue created',
    parallelism: 10
  };
}

// 高スループット用キューの使用例
@Get('bulk-enqueue')
async bulkEnqueue() {
  const queue = qstash.queue({ queueName: "bulk-email-queue" });

  const tasks = Array.from({ length: 100 }, (_, i) => ({
    action: 'send_email',
    emailId: `email_${i}`,
    recipient: `user${i}@example.com`
  }));

  const responses = await Promise.all(
    tasks.map(task =>
      queue.enqueueJSON({
        url: "https://your-app.com/qstash/webhook",
        body: task
      })
    )
  );

  return {
    enqueuedCount: responses.length,
    messageIds: responses.map(r => r.messageId)
  };
}
優先度別キュー管理
@Get('setup-priority-queues')
async setupPriorityQueues() {
  // 優先度別に複数のキューを作成
  const queueConfigs = [
    { name: 'critical-tasks', parallelism: 5 },
    { name: 'normal-tasks', parallelism: 3 },
    { name: 'low-priority-tasks', parallelism: 1 }
  ];

  for (const config of queueConfigs) {
    // 各キューインスタンスを取得してからupsertを呼び出す
    const queue = qstash.queue({ queueName: config.name });
    await queue.upsert({ parallelism: config.parallelism });
  }

  return {
    message: 'Priority queues created',
    queues: queueConfigs
  };
}

@Get('enqueue-by-priority')
async enqueueByPriority(
  @Query('priority') priority: 'critical' | 'normal' | 'low',
  @Query('taskData') taskData: string
) {
  const queueName = `${priority}-tasks`;
  const queue = qstash.queue({ queueName });

  const response = await queue.enqueueJSON({
    url: "https://your-app.com/qstash/webhook",
    body: {
      priority: priority,
      data: taskData,
      processedAt: new Date()
    }
  });

  return {
    messageId: response.messageId,
    queue: queueName,
    priority: priority
  };
}

キューの監視と管理

// キューの状態確認
@Get('queue-status')
async getQueueStatus(@Query('queueName') queueName: string) {
  // 実際の実装では、キューの状態を取得するAPIを使用
  return {
    queueName: queueName,
    message: 'Queue status monitoring endpoint',
    // 実際にはpending、processing、completedなどの統計情報を返す
  };
}

// 順序処理されるWebhook
@Post('webhook-queue')
async processQueuedTask(@Body() body: any) {
  const { action, taskId, priority } = body;

  console.log(`Processing task ${taskId} with priority ${priority || 'normal'} in order`);

  // 重い処理をシミュレート(実際の処理時間に応じて調整)
  await new Promise(resolve => setTimeout(resolve, 2000));

  return {
    status: 'completed',
    taskId,
    priority: priority || 'normal',
    processedAt: new Date()
  };
}

FlowControl機能

ユースケース

  • 外部APIのレート制限に合わせた送信制御
  • データベース負荷を一定以下に保つ
  • システムリソースの効率的な活用
  • サードパーティサービスとの適切な統合

この機能を使うことで、システム負荷制御が劇的に簡単になります。

FlowControlの3つの重要なプロパティ

1. Flow-Control-Key(制御キー)

FlowControlではキー単位で制御が適用されます。URLごとではなく、キーごとに制限がかかる点が重要です!

  • 同じキーを持つメッセージ群に対して制限が適用される
  • 異なるキーは独立して処理される
  • キーの数に制限はない

使用例:

  • ユーザー別制御:user-123
  • サービス別制御:payment-service
  • 地域別制御:region-asia
2. RatePerSecond(秒間処理制限)

1秒間に送信できるメッセージ数を制限します。

どんな時に使用するのか:

  • 外部APIが秒間100リクエストまでの制限がある場合
  • データベースのコネクション数を制御したい場合
  • サードパーティサービスのレート制限に合わせたい場合
// 秒間10リクエストに制限
@Get('send-rate-limited')
async sendRateLimitedMessage() {
  const response = await qstash.publishJSON({
    url: 'https://your-app.com/qstash/webhook',
    body: {
      action: 'process_payment',
      amount: 1000
    },
    flowControl: {
      key: 'payment-processor',
      rate: 10
    },
  });
  
  return { messageId: response.messageId };
}
3. Parallelism(並列実行制限)

同時実行可能なメッセージ数を制限します。

どんな時に使用するのか:

  • データベースのコネクション数を制御したい場合
  • メモリ使用量を制限したい場合
  • 重い処理の同時実行数を制御したい場合
// 同時実行5個まで
@Get('send-parallelism-limited')
async sendParallelismLimitedMessage() {
  const response = await qstash.publishJSON({
    url: 'https://your-app.com/qstash/webhook',
    body: {
      action: 'process_large_file',
      fileId: 'file_123'
    },
    headers: {
      'Upstash-Flow-Control-Key': 'file-processor',
      'Upstash-Flow-Control-Parallelism': '5', // 同時実行5個まで
    },
  });
  
  return { messageId: response.messageId };
}

FlowControlの組み合わせパターン

パターン1: RatePerSecond + Parallelism

最も実用的なパターンです。秒間制限と並列制限を組み合わせることで、きめ細かい制御が可能になります。

@Get('send-combined-flow-control')
async sendCombinedFlowControl(@Query('userId') userId: string) {
  const response = await qstash.publishJSON({
    url: 'https://your-app.com/qstash/webhook',
    body: {
      action: 'process_user_data',
      userId: userId,
      priority: 'high'
    },
    flowControl: {
      key: `user-processing-${userId}`,
      rate: 20, // 秒間20リクエスト
      parallelism: 10 // 同時実行10個まで
    }
  });
  
  return { 
    messageId: response.messageId,
    flowControlApplied: true,
    limits: {
      ratePerSecond: 20,
      parallelism: 10
    }
  };
}

実際の動作例:

  • 秒間20リクエスト、並列10個の制限
  • 各リクエストが1分かかる場合:
    • 最初の1秒で10個が開始される
    • 次の1秒で10個が開始される
    • 以降は処理完了を待ってから新しいリクエストが開始される
パターン2: 異なるキーでの独立制御
@Get('send-multi-service-control')
async sendMultiServiceControl(@Query('service') service: string) {
  const flowControlConfigs = {
    'email': { rate: '100', parallelism: '20' },     // メール送信
    'sms': { rate: '50', parallelism: '10' },        // SMS送信
    'push': { rate: '200', parallelism: '30' },      // Push通知
  };
  
  const config = flowControlConfigs[service] || flowControlConfigs['email'];
  
  const response = await qstash.publishJSON({
    url: 'https://your-app.com/qstash/webhook',
    body: {
      action: `send_${service}`,
      timestamp: new Date()
    },
    flowControl: {
      key: `${service}`,
      rate: config.rate,
      parallelism: config.parallelism
    }
  });
  
  return { 
    messageId: response.messageId,
    service: service,
    limits: config
  };
}

FlowControl状況の監視

// FlowControl状況を確認するエンドポイント
@Get('flow-control-status')
async getFlowControlStatus(@Query('key') key: string) {
  // 実際のAPIを使用してFlowControl状況を取得
  // (この機能は公式ドキュメントで言及されている)
  
  return {
    key: key,
    message: 'FlowControl monitoring endpoint',
    // 実際の実装では qstash.flowControl.get(key) のようなAPIを使用
  };
}

セキュリティ(署名検証)

  • Webhook の正当性確認
  • 不正なリクエストの排除
  • セキュリティ要件の満たし

本番環境では悪意のあるリクエストなども弾かないといけなく、QStashの正当なリクエストをQStash側で署名検証のメソッドを使用するだけで良いので、とても便利です

実装例

import { Receiver } from '@upstash/qstash';

const receiver = new Receiver({
  currentSigningKey: process.env.QSTASH_CURRENT_SIGNING_KEY!,
  nextSigningKey: process.env.QSTASH_NEXT_SIGNING_KEY!,
});

@Post('webhook-secure')
async receiveSecureMessage(
  @Body() body: any,
  @Headers('upstash-signature') signature: string
) {
  try {
    // 署名を検証
    await receiver.verify({
      signature,
      body: JSON.stringify(body),
      url: 'https://your-app.com/qstash/webhook-secure',
    });
    
    console.log('Verified message:', body);
    return { status: 'verified and processed' };
    
  } catch (error) {
    console.error('Signature verification failed:', error);
    throw new Error('Invalid signature');
  }
}

URL Groups(ファンアウトパターン)

  • ECサイトなどで商品が購入された時に、メールやSlackへの通知、在庫管理システムへ同一のbodyの内容を一斉配信するときなどに使用できるかと思います
  • あらかじめ、QStash側にURL Groupを登録しておく必要があります
@Get('send-fanout')
async sendFanoutMessage() {
  // URL Groupに送信すると、登録された全エンドポイントに配信
  const response = await qstash.publish({
    url: 'product-update-group', // URL Group名
    body: JSON.stringify({
      event: 'product_updated',
      productId: 'prod_123'
    }),
  });
  
  return { messageId: response.messageId };
}

バッチ送信機能

  • 複数のメッセージを一括送信できます
  • Promise.allなどで、処理できるような同時並行的に処理できるものはバッチ送信機能を活用して処理するのがパフォーマンス的にもいいかと思います
@Get('send-batch')
async sendBatchMessages() {
  const messages = [
    {
      destination: 'https://your-app.com/qstash/webhook',
      body: JSON.stringify({ task: 'task1' })
    },
    {
      destination: 'https://your-app.com/qstash/webhook',
      body: JSON.stringify({ task: 'task2' })
    }
  ];
  
  const responses = await qstash.batch(messages);
  return { batchId: responses.map(r => r.messageId) };
}

料金体系

  • QStashの料金は**$1 per 100,000 requests**とコスパ最強
  • 使わなければ0円
  • Freeプランもあり、月15,000メッセージまで無料です

参考記事

Upstash QStash 公式ドキュメント: https://upstash.com/docs/qstash/overall/getstarted





Source link

Views: 0

初めてハッカソン参加して感じた話 in '25 07




はじめに
Progateハッカソン powered by AWS 2025.07 お疲れ様でした!
初めて参加した現地開催のハッカソンでしたがすごく楽しかったです!
すごく印象に残るハッカソンになりました。
初めてこういった記事書くのですごく拙い文章になるとは思いますが優しい目で見ていただけると…

自己紹介?
某福岡の情報系専門学校の1年生の「くらず / kurazu」といいます。
入学前まではプログラミングに関しては触り程度で全然言語としては学習していませんでした。
なので学習歴は4月スタートになるのでまだ3ヶ月と言った程度です。
メインで扱っている言語はPythonで、J…



Source link

Views: 0

「電子のスピンで情報伝達!新チップ開発」

📌 ニュース:
オランダのデルフト工科大学で、電子を動かさず「スピンのみ」で情報を伝える微小チップが開発されました。この技術は、電子のスピンを利用し、次々と情報を運ぶ「スピン流」を生成します。これにより、量子コンピュータや省エネデバイスの実現が期待されています。

研究では、特殊な磁性材料CrPS₄をグラフェンと重ね、巨大な磁石なしでスピン流を安定的に作り出すことに成功。スピン情報は数十マイクロメートルにわたり伝わり、エネルギー損失を大幅に削減する可能性があります。結果として、より効率的なスマートフォンや量子情報通信が实现されるかもしれません。この研究は、次世代の電子機器や量子コンピュータに革命をもたらす重要な進展です。

  • 以下の3つのポイントをまとめました✨

    1. スピントロニクスの革新 🌀
      オランダのデルフト工科大学では、電子を動かさずに「スピン」だけで情報を運ぶ新しい技術「スピントロニクス」を開発しました。これにより、エネルギーロスを大幅に削減し、省エネの電子機器の実現が期待されています。

    2. グラフェンの特性 🧪
      グラフェンという極薄な材料と特殊な磁性材料(CrPS₄)を組み合わせることで、強力な磁場なしにスピン流を安定的に生成できます。この新しい方法は、従来の大がかりな装置を不要にし、より実用的なデバイスの開発に道を開きました。

    3. 量子コンピュータへの応用 💻
      スピン流のトポロジカルな特性により、量子コンピュータ間の情報伝達が安定化され、量子情報通信技術の発展が期待されます。この成果は、科学界からも注目を集めており、未来の技術革新につながる可能性があります。


※以下、出典元
▶ 元記事を読む

Views: 0

「中国GDP5.2%増、政府目標上回る!」

中国の国家統計局が発表した2025年の第二四半期(4月から6月)における国内総生産(GDP)は、前年同期比で5.2%増加し、政府の目標である「5.0%前後」を上回りました。このデータは、中国経済の回復基調を示す重要な指標となります。

特に注目すべきは、不動産開発投資が11.2%減少した一方で、中国政府が導入した家電製品の買い替え促進策が消費の伸びを支えたことです。このように、投資の減少にもかかわらず、消費が経済成長を後押しする形となっています。

この結果は、中国の経済政策の有効性を示すもので、政府の施策が民間消費を刺激し、経済を安定させる一因となっていることがわかります。

中国経済やその政策に関心がある方は、経済メディア『テレ東BIZ』をチェックしてみてはいかがでしょうか。特に、WBSやモーサテなどの独自の記者解説が魅力的です。

🧠 編集部より:

2025年4月から6月の中国のGDPが5.2%増加したとの発表があり、政府目標の5.0%を上回ったのは注目すべきポイントです。この成長は、物価変動を考慮した実質ベースでのもので、特に家電の買い替え促進策が消費を刺激したという背景があります。

背景情報

中国経済は長年にわたり、高成長を続けてきました。在宅勤務やリモートワークの普及による家電需要が急増し、特に冷蔵庫や洗濯機などの基礎的な家庭機器の買い替えが進んでいます。これにより、消費市場は活気を取り戻しました。

豆知識

  • 不動産市場:不動産開発投資が11.2%減少した背景には、過剰な供給や規制強化などの要因が影響しています。中国政府はこの状況を打破するため、住宅市場への刺激策を模索していると言われています。
  • 成長の多様化:中国のGDP成長はもはや単純な工業生産だけでなく、サービス業や消費活動にも大きく依存しています。

関連ページへのリンク

  • テレ東BIZでは、経済に関する詳細な解説や、リアルタイムな情報を提供しています。是非チェックしてみてください。

これにより、今後の中国経済の動向に注目が集まります。

  • キーワード: GDP

家電 をAmazonで探す
中国政府 をAmazonで探す
不動産 をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

工藤静香&飯島直子、ほわほわ親友ショット!

2025年7月16日、工藤静香が自身のInstagramで、親友の飯島直子とカフェで過ごした楽しい時間を報告しました。二人は1990年代にバラエティ番組での共演をきっかけに、約30年間の友情を築いてきました。

お互いに「にゃおちゃん」「しーちゃん」と愛称で呼び合う二人のエピソードは、長年にわたる深い絆を示しています。工藤は、その時間をとても大切にしており、心温まる瞬間をファンと共有することに喜びを感じているようです。

この友情の背景には、同じ時代に活躍した芸能人同士の共通の経験や支え合いがあるのでしょう。2人の絆の深さは、多くのファンにとっても憧れの的となっています。

🧠 編集部より:
工藤静香さんと飯島直子さんの親友関係は、1990年代にバラエティ番組で共演したことがきっかけで始まりました。あれから30年以上も経つ今でも、二人の友情は深まる一方です。

### 補足説明
工藤静香さんは、1980年代から1990年代にかけて日本のアイドルとして大変人気を集め、その後は歌手や女優としても活躍しています。一方、飯島直子さんも同じく1980年代から1990年代にかけてのアイドル時代を経て、女優として多くのドラマや映画に出演し続けています。

### 背景や豆知識
実は、工藤さんと飯島さんは共にファッションやライフスタイルの面でも影響を与える存在となっています。特に、SNSを通じてお互いの近況をシェアすることで、ファンにとっても嬉しいニュースとなることが多いです。また、彼らのような長い友情は、エンターテインメント業界では珍しいことではありませんが、しっかりとした絆を持つことの大切さを示しています。

二人の楽しい時間や思い出に、ファンも温かい目で見守っています。

  • キーワード: 親友

カフェ をAmazonで探す
工藤静香 をAmazonで探す
飯島直子 をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

『オズ リライト』事前登録スタート!SNSで英雄と共に異世界RPG冒険へ!

スマートフォン向け新作アニメRPG『オズ リライト』、事前登録を開始

2025年7月15日(火)、DRIMAGEはスマートフォン向けの新作アニメRPG『OZ Re:write(オズリライト)』の事前登録を開始しました。正式サービスは2025年8月19日(火)に予定されています。

このゲームはおとぎ話を基にしたストーリーで、プレイヤーはヒーローたちと共に冒険します。異世界SNS「ミラーグラム」でヒーローたちとつながりながら、物語をハッピーエンドに導くのが魅力です。ゲームは美麗なアニメーションと豪華な声優陣のフルボイスで表現されています。

また、事前登録キャンペーンも実施され、登録者数に応じて特典が用意されています。さらに、2025年7月27日には秋葉原UDXでのオフラインイベントも計画されています。このイベントでは、キャラクターボイスを担当する声優たちとのトークイベントや、さまざまな体験が用意されています。

事前登録の詳細

  • 事前登録方法: Apple AppStoreおよびGoogle Playで受付中。
  • 特典: 登録者数に応じてログインボーナスや大型プレゼント。
  • オフラインイベント日時: 2025年7月27日(日)11時〜17時、秋葉原UDXにて。

詳しい情報や事前登録は、公式ウェブサイトで確認できます。

まとめ

『OZ Re:write』は、独自の世界観を持ったおとぎ話を基にしたアクションアドベンチャーゲームで、プレイヤーに新しい体験を提供します。是非、友人を誘って事前登録を行い、一緒に冒険の旅に出ましょう!

🧠 編集部より:

『オズ リライト』事前登録開始について

概要
株式会社DRIMAGE(DRIMAGE JAPAN)が手がけるスマートフォン向けアニメRPG『オズ リライト』が、2025年7月15日から事前登録を開始しました。正式サービス開始日は2025年8月19日を予定しています。

ゲーム内容
本作は、おとぎ話を再解釈した煌びやかなキャラクターたちと美麗アニメーションで描かれる異世界リライトファンタジーです。プレイヤーは「創始者」としての役割を果たし、英雄たちとの絆を深めながら、物語をハッピーエンドに導くことを目指します。

このゲームの最大の特徴は、異世界SNS「ミラーグラム」を通じて英雄たちとリアルタイムで交流できることです。豪華声優陣によるフルボイスで演じられるストーリーは、まるでアニメを見ているかのような体験を提供します。

事前登録キャンペーン
事前登録数に応じて「初回ログインボーナス」を増強し、特定の数に到達すると大型プレゼントも実施予定です。友人を誘っての登録が奨励されています。

オフラインイベント
2025年7月27日には秋葉原でオフラインイベントも開催され、声優によるトークイベントや開発者の公開FAQなど、さまざまな催しが予定されています。入場無料ですが、事前登録が必要です。

豆知識
DRIMAGEは、韓国のエンターテインメント企業HYBEのゲーム事業部門です。HYBEはBTSやSEVENTEENなどのグローバルアーティストを抱え、ゲーム業界でもその影響力を広げています。

  • 「OZ Re:write」

OZ Re:write をAmazonで探す
異世界RPG をAmazonで探す
アニメーションゲーム をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0