メインカテゴリーを選択しなおす
\*\*デジタルツイン(Digital Twin)\*\*とは、 「**現実世界に存在するモノ(設備、人物、都市など)を、仮想空間上にリアルタイムで再現したデジタルの双子**」のことです。 --- ## 〓 簡単にいうと? > **現実の“もの”の状態を、仮想空間で“まるごとコピー”して動かす技術。** * センサーなどでリアル世界の情報を収集 * それをリアルタイムで仮想空間に反映 * 仮想空間で分析・予測・操作ができる ---…
「**スロークエリログ(Slow Query Log)**」とは、**データベースにおいて実行に時間がかかったSQLクエリ(遅いクエリ)を記録するログ**です。主に**MySQL**や**MariaDB**で使われる機能ですが、他のRDBMS(PostgreSQLなど)にも似た機能があります。 --- ## ◆ スロークエリログの目的 * **遅いクエリを特定し、パフォーマンスを改善するため** * インデックス不足、不要なJOIN、大量データのスキャンなどの原因を…
Pythonで共有メモリを使ったプロセス間のデータのやり取りを実装(標準モジュール「mmap」)
お疲れ様です。 Pythonでプロセス間でのデータのやり取りをするにあたり、標準モジュールのmmapを使って共有メモリで実現する方法があります。 2年前くらいに必要があり作ったコードですが、復習の意味も込めて掘り出して再度書いてみたのでこちらにも備忘録として残します。 プロセス間のデータのやり取りについて プログラム 送信元(process1.py) 受取先(process2.py) 実行結果 実用性 プロセス間のデータのやり取りについて python ○○.pyで実行したプロセス内でデータを扱うことになりますが、基本的に個々のプロセス内でしか使えません。構築するシステムによっては複数のプロセ…
お疲れ様です。 昨日mmapを使った共有メモリでのプロセス間データ共有について記事を書いていました。その補足というかちょっとした改良を考えたのでメモ的に残しておきます。 fallpoke-tech.hatenadiary.jp 内容としては、昨日の記事の中で書いた読取側でバイト列から目的のデータを取り出す部分で長さを直接スライスで指定して取得していた部分の改良になります。このままの書き方ではデータのサイズが変わった時に直接この部分のインデックス指定を書き換えないといけないと思います。 記事の引用 読み取ったバイト列をスライスで画像データ/幅/高さの該当部分を切り出します。(ここもうちょっとスマ…
Windowsのローカル環境にNext.jsの開発環境を構築するメモ【備忘録】
お疲れ様です。 業務でNext.jsを使うことになり環境構築から対応が必要になったので試しに個人PCに環境構築したメモです。(自分用) もともとNext.jsを使った開発は経験があるのですが、Dockerでdevcontainerを作成して開発をしていました。 今回作成する環境はDockerを使用せずにWindowsのローカルに構築します。 Node.jsのインストール yarnのインストール Next.jsのインストール Node.jsのインストール 公式サイトからインストーラをダウンロードし、インストールします。 nodejs.org こんな感じのインストーラが立ち上がります。基本的にデフ…
お疲れ様です。 Gemma3が公開されましたね。 Twitterで話題になっていて、使ってみたい欲が高くなったのでとりあえず試してみました。 使用したモデルは以下です。RTX4060ti(VRAM16GB)を使用してローカルで動かしました。 huggingface.co 事前準備 Gemma3を使うためにはいろいろと準備が必要だったのでこちらもメモ的にまとめておきます。 Hugging Faceのアカウント作成 こちらのサイト参考にアカウント作成までやりました。 Hugging Faceの使い方!アクセストークン作成からログインまで EdgeHUB Gemmaの利用登録 Hugging F…
GeminiAPI + LangChainでRAGを実装する
お疲れ様です。 最近の会社の勉強会でチャットボットのWebアプリを作成しています。(何故か教える側で…。) やっている中で返答を返してくれる生成AIでRAG(検索拡張生成)を実装してみたいと思い、実際に作成してみたのでそれをまとめておきます。 やったこととしては以下になります。 生成AIには基本お金がかからず、個人のPCの性能に左右されないようにGemini APIを使用しています。 Gemini APIの準備 APIキーの取得 SDKをインストール データベース作成 チャットボットに返答機能として実装 コード実装 チャットボットアプリ上での表示 Gemini APIの準備 Gemini AP…
自作APIとの通信をするPythonコードのメモ(requestsモジュール)
お疲れ様です。 今回はFastAPIで作成したAPIにPythonコードからリクエストをかけてデータ取得するコードをざっくりとまとめました。 コード解説 コードは下記に残してありますので詳細を確認したい場合はご確認を。実際にGitHubに挙げているコードを見てもらった方がわかりやすいとは思います。 機能は自体はrequestsモジュールを使って実装しました。 github.com FastAPIのコードに関しては以前作成のものをベースにしています。必要があればこちらもご確認ください。 fallpoke-tech.hatenadiary.jp 各変数の中身は以下。 sample_data = {…
Redmineをdockerに構築後、使用中に引っ掛かった事について覚書。構築時の記事 marusho1266.com Redmineでユーザを作成しようとしたところ、以下のエラーが発生した。 色々調べた結果、ユーザ名に日本語を利用していることが原因のようだった。 日本語を使わないことは正直出来ないので、何とか対応する方向に。結論としては、コンテナの設定を変えることで対応が出来そう。以下対応内容。 コンテナの停止 まずは念のためコンテナを停止する。 docker-compose.ymlの修正 ymlの各serviceに以下の追記を行う。Redmine # 以下の環境変数を追加 RAILS_EN…
お疲れ様です。 引き続きDockerの勉強を進めています。 その中でPythonのパッケージ管理ツールのuvを使って環境設定するdevcontainerを作成しましたのでそれをご紹介。 uvについて プログラミング言語Rustで作成された高速なPythonのパッケージ管理ツールです。 公式サイト docs.astral.sh 個人的に使用するメリットとしては以下が挙げられます。 ライブラリのインストールが高速 pyproject.tomlでプロジェクト管理 DockerでPythonのプロジェクトを作成するにあたりpipenvなどいろいろ試した結果、現状はこのuvが最も使いやすいという結論にな…
前回はDokcer Desktopの構築まで行ったので、その続き。 marusho1266.com Dokcer Desktop上にRedmineを構築する流れは以下のようになる。 docker-compose.ymlの作成・配備 コンテナの起動 ポート開放 docker-compose.ymlの作成・配備 まずはdocker-compose.ymlファイルを作成するdocker-compose.ymlとはアプリケーションを構成する各サービスを定義したファイルの事。詳しくは以下参照 docs.docker.jp 今回は構築にあたり、以下のような内容のファイルを作成した。 # docker-co…
お疲れ様です。 以前の記事でHuggingFace(transformersライブラリ)から利用できるDETRという物体検出モデルを実装しました。 今回はDETR以外の物体検出モデルを使ってみようと思います。 前回 ソースコード 使用するデータセット PCのスペック HuggingFaceの物体検出モデル DETR Deformable DETR DETA Conditional DETR 所感 前回 fallpoke-tech.hatenadiary.jp ソースコード ソースコードは前回作成のものに追加する形で作成しています。 今回紹介するモデルはconfig/train_config.t…
お疲れ様です。 今回は機械学習の界隈で話題のRAdamScheduleFreeという新しいoptimizerを試したいと思います。 なんでもAdamWと同等かそれ以上の性能だとか…! 詳しい内容は作成者さんのZennをご確認ください。今回私がやるのはとりあえずの実装のみ…。 zenn.dev 条件設定(実行環境、使用モデルなど) 実装 結果 比較(AdamWでの結果) 所感 条件設定(実行環境、使用モデルなど) 実行環境は以下になります。 CPU: 13th Gen Intel(R) Core(TM) i7-13700F 2.10 GHz メモリ: 32 GB GPU: NVIDIA GeFo…
GitHub CodeSpacesでChromaDBを使う際のエラー対処【備忘録】
お疲れ様です。 会社の勉強会の関係でGitHub CodeSpacesを使ってRAGの実行をしたかったのですが、ChromaDBでデータベース作成をする際にエラーが起こっていました。その対処方法を調べて無事使用できるようになったので対処方法のメモを残しておきます。 エラー内容 対処方法 エラー内容 内容としては、SQLiteのバージョンがChromaDBの要件を満たしていないというものです。 対処方法 apt installコマンド等でバージョンを上げようとしましたがうまくいかず…。 いろいろ調べている中で見つけた下記のIssuesを参考に対応しました。 github.com 対処方法として下…
Pythonで簡易的なGUI作成ができるライブラリ「Gooey」
お疲れ様です。 今回はちょっとしたライブラリ紹介的な記事です。 Pythonで使用できる「Gooey」というライブラリをですが、Pythonスクリプトを簡単にGUI化できます。結構前から使っていたのですが日本語の記事がほぼ無いのでせっかくなのでまとめようと思います。 (自分用の備忘録としても残しておきたいといういつもの動機です笑) Gooeyの公式GitHubリポジトリはこちらです。 github.com また、公式の実装例もありますので気になる方はこちら。 github.com Gooeyの概要 Gooeyを使うメリット・デメリット 👍ポイント 👎ポイント 実際に実装する場合 参考サイト 日…
Docker Desktopのセットアップを行ったので覚書。 上司より、Redmineが使いたいから構築をして欲しいとの依頼があり対応することに。 構築にあたり、以前よりDockerを試してみたかったので、Dockerを利用してRedmineを構築することにした。Dockerについては、今回はDocker Destopをセットアップしていく。手順については以下のようになる。 Windows機能の有効化 Docker Desktopのインストール Docker Desktopの起動 Windows機能の有効化 スタートメニューから「Windowsの機能の有効化または無効化」を開く。 「Virtu…
SQLServerでの下位バージョンへのデータベース復元について
以前、SQLServerのデータベース復元について書いたが、今回は上位バージョンのSQLServerから下位バージョンのSQLServerへの復元が必要になったので、そちらの手順について覚書。以前の記事はこちら。 marusho1266.com SQLServerの復元を依頼されたので対応をしていたのだが、以下のようなメッセージが出力された。今回対応したSQLServerの各バージョンが以下のようになっている。 復元元:SQLServer2019 復元先:SQLServer2017SQLServerのバックアップ復元機能は下位互換をサポートしていないようで、通常の手順での復元が出来ない。なので…
SQLServerのSQLでの頭0埋めで少し引っ掛かったので覚書。 SQLで取得してくる値に対して10桁の頭0埋めが必要だったので、以下のような記述を書いたところエラーメッセージが発生した。 FORMAT(test,'0000000000'),※この時、testの値は「11111」・エラー内容 見ての通り、varchar型はformat関数の引数には使えないとの事。 調べたところ、varchar型の頭0埋めはRIGHT関数を利用して行う。 RIGHT('0000000000' + test,10)書いている内容としてはまず、「'0000000000' + test」で以下のような値にする。「0…
バッチでの別ファイルの内容の読み込みについて覚書。 バッチを作成する際に、別ファイルに記述されている内容を利用してコマンドを実行することがよくある。 その際利用する記述は以下のようなものになる。 for /f "delims=" %%a in (input.txt) do ( echo %%a )各記載内容の意味は以下のようになる。 for /f テキストファイルを行単位で処理するための特殊なforループ。 /fオプションを利用することで、テキストファイルの内容を読み込むことができる。 "delims=" 行の区切り文字を指定する。 delims=は全ての文字を1つのトークンとして扱う。 %%…
バッチファイルで7zipを利用しての圧縮を行ったので覚書。バッチから7zipのexeファイルを呼んであげれば出来そう。 call "7zip実行ファイルパス" "命令" "圧縮後のファイルパス" "圧縮対象ファイル" ※7zipのマニュアル インストールしないでzipや7z圧縮ファイルを作る方法 7-Zip 以下、実際の記述を抜粋。 rem 7zipの実行ファイルパス set ZipPath="C:\Program Files\7-Zip\7z.exe" rem 7zipデフォルトインストール rem 圧縮後のファイル名とパス set archivePath=C:\Data\Foldern…
パケット通信について調べたので覚書。 パケット通信とは ガラケー時代に携帯電話を使用していた方は聞き馴染みがあるであろうパケット。 パケ代が膨れ上がってパケ死を起こした…なんて経験をした人もいるだろう。パケットはこの頃から意味合いは変わっていない。インターネットで情報を送るとき、データを「パケット」という小さな単位に分割して送る。これがパケット通信の事。ではなぜわざわざパケットに分割する必要があるのか。もしパケットを利用せずに、ネットワークで大きなデータを送ろうとすると、回線が混雑したり、エラーが起きた時、エラーで失ったデータを再度全部送る必要がある。データが小さければあまり気にしないが、これ…
パケットロスについて調べたので覚書。内容的には以下の記事の続きのような話。 marusho-1266.hatenablog.com パケットロスとは インターネットで情報を送受信する際、データはパケットと呼ばれる小さな単位に分割されて送られる。 しかし、宛先に届くはずのパケットが途中で消失してしまうことがある。これがパケットロスと呼ばれる。パケットロスが発生すると、以下のような影響が出てきてしまう。 Webページの読み込みが遅くなる 動画が途切れたり、画質が低下する オンラインゲームでラグが発生する ファイルのダウンロードが中断される パケットロスが発生する原因 パケットロスは、様々な要因で発…
git bashを利用している時に少し困った事があったので覚書。 最近、脱tortoisegitをするためにgit bashを利用し始めたのだが、その中でcommit前にgit statusで状態を確認しようとすると以下のようなメッセージが出力された。何がなんやら。実際は、更新したファイルの名称に日本語が入っており、その日本語部分が文字化けを起こしてしまっていた。 対処法としては、以下のgit bashで以下のコマンドを実行すれば解消する。 $ git config --local core.quotepath false実行後に再度status確認。 無事、日本語が表示された。 ※ファイル名…
バッチファイルのYesNo処理について覚書。バッチファイルで処理を実行する前に本当に実行していいかどうか確認したい場合、以下の記述を入れる事によって対話形式でYes、Noの確認を促すことが出来る。 echo off set /p anser="処理を実行しても宜しいですか? (Y/N)" if /i %anser%==y ( echo Y が入力された ) else if /i %anser%==n ( echo N が入力された ) else ( echo YとN以外が入力された ) pause/i:入力内容について、大文字小文字の区別をしないようにするパラメータ Y( or y)を入力した…
明けましておめでとうございます。 年始から流行り病に罹患して全く記事が更新できませんでした。 1月も半ばですが、今年も頑張ろうと思います。 今回はGit Bashのhome変更について覚書。Git Bashを利用するにあたり、いちいちhomeからディレクトリ変更をするのが少し手間だったので、homeの変更をしてみた。Git Bashは起動時のディレクトリをショートカットの引数で設定している。 なので、これを変更することでhomeの変更が出来る。 手順としては以下の通り。1.Git Bashの起動ショートカットの場所を開く 検索からgitと入力することでGit Bashのファイルの場所を開く事が…
自分用に作成したツールだがせっかくなので公開。買い物している時に複数の洗剤でどれが一番安いのかをぱっと比較出来ればなぁと思った事がきっかけ。検索したらツールなんかも出てくるのだろうけども、勉強がてら作ってみた。marusho-1266.github.ioといっても自分でコードはほとんど書いておらず、とりあえずclaudeに以下のような仕様で投げ込んだ。 洗剤の値段を比較するwebサイトを作成したい ・入力仕様 値段 内容量(g) ・出力仕様 1gあたりの値段 ・その他仕様 入力列は3列(初期値) 入力列は追加できるようにする 入出力は同行に表形式で表示 htmlで作成(css)は利用可能 最も…
gitのブランチの取得について覚書。 他の作業者が作成しているブランチを自分のローカルにも作成する場合、どのような作業を行えばよいか。 以前にもGitについては大まかな学習はしているが、今回は少し具体的な内容になる。 marusho1266.com まず流れとしては以下のようになる。gitのソース管理は下図のように、リモートリポジトリという箱が存在しており、その中に大本になるソースが存在している。これをmasterブランチと呼ぶ。 ※mainブランチと呼ぶ場合も多い。 各個人はこのmasterブランチをcloneというコマンドを利用して自分の端末にコピーして作業を行うようになる。 master…
NPUについて調べたので覚書。 NPUとは、Neural Processing Unitのことを指す。AIやディープラーニングのワークロードを効率的に処理するために設計された特殊なハードウェアで、ざっくり言うとCPU(Central Processing Unit)やGPU(Graphics Processing Unit)の仲間のようなもの。ここからはNPUについて、CPU・GPUと比較しながら見ていきたいと思う。 専門性 CPU 汎用的なプロセッサで、多様なタスクを実行できるように設計されている。 一度に多くの異なる指令を実行することができるが、AIやディープラーニングのような大量の並列演…
【Adobe Stock】メールアドレス変更手順:2つ作業が必要です
【Adobe Stock】のメールアドレス変更手順。少しややこしかったのが、Adobe Stockのメールアドレスを変更したい場合、アドビアカウントのメールアドレス変更とAdobe Stockのコントリビューター向け通知用のメールアドレス変更の2つ作業が必要だったことです(2024年11月時点)。
【WordPress】TCDテーマオプションを利用したロゴ画像のRetinaディスプレイ対応手順 [IT備忘録]
TCDのWordPressテーマ「Muum」オプションを利用し姉妹ブログ「日本酒に愛された女」のヘッダーロゴのRetina(レティナ)ディスプレイ対応を行いましたので、モバイル画像用の例で手順を書きます。ファイルサイズの縮小も兼ねて「JPG」から「背景透過PNG」にロゴ画像形式も変更。同テーマをご利用の方、TCDテーマの利用を検討中の方はご参考までどうぞ。
【CyberLink】すんなりアカウントを削除できなかった原因と2つの解決方法、アカウント削除手順 [IT備忘録]
IT備忘録「CyberLinkのアカウント削除」。私は出だしでつまずき、すんなりアカウント削除手続きを行うことができませんでした。その原因と簡単すぎる2つの解決方法、CyberLinkのアカウント削除手順を書きますので、同じような方がいらっしゃいましたらご参考になさってください。アカウントの削除手続き自体は簡単です(笑)
【Windows11】スクロールバーを常に太い状態で表示する方法
IT備忘録「Windows11」編。スクロールバーを常に太い状態で表示する方法です。Windows11になってから、縦スクロールバーの細さにプチストレス(^^; そのストレスが解消されましたのでどうぞ。
Windows11のシステム音を鳴らさない方法 [IT備忘録]
今回はIT備忘録「Windows11」編「Windows11のシステム音を鳴らさない方法」について書きます。
【WordPress】タグ一覧表示方法とタグ一覧表示のレイアウト調整方法(初心者向け) [IT備忘録]
IT備忘録「WordPressのタグ一覧表示方法とタグ一覧表示のレイアウト調整方法(初心者向け)」。PHPファイルやテーマファイルは直接編集せず、WordPressのウィジェット「タグクラウド」とWordPressテーマ「Muum」のカスタムCSSを用いて安全にカスタマイズする方法です。レンタルサーバー ConoHa WING を使用している場合の補足あり。
【WordPress】MP4ファイルをサーバーへアップロードできない時の対策 [IT備忘録]
IT備忘録「WordPress」編。WordPressでMP4ファイルをサーバーへアップロードできない時の対策です。原因はmp4ファイルのMIMEタイプの不一致であることがわかりましたので、プラグイン「WP Add Mime Types」をインストールしファイルのMIMEタイプを追加。無事にファイルをアップロードできるようになりました。
【WordPress】クラシックエディターでSNSアイコンやFeedlyバナー等を表示するHTMLの書き方 [IT備忘録]
IT備忘録「WordPress」編。クラシックエディターでプラグインやテーマの設定を利用せず、SNSアイコンやFeedlyバナー等を表示するHTMLの書き方です。「1. Twitter、2. Instagram、3. お問い合わせフォーム、4. Feedlyでフォロー、5. にほんブログ村でフォロー」のアイコンやバナーを盛り込み、プロフィールを作成しました。