プログラミング
Redmineダウンローダ開発メモ(10) 正規ビューワーの開発-タブ追加の流れ - ドナドナされるプログラマのメモの続き。 タブビューワー機能はできたので、最後の大物として検索機能を入れる。検索機能の実装は以下4ステップに分ける。 全JSONの結合 検索 表示 …
Redmineダウンローダ開発メモ(8) 簡易ビューワーの開発-ひとくぎり - ドナドナされるプログラマのメモの続き。 個別Issueしか開けなかった簡易ビューワーをもとに、複数のIssueを開いたりRedmineプロジェクト全体に対する検索ができる正規ビューワーを作る。…
Redmineダウンローダ開発メモ(7) 簡易ビューワーの開発-途中経過 - ドナドナされるプログラマのメモの続き。 マークダウンのサポートなどが一通りできたのでいったんリリース。DownloaderもViewerに必要なデータをダウンロードするために1.4.0へ更新。 Redmi…
Redmineダウンローダ開発メモ(6) 簡易ビューワーの開発方針 - ドナドナされるプログラマのメモの続き。 とりあえず_issue.jsonを解釈しテンプレートhtmlに基づき表示するところまではできた。 github.com RedmineViewer1.0.0外観 でも、まだマークアップをサ…
copilotやgeminiに何度も騙されながらWebView2にドラッグアンドドロップされたファイルをアプリ側で取得することに成功したのでメモ。 2026年3月現在、WebView2はドラッグ&ドロップされたファイルをアプリ側に知らせる直接のAPIを持っていない。そのため、間…
Redmineダウンローダ開発メモ(5) ビューワーの開発方針 - ドナドナされるプログラマのメモの続き。 簡易ビューワーの開発方針というか要件を以下のように定める。 要件 JSONファイルをドラッグ&ドロップするとJSONファイルの中身を表示する。 表示の仕方はR…
Redmineダウンローダ開発メモ(4) ひとまずリリース - ドナドナされるプログラマのメモの続き(続いちゃった)。 ダウンローダを作ったのはいいけど、保存データが生JSON改行抜きなので視認性がすこぶる悪い。なので、ダウンロードしたデータを活用するにはビ…
Redmineダウンローダ開発メモ(3) ソフト開発-3 Redmineサーバーにアクセスする同期コードとか、JSONをCStdioFileからUTF-8で保存するコードとか - ドナドナされるプログラマのメモ の続き。 欲しい機能を一通り実装し終わったのでリリースした。 ソフトへの…
Redmineダウンローダ開発メモ(3) ソフト開発-2 - ドナドナされるプログラマのメモ の続き。cppRESTを使ってRedmineサーバーからIssue一覧を取得するコードを書いた。cppRESTはメインの処理が別スレッドで実行される非同期ライブラリであり同時に複数のタスク…
あまりにも久しぶりなので、MFCアプリのワーカースレッド作成と、ワーカースレッドから親スレッドGUIへのアクセスについて復習。ポイントは以下。 ワーカースレッドの作成はAfxBeginThread()を使う( マルチスレッド: MFC でのワーカー スレッドの作成 | Micr…
Redmineダウンローダ開発メモ(3) ソフト開発 - ドナドナされるプログラマのメモ の続き。 まずは簡単なテストコードを作り、RedmineサーバーからIssue一覧を取得できるようにした。 次に、ちゃちゃっとダイアログを作った。数百Issueを取得するため、中断ボ…
Redmineダウンローダ開発メモ(2) コマンドプロンプトからDocker内のRedmineサーバーにアクセスする - ドナドナされるプログラマのメモ の続き。今回はソフト開発。 今回のRedmineからデータをダウンロードするプロジェクトの動機は、他社に管理されているRed…
Redmineダウンローダ開発メモ(1) テスト用Redmineサーバーの構築 - ドナドナされるプログラマのメモ の続き。 Issue一覧の取得 今回はコマンドや応答を確認するため、コマンドプロンプトからDocker内のRedmineサーバーにアクセスする。使うのはCURLコマンド…
Redmineダウンローダを開発する羽目になってしまったので、メモ。 以下の手順で進める。 テスト用Redmineサーバーの構築 コマンド確認のためコマンドプロンプトからサーバーにアクセス ソフト開発 1. テスト用Redmineサーバーの構築 テスト用Redmineサーバー…
新しい環境でC++RESTを使うことになったので、C++RESTおよびそのために必要なVCPkgの導入方法をメモ。 GithubよりVCPkgのソースコードをダウンロード。 github.com 中身をsource/repos/vcpkgに展開する。 コマンドプロンプトまたはPowerShellを起動し上記フ…
マイクロソフトのテクニカルノートを読んでいたら、以下のような記述を発見。 「各マクロの実装では、_alloca() 関数を使用して、ヒープではなくスタックからメモリを割り当てます。 スタックからメモリを割り当てると、メモリをヒープに割り当てるよりもは…
MozJpegGUIの1.8.0以前にあった、特定の文字を含むファイルを変換できないバグを修正し1.8.1としてリリース。 github.com
SourceTreeでVisualStudioのリソースファイル(.rc)をテキストファイルとして認識・diff表示させるのに苦労したので、手順をメモ。 最初に試したのはgitattributesに*.rc diff=astextplainを追加すること。でもだめだった。そこで、以下を参照しながらやって…
MozJpegGUIのVer. 1.4をリリースしました。 github.com バージョン1.3 -> 1.4の変更点:内蔵ライブラリを更新。 zlib 1.2.11 -> 1.3 libpng 1637 -> 1640 mozjpeg 3.3.1 -> 4.1.1 jpeg以外の形式から一部のメタデータをコピーするように変更。なお、jpegから…
メタデータコピーによる変換時間増加量がどの程度のものなのか、ベンチマークをとってみた。 計測対象624枚のpngファイル (計1GB); SSDに保存 結果メタデータのコピーなし:59.462秒メタデータのコピーあり:60.213秒すなわち、0.751秒の増加。png1枚あたり1…
そうだ、忘れないうちにToDoを書いておかないと。 TODO: 新規追加した箇所について、エラーメッセージの多言語化 元画像がJPEGだった場合はGDI+によるメタデータコピーをしない メタデータコピーのチェックボックスを消す(常時コピーする)
前回書いた通り、PNG/JPEG間にはメタデータ互換性がまったく無いことがわかった。となると、変換が必須だ。そして、自前で書くのは間違いなく難しい。そこで、車輪の再発明はせずに既存のものを使うことにする。候補は2つ。 GDI+のImageクラスおよびその派生…
githubのissueに、メタデータのコピーに失敗するPNGのサンプルがアップロードされた。 github.com そこで、さっそく解析ソフトを作って、どんなメタデータがコピーできていないのかを調べてみた。そして絶望した。 PNGにおいて、画像を含む各種データはチャ…
MozJpegGUIの更新に着手。目標は、 使っている各種ライブラリのバージョンアップ https://github.com/nibasya/MozjpegGUI/issues/1 zlib 1.2.11 -> 1.3 libpng 1637 -> 1640 mozjpeg 3.3.1 -> 4.1.1 メタデータの維持 Copy metadata when converting images …
MozJPEGがいつのまにか3.3.1から4.1.1に進化しており、GitHubにて対応要望が出ていた。そこで、開発を再開し4.1.1を適用しようとおもう。できたらいいな。
CriticalSectionの取り扱いを楽にするため、MFCのCCriticalSectionとCSimpleLockを使おうとして罠にハマったという話。 CCriticalSectionはCSemaphore等と異なりLock待ちのタイムアウトができない。そのため、ロックできなかったら諦める!という実装が不可…
高品質なJPEG画像を生成してくれるMozJpegライブラリをマルチスレッド化して高速化したWindows用ツール、MozJpegGUIのVersion 1.3をリリース。 修正点は以下の通り。 元ファイルと同じ場所にファイルを保存する機能を追加。英語版においてGUIの文字が一部隠…
RedmineのデータをREST API経由でダウンロードするプログラムを作るためにcpprestを導入しようとした際に苦労した点のメモ。 前記ソフトをMFCランタイムをダウンロードできない/しづらい環境でも使えるようにするため、MFCをスタティックライブラリとして組…
車載ネットワークとしてよく使われているCAN信号をUSB経由でPCに取り込むツールの一つであるLAWICL社のCANUSBについて、CANUSB dllを使用した場合のメモというか愚痴をいくつか。 マニュアル誤記 マニュアル Version 0.1.8には以下の誤記がある。 int setRec…
高品質なJPEG画像を生成してくれるMozJpegライブラリをマルチスレッド化して高速化したWindows用ツール、MozJpegGUIのVersion 1.2をリリース。 修正点は以下の通り。 バグ修正:ファイル名に空白文字が含まれる場合、正しくないファイル名で保存してしまう …