DTダイナミクス テックブログ
https://techblog.dt-dynamics.com/
DTダイナミクス テックブログ
フィード

【特集】三角関数やベクトルはどこで役立つ?実は3DやCADの世界で大活躍!
DTダイナミクス テックブログ
実生活でどこに使うの? 高校などで習う「実生活で役に立たないもの」としてやり玉に上げられることの多い三角関数やベクトルなどは計算や図形の問題として出題されることは多いですが、それが実社会においてどんな分野でどのように使われているかが語られることは少なく、どうしてもイメージしづらいものとなってしまっていることも事実です。 私たちDTダイナミクスが扱っている3DやCADソフトウェアの世界では位置・角度・方向の計算に以下をはじめとした幾何計算(Geometry Calculation)を非常によく使っています。 三角関数 ベクトルの内積(Dot Product) ベクトルの外積(Cross Prod…
4日前

話題の分割キーボード Cornix LPを使ってみた
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスでバックエンドエンジニアをしている眞神です。 かれこれ5年以上、分割キーボードを愛用しており、これまで様々なモデルを試してきました。肩や手首への負担が少ない分割キーボードは、長時間のデスクワークに欠かせない相棒です。 そんな中、2023年末頃からキーボード界隈を賑わせているのが、今回ご紹介する「Cornix LP」です。本記事では、この話題の分割キーボードを実際に使ってみた感想と、その魅力について詳しくレビューします。 結論から言うとCornix LPに対する私の満足度は高く、基本褒めちぎっている記事になります。 Cornix LPとは? Cornix L…
16日前

AWS歴8年弱のWebアプリエンジニアがAWSソリューションアーキテクト – アソシエイト(SAA-C03)に挑戦した話
DTダイナミクス テックブログ
はじめに こんにちは。普段は主にScala/TSを使い、meviyの切削サービスのWebアプリケーションの開発をしている大﨑です。 私が業務でAWSを使い始めてから、気づけば8年弱ほどの月日が経っていました。日々の業務ではECSやLambda、S3、DynamoDBといったサービスをよく利用し、自分はそれなりにAWSを知っている方だと思っていました。 しかし、ある時ふと「自分の知識は担当領域に偏った点でしかなく、VPCやIAMなど基盤部分や全体像を俯瞰するAWSの基本的な知識が抜け落ちているのではないか?」と思いました。 この記事では、長年AWSを使ってきたエンジニアが、自分の知識の偏りに気づ…
1ヶ月前

Radix Colors 導入:デザイントークン化と Stylelint による静的検証
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスでフロントエンドの切削サービスの開発をしております、朱です。 本記事では、色定義が散らばっていた状態からデザインシステム化の足がかりとしてカラートークンを整備した背景とその内容をまとめました。 そして運用で起きやすいタイポ/未定義トークン混入に対し、トークンの整合性(定義済みのみが使われる状態)を保つために試したことについても共有します。 背景:なぜ今「トークン化」なのか UIの色は、プロジェクトが育つほど「定義の置き場所」が増えがちです。 HEXの直書き、SCSSのカスタム変数、コンポーネント固有の色が混在してくると、変更時に「どこで使われているか」とい…
1ヶ月前

幾何計算って何?(三角関数編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしている横田です。 前回は幾何計算の外積について解説と活用例をお話ししました。 今回は三角関数の活用例についてご紹介します。 三角関数とは? 三角関数を大まかに説明すると「三角形の角度と各辺の長さの関係性を定めたもの」です。 また、定義についての詳細な解説は省きますが、今回は逆三角関数もあわせて扱います。 逆三角関数も大まかに説明すると「辺の比から角度を逆算するもの」です。 今回はmeviyにおける角度測定の実装例として、3Dモデルの情報から角度を得る方法をご紹介します。 活用例 角度測定について 加工するにあたり、図のような角を削る際の角…
2ヶ月前

C++でもパターンマッチ(のようなもの)がしたい
DTダイナミクス テックブログ
ごあいさつ こんにちは。meviy形状処理チームの志田です。 弊社では数年前にRustが導入され、その適用範囲は徐々に拡大しています。 (Rust導入の経緯についてはこちらの記事をご覧ください) しかし現在でも、C++を書く必要がある場面は少なくありません。そんな時、Rustを触り始めて便利さを実感している私としては「Rustのあの機能がC++でも使えたらなあ...」と感じることがよくあります。 特に強く感じるのが、パターンマッチ構文の恩恵です。 現状、C++にはパターンマッチ構文がないため、std::variantの分岐処理をRustのように簡潔に記述できません。 そこで今回は、C++でもパ…
2ヶ月前

Akka/Pekko Actorの初歩
DTダイナミクス テックブログ
Akka/Pekkoとは Akka/Pekkoとは、JavaやScalaをメインにしたJVMで利用できるパイプライン的に非同期処理を行うためのライブラリです。 実際にはかなり多くの機能の集合体なので、この説明も正確ではないかもしれませんが、肝となっているのは非同期処理をうまく管理する部分だと思います。 公式ページの説明を抜粋すると以下のように記載されています。 Akka は、10 年以上にわたって運用環境で使用されてきたレスポンシブなアプリケーションを構築および実行するためのライブラリ セットを提供します。 Akkaには、オープンソース版としてフォークされたApache Pekkoがあります。…
3ヶ月前

Gemini CLI × ADK(Agent Development Kit) × Vertex AI Search で社内ナレッジを素早くRAG化したい
DTダイナミクス テックブログ
DTダイナミクス代表取締役社長の道廣です。 社内の問い合わせ対応や技術ノウハウの共有は、多くの組織で「気づけば属人化しがちな業務」の代表です。とりわけセキュリティ実装や運用ノウハウのような領域では、担当者の経験に依存した暗黙知が蓄積されてしまい、情報が散在して放置されることもしばしば起こります——その結果、同じ説明を何度も繰り返す必要が生じたり、新任メンバーのキャッチアップが遅延したりと、業務効率や組織学習に悪影響が出てしまいます。 こうした課題に対して RAG(Retrieval Augmented Generation) が注目されており、検索と生成を組み合わせることで、ナレッジベースから…
3ヶ月前

製造業DX「meviy」の開発現場におけるAIエージェント活用
DTダイナミクス テックブログ
DTダイナミクス代表取締役社長の道廣です。 2025年10月30日に開催された Google Cloud AI Agent Summit 2025 Fall にて、製造業DXプラットフォーム「meviy」と、その開発を支えるAIエージェント活用の取り組みについて登壇しました。 本記事では、登壇内容の要点をサマリーとしてまとめています。詳細については、下記の動画および資料リンクもあわせてご参照ください。 プレゼンテーション動画アーカイブ プレゼンテーション資料 製造業のDXは、「デジタル化するか否か」の議論は収束し、問われているのはいかにして構造的な非効率を壊し、スケールする仕組みを作るかです。…
4ヶ月前

Gemini CLI を安全に使うための Vertex AI と IAM 設計ガイド
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスのFACommonチームでmeviyの開発を担当している張です。 普段の業務に加え、社内ではAI Native開発の推進メンバーとして、AIを活用した開発プロセス改善やツール導入の支援も行っています。 最近、この活動の一環として、開発者がより効率的にGeminiモデルを利用できるよう、Gemini CLIの導入と環境整備を主導しました。 本記事では、この導入経験を基に、以下の2点について詳しく解説します。 Vertex AIを利用した安全な認証・認可設計 最小権限の原則に基づいたIAMの構築方法 セキュアなAI活用環境を整備する上で、この記事が少しでも参考…
4ヶ月前

Handlebars.jsとは?基本的な使い方からカスタムヘルパーまで
DTダイナミクス テックブログ
はじめに こんにちは。DTダイナミクスのGrowthチームでmeviyの開発をしております、森です。 meviyでは帳票作成時とメールの文面作成時にHandlebars.jsを使用しています。 Handlebars.jsについての基本的な使い方と活用例を紹介いたします。 Handlebars.jsとは Handlebars.jsは、JavaScript向けのシンプルで強力なセマンティック・テンプレートエンジンです。その主な目的は、データ(JSONオブジェクトなど)とHTMLテンプレートを組み合わせて、動的なHTMLを生成することです。 基本的な考え方は、HTMLの中に{{variable}}の…
5ヶ月前

ITエンジニアとして感じた日本と海外のカルチャーの違い8つ
DTダイナミクス テックブログ
Full stack engineerをやっているホールプロダクト開発チームのセルです。 社会人として、これまで日本や海外のさまざまなプロジェクトに主にバックエンド開発で参加してきました。その中で日本の働くカルチャーを知らずに困っていた時もありました。その経験を踏まえて、ITエンジニアとして感じた日本と海外のカルチャーの違いを8つ取り上げてみたいと思います。 これはあくまで私個人が感じたことなので、必ずしも全員に当てはまるわけではないと思います。もし違うなと感じる部分があればスルーしていただき、「良くある、良く聞く」と共感できる部分だけでも楽しんでいただければ幸いです。 1. ドキュメント文化…
5ヶ月前

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 …
6ヶ月前

幾何計算って何?(外積編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしています、横田です。 前回は幾何計算の内積について解説と活用例についてお話しさせていただきました。引き続き、今回は外積の活用例について紹介させていただきます。 外積とは? 内積が数値を返すのに対し、外積の計算結果は新しいベクトルになります。 2つのベクトルAとBに対して、外積A×Bは下記のように定義されます。 向き この新しいベクトルの向きは、元の2つのベクトルに直交します。 その方向は「右手の法則」に従って決まります。 (Aを人差し指、Bを中指、外積の結果得られるベクトルを親指として示せます) 大きさ 外積で得られるベクトルの大きさは、…
6ヶ月前

BackstopJSで手軽にUI変更の差分を確認してみる
DTダイナミクス テックブログ
DTダイナミクスで板金・溶接Webの開発をしている田門です。 主に板金・板金溶接サービスのフロントエンドを担当しています。 今日は、Visual Regression Test(以下VRT)ができるBackstopJSを使って、開発中画面の変更点を一目で把握できるか試してみました。 VRTを試した経緯 BackstopJSで修正前後の差分を確認してみる 導入の手順 テストの実行 結果 おわりに VRTを試した経緯 meviyを使用して、部品が実際にユーザーの元へ届くまでのおおまかなフローは下記になります。 CADファイルをアップロードしプロジェクトを作成する プロジェクトを3DViewer画面…
7ヶ月前

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…
7ヶ月前

対立を生まない、チームを成長させる「こだわり」とは
DTダイナミクス テックブログ
はじめまして 技術じゃないタイトルを開いてくださり、ありがとうございます! はじめましての方は、はじめまして。ご存じの方は、こんにちは。 DTダイナミクスでマネジメントを担当している渡邉です。 もともとエンジニアとして働いていましたが、すっかり組織開発に魅了され、 現在はマネジメントや組織開発にどっぷり浸かっています。 そんな私が、テックブログでも組織開発やマネジメントに関する話題を お届けしようと思います。どうぞよろしくお願いいたします。 エンジニアとこだわり ところで、エンジニアの皆さんは、「こだわり」という言葉にどんなイメージを持っていますか? 自分の技術やプロダクトに対する情熱、あるい…
8ヶ月前

勉強会:『GopherのためのCLIツール開発』最新事情 LTに参加してきました
DTダイナミクス テックブログ
こんにちはid:bikun_bikunです。 最近はGoからちょっと遠ざかっていたのですが、面白そうな勉強会を発見し参加してきました。 勉強会: https://findy.connpass.com/event/362163/findy.connpass.com LT会で1つの発表は5分程度でしたが、CLIに特化したお話でなかなか楽しい勉強会でした。 発表のアーカイブ、資料については上記イベントページからリンクを辿れるためそちらをご参照いただければと思います。 下記それぞれの発表で思ったことなどをまとめていきたいと思います。 それCLIフレームワークがなくてもできるよ 発表者:kuniwakさ…
9ヶ月前

GitHub Actionsで利用するアクションのバージョンを指定する際に意識すべきこと
DTダイナミクス テックブログ
はじめに DTダイナミクスで板金Webの開発をしている森口です。 今回は少し前に話題となっていた脆弱性についての話を取り上げ、そこから得られる教訓をまとめていきたいと思います。 皆さんはGitHub Actionsで外部のアクションを利用する際、バージョンをどのように設定していますか? 私は、なんの疑いもなく以下のように設定していました。 uses: actions/checkout@v3 しかし、この設定はセキュリティ上のリスクを孕んでいます。 今回取り上げる脆弱性の内容を理解してからは以下のように設定することを心がけるようになりました。 uses: actions/checkout@{コミ…
9ヶ月前

SemanticDB を利用して、ソースコードから依存関係を可視化する
DTダイナミクス テックブログ
こんにちは、KAJIです。 本記事では、SemanticDBを利用してソースコードよりシステムの依存関係を把握する方法を紹介します。 背景 | それはどこにでもよくある、開発の現場での困りごと プロダクト開発では、機能追加しリリースした後はフィードバックを元に改善したりなど、今あるものをエンハンスしていくことが求められます。 チームのアウトプットを最大化するためにも、機能の目的や設計内容、およびその意図などをチームの皆と共有できるよう、 プロダクトの開発と合わせてドキュメンテーションが重要になります。 言わずもがなですが、ドキュメントがないシステムは理解が困難であり、 何がどう動いているのか把…
9ヶ月前

幾何計算って何?(内積編)
DTダイナミクス テックブログ
はじめに こんにちは、meviyのPMIチームで開発をしております、横田です。 前回はPMIチームの紹介記事を書かせていただきましたが、その中で、幾何計算を扱うのが特徴のチームという話をしました。 ただ「幾何計算ってなんだ?」という方が多いのでは、と思いましたので、実際に使われている処理を例示しつつ、どんな内容か紹介していければと思います。 今回は、その中で「内積」の活用例についてご紹介しようと思います。 内積とは? 2つのベクトルAとBに対して、そのなす角度がθの時、内積は下記のように定義されます。 この内積の計算結果の値(特に符号)は、「2つのベクトルがどれだけ同じ方向を向いているか」を測…
10ヶ月前

Playアプリのconf設定をシュッと上書きする方法
DTダイナミクス テックブログ
はじめに こんにちは、meviyの切削Webチームの小平です。 最近、Play Frameworkアプリの設定を切り替える方法について考える機会がありました。今回はその際に使ったちょっとした工夫をご紹介します。 背景 ある機能をサーバーAから、新設したサーバーBに切り出す構成変更を行いました。 サーバーAは多数の処理を抱えており、スペックや台数の調整が難しくなっていたため、特定機能をサーバーBに移すことでシステム構成を整理しました。 ロジック自体に変更はありませんでしたが、システム構成の切り替えをする際は万が一に備えて「切り戻し」の手段を用意しておくと安心です。 「問題があればすぐにコードを修…
10ヶ月前

Rustで「組み合わせ」をつくるのに使ってみたいメソッド
DTダイナミクス テックブログ
はじめに 形状処理チーム柳野です。 突然ですが、「任意の組み合わせのパターンで○する」のような処理は、形状処理に限らず多くの分野で必要になると思います。 例えば板金の形状認識の分野では、「面と面の組み合わせ」を条件と照らし合わせて、そのモデルが板部分(Wall)、曲げ部分(Bend)なのかを判定したりしています。 そこで今回は、形状処理チームではリモデルの開発言語として用いているRustで「組み合わせ」の処理を記述するのに役立ちそうなメソッドを学んだので紹介したいと思います。 板金の形状認識については以下ご覧ください。 techblog.dt-dynamics.com 形状処理分野でのRust…
1年前

Chrome拡張機能をバイブコーディングで作ってみたお話
DTダイナミクス テックブログ
はじめに バイブコーディングとはなんぞや? 作ったもの紹介 概要 技術スタック デモ 開発ステップ まとめ 最後に はじめに DTダイナミクスで板金・溶接Webの開発をしている森口です。 昨今話題となっているバイブコーディング。 長期休暇が始まり、まとまった時間が取れましたので、バイブコーディングを体験してみました。 社内の用語を検索するchrome拡張機能を作りたいと思っていたので、今回はこれを題材にバイブコーディングを体験していこうと思います! バイブコーディングとはなんぞや? バイブコーディングを一言で言うと、「コーディングの大部分をAIに任せちゃおう!」というものです。 AIとチャット…
1年前

ECSタスクをSQSのコンシューマとしてイベント駆動で起動させよう②
DTダイナミクス テックブログ
はじめに DTダイナミクスでSREセクションのテックリードをしている霜鳥です。 前回の記事ではSQSのメッセージをEventBridge Pipesを経由してECSタスクで処理するという話題を取り扱いました。 しかしそれと同時にタスクの異常終了の検知やリトライができないというこのアーキテクチャの課題があることも述べました。 今回はその解決編としてEventBridge PipesからStep Functions(SFn)を経由してECSタスクを起動する方法について書いていきます。 その他、霜鳥が書いた過去の記事はこちら。 Seekable OCIでECSのタスク起動速度をお手軽に改善しよう C…
1年前

ScalaのOptionってなんやねん
DTダイナミクス テックブログ
ごあいさつ こんにちは。meviyのGrowthチームで開発している林です。 もともとJava/Kotlinを利用して開発しているところからScalaを利用した開発に飛び込んでまずハマったOption型について話してみようかと思います。 Option型とは そもそもOption型ってなんなんでしょうか? Wikipediaによると以下のようなものです。 プログラミング言語と型理論において、Option型(英語: Option type)またはMaybe型(英語: Maybe type)は存在しない可能性のある値をカプセル化して表す多相型である。 結果が返ってくるかわからない、使うときに中身空か…
1年前

Scalaの.copyについて
DTダイナミクス テックブログ
ごあいさつ こんにちは。meviyのWebシステムを開発している谷平です。 Scalaの.copyはケースクラスにおいて便利な機能の1つです。 本記事では、.copyの便利な点やJavaとの比較、ユニットテストでの活用例を紹介します。 .copyの便利な点 .copyは、オブジェクトを新しく作成しながら、特定のフィールドだけを変更できる機能です。 ケースクラスを用いると、手軽に値の一部を変更した新しいインスタンスを生成できます。 使用例 case class User(name: String, age: Int) val user1 = User("Alice", 25) val user2…
1年前

【meviy 開発チーム紹介】板金・溶接Webチーム
DTダイナミクス テックブログ
はじめに こんにちは、meviyの板金・溶接Webチームの小平です。今回は私たちのチームについての取り組みや特徴をご紹介します。 板金・溶接Webチームとは まず、私たちのチーム名にもある「板金・溶接」について簡単に説明します。 「板金」とは簡単にいうと一枚の金属の板を切ったり、曲げたり、穴あけをして作成される部品を指します。例えば、装置の外装やカバーなどの多くは板金部品で設計されています。 また、これらの板金部品同士を溶接で組み合わせ、一体化させたものが「板金溶接」になります。1枚の板からは製作できないような、複雑な形状の部品も製作できます。例えば、L字に曲げられた箇所に対して支えになる板を…
1年前

meviy 2D業務システム開発チームのご紹介
DTダイナミクス テックブログ
皆さんはじめまして。 2025年 1月 1日より株式会社DTダイナミクス にJOINしました。 id:bikun_bikun といいます。 入社エントリーもまだ出していませんが、本記事では現在私が担当しているmeviy 2Dの業務システム開発チームについてご紹介します。 担当システムについて meviy 2D は2D図面のアップロードを行い、簡単な依頼内容を入力することで見積を取ることのできるサービスです。 見積完了したものは部品の型番が発行されるため、misumiのサイトで注文することができます。 私が担当しているのはmeviy 2Dで見積りをいただいた後の工程である検図などの業務を行いやす…
1年前

【meviy 開発チーム紹介】切削Webチーム
DTダイナミクス テックブログ
はじめに meviyの切削Webチームに所属しています。高橋と申します。テックリードをしています。 PMIチームと兼任という形になっており、私のチームメンバーの横田さんがPMIチーム紹介記事を書いております。ぜひ見ていただければと思います。 techblog.dt-dynamics.com 切削Webチームとは 切削Webチームと書きましたが、Milling&Turningを略してM&Tチームと呼ばれることが多いです。 Millingは切削加工のことで工作物を固定、工具を回転させて削っていく加工方法です。サイコロのような6面を持つ部品で角物とも呼ばれています。 Turningは旋盤加工のことで…
1年前