サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
tech-blog.optim.co.jp
Platform Engineeringチームの加藤です。PEチームが昨年後半から提供を始めたプラットフォームに1つ目のプロダクトの乗り入れが完了し、PE活動の一つの節目を迎えたため、オプティムにおけるPlatform Engineering活動を紹介します。 PE活動は元SREチームのメンバーが中心となって始めた活動です。そのため SREの振り返り PEチーム発足の経緯 PEの活動 の順で話を進めていきます。 SREの振り返り SREチームは、IoTプラットフォームOPTiM Cloud IoT OSのインフラ開発・運用のメンバーを中心に結成し、2020~2021年度の2年間、オプティムプロダクトの速い・安い・安心を横串で実現することをミッションに活動しました。 SREチームは特定のプロダクトを持たないチームで、 プロダクトを横断的にレビューし 一律に改善する方法を検討し 特定のプロダク
概要 Optimal BizのWindows AgentはながらくVisual Studio 2005とVisual Studio 2015を併用してビルドする必要がありました。Visual Studio 2015化対応は2012年のVisual Studio 2012化対応からスタートしていましたが、対応範囲の大きさからモジュールごとにVisual Studio 2015化対応を行ってきました。そして2024年リリースのBiz 9.19.0にてVisual Studio 2015化対応は完了を迎えました。 しかし、埋め込まれたバグの修正にはCOMの理解が不可欠であったため、2020年代に突入した今になって私達はこれまで正面戦争を避けてきたCOMを0から学び直す必要がありました。そしてATLの不思議な挙動やSTAにおける再入との戦いを乗り越え、無事にリリースされました。 はじめに Opti
はじめに みなさん、こんにちは。 プロモーション・デザインユニット(以下プロモ・デザインU)の竹内・牧山・安田です。 今回はプロモ・デザインUの目標の一つである「プロモーション業務でのNOインシデント対策」をデザインサプリ(社内勉強会)で報告してきました。 プロモ・デザインUの活動について詳しく知りたい方は👉過去の記事をご覧ください! プロモ・デザインUのOKR(目標)の記事はこちら tech-blog.optim.co.jp 社内デザイン勉強会「デザインサプリ💊」の記事はこちら tech-blog.optim.co.jp はじめに プロモーション業務でのNOインシデント対策 ヒヤリハット収集 インシデント発生後の対応フロー インシデント対応訓練の実施 訓練当日の流れ 訓練の振り返り まとめ おわり プロモーション業務でのNOインシデント対策 前述した通り、プロモ・デザインUではWeb
こんにちは。元AI・IoTサービス開発部 から変わり、DXビジネス開発部となりました青木です。 Laravel Octaneなるものをドキュメントで見つけてからいつか手を出そうと思い時間が経ってしましました。 今回はOctaneの導入と、パフォーマンス改善結果などにも触れていきたいと思います。 Laravel Octaneとは laravel.com Laravel Octane supercharges your application's performance by serving your application using high-powered application servers, including Open Swoole, Swoole, and RoadRunner. Open Swoole か RoadRunnerの仕組みの上にLaravelアプリケーションの起動
はじめまして、Optimal Biz開発チームの片岡です。 私は業務では主にRubyを使ってWebアプリケーションの開発をしています。 5/11~13に開催されたRubyKaigi 2023 に参加してきました。 私は今回、Ractorに注目して参加していたため、Koichi Sasadaさんの講演 "Ractor" reconsidered を紹介します。 RactorとThread 講演の紹介の前に、RactorとThreadについて確認します。 Threadとは Rubyでは、並行・並列処理を行う仕組みとしてRactor/Thread/Fiber/Processをサポートしています。 例としてThreadを確認します。 Threadは、ネイティブスレッド(カーネルスレッド)を用いて、同時実行を行います。 Ruby 3.2 リファレンスマニュアル Thread ネイティブスレッドを用い
はじめに ビジネス統括本部のイチノです。最近は、ChatGPTにシェルスクリプトの書き方を教えてもらっています。 今回は、OpenAPIのschemasで JSONデータを検証する方法のメモです。 検証方法 openapi-schema-validator というライブラリを利用して JSON データがOpenAPIの schemas に合致するかを検証します。 pypi.org サンプルは以下のとおりです。説明用に OpenAPI のドキュメントや JSON データを直接書いています。利用する際は、データの直書きではなくファイル読み込みに修正すると使い勝手が良くなります。 #!/usr/bin/env python3 import json import yaml from openapi_schema_validator import validate from jsonschema.
この記事は、Advent Calendar 2022 / DevOps・インフラ・SRE「GitLab Advent Calendar 2022」の22日目の記事です。 はじめに こんにちは、AI・IoT サービス開発部のがんがんこと岩丸です。 今年も技術記事を読むのが忙しい季節がやってきましたね。昨年はVue.js + TypeScript + Vuetifyに関する記事を執筆しました。今年はGitLabに関した記事を執筆いたしました。 今回はGitLab Pagesに関する記事です。 前回も GitLab に関する記事を執筆しており、前回の記事ではGitLab Runnerで AWS Lambda 用 ZIP 生成を行いました。もしお時間ある方は合わせてご覧ください。 https://tech-blog.optim.co.jp/entry/2022/09/12/100000 今回はsc
はじめに 久々の記事投稿となります,R&D ユニットの久保です. OPTiM が開発している OPTIM Geo Scan では iPhone や iPad 上で巨大な点群ファイルを扱うため,メモリ不足によってクラッシュを引き起こすことがないように空間計算量には非常に気を遣って開発しています.OPTiM Geo Scan は LiDAR スキャナを搭載した iPhone や iPad Pro に対応していますが,特に iPad Pro ではメモリの大容量化が進んでいます.どうせならこの大容量なメモリを使いこなしたい!ということで iPadOS 15 における変化,そして 2022/10/25 にリリースされた iPadOS 16.1 における変化をまとめてみました. この記事では Xcode 14.0.1 と iPadOS 16.1 を使用しています. はじめに iPadOS における A
皆様こんにちは。医療ユニットだった人、現在は産休から育休中になりました山口です。 小さめの赤ちゃんだった我が子は、体型も態度も見事でかくなりました。 さて、過去の記事 にて Android 10 に対応するため着信通知の実装方法について書きました。 あれから約 1 年半、8 月中頃に Android 13 が正式リリースがなされましたが *1、その中でも個人的に気になったのが通知関連の仕様変更が含まれていたことでした。 今回は最新の Android 13 までの通知に関連する新規追加内容や仕様変更を理解しながら、その実装方法を解説していきます。 サンプルアプリ自体は以前の GitHub にて公開していたプロジェクトに追加コミットしていますので、こちらも合わせてご確認いただけると幸いです。 本題 というわけで、早速 build.gradle の targetSDK, compileSDK を
R&Dチーム所属の伊藤です。 最近物体検出系の画像アノテーションをする機会があったため色々なアノテーションツールを触っていたのですが、Label Studioが中々便利だったので紹介したいと思います。 今回は物体検出向けのアノテーションを実際に行なった時に詰まった部分を中心に解説していこうかと思います。 はじめに 準備 データの読み込み アノテーション 最後に はじめに Label StudioはHeartex社より提供されるオープンソースのラベリング・アノテーションツールです。 最近のアノテーションツールにありがちなWebアプリ形式のツールであり、基本的にはサーバを立ててブラウザからアクセスすることになると思います(一応REST APIを使用して直接アノテーション結果等を取得することも可能です)。 画像はもちろん、音声・テキスト・時系列データ等の多彩なデータのアノテーションに対応しており
はじめに ドローンのソフトウェア開発しています。イチノです。 Atheris を触ったのでメモ書きです。 Atheris は、プログラムの実行経路に応じたテスト用データを生成する Fuzzing ツールです。 github.com Fuzzing とは、プログラムに問題の有りそうなデータやランダムなデータを渡して、プログラムのバグを探す脆弱性検査です。Fuzzing で WebRTC の脆弱性を発見したなんていう事例も有ります。 WebRTC Security, Fuzzing, and more! - YouTube Fuzzing に関する詳しい説明は IPA の資料をご覧ください。 脆弱性対策:ファジング:IPA 独立行政法人 情報処理推進機構 Atheris のインストールと使い方を以下に記載しています。 インストール Atheris は、 Linux, macOS に対応していま
はじめに みなさんこんにちは、はじめましてプロモーション・デザインユニットでマネージャーをしている加藤です。 今回は、なかなか業務で接点のないデザイナーとエンジニアの意見交換やデザインへの興味・関心といったの機会作り目的に実施しているデザイン&開発情報共有会での一幕。 デザイン思考をワークショップ形式で一通り実践してみる!に取り組んだ際の内容を簡単にご紹介します。 きっかけ 良いプロダクトを作る上で正しいプロセスとは?について議論、深堀していく中で「誰に」「何を」届けるかを探るフェーズが重要だと多くのメンバーが考えていました。提供 → 開発 → 設計 → 企画 → 顧客要望と遡り、根幹となる企画フェーズで顧客ニーズを如何に要件化すべきかと考えた際、デザイン思考というプロセスがマッチしていると気付きました。 また、話題にもなっており興味関心がある、面白そう、というニーズからもワークショップ形
AI・IoTサービス開発部 開発マネージャーの高村です。 前回「1on1でコーチングをする」という記事を執筆しましたが、その続編として「1on1やコーチングで使える傾聴」について書こうと思います。 傾聴とは 相手の話を聞くだけではなく「声の大きさ」「トーン」「身体で表現されるしぐさ」に注意を払い、相手が話していることを体の中で感じ、伝えたいことを理解し、その理解が相手の体の中の感覚と一致するかどうかを確かめることで、まるで相手の内面に一緒に留まる伴走者になるような聴く技法と理解しています。 傾聴をすることで、相手は「この人は自分のことを理解してくれる」と感じてくれるようになります。自分のことを理解してもらえることを感じた後、次第に自分の内面に意識を向けるようになり、深い話ができるようになっていきます。 話せる雰囲気をつくる まずは関係づくりを大切にし、安心して相手が自分のことを話せるように
こんにちは、AI・IoTサービス開発部でマネージャーをしている和田です。 今回は、部内で取り組んでいる、プロダクトごとの四半期OKRの試みを紹介します。 背景 OPTiMのプロダクト開発では主に、ビジネス統括本部がいわゆるビジネスサイドを、技術統括本部・サービス開発統括本部が開発・運用を担っています。 私が所属する技術統括本部 AI・IoTサービス開発部では、クラウドAI画像解析サービス「OPTiM AI Camera」、現場データ管理ソリューション「Smart Field」、AIを活用した契約書管理サービス「OPTiM Contract」、クラウド機器管理サービス「OPTiM IoT」、現時点では未発表の新規サービスなど、複数のサービスを開発しています。 そのようなチームを、私は下記のようなチームでありたいという思いで運営しています。 プロダクトを中心に、セールス/企画/開発/運用が同じ
R&Dチーム所属の伊藤です。気がついたら半年ぶりくらいの投稿になってしまいました。 今回はrinna株式会社より公開された言語画像モデルである日本語対応CLIPを使ってみた話になります。 元々はCLIPとFaissを組み合わせて画像検索のためのツールを作れないかを試していたのですが、どうせだったら可視化までしようと考えてStreamlitを使用したアプリ化も行いました。 今回作成したコードはGithubのリポジトリにありますので、興味がある方は覗いてみてください。 CLIPとは? Faissとは? CLIPとFaissで画像検索 事前準備 画像ベクトルのインデックス作成 インデックスを読み込んで画像検索 Streamlitで画像検索アプリを作成する 最後に CLIPとは? CLIPはOpenAIより提案された、テキストと画像を使用して画像分類モデルです。 CLIPはContrastive
はじめに こんにちは、AI・IoTサービス開発部の岩丸です。 早いもので2年目に突入し後輩が出来ました。年齢も無事にインクリメントされましたので自分らしく2年目も頑張っていきたいと思います。 前回はGCPのCloud Run、Cloud BuildでCIOps環境を構築してみた話を執筆しました。もしお時間ある方は合わせてご覧ください。 tech-blog.optim.co.jp 今回はGitLabのinclide機能を用いてCI/CD設定ファイルのテンプレート化を行ったのでご紹介致します。GitLabは優秀な機能が多いのでどんどん活用していきたいです。 目次 はじめに 目次 やりたいこと include機能とは やったこと テンプレートの構成 /Templates/Gradle.gitlab-ci.yml やってみて おわりに やりたいこと マイクロサービス構成で構成されたプロダクトは新機
R&D チームの徳田(@dakuton)です。 今年のGWあたりにCUDAのGPG更新アナウンス(NVIDIA Technical Blog: Updating the CUDA Linux GPG Repository Key)がありました。記載に従い利用環境の反映作業をしてみたところ、特にDockerイメージ向けの反映については記事に触れられていない範囲でのハマリポイントがいくつかあることがわかったため、対策についてまとめておきます。 参考(GitHub issue) NVIDIA/nvidia-docker(Public GPG key error #1631) 影響を受けているプロジェクト例 TensorFlow (Tensorflow docker image has outdated keys #56085) TorchServe (Improvements to docker
こんにちは。AI・IoTサービス開発部の青木です。 弊社サービスの OPTiM IoT の開発チームに所属しており、 連携デバイス/ソリューション の拡充を進めています。 基本的にはLinuxが搭載されたデバイスをメインに開発を行っていますが、組み込みや他のOSの対応などはIoTをやっていく上で必須になってくるので そこで利用していた技術の一つであるWindows,Linuxの常駐システム化について執筆しようかと思います。 目次 目次 システム常駐化の方法 基となるアプリケーションを開発する 常駐システム化するライブラリを利用し、実装を行う main.go の変更 試しに実行 OS毎の挙動を見てみる Macの場合 Windowsの場合 Linux(Ubuntu)の場合 Alpine Linux(Docker)の場合 Appendix. OS毎の個別設定方法について まとめ 謝辞 システム常
こんにちは、プラットフォーム事業部の河内です。最近は新オフィスを堪能しています。 さて、今年の 3 月に NVIDIA から Instant NeRF という手法が発表されました。 blogs.nvidia.co.jp NeRF がどんなものなのか、Instant NeRF が今までの手法と比べ何がすごいのかについては上記の記事でおおまかに掴めるかと思いますが、中身が気になるところです。 NVIDIA の記事中で Tiny CUDA Neural Networks ライブラリを使用とあるのでリポジトリを見てみると、どうやら TensorFlow や PyTorch を利用したものではなく、Instant NeRF の根幹となる手法のためにチューニングされたフレームワークのようです。 github.com リポジトリの README では 2 つの手法とその論文が引用されており、ひとつは "
こんにちは、3月までSREチームのマネージャーをしていた和田です。今回は、私がSREチームを担当した2年間で考えてきたことをご紹介します。 背景 取り組みテーマ Production Ready活動 コスト最適化活動 ふりかえり さいごに 背景 SREチームは2019年度まで、AI・IoTプラットフォームサービス「OPTiM Cloud IoT OS」の運用を担っているチームでした。当初から「SRE」と銘打っていたものの、実際上は案件対応やリリース・インシデント対応などの運用作業に追われる日々で、なかなか改善活動にパワーを割けない状態が続いていました。そこで、改善活動に一定のリソースを割り当て続けるために、2020年度からの挑戦として、インフラ運用チーム(案件対応やプロダクト運用を担う)と、SREチーム(中期的な改善活動に専任で取り組む)とにチームを分けて改善活動に取り組んできました。 イ
こんにちは、R&Dチームの齋藤(@aznhe21)です。 新オフィスは広くて快適です。 さて、本日4/8(金)にRust 1.60がリリースされました。 この記事ではRust 1.60での変更点を詳しく紹介します。 4/8は釈迦の誕生を祝う花まつりの日 ピックアップ コンパイル時間を計測できるようになった 機能(features)で名前空間付き・弱依存がサポートされた コード網羅率を計測できるようになった [u8]を文字列としてエスケープできるようになった 安定化されたAPIのドキュメント Arc::new_cyclic パニック サンプル Rc::new_cyclic パニック サンプル slice::EscapeAscii <[u8]>::escape_ascii サンプル u8::escape_ascii サンプル Vec::spare_capacity_mut サンプル Maybe
こんにちは、R&Dチームの河野(@ps3kono)です。 前回は深層距離学習(Deep Metric Learning)の基礎知識とアルゴリズムの進化について紹介しましたが、この記事ではPyTorch Metric Learningという深層距離学習ライブラリを紹介したいと思います。 PyTorch Metric Learningについて Deep Metric Learningの実践:Triplet lossとArcFaceを比較 おわりに 参考資料 PyTorch Metric Learningについて PyTorch Metric Learningはオープンソースライブラリであり(MIT License)、訓練・評価パイプラインに必要なコンポーネント(下図)がモジュール別で実装されたため、柔軟に組み合わせを変えられることで手軽に色々試すことができます。 Miner: サンプル選択(M
はじめに それぞれの概説 コールバックによる非同期処理 PromiseKit Combine Swift Concurrency 比較 PromiseKitとCombineの関係 PromiseKitとSwift Concurrencyの関係 CombineとSwift Concurrencyの関係 まとめ 参考にさせていただいた記事など はじめに R&DチームでMOTやiOSアプリ開発を行なっている葉山です(前回のMOT記事はこちら)。 Swiftで非同期処理を行う場合、以前であればコールバックにより処理するか、PromiseKit・HydraといったPromise(Future)パターンを記述できるライブラリによって対応していました。また、iOS13以降であればCombineも選択肢の一つとなります。 しかし、Swift 5.5で Swift Concurrencyが追加され、asyn
こんにちは、AI・IoTサービス開発部の濱村です。 前回はKubernetesについて投稿させていただきました。もし興味がありましたらこちらも見ていただけますと幸いです。 tech-blog.optim.co.jp 目次 目次 はじめに n8nとは 利用のしかた 実際にやってみたこと 実装したコード ビルド・実行結果 実装したノードにデータを入力する ノードを実行して結果を取得する ノードのUI実装 description: INodeTypeDescription ノードのロジック実装 async execute() this.getNodeParameter("deviceID", 0) this.getCredentials("ciosOAuth2") this.helpers.requestOAuth2.call(this, "ciosOAuth2", options) わかったこ
こんにちは、R&Dチームの齋藤(@aznhe21)です。 初めてのオフィス引っ越し体験が目前でちょっとワクワクしています。 さて、本日2/25(金)にRust 1.59がリリースされました。 この記事ではRust 1.59での変更点を詳しく紹介します。 2/25は映画「未知との遭遇」が日本で公開された日 ピックアップ 定数ジェネリクスでデフォルト値を使えるようになった 分割代入ができるようになった インラインアセンブリが使えるようになった イテレータのzipがフリー関数になった Cargo.tomlでstripを指定できるようになった 安定化されたAPIのドキュメント std::thread::available_parallelism 制限 エラー サンプル Result::copied サンプル Result::cloned サンプル ops::ControlFlow::is_brea
R&D チームの徳田(@dakuton)です。記事冒頭に書くことが思いつかなかったので先日のGPT記事にあるサンプルを使ってみました。 試してみたところ、Tech Blog記事っぽい出力にはなりました。 入力(Prompt): R&D チームの徳田([@dakuton](https://twitter.com/dakuton))です。 出力: 皆さんおひさしぶりです。遅くなりましたが、11/18(金)に行われましたRuby Machine Learningの勉強会の模様を記事にしました。 サンプルは下記参照 tech-blog.optim.co.jp 背景 本題ですが、目的は本記事タイトルのとおりです。 参考: 個人情報保護委員会が個人情報を漏えい パブリックコメント参加者の氏名や所属先を誤掲載 - ITmedia NEWS 技術要素としては下記と同じような内容です。本記事ではこれをspa
こんにちは、R&Dの伊藤です。「〇〇 is all you need」系の論文が多すぎて何が本当に必要なのか悩みながら機械学習タスクに取り組んだりしています。 今回は先日公開されたrinna社の日本語GPTモデルを使って遊んでみた記事になります。 はじめに 日本語GPTモデルを動かしてみる Few-shotで推論を試す 感情分析 計算 おわりに はじめに GPTは簡単に言えば「超高性能な言語モデル」であり、主に文章生成に利用されることが多いです。 過去にGPT-2がフェイクニュース等を簡単に生成できることによる危険性から小規模モデルしか公開されなかったり、GPT-3が複数の自然言語処理タスクでSOTAに近い記録を出すなど、自然言語処理の分野で期待されているモデルの1つとなります。 今回公開された日本語GPTモデルはなんとパラメータ数が13億にもなるとのことで、GPT-2の最大モデル(15億
こんにちは。AI・IoTサービス開発部の青木です。 最近はWebフレームワークやチームビルディング系をやっていますが、 元々はIoTエンジニアとしてのキャリアを積むべくIoTに関わるプログラミングをメインでやっていました。 今回はOPTiM Cloud IoT OSや、OPTiM IoTのデバイス認証として用いられる JSON Web Token (JWT) Profile for OAuth 2.0 を利用して実際に認証を行ってみたいと思います。 grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer とは datatracker.ietf.org JWTを秘密鍵で署名し認可フローとしてOAuth2.0のAccessTokenを要求します。 秘密鍵を利用して認可ができることから、OPTiM Cloud IoT OSではユーザIDやパス
こんにちは、R&Dチームの齋藤(@aznhe21)です。 年末年始の進捗はゼロです。 さて、本日1/14(金)にRust 1.58がリリースされました。 この記事ではRust 1.58での変更点を詳しく紹介します。 1/14は探査機ホイヘンス・プローブが土星の衛星タイタンに着陸した日 ピックアップ フォーマット文字列で変数を直接参照できるようになった ビルドと同時にstripできるようになった Windowsでファイル操作時に長いパスを正規化するようになった Windowsでコマンドを実行する際は作業ディレクトリを検索しなくなった 安定化されたAPIのドキュメント Metadata::is_symlink サンプル Path::is_symlink サンプル {integer}::saturating_div サンプル Option::unwrap_unchecked 安全性 サンプル R
次のページ
このページを最初にブックマークしてみませんか?
『OPTiM TECH BLOG』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く