DTダイナミクス テックブログ

https://techblog.dt-dynamics.com/

DTダイナミクス テックブログ

フィード

記事のアイキャッチ画像
Java 8 から Java 21 へのアップデートで直面したGCやメモリの問題とその対策
はてなブックマークアイコン 3
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスでmeviyの開発を担当している中村です。 meviyのシステムはScala + Play Frameworkで開発しています。 これを実行するJVMがJava 8のままアップデートされていなかったため、Java 21へのアップデートを行いました。 以前: GraalVM CE 21.1.0 (jdk 1.8) 以後: GraalVM for JDK 21 Community このアップデートにより、Javaの標準APIの動作が変わった点や、GCアルゴリズムの変更に伴うヒープ使用量の変化がありました。 本記事では、私たちが実際に遭遇した変更点と、そこから得…
6日前
記事のアイキャッチ画像
AI Agent の Framework 選定に悩んで、サーベイ論文を読んでみた
DTダイナミクス テックブログ
はじめに 会社でAI Agent POCを開発している張です。 最近そろそろちゃんと Framework を選定しないといけないな、というフェーズに来ました。ただ調べ始めてみると LangChain、LangGraph、AutoGen、CrewAI…と選択肢が多すぎて、「何を基準に比較すればいいのか」がそもそも定まっていないことに気づきました。 そこで一旦手を止めて、AI Agent のアーキテクチャと評価方法を包括的に整理したサーベイ論文("AI Agent Systems: Architectures, Applications, and Evaluation")を読んでみることにしました…
16日前
記事のアイキャッチ画像
Goの並行処理入門 - 知っておくべき6つの基本概念
DTダイナミクス テックブログ
はじめに こんにちは、meviyの生産革新チームのリンです。 Goは並行処理を言語レベルでサポートしており、goroutineやchannelを使って簡単に並行プログラムを書くことができます。しかし、並行処理には特有の落とし穴が数多く存在します。 本記事では、書籍『Concurrency in Go』(Katherine Cox-Buday著)のChapter 1をベースにしています。 並行処理を扱ううえで知っておくべき6つの基本概念を、Goのサンプルコードとともに紹介します。 Race Conditions(競合状態) Atomicity(原子性) Memory Access Synchro…
1ヶ月前
記事のアイキャッチ画像
Model Garden 上の Claude を利用した GitHub PRレビュー自動化
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスの張です。 普段の業務に加え、社内ではAI Native開発の推進メンバーとして、AIを活用した開発プロセス改善やツール導入の支援も行っています。 以前、Gemini CLIを安全に使うためのVertex AIとIAM設計ガイドという記事を書き、Gemini Enterprise Agent Platform (旧称 Vertex AI) 経由での AIモデル利用における認証・認可設計について解説しました。 今回は、この取り組みをさらに一歩進め、Model Garden 上の Claude を使って GitHub PRレビューを自動化した事例をご紹介します…
1ヶ月前
記事のアイキャッチ画像
Mac標準のオンデバイスLLMで要約ツールを作ってみた
DTダイナミクス テックブログ
はじめに meviyの切削Webチームの小平です。Mac標準のオンデバイス LLM が私の中で熱いです、きてます。 今回は macOS 26 で使える Foundation Models を試してみました。 Apple Intelligence のオンデバイス LLM を Swift から利用できるフレームワークです。 オンデバイスで処理できるため、社内文書や個人メモのようなテキストも扱いやすそうです。外部サービスを用意せずに利用できるのが良いところですね。 ど定番ですが、記事や議事録を読むとき、とりあえず要約を見たいことがありますよね。 今回はクリップボードのテキストを要約するショートカット…
2ヶ月前
記事のアイキャッチ画像
幾何計算って何?(座標系編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしている横田です。 これまで幾何計算の紹介として内積・外積・三角関数をご紹介してきました。 今回は少し趣向を変えて、「座標系」についてご紹介します。 techblog.dt-dynamics.com techblog.dt-dynamics.com techblog.dt-dynamics.com 座標系とは? 数学の授業で習ったx軸・y軸のグラフを思い出してみてください。あれが2次元の座標系になります。 それにz軸が加わることで、3次元の座標系になります。 座標系は、「原点(どこをゼロ点とするか)」と「軸の向き(x軸/y軸/z軸がどちらを…
2ヶ月前
記事のアイキャッチ画像
入社エントリ〜backend大森〜
DTダイナミクス テックブログ
DTダイナミクスで板金・溶接Webの開発をしている大森です。 主に板金・板金溶接サービスのバックエンドを担当しています。 入社からあっという間に1年が過ぎたので、入社エントリとして前職との違いや入社の経緯をまとめてみました。 前職でのお仕事 DTダイナミクスを選んだ理由 1. 「時間」にこだわるテックカンパニーというビジョン 2. 製造業の市場規模 入社してみて 裁量の大きさ リリースプロセス コミュニケーション その他・個人的に感じること 前職でのお仕事 前職は覆面調査会社で、バックエンド・フロントエンドを幅広く担当していました。 システムはざっくりBtoB・BtoC・社内向けの3つに分かれ…
3ヶ月前
記事のアイキャッチ画像
VSCode×Python拡張機能で仮想環境を一目で管理しよう
DTダイナミクス テックブログ
VSCode×Python拡張機能で仮想環境を一目で管理しよう はじめに DTダイナミクスで板金の形状処理の開発を担当している陳です。 今回は、Pythonの仮想環境管理に便利なVisual Studio Code(以下、VSCode)のPython拡張機能についてご紹介します。 Pythonで開発をしていると、「あるプロジェクトではAというライブラリのバージョン1.0が必要だけど、別のプロジェクトではバージョン2.0が必要」といった場面に必ず出会います。また、さまざまなライブラリをインストールしているうちに環境がごちゃごちゃになり、「あれ、昨日まで動いていたのに…」というトラブルも起こりがち…
3ヶ月前
記事のアイキャッチ画像
【特集】三角関数やベクトルはどこで役立つ?実は3DやCADの世界で大活躍!
DTダイナミクス テックブログ
実生活でどこに使うの? 高校などで習う「実生活で役に立たないもの」としてやり玉に上げられることの多い三角関数やベクトルなどは計算や図形の問題として出題されることは多いですが、それが実社会においてどんな分野でどのように使われているかが語られることは少なく、どうしてもイメージしづらいものとなってしまっていることも事実です。 私たちDTダイナミクスが扱っている3DやCADソフトウェアの世界では位置・角度・方向の計算に以下をはじめとした幾何計算(Geometry Calculation)を非常によく使っています。 三角関数 ベクトルの内積(Dot Product) ベクトルの外積(Cross Prod…
5ヶ月前
記事のアイキャッチ画像
話題の分割キーボード Cornix LPを使ってみた
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスでバックエンドエンジニアをしている眞神です。 かれこれ5年以上、分割キーボードを愛用しており、これまで様々なモデルを試してきました。肩や手首への負担が少ない分割キーボードは、長時間のデスクワークに欠かせない相棒です。 そんな中、2023年末頃からキーボード界隈を賑わせているのが、今回ご紹介する「Cornix LP」です。本記事では、この話題の分割キーボードを実際に使ってみた感想と、その魅力について詳しくレビューします。 結論から言うとCornix LPに対する私の満足度は高く、基本褒めちぎっている記事になります。 Cornix LPとは? Cornix L…
5ヶ月前
記事のアイキャッチ画像
AWS歴8年弱のWebアプリエンジニアがAWSソリューションアーキテクト – アソシエイト(SAA-C03)に挑戦した話
DTダイナミクス テックブログ
はじめに こんにちは。普段は主にScala/TSを使い、meviyの切削サービスのWebアプリケーションの開発をしている大﨑です。 私が業務でAWSを使い始めてから、気づけば8年弱ほどの月日が経っていました。日々の業務ではECSやLambda、S3、DynamoDBといったサービスをよく利用し、自分はそれなりにAWSを知っている方だと思っていました。 しかし、ある時ふと「自分の知識は担当領域に偏った点でしかなく、VPCやIAMなど基盤部分や全体像を俯瞰するAWSの基本的な知識が抜け落ちているのではないか?」と思いました。 この記事では、長年AWSを使ってきたエンジニアが、自分の知識の偏りに気づ…
6ヶ月前
記事のアイキャッチ画像
Radix Colors 導入:デザイントークン化と Stylelint による静的検証
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスでフロントエンドの切削サービスの開発をしております、朱です。 本記事では、色定義が散らばっていた状態からデザインシステム化の足がかりとしてカラートークンを整備した背景とその内容をまとめました。 そして運用で起きやすいタイポ/未定義トークン混入に対し、トークンの整合性(定義済みのみが使われる状態)を保つために試したことについても共有します。 背景:なぜ今「トークン化」なのか UIの色は、プロジェクトが育つほど「定義の置き場所」が増えがちです。 HEXの直書き、SCSSのカスタム変数、コンポーネント固有の色が混在してくると、変更時に「どこで使われているか」とい…
6ヶ月前
記事のアイキャッチ画像
幾何計算って何?(三角関数編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしている横田です。 前回は幾何計算の外積について解説と活用例をお話ししました。 今回は三角関数の活用例についてご紹介します。 三角関数とは? 三角関数を大まかに説明すると「三角形の角度と各辺の長さの関係性を定めたもの」です。 また、定義についての詳細な解説は省きますが、今回は逆三角関数もあわせて扱います。 逆三角関数も大まかに説明すると「辺の比から角度を逆算するもの」です。 今回はmeviyにおける角度測定の実装例として、3Dモデルの情報から角度を得る方法をご紹介します。 活用例 角度測定について 加工するにあたり、図のような角を削る際の角…
6ヶ月前
記事のアイキャッチ画像
C++でもパターンマッチ(のようなもの)がしたい
DTダイナミクス テックブログ
ごあいさつ こんにちは。meviy形状処理チームの志田です。 弊社では数年前にRustが導入され、その適用範囲は徐々に拡大しています。 (Rust導入の経緯についてはこちらの記事をご覧ください) しかし現在でも、C++を書く必要がある場面は少なくありません。そんな時、Rustを触り始めて便利さを実感している私としては「Rustのあの機能がC++でも使えたらなあ...」と感じることがよくあります。 特に強く感じるのが、パターンマッチ構文の恩恵です。 現状、C++にはパターンマッチ構文がないため、std::variantの分岐処理をRustのように簡潔に記述できません。 そこで今回は、C++でもパ…
7ヶ月前
記事のアイキャッチ画像
Akka/Pekko Actorの初歩
DTダイナミクス テックブログ
Akka/Pekkoとは Akka/Pekkoとは、JavaやScalaをメインにしたJVMで利用できるパイプライン的に非同期処理を行うためのライブラリです。 実際にはかなり多くの機能の集合体なので、この説明も正確ではないかもしれませんが、肝となっているのは非同期処理をうまく管理する部分だと思います。 公式ページの説明を抜粋すると以下のように記載されています。 Akka は、10 年以上にわたって運用環境で使用されてきたレスポンシブなアプリケーションを構築および実行するためのライブラリ セットを提供します。 Akkaには、オープンソース版としてフォークされたApache Pekkoがあります。…
7ヶ月前
記事のアイキャッチ画像
Gemini CLI × ADK(Agent Development Kit) × Vertex AI Search で社内ナレッジを素早くRAG化したい
DTダイナミクス テックブログ
DTダイナミクス代表取締役社長の道廣です。 社内の問い合わせ対応や技術ノウハウの共有は、多くの組織で「気づけば属人化しがちな業務」の代表です。とりわけセキュリティ実装や運用ノウハウのような領域では、担当者の経験に依存した暗黙知が蓄積されてしまい、情報が散在して放置されることもしばしば起こります——その結果、同じ説明を何度も繰り返す必要が生じたり、新任メンバーのキャッチアップが遅延したりと、業務効率や組織学習に悪影響が出てしまいます。 こうした課題に対して RAG(Retrieval Augmented Generation) が注目されており、検索と生成を組み合わせることで、ナレッジベースから…
7ヶ月前
記事のアイキャッチ画像
製造業DX「meviy」の開発現場におけるAIエージェント活用
DTダイナミクス テックブログ
DTダイナミクス代表取締役社長の道廣です。 2025年10月30日に開催された Google Cloud AI Agent Summit 2025 Fall にて、製造業DXプラットフォーム「meviy」と、その開発を支えるAIエージェント活用の取り組みについて登壇しました。 本記事では、登壇内容の要点をサマリーとしてまとめています。詳細については、下記の動画および資料リンクもあわせてご参照ください。 プレゼンテーション動画アーカイブ プレゼンテーション資料 製造業のDXは、「デジタル化するか否か」の議論は収束し、問われているのはいかにして構造的な非効率を壊し、スケールする仕組みを作るかです。…
8ヶ月前
記事のアイキャッチ画像
Gemini CLI を安全に使うための Vertex AI と IAM 設計ガイド
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスのFACommonチームでmeviyの開発を担当している張です。 普段の業務に加え、社内ではAI Native開発の推進メンバーとして、AIを活用した開発プロセス改善やツール導入の支援も行っています。 最近、この活動の一環として、開発者がより効率的にGeminiモデルを利用できるよう、Gemini CLIの導入と環境整備を主導しました。 本記事では、この導入経験を基に、以下の2点について詳しく解説します。 Vertex AIを利用した安全な認証・認可設計 最小権限の原則に基づいたIAMの構築方法 セキュアなAI活用環境を整備する上で、この記事が少しでも参考…
9ヶ月前
記事のアイキャッチ画像
Handlebars.jsとは?基本的な使い方からカスタムヘルパーまで
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスのGrowthチームでmeviyの開発をしております、森です。 meviyでは帳票作成時とメールの文面作成時にHandlebars.jsを使用しています。 Handlebars.jsについての基本的な使い方と活用例を紹介いたします。 Handlebars.jsとは Handlebars.jsは、JavaScript向けのシンプルで強力なセマンティック・テンプレートエンジンです。その主な目的は、データ(JSONオブジェクトなど)とHTMLテンプレートを組み合わせて、動的なHTMLを生成することです。 基本的な考え方は、HTMLの中に{{variable}}の…
9ヶ月前
記事のアイキャッチ画像
ITエンジニアとして感じた日本と海外のカルチャーの違い8つ
DTダイナミクス テックブログ
Full stack engineerをやっているホールプロダクト開発チームのセルです。 社会人として、これまで日本や海外のさまざまなプロジェクトに主にバックエンド開発で参加してきました。その中で日本の働くカルチャーを知らずに困っていた時もありました。その経験を踏まえて、ITエンジニアとして感じた日本と海外のカルチャーの違いを8つ取り上げてみたいと思います。 これはあくまで私個人が感じたことなので、必ずしも全員に当てはまるわけではないと思います。もし違うなと感じる部分があればスルーしていただき、「良くある、良く聞く」と共感できる部分だけでも楽しんでいただければ幸いです。 1. ドキュメント文化…
9ヶ月前
記事のアイキャッチ画像
Java 25で追加されたGatherersでScalaのcollectのようなことを試してみた
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスの切削サービスの開発をしております、大崎です。 普段、meviyの開発自体ではJavaを使っていませんが、筆者個人としては過去にJavaを使って開発していたこともあって、今年の Java 25(LTS)の興味をもった機能について調べてみました。 そのなかでも、Stream Gatherers がLTS入りしたことに注目し、今回はこれをScalaの collect を使うようなユースケースで取り上げてみます。 Stream Gatherersとは Stream Gatherers は、Stream にカスタムした中間操作を差し込むための新APIです。map …
10ヶ月前
記事のアイキャッチ画像
幾何計算って何?(外積編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしています、横田です。 前回は幾何計算の内積について解説と活用例についてお話しさせていただきました。引き続き、今回は外積の活用例について紹介させていただきます。 外積とは? 内積が数値を返すのに対し、外積の計算結果は新しいベクトルになります。 2つのベクトルAとBに対して、外積A×Bは下記のように定義されます。 向き この新しいベクトルの向きは、元の2つのベクトルに直交します。 その方向は「右手の法則」に従って決まります。 (Aを人差し指、Bを中指、外積の結果得られるベクトルを親指として示せます) 大きさ 外積で得られるベクトルの大きさは、…
10ヶ月前
記事のアイキャッチ画像
BackstopJSで手軽にUI変更の差分を確認してみる
DTダイナミクス テックブログ
DTダイナミクスで板金・溶接Webの開発をしている田門です。 主に板金・板金溶接サービスのフロントエンドを担当しています。 今日は、Visual Regression Test(以下VRT)ができるBackstopJSを使って、開発中画面の変更点を一目で把握できるか試してみました。 VRTを試した経緯 BackstopJSで修正前後の差分を確認してみる 導入の手順 テストの実行 結果 おわりに VRTを試した経緯 meviyを使用して、部品が実際にユーザーの元へ届くまでのおおまかなフローは下記になります。 CADファイルをアップロードしプロジェクトを作成する プロジェクトを3DViewer画面…
1年前
記事のアイキャッチ画像
GitHub Actions ワークフロー実装の小技7選
DTダイナミクス テックブログ
meviy形状処理チームの佐藤智哉です。 形状認識アルゴリズムを自動テストするCI構築を担当しています。 その過程で得たGitHub Actionsのtipsの紹介です。 1. まずworkflow_dispatchから実装する 2. コンテキストを利用して適切なrun-name:をつける 3. continue-on-error:とif:キーを用いてステップの中断・継続を柔軟に制御する 4. データ共有にaction/upload-artifactを利用する 5. テストレポートはさくっとSummaryに出力しよう 6. $GITHUB_ENVを使うか$GITHUB_OUTPUTを使うか 7…
1年前
記事のアイキャッチ画像
対立を生まない、チームを成長させる「こだわり」とは
DTダイナミクス テックブログ
はじめまして 技術じゃないタイトルを開いてくださり、ありがとうございます! はじめましての方は、はじめまして。ご存じの方は、こんにちは。 DTダイナミクスでマネジメントを担当している渡邉です。 もともとエンジニアとして働いていましたが、すっかり組織開発に魅了され、 現在はマネジメントや組織開発にどっぷり浸かっています。 そんな私が、テックブログでも組織開発やマネジメントに関する話題を お届けしようと思います。どうぞよろしくお願いいたします。 エンジニアとこだわり ところで、エンジニアの皆さんは、「こだわり」という言葉にどんなイメージを持っていますか? 自分の技術やプロダクトに対する情熱、あるい…
1年前
記事のアイキャッチ画像
勉強会:『GopherのためのCLIツール開発』最新事情 LTに参加してきました
DTダイナミクス テックブログ
こんにちはid:bikun_bikunです。 最近はGoからちょっと遠ざかっていたのですが、面白そうな勉強会を発見し参加してきました。 勉強会: https://findy.connpass.com/event/362163/findy.connpass.com LT会で1つの発表は5分程度でしたが、CLIに特化したお話でなかなか楽しい勉強会でした。 発表のアーカイブ、資料については上記イベントページからリンクを辿れるためそちらをご参照いただければと思います。 下記それぞれの発表で思ったことなどをまとめていきたいと思います。 それCLIフレームワークがなくてもできるよ 発表者:kuniwakさ…
1年前
記事のアイキャッチ画像
GitHub Actionsで利用するアクションのバージョンを指定する際に意識すべきこと
DTダイナミクス テックブログ
はじめに DTダイナミクスで板金Webの開発をしている森口です。 今回は少し前に話題となっていた脆弱性についての話を取り上げ、そこから得られる教訓をまとめていきたいと思います。 皆さんはGitHub Actionsで外部のアクションを利用する際、バージョンをどのように設定していますか? 私は、なんの疑いもなく以下のように設定していました。 uses: actions/checkout@v3 しかし、この設定はセキュリティ上のリスクを孕んでいます。 今回取り上げる脆弱性の内容を理解してからは以下のように設定することを心がけるようになりました。 uses: actions/checkout@{コミ…
1年前
記事のアイキャッチ画像
SemanticDB を利用して、ソースコードから依存関係を可視化する
DTダイナミクス テックブログ
こんにちは、KAJIです。 本記事では、SemanticDBを利用してソースコードよりシステムの依存関係を把握する方法を紹介します。 背景 | それはどこにでもよくある、開発の現場での困りごと プロダクト開発では、機能追加しリリースした後はフィードバックを元に改善したりなど、今あるものをエンハンスしていくことが求められます。 チームのアウトプットを最大化するためにも、機能の目的や設計内容、およびその意図などをチームの皆と共有できるよう、 プロダクトの開発と合わせてドキュメンテーションが重要になります。 言わずもがなですが、ドキュメントがないシステムは理解が困難であり、 何がどう動いているのか把…
1年前
記事のアイキャッチ画像
幾何計算って何?(内積編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしております、横田です。 前回はPMIチームの紹介記事を書かせていただきましたが、その中で、幾何計算を扱うのが特徴のチームという話をしました。 ただ「幾何計算ってなんだ?」という方が多いのでは、と思いましたので、実際に使われている処理を例示しつつ、どんな内容か紹介していければと思います。 今回は、その中で「内積」の活用例についてご紹介しようと思います。 内積とは? 2つのベクトルAとBに対して、そのなす角度がθの時、内積は下記のように定義されます。 この内積の計算結果の値(特に符号)は、「2つのベクトルがどれだけ同じ方向を向いているか」を測…
1年前
記事のアイキャッチ画像
Playアプリのconf設定をシュッと上書きする方法
DTダイナミクス テックブログ
はじめに こんにちは、meviyの切削Webチームの小平です。 最近、Play Frameworkアプリの設定を切り替える方法について考える機会がありました。今回はその際に使ったちょっとした工夫をご紹介します。 背景 ある機能をサーバーAから、新設したサーバーBに切り出す構成変更を行いました。 サーバーAは多数の処理を抱えており、スペックや台数の調整が難しくなっていたため、特定機能をサーバーBに移すことでシステム構成を整理しました。 ロジック自体に変更はありませんでしたが、システム構成の切り替えをする際は万が一に備えて「切り戻し」の手段を用意しておくと安心です。 「問題があればすぐにコードを修…
1年前