ドミノソフト公式ブログ

合同会社ドミノソフトの公式ブログです。

カナダの大自然!~バンクーバー近郊編~

おひさしぶりです

カナダからお仕事をさせていただいている calico_ginger です。

先日、バンクーバーから引っ越したので、滞在中に出会った大自然を振り返ろうと思います。

Lynn Canyon

Lynn Canyon
Lynn Canyon Park

渓谷沿いを歩くことができ、交通アクセスも良いお気に入りのトレイルロケーションです。 透明度が高く美しい水が流れる川で、流れがそこそこ早く迫力◎でした。

Lindeman Lake

Lindeman Lake
Lindeman Lake

険しめの山登り(もはや岩登り)を30分ほどがんばった先にある山の上の湖です。 疲労を感じてきたあたりで、深い森林の中にいきなり静かで広大な湖が現れてとても感動しました。

Chilliwack Lake

Chilliwack Lake
Chilliwack Lake

ダウンタウンから車で2時間程度と少しアクセスは悪いですが、駐車場からゼロ距離で美しい湖が拝めるロケーションです。 深い青緑色の水が美しくて神秘的でした。

Green Timbers Lake

Green Timbers Lake
Green Timbers Lake

家から歩いて20分くらいのところにあった、私の朝のお散歩コースの湖です。 晴れている日はおにぎりとお茶を持ってよく歩きに来ていました。 春になると小鴨がたくさん生まれてかわいいです。

Grouse Mountain

Grouse Mountain
Grouse Mountain

冬のカナダでは、スノーシューイングというソリのような靴を履いて雪山を歩くアクティビティが人気です。 ここはダウンタウンからアクセスが良く、歩いている途中に写真のように Lions Bay という有名な海が見えて絶景なのですが、いくつかコースがあるうちのひとつはものすごく険しくて、帰りは歩けずおしりで滑り降りました。

Stanley Park

Stanley Park
Stanley Park

恐らく知っている方も多いのではないでしょうか。ダウンタウンの近くにあるとても有名な公園です。 端っこが海に面していて、バンクーバーっぽいきれいな森×海×ボートの風景を見ることができます。

Buntzen Lake

Buntzen Lake
Buntzen Lake

とても交通アクセスのいい湖で、夏場は駐車場が予約制になるほど人気のロケーションです。 湖の周りをぐるりと一周トレイルできます。カヌーを楽しんでいる人も多いです。

Joffre Lake

Joffre Middle Lake
Joffre Middle Lake

Joffre Upper Lake
Joffre Upper Lake

Joffre Upper Lake
Joffre Upper Lake

片道2時間の登山の間に、Lower Lake、Middle Lake、Upper Lakeの3つの湖を見ることができます。 Lower Lake と Middle Lake もとってもきれいですが、Upper Lake は比較にならないほど美しかったです。(きれいすぎて、写真が肉眼に勝てなかった) 水も雪解け水だからなのか、エメラルドグリーンでとても新鮮でした。

Gribaldi Lake

Gribaldi Lake
Gribaldi Lake

Gribaldi Lake
Gribaldi Lake

間違いなく達成感も疲労度も美しさもバンクーバーの思い出でNo.1の湖です。 まず、ダウンタウンから車で3時間。そこからさらに片道3時間の登山(しかも結構険しい)。 これらを乗り越えた先でようやく、夏でも雪が残る山脈と美しいエメラルドグリーンの広大な湖が拝めます。まるでWindowsの壁紙のようでした。

バンクーバー編、完!

バンクーバーに住んだ1年9か月で、本当にたくさんの場所を訪れました。 どこもかしこも東京に住んでいた時には触れられなかった大自然が広がっていて、本当に感動的でした。

まだまだたくさん紹介したい場所はありますが、きりがないのでこの辺で。

現在はバンクーバーのあるブリティッシュコロンビア州を離れ、隣のアルバータ州に住んでいます。 こちらも有名なバンフ国立公園やカナディアンロッキーなど、またまた大自然が素晴らしい州です。

またいつか、今度はカナダの大自然!~アルバータ州編~をお送りしようと思います。

この写真は、初めてバンフに遊びに行ったときに訪れた Two Jack Lake です。

Two Jack Lake
Two Jack Lake

ではまたいつか~🍁

We're Hiring

ドミノソフトでは一緒に働く仲間を募集中です! ご興味のある方はHPのCONTACTからお気軽にご連絡ください! www.dominosoft.co.jp

甘党必見 ~スタバおすすめのカスタマイズ~

はじめに

こんにちは! ドミノソフトのkimi_dominoです

夏なので冷たいもの、甘いものが飲みたくなりますね

そんなあなたに最近好きなスタバおすすめのカスタマイズを紹介します

おすすめカスタム(^-^)

★バニラクリームフラペチーノ

  • エクストラホイップ
  • ブレべミルクに変更
  • チョコソース追加
  • 氷少なめ

王道です!クリーム好きは一度お試しを

★ゆずシトラスティー

  • パッションティー変更
  • ホワイトモカシロップ追加

さっぱり甘めなピンク色のジュースになります

★スイートミルクコーヒー

  • ブレベミルクに変更
  • キャラメルソース追加
  • エクストラシロップ
  • 氷少なめ

とにかく尋常じゃない甘さになります。甘党必見です。

We're Hiring

ドミノソフトでは一緒に働く仲間を募集中です! ご興味のある方はHPのCONTACTからお気軽にご連絡ください! www.dominosoft.co.jp

6月1日からのGitHub AI Creditsに備える

はじめに

CEOのuenoyamaです。

6月1日より、GitHub Copilotの課金方式がPremium Request Units(PRU)からAI Credits方式に変わりますね。
ドミノソフトでは、Copilot Businessを契約中なのですが、どのようなコストインパクトが起こるか、戦々恐々でした。
最近「AI Credits方式だったらいくらだったか」という、AI Credits Usageの4月分がダウンロード可能になったので、見たら目の玉が飛び出たので慌てて対策を検討した話です。

この記事は、ものすごいピンポイントですが、以下に該当する方には刺さる内容かと思います。

  • AI Credits Usageをダウンロードしたら目の玉が飛び出た。
  • Visual Studio EnterpriseのAzure Creditsなど、何らかのAzure Creditsを持っている。
  • ふだんはVisual Studio CodeのCopilot ChatやGitHub Copilot CLIを使っている。

ドミノソフトの月間コストインパクト

※1$=160円で試算

ドミノソフトの開発要員は20名です。なので20名分のCopilot Businessを契約しています。
Opus 4.7とかGPT-5.5はお高いので、GPT-5.4をメインに使っています。
毎月、PRU無料枠を超えるメンバーが何人か出てきますが、超過分は全体で$90程度なので、$19 * 20 + $90 = $470(7.5万円)ほどのコストがかかっていました。

これがAI Credits Usage方式で試算した結果を見たら、$2,472(39.5万円)と出ている!!
月間で$2,000(32万円)の増加、年間だと$24,000(384万円)のコストインパクト!!

GitHub Copilot のモデルと価格設定 - GitHubドキュメント

これを見ると、何でもかんでもGPT-5.4を使っていたのを、GPT-5.3-Codexするなどで多少は安くはできるようですが、GPT-5.4の高性能感を知ってしまっている今、モデルを下げるような選択は取りたくありません。
今はAIコーディングの過渡期なので、ここで良いモデルを使わないという選択は、ドミノソフトが生き残れるかどうか、というレベルでリスクだと思います。
むしろ、GPT-5.5を使えるような環境にしたい。

どっかにお宝は眠ってないかなー、といろいろ会社で契約しているものを見直していたところ、ふと気付きました。

Visual Studio EnterpriseのAzure Creditsの活用

ドミノソフトでは、全従業員にVisual Studio Enterpriseのライセンスを提供しています。
このライセンスには、毎月$150のAzure Creditsが付加されているのですが、おそらく、みんな使ってない。
ってことは、このCreditsでAIモデルを動かしたら、Bring Your Own Key(BYOK)の仕組みで、その分を無料で使えるんじゃないか!?

Microsoft Foundryを用いたBYOK構成の設定

1. Microsoft Foundry (旧 Azure AI Studio) にGPT-5.4をデプロイする

  • 【新しいFoundry】のトグルをOnにする。

  • プロジェクトの選択画面で【新しいプロジェクトの作成】を選択すると、上記のプロジェクト作成画面が出てくるので入力する。
  • サブスクリプションには、Azure Creditsのあるものを選択する。他は適当に入れる。
  • Microsoft Foundryリソースはドメイン名にも使われるため、世界でユニークでなければなりません(重複している場合はエラーが出ます)。
  • ここでデプロイしようとすると、クォータ不足というエラーが出る可能性があります。
    • ドミノソフトでは、出る人と出ない人がいました(昔からAzure使っていた人は出なくて、今回を機に使うようになった人には出てる感じ?)
    • このページの下部に、クォータ要求の補足を書いていますので、そちらも参照ください。

  • デプロイが始まるのでしばらく待つ。

  • デプロイが完了したら、ようこそ画面が出るので✕で閉じる(進めていくとエージェント作成を進められるが、今回はモデルのデプロイなので)
  • 閉じた後、上部の【新しいFoundry】をOFFに戻す。

  • 左のメニューから【モデル カタログ】を選択し、GPT-5.4を選択する。

  • 【このモデルを使用する】を選択する。

  • デプロイ名は、デフォルト(gpt-5.4)のままだとVSCodeで標準のモデルとバッティングして表示されないことがあるので、byok-gpt-5.4とかmy-gpt-5.4などに変えておきましょう。
  • デプロイの種類は【グローバル標準】のままでOKです。興味のある方は Understanding deployment types in Microsoft Foundry Models - Microsoft Foundry | Microsoft Learnを参照してください。
  • デプロイの詳細で【カスタマイズ】押し、【1分あたりのトークン数レート制限】を最大にまで上げておきましょう。
    • これをやって、400K以上にしておかないと、Agentモードの処理でリミット制限に引っかかってしまいます。
  • 確認したら【デプロイ】を押します。

  • 左部メニューから【概要】をクリックした後、エンドポイントとキーのパネルから【Azure OpenAI】を選択し、Azure OpenAI エンドポイントのURLをメモしておきます。

  • 左部メニューからマイアセットの【モデル + エンドポイント】を選択して、エンドポイントのキーをコピーしてメモしておきます。
  • この画面にも【ターゲットのURI】がありますが、以降で使うURIは【概要】の方のURI(後ろに/openai/v1が付いていない方)です。

2. Visual Studio Codeに設定する

  • Visual Studio Codeを起動し、Ctrl+Shift+PからChat: Manage Language Modelsを開く。

  • 言語モデルウィンドウの【+モデルを追加...】ボタンを押して、Azureを選択する。

  • グループ名には分かりやすい名前を付けてEnterを押す。

  • apiKeyには【モデル + エンドポイント】でコピーしたエンドポイントのキーを入力し、Enterを押す。
  • 入力後、chatLanguageModels.jsonが開くので、以下を入力して保存する。
  {
    "name": "My Models",
    "vendor": "azure",
    "apiKey": "${input:chat.lm.secret.-75a7d24e}",
    "models": [
      {
        "id": "byok-gpt-5.4", // ここは「デプロイ名」と合わせること
        "name": "My GPT-5.4",
        "url": "<Azure OpenAI エンドポイントを貼る>",
        "toolCalling": true,
        "vision": true,
        "thinking": true, // これを足すとThinking Effortを選択できるはずだが、まだ動かない
        "maxInputTokens": 272000, // 272Kトークンを超えると2倍料金
        "maxOutputTokens": 128000 // 最大128Kトークン出力
      }
    ]
  }
  • 保存後、Ctrl+Shift+PからDeveloper: Reload Windowを実行する。

  • Copilot Chatを開き、モデル選択の欄に表示されていれば成功です。

3. Github Copilot CLIに設定する

※以下はWindows環境での設定です。

システム環境変数の設定画面に移動し、以下を設定する。

  • COPILOT_PROVIDER_BASE_URL: [Azure OpenAI エンドポイント]
  • COPILOT_PROVIDER_TYPE: azure
  • COPILOT_PROVIDER_API_KEY: [VSCodeのapiKeyに入れたもの]
  • COPILOT_MODEL: byok-gpt-5.4(「デプロイ名」と合わせること)
  • COPILOT_PROVIDER_WIRE_API: responses
  • COPILOT_PROVIDER_MAX_PROMPT_TOKENS: 272000
  • COPILOT_PROVIDER_MAX_OUTPUT_TOKENS: 128000

copilotコマンドを実行し、モデルがbyok-gpt-5.4となっていれば成功です。

補足(クォータ要求が必要な場合)

  • 【すべてのクォータを表示する】をOnにして、Global Standard -> gpt-5.4 -> Japan Eastの横にある【クオータの要求】を押す。
  • Microsoft Foundry Service: Request for Quota Increaseのページが開くので、入力して送信する。以下は入力のヒント。
    • Subscription Id: Microsoft Foundryのプロジェクトの概要ページの右側にある【プロジェクトの詳細】に記載あり
    • Justification: I would like to use GPT-5.4, but I am unable to do so because my allocated quota is zero.(gpt-5.4使いたいのにクォータがゼロなんよ~、とか書いておく)
    • Model Type: Azure OpenAI
    • Model Deployment Quota or Fine Tuning Quota: Model Deployment (PTU/RPM/TPM)
    • (Azure OpenAI) Quota Request Type: Global Standard
    • (Azure OpenAI) Global Standard Quota: 1000 (gpt-5.4のTPMは1:1000なので、Tier1の上限に合わしておく)
  • クォータの増量申請はすぐに反映されるわけではんく、数時間から1日程度はかかることもあるので気長に待つ。

さいごに

ひとまずはAzure Creditsで急激なコスト増への対策を行ったわけですが、今後もAI Modelの値上げなどによるコストインパクトは起こるものとして考えた方が良いでしょう。
今までがキャンペーン価格で安かっただけでしょうし。
先を見据えると、GPT-5.4ではなくKimi K2.6などのオープンなコーディング特化モデルを試す(値段がGPT-5.4の半額以下)など、いろいろとコストバランスの取れたAIモデル調査をしておく必要がありそうです。

We're Hiring

こんな感じで、ドミノソフトでは日々お宝を探しながら、できるだけ最新のAI環境を開発者に使ってもらえるように頑張っています!
そんなトレジャーハンターCEOと一緒に働いてみたいなー、と興味を持ってくれた方は、HPのCONTACTからお気軽にご連絡ください! ドミノソフトでは一緒に働く仲間を募集中です!

Transformerとはなにか

はじめに

こんにちは! ドミノソフトのkimi_dominoです。

以前ニューラルネットワークとはなにか?という記事を書き、最も基本である順伝播型ニューラルネットワーク(多層パーセプトロン、MLPとも言う)について説明しました。

blog.dominosoft.co.jp

今回は近年のLLMの主流であるTransformerアーキテクチャについてざっくりと説明しようと思います。

Transformerアーキテクチャ

Transformerは近年のLLMで最も基本的なアーキテクチャで、2017年にGoogleが発表しました。 arxiv.org

Transformerアーキテクチャ(Wikipediaより引用)

大きく分けてエンコーダとデコーダから構成されていて、テキストをInputとしてエンコーダで解釈し、デコーダで新たなテキストを生成する、という役割を担っています。

近年では、エンコーダとデコーダをそれぞれ単体で使うことが多く、得意なタスクが異なります。

  • エンコーダのみ(2018年:BERT):Inputをラベルに分類する
    • 例:商品のカスタマレビューをポジティブ・ネガティブにラベリングする
  • デコーダのみ(2018年:GPT):Inputに対して次の単語を予測する
    • 例:「日本一高い山は何か?」という問いに対して「富士山」と回答する

分割する理由はエンコーダ・デコーダ両方を使うと計算量が多くなるため、訓練に要する時間、InputからOutputまでの時間が長くなるからです。 しかし、より近年ではLLMのパラメータ数自体が増えてきて、デコーダのみであらゆるタスクに対して高い性能が出せるようになってきています(例:ChatGPT、Gemini、Claude)。 以降ではアーキテクチャで重要なポイントの触りだけ押さえます。

注意機構

Transformerの理解で重要な部分はAttentionです。Attentionとは「注意」のことで、計算される値です。

Query、Keyを共に{I, Ate, Sushi}とすると、注意の計算は図のようになります。

注意機構の計算の流れ。入力を I Ate Sushi としている。

注意の値\alphaは 0 \lt \alpha \lt 1であり、QueryとKeyの関係が強いほど1に近い値が得られ、対応するValueが出力に対して支配的になります。例えば、「I」という単語は「Sushi」よりも「Ate」と強い関係があるべきで、「I」は「Ate」により注意を払うことが自然と言えます。

トークナイズと入力の埋め込み

トークナイズ

入力「I Ate Sushi」をそのままエンコーダ・デコーダへ入力することは出来ません。通常、エンコーダ・デコーダへの入力する前に、トークナイザを通すことでコンテキストを適切な形へ分割する必要があります。その役割を担うのがトークナイザで、LLMのアーキテクチャの一部です。エンコーダモデルであるBERTでは、「I Ate Sushi」は{[CLS], I, Ate, Sushi}という形の配列にトークナイズし、[CLS]は入力の始まりを意味しています。モデルによっては誤字の修正や、全角を半角に変換するなどの前処理が行われます。

入力の埋め込み

入力の埋め込みとは、{I, Ate, Sushi}の各単語を\textbf{I}=(1.0, 0.1, 0.1)^\top、\textbf{Ate}=(0.4, 1.0, 0.4)^\top、\textbf{Sushi}=(0.1, 0.1, 1.0)^\topのように、D次元ベクトル(例では3次元)で表します。

{I, Ate, Sushi}の埋め込みベクトル。Geminiで生成。

位置情報の埋め込み

入力{I, Ate, Sushi}に対して、単語の位置関係を記憶する方法が必要です。なぜなら、Transformerは配列を逐次処理するのではなく、並列に処理するため、位置情報を単語に埋め込む必要があります。

発表当初は正弦波関数を使った方法が紹介されていますが、ChatGPT4などのLLMではRoPE(Rotary Position Embedding)という方法が用いられています。これは、各入力ベクトルを\thetaの整数倍ずらした値を位置情報を埋め込んだ入力ベクトルとして再定義する方法です。注意機構に並列に入力しても、\thetaの回転角から相対的な位置情報を反映することができます。

今回はここまで

今回はTransformerの触りとして、注意機構、トークナイズと入力の埋め込み、位置情報の埋め込みの説明でした。 まだまだ重要な部分があるのですが、長くなるので次回以降にまとめることにします!

ではまた~^-^

We're Hiring

ドミノソフトでは一緒に働く仲間を募集中です! HPのCONTACTからお気軽にご連絡ください! www.dominosoft.co.jp

Polyfillが効いてない問題の対処方法

はじめに

いよいよ2025年も終わりですね! CEOのuenoyamaです。
この記事は、開発中のQuasar Frameworkアプリケーション(Vue3ベース)で起きた、Polyfillが効いてないから起動しないよ問題を解決した話です。
会社の若い人向けに、どういう手順で解決に到達したか、参考になればと思って書きました。

何が起きたのか

当社で開発中のQuasar Frameworkアプリケーション(SPA)では、古いChromeでも動作する必要があるため、@vitejs/plugin-legacyにて、polyfills: trueの設定を入れて対応しています。
これで古いブラウザでも問題なく動作していたのですが、ある日、古いブラウザでの動作確認をしたところ、Array.at解決できず、起動に失敗していることが発覚しました。
(開発メンバーは、ふだんは最新ブラウザで確認していたので気付くのが遅れた)

その後、開発メンバーの1人が「なんでArray.atが解決できない?」を生成AIと相談して、modernPolyfills: trueを入れてpolyfills: ['es.array.at', 'es.typed-array.at']に直したら問題なく動作しました! というPull Requestを発行しました。
その時、私の中のコナンが疼きました。
「あれれー? それって設定が不足していたということだよねー? だとしたら、以前は動作していたことと合わないんじゃない?」

ステップ1 問題発生コミットを探す

とりえあず1ヶ月ぐらい前には動作していたような記憶があったので、まずはgitの1ヶ月ぐらい前のcommitをcheckoutしてresearchブランチとし、起動してみます。
そしたら何の問題もなく動作したので、あとは当該commitから最新commitまで(全部で50 commitぐらい)を、適当に3-5個ずつぐらいcherry-pickして起動を試します。
これを繰り返すと、見事に現象が発生する特定のコミットがわかりました。

ステップ2 問題発生箇所を探す

この該当コミット、修正量が少なければ良いのですが……変更したファイルは35、変更ステップは+582 -327。
グヘえ。チマチマとTry & Errorをしては時間がかかりすぎます。
なので、己のバグ嗅覚をたよりに、ざーっとコードを流して見ていきます。
ん? におう? なんだかクサイ変更があるぞ?
見つけたのは、とある設定の初期値を、グローバルオブジェクトとして持つようにしたコードでした。

const initialValue = {
  ....
}
const useXXXX = () => {
  const value = ref(structuredClone(initialValue));
}

という感じのコードです。
におう気がしたので、さらに各フィールドの修正を確認したところ、Array.atを使っている箇所を発見し、これを添え字アクセスに変更したところ、現象が起きなくなりました。

ステップ3 仮説を立てる

事件は……終わったのか……?
いや、これではmodernPolyfills: true、polyfills: ['es.array.at', 'es.typed-array.at']を入れたら現象が起きなくなった、という疑問が解消していない。
今回、Array.atを使っている部分を置換することで現象は起きなくなったが、また違う形で問題が再燃するかもしれない。

とりあえず、modernPolyfills: true、polyfills: ['es.array.at', 'es.typed-array.at']を入れたらどうなるのかを、quasar buildが出力する結果を並べて比較してみました。
polyfill関連なので、polyfillという言葉を含む出力と、問題が発生していたindex-xxxx.jsを見てみます。

(入れる前の抜粋)

Asset Size Gzipped
assets/index-xxxx.js 396.29 KB 133.09 KB
assets/polyfill-legacy-xxxx.js 209.41 KB 75.63 KB
assets/polyfill-xxxx.js 222.49 KB 81.74KB
assets/polyfills-legacy-xxxx.js 96.34KB 35.47KB

(入れた後の抜粋)

Asset Size Gzipped
assets/index-xxxx.js 396.29 KB 133.09 KB
assets/polyfill-legacy-xxxx.js 209.41 KB 75.63 KB
assets/polyfill-xxxx.js 222.49 KB 81.74KB
assets/polyfills-xxxx.js 138.41 KB 51.96KB
assets/polyfills-legacy-xxxx.js 96.34KB 35.47KB

なんか増えとるな……
polyfill-xxxx.jsよりもサイズが小さいな……
きっとこれがmodernPolyfills: trueで生成されたファイルなんだろう……
と思った瞬間、仮説が思い付きました。
index-xxxx.jsの前にpolyfill-xxxx.jsは読み込まれてないけどpolyfills-xxxx.jsなら読み込まれるのでは!

ステップ4 仮説検証

Chrome Developer Toolのネットワークタブで、ThrottlingをSlow 3Gにして、リロードした時の読み込み順を確認します。

(入れる前の処理順)

(入れた後の処理順)

ビンゴ!
index-xxxx.jsのDOMContentLoadedの前に、polyfills-xxxx.jsのDOMContentLoadedが終わっている!
というか、index-xxxx.jsと同時にpolyfills-xxxx.jsの取得が始まっている!

追加でindex.htmlの比較をしてみたところ、入れた後のファイルには、<head>に以下が増えてました。
<script type="module" crossorigin src="/assets/polyfills-xxxx.js"></script>

なるほどね……

ステップ5 結論付ける

Vueアプリケーションでは、最初にアプリケーションのメインコードであるindex-xxxx.jsのロードを開始します。
が、modernPolyfills: trueが指定されていると、index-xxxx.jsと同じタイミングでロードを開始するようです。

つまり、modernPolyfills: trueを指定したので、index-xxxx.jsと同じタイミングでロードが始まり、ファイルサイズが小さいこともあって先にDOMContentLoadedが終わる。
index-xxxx.jsのDOMContentLoaded後にスクリプト処理が始まった時には、すでにArray.atは使える状態になっているので問題にならなかった、ということなのでしょう。

ということは、modernPolyfills: trueの対策でも問題ないように思いますが、先にDOMContentLoadedが終わっているのは、ファイルが小さいことなどが要因であり、プログラムとして保証された動作ではありません。
なので、本当の対策は以下だと結論付けて、本事件は解決となりました。

  • 短期的には、グローバルオブジェクトの初期化は、Polyfillが必要なメソッドを使用しないようにする。
  • 長期的には、そもそもグローバルオブジェクトを使用しない設計にする。

「真実はいつもひとつ!」

さいごに

あとから気付いたのですが、トランスパイルしたファイルが難読化されていてもJSONのフィールド名は変化しないので、そっから調査を開始したらもっと早く問題となっているArray.atの場所が特定できて、事件解決は早かったかなーと思いました。修行修行。

We're Hiring

こんな感じで、私は今でもバグハンターとしてデバッグの最前線に立ってたりします! そんな泥臭いCEOと一緒に働いてみたいなー、と興味を持ってくれた方は、HPのCONTACTからお気軽にご連絡ください! ドミノソフトでは一緒に働く仲間を募集中です!

www.dominosoft.co.jp

大人レゴ

はじめに

こんにちは。ドミノソフトのnct-dsです。

もうすぐクリスマス!お正月!ですね! みなさまはどんなイベント日程をご計画でしょうか? 予定ギッシリの方、スッカスカの方、十人十色かと思います。

本日は予定スッカスカの方に向けて大人も楽しめるレゴ(過去に私が作ったもの)を簡単にご紹介いたします。 ちなみに私も予定スッカスカの人です。

手応えのあるドゥカティ!

www.lego.com

テクニックシリーズの「ドゥカティ パニガーレ V4 R」です。 646ピースで結構手応えがあります。 私はこちらが初レゴだったので7時間くらいかかってしまいました。

タイヤを回すと中のギアが連動して動きます。楽しげです。 満足感は得られますが後輪のスタンドの安定性がイマイチで倒れやすいのが難点ですね。

おしゃれなフラワーブーケ!

www.lego.com

ボタニカルシリーズの「フラワーブーケ」です。 特に花が好きなわけでもないのですが、なんとなく作ってみました。 756ピースありますが、ドゥカティよりずっと簡単です。

できあがったら是非とも花瓶に生けてください。 (花瓶に生けたものが弊社の受付に飾ってあります)

このおもちゃっぽさがイイんですよね。ドット絵に惹かれるような感じです。

和モダンな梅!

www.lego.com

ボタニカルシリーズの「梅」です。 Amazonのセールで安くなっていたので購入して作りました。

すぐできちゃいますが、こちらもインテリアとして楽しめるのでGOODです。 フラワーブーケと違って花瓶が要らないのも手軽でイイです。

枝振りにLEGOのセンスを感じますね。

風流な竹!

www.lego.com

ボタニカルシリーズの「ラッキーバンブー」です。

こちらも梅と同じ感じで、すぐできちゃいます。なんだか妙にかわいいやつです。

さいごに

いかがでしょうか?パズルや組み立て系の遊びが好きな人には特にお勧めですよ! 興味を持っていただけたら幸いです。

我が家のクローゼットには未組み立ての「菊」や「バラのブーケ」が眠っているので、この冬休みに作ろうかなと思っています。 (本当は大量の罪プラを消化したいのですが、まだ再開する気力が・・・)

おまけで作成の際の参考情報なんかを少しだけ。

  • 紙コップなんかにパーツを軽く仕分けておくとスムーズに作ることができます。(特にドゥカティは仕分けをお勧めします)
  • ボタニカルシリーズは、つや消しスプレーを吹くとマットな質感になって面白いです。
  • 私が作ったものは、パーツ不足はありませんでした。

以上です。それではみなさま良い冬休みを!

We're Hiring

ドミノソフトでは一緒に働く仲間を募集中です! ご興味のある方はHPのCONTACTからお気軽にご連絡ください! www.dominosoft.co.jp

趣味の話。アジア最大規模のコーヒーの展示会に行ってみた。

コーヒーの展示会
こんにちは、pom_1015です。

今回は大好きなコーヒー関係のお話。(仕事とは関係のない趣味のお話です)

2025年9月24日(水)~9月27日(土)の4日間、東京ビッグサイトでコーヒー好き大興奮のイベントが開催され、今年初めて足を運んでみました。 この展示会(SCAJ2025)では、世界中から多種多様なコーヒー豆、コーヒー関連の食品やグッズ、焙煎や抽出などの最新鋭マシン、器具の展示が行われ1日中楽しむことが出来ます。 業界関係者の方が多く集うイベントですが、一般の方の参加も大丈夫でして、コーヒーの知識を深めること、よりコーヒーを好きになることが出来ると思います。

楽しみ方は人それぞれ!会場では普段見かけることのない国や地域のコーヒー豆を使ったコーヒーの試飲が出来たり、生産者や輸入者の方のお話も聞くことが出来たりします。また、見どころの一つが日本一・世界一を決める様々な選手権が開催されること。抽出技術を競うものや8セット×3杯のカップから、一つだけ違う味のコーヒーを当てる競技など様々あり、今まで知らなかったコーヒーの世界にまた一歩足を踏み入れることが出来ます。

今回初参戦の私は、大好きなマシンと抽出器具やグッズ、ラテアートをメインに見てまわりました。 あれもこれも買いたい欲求をどうにかセーブして、2つだけグッズを買ってきました!

一つ目は、ティーポット。長く使っていると、うっかり割ってしまうティーポットですが、こちらは割れにくい素材でできていて安心感があります。あと、ティーをいれると少し困る出がらし(カス)をポットの 注ぎ口でキャッチできるのが非常に便利で購入しました。意外と、注ぎ口にフィルターがついているのは見たことがなかったので、面白いものを買えてよかったです。

ティーポット

二つ目は、ミルクピッチャー。カフェラテやカプチーノなどを作るときにミルクをマシンで温める際に使うもの。このピッチャーはプロのバリスタから多く愛されていたり、ラテアートの大会でも多く使用されている非常に人気の高いメーカーのピッチャーで、ずっと欲しかった2個目のピッチャーとして選びました。どうして、2個目を購入したかというと、ピッチャーの容量やスパウト(クチバシ)の形によって、ラテアートのやりやすい絵柄などが変わったりすること。あとは、カラーバリエーションやデザインも豊富なので欲しくなってしまいます。

ミルクピッチャー

今回購入したピッチャーは、シャープスパウトといい、その名の通り先端が細く尖った形状をしています。この形状によって細かいラインを描くアートがやりやすく、アートのレパートリーを広げやすくなります。最近、練習しているスワンやフェニックスにも良さそうなので、これからのカフェ時間が楽しくなりそうです。

ラテアート

本当は、見たもの全てここに載せてカッコよかったマシンなどお話したいですが、色々あるので気になった方はSCAJ2025公式サイトに昨年のSCAJ2024のダイジェストムービーが掲載されているので、そちらをご覧ください。

こんな感じで、今回もお仕事とは全然関係のない趣味のお話でしたが、 ドミノソフトでは一緒に働く仲間を募集中です! ご興味のある方はHPのCONTACTからお気軽にご連絡ください!

www.dominosoft.co.jp