ALGO ARTISのフィード
フィード

業務の整理とソフトウェア開発に、改めてUMLを使おう
ALGO ARTISのフィード
ALGO ARTIS の鉄道運輸チームで、ソフトウェアエンジニア・プロダクトマネージャーをやっている中川です。最近業務で UML を使うことが多いのですが、案外周囲に使っている人がいないので発信したいと思います。 ALGO ARTIS のソフトウェアエンジニアのお仕事と UMLALGO ARTIS は計画業務の最適化を目指している会社です。主に社会インフラを支える企業に対して、計画最適化ソリューションを提供しています。社会インフラを支える企業は日々計画を立て、それを実行しています。話を聞いてみると、計画を立てるのは非常に大変なお仕事であることがほとんどです。ALGO AR...
3ヶ月前

ブラウザ上でユーザが記述した JS/TS 式を隔離評価したい: quickjs-emscripten + esbuild-wasm
ALGO ARTISのフィード
こんにちは。ALGO ARTIS で働いている 稲田 です。本記事では、ブラウザ上でユーザが書いた JavaScript / TypeScript コードを隔離評価するための構成を考察します。 やりたいことブラウザ上でユーザが書いた式を評価したい、というシチュエーションを想定します。// ユーザによる記述売上 = 数量 * 単価利益 = 売上 - コスト式の内容は要件次第ではありますが、最も一般的な例としてエクセル算式を思い浮かべてもらうといいかもしれません。このユーザが記述した式を可能な限りセキュアに評価する方法を探るのが本記事の目的です。 検討した手段 手...
3ヶ月前

業務用SPAでのReactの状態管理についての考察: LensStoreの開発を添えて
ALGO ARTISのフィード
こんにちは。ALGO ARTIS で働いている 稲田 です。業務用の SPA(single-page application) を開発する中で、React の状態管理についていくつかの設計上の壁にぶつかりました。本記事ではその問題を整理し、その問題に対する解決策の 1 つとして開発した LensStore という仕組みを紹介します。なお、この記事は情報の整理を目的とし、 LensStore はあくまで問題の解決策の一例という位置付けとします。 これがベストな解決策だと主張するものではありません。 前提: 業務 SPA と一元管理本記事では、業務利用するための SPA を開発し...
4ヶ月前

フロントエンドでCPU負荷の高い計算を描画を止めずに実行する
ALGO ARTISのフィード
こんにちは。ALGO ARTIS で働いている 稲田 です。フロントエンドで CPU 負荷の高い計算を行う場合、ナイーブに実装すると UI がフリーズしてしまいます。 本記事ではその回避策を考えます。なお、サンプルコードは React を用いて提示しますが、解決策自体はフレームワークに依存しないと思います。 問題: 重い計算が描画をブロックするブラウザの JavaScript はシングルスレッドで動作します。重い同期処理を実行すると、その間の描画・ユーザー操作は処理されません。const App = () => { const [result, setResu...
6ヶ月前

TypeScriptの型でN次元配列を表現する
ALGO ARTISのフィード
こんにちは。ALGO ARTIS で働いている 稲田 です。この記事では、 TypeScript の型レベルプログラミングを活用して、次元数 D と要素型 T をパラメータに取る N 次元配列型 ArrayXD<T, D> の実装を紹介します。 目的以下のように使用できる型 ArrayXD<T, D> を実装します。const arr0: ArrayXD<number, 0> = 0;const arr1: ArrayXD<number, 1> = [1, 2];const arr2: ArrayXD<number, ...
6ヶ月前

ALGO ARTIS エンジニア合宿 2025 のグループ開発
ALGO ARTISのフィード
ALGO ARTIS ではこれまで毎年、アルゴリズムエンジニア・ソフトウェアエンジニア(以下、エンジニア)向けの合宿を開催しています。昨年の記事はこちらにあります。2025 年は 12/4(金) ~ 12/5(土)に開催しました。全体の紹介は note に掲載し、TechBlog では 2 日目に行ったグループ開発の内容と成果をご紹介します。 グループ開発の方法ALGO ARTIS は 5 年目を迎え、既に社内には再利用可能なソフトウェア資産があります。また、リモートワークが主体でありチーム外のメンバーとの関わりが少なくなっています。そこで「触ったことがない技術に触れる(...
7ヶ月前

AHC059勉強会レポート
ALGO ARTISのフィード
はじめにこんにちは、ALGO ARTIS でアルゴリズムエンジニアとして働いている小菅 (nohtaray) です。ALGO ARTIS では日々の学習の一環として、AtCoder で開催された各コンテストについての勉強会を開催しています。この記事では、先日開催されたAtCoder Heuristic Contest 059 勉強会の様子を公開します![1] 勉強会の進め方・ルール以下のような価値観で開催しています。参加して下位だった人(解けなかった人)が主役、質問をしまくる上位だった人(解けた人)は考え方含めて親切に答える解いてなくても参加してオッケー楽しくや...
7ヶ月前

アーキテクチャカンファレンス 2025 参加レポート
ALGO ARTISのフィード
はじめにあけましておめでとうございます。Platform チームソフトウェアエンジニア兼技術広報の @shuhei_fujiwara です。ALGO ARTIS は昨年 11 月開催のアーキテクチャカンファレンス 2025 に Gold スポンサーとして初参加しました。ソフトウェアエンジニアとして登壇しつつ、技術広報として出展準備もするというなかなか愉快な仕事をしてきたので、振り返っていこうと思います。https://architecture-con.findy-tools.io/2025 出展準備技術広報チームを立ち上げてから初めての大きなカンファレンスだったので、同...
7ヶ月前

あなたはJavaScriptの...argsに渡せる最大の引数の個数を知っているか
ALGO ARTISのフィード
生成 AI を使ってフロントエンド開発をしている中で、こんなコードを取り込んでしまいました。結果、特定の操作をするとエラーが出るというバグを引き起こしてしまいました。どういうケースでエラーになるか、わかりますか?const values = selectedData; // number[] 型const minValue = Math.min(...values);タイトルでお察しかと思いますが、selectedData の要素数が多い場合にエラーとなります。RangeError: Maximum call stack size exceeded調べてみると、JavaSc...
8ヶ月前

AHC058勉強会レポート&作問体験記
ALGO ARTISのフィード
はじめにこんにちは、ALGOARTIS でアルゴリズムエンジニアとして働いている itigo です。ALGOARTIS では日々の学習の一環として、AtCoder で開催された各コンテストについての勉強会を開催しています。この記事では、先日開催されたAtCoder Heuristic Contest 058勉強会の様子を公開します!また、今回の問題は私 itigo が writer をしたものになっています。この問題が作問されるまでの体験や裏話、感想もここで記載していきます! 問題概要https://atcoder.jp/contests/ahc058/tasks/ah...
8ヶ月前

VSCodeのターミナルの補完を消す
ALGO ARTISのフィード
背景 & 設定方法VSCode をアップデートしたら、ターミナルの補完が突然 ON になってびっくりしました。使い慣れれば便利そうですが、自分を含めターミナルの補完は自身で設定していてエディタの機能による補完は不要な方も多いかと思います。日本語でちょっと調べても出てこなかったので置いておきます。こちらの設定をどうぞ。"terminal.integrated.suggest.enabled": false 参考https://code.visualstudio.com/docs/terminal/shell-integration#_intellisense...
9ヶ月前

AHC054_参加記
ALGO ARTISのフィード
1. はじめにこんにちは、競技プログラミングのコンテストに参加している yunixです。AHC054(ALGO ARTISプログラミングコンテスト2025夏)お疲れ様でした!ALGO ARTIS 初の長期コンテストはいかがだったでしょうか?個人的にはビジュアライザを見ながら改善を繰り返す過程が面白い思い通りに木を配置することをプログラムで書くことが意外と難しく、工夫が必要などの点で、コンテストをとても楽しむことができました。運良く最終結果も 7 位と上位に入ることができたので、今回のコンテストでの考察の過程・解法の方針・やりたかったけどできなかったことについて記事...
1年前

AHC052勉強会レポート
ALGO ARTISのフィード
はじめにこんにちは、ALGO ARTIS でアルゴリズムエンジニアとして働いているscat_nekoです。ALGO ARTIS では日々の学習の一環として、AtCoder で開催された各コンテストについての勉強会を開催しています。この記事では、先日開催されたAtCoder Heuristic Contest 052 勉強会の様子を公開します![1] 勉強会の進め方・ルール以下のような価値観で開催しています。参加して下位だった人(解けなかった人)が主役、質問をしまくる上位だった人(解けた人)は考え方含めて親切に答える解いてなくても参加してオッケー楽しくやりましょう...
1年前

AHC050勉強会レポート
ALGO ARTISのフィード
はじめにこんにちは、ALGO ARTIS でアルゴリズムエンジニアとして働いている岩本(@G4NP0N)です。ALGO ARTIS では日々の学習の一環として、AtCoder で開催された各コンテストについての勉強会を開催しています。この記事では、先日開催されたAtCoder Heuristic Contest 050 勉強会の様子を公開します![1] 勉強会の進め方・ルール以下のような価値観で開催しています。参加して下位だった人(解けなかった人)が主役、質問をしまくる上位だった人(解けた人)は考え方含めて親切に答える解いてなくても参加してオッケー楽しくやりまし...
1年前

gemma-3n-E4BをPCで動かしてみる
ALGO ARTISのフィード
ALGO ARTIS でソフトウェアエンジニア(主にフロントエンド)として働いている船岡 (@mochiya98)です。2025 年 5 月 20 日、 Google I/O 2025 で Gemma 3n がプレビュー版として発表されました。MatFormer (Matryoshka の Mat。必要な時に必要な分だけ読み込む) を用いて実装されており、従来に比べて少ないメモリ消費で推論できることが特徴のモデルです。しかしながら、公開されているモデルは特殊なフォーマットなため、スマホからの使用のみに限定され、PC からローカルで推論して試すことは難しい状況にありました。でも、試...
1年前

カルマンフィルタを使ってマスターズ選手権2024決勝のA問題を解いてみた
ALGO ARTISのフィード
はじめにこんにちは、競技プログラミングのコンテストに参加している yunixです。この記事では、去年のマスターズ選手権の A 問題をカルマンフィルタを使って解いてみようと思います。なぜいまさら去年のマスターズ決勝をテーマにした記事を書いているかというと、A 問題で当日トップだったチームがカルマンフィルタを使っているという話は Twitter で聞いていたカルマンフィルタがどういう問題を解くために使えるかいまいちわかっていなかったカルマンフィルタを使った解法を解説している記事はなかった(ような気がする)という事情があります。要するに復習を一年以上サボっていたのですね。...
1年前

ALGO ARTIS Tech Talk #1 を開催しました
ALGO ARTISのフィード
はじめに技術広報を兼任しているソフトウェアエンジニアの @shuhei_fujiwara です。先月、ALGO ARTIS Tech Talk の記念すべき第 1 回を開催しました。今回は、その内容の紹介や運営の裏側をお伝えします。https://algo-artis.connpass.com/event/350992/https://www.youtube.com/live/6UapSoab4vc?feature=shared&t=360 登壇内容の紹介 開発者フレンドリーで顧客も満足?Platformの秘密1 件目は Platform チームのソフトウ...
1年前