ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

_alloca, _malloca関数について

マイクロソフトのテクニカルノートを読んでいたら、以下のような記述を発見。 「各マクロの実装では、_alloca() 関数を使用して、ヒープではなくスタックからメモリを割り当てます。 スタックからメモリを割り当てると、メモリをヒープに割り当てるよりもは…

Chuwi Hi10 Goの分解

Chuwi Hi10 Goの電池が膨らんじゃったので取り外すことに。そのついでに分解写真をちょっとだけ。スペックとかは以下から。 donadona.hatenablog.jp まずはカバーを開けた。 Chuwi Hi10 Go 内部 ディスプレイにつながるケーブル2本をはずしたところ。 Chuwi …

MozJpegGUIの更新: Ver. 1.8.1リリース

MozJpegGUIの1.8.0以前にあった、特定の文字を含むファイルを変換できないバグを修正し1.8.1としてリリース。 github.com

電子メモ帳(オーム電機 JIM-H8K)を分解してみた

電子メモ帳の電池端子接触が悪くなったので、オーム電機 JIM-H8Kを分解し修理した。 オーム電機 JIM-H8K 電池メモ帳 まずは、電子メモ帳についておさらい。電子メモ帳は圧力が加わると色が変わる液晶パネルでできており、状態をリセットするときには所定の電…

日立の電動ひげそり RM-T347を分解した

日立の電動ひげそりRM-T347を処分することにしたので、分解してみた。 日立の電動ひげそり RM-T347 外観 ちなみに刃は一般的な左右にプルプルするやつ。 シェーバー部の外観 型番等はこんなかんじ。 型番部 電源アダプタ。 RM-T347用電源アダプタ KH-48 さて…

USBビデオキャプチャ バッファロー PC-MDVD/U2の分解

USB接続で使えるBuffaloのビデオキャプチャ機、PCast PC-MDVD/U2を分解したのでメモ。 USB接続でポン付け使用できるのが便利なんだけど、残念ながらドライバがWindowsXpまでしか対応していないのよね。使えないんじゃゴミなので、分解廃棄することに。 Buffa…

SourceTreeでVisualStudioのリソースファイル(.rc)をテキストとして認識・diff表示させる手順

SourceTreeでVisualStudioのリソースファイル(.rc)をテキストファイルとして認識・diff表示させるのに苦労したので、手順をメモ。 最初に試したのはgitattributesに*.rc diff=astextplainを追加すること。でもだめだった。そこで、以下を参照しながらやって…

日立製作所 水戸事業所 2024さつきまつり

今年も6月第1土曜日になったので、日立製作所水戸工場の2024さつきまつりに行ってきた。コロナ期間中は非開催だったため、数年ぶりの参加。 ただ、今年から撮影許可証の文面が変わったぽく、SNS等への写真投稿が禁止となってしまった。そのため、景色の写真…

日立製作所 水戸事業所 さつきまつり2024開催ぽ

久しぶりに、日立製作所 水戸工場のさつきまつりが開催されるらしい。 出展情報が出てた。 www.shimada.cc このさつきまつりは例年だと午前中だけで終わるので要注意。 行き方などの過去の情報はこちら。 donadona.hatenablog.jp

スポーク折れた

自転車の後輪スポークが折れた。まだ買って2年しか経ってないのに。しかもこれ、折れるの実は3回目。1回目は買って11ヶ月目。2回目と3回目(今回)は23ヶ月目。ちょっと折れすぎなので破断面を観察してみた。ちなみに折れたのはスポークのハブ側にある曲がっ…

MozJpegGUIの更新: Ver. 1.4リリース

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から…

MozJpegGUIの更新: ベンチマーキング

メタデータコピーによる変換時間増加量がどの程度のものなのか、ベンチマークをとってみた。 計測対象624枚のpngファイル (計1GB); SSDに保存 結果メタデータのコピーなし:59.462秒メタデータのコピーあり:60.213秒すなわち、0.751秒の増加。png1枚あたり1…

MozJpegGUIの更新: 残ってるTODO

そうだ、忘れないうちにToDoを書いておかないと。 TODO: 新規追加した箇所について、エラーメッセージの多言語化 元画像がJPEGだった場合はGDI+によるメタデータコピーをしない メタデータコピーのチェックボックスを消す(常時コピーする)

MozJpegGUIの更新: とりあえずGDI+でお茶を濁す

前回書いた通り、PNG/JPEG間にはメタデータ互換性がまったく無いことがわかった。となると、変換が必須だ。そして、自前で書くのは間違いなく難しい。そこで、車輪の再発明はせずに既存のものを使うことにする。候補は2つ。 GDI+のImageクラスおよびその派生…

MozJpegGUIの更新: そもそもPNGとJPGでメタデータの互換性がない!?

githubのissueに、メタデータのコピーに失敗するPNGのサンプルがアップロードされた。 github.com そこで、さっそく解析ソフトを作って、どんなメタデータがコピーできていないのかを調べてみた。そして絶望した。 PNGにおいて、画像を含む各種データはチャ…

MozJpegGUIの更新: メタデータコピーの方針

MozJpegGUI 1.3にメタデータコピー機能を追加するための方針について。 まず、MozJpegライブラリにメタデータ指定機能があるかどうかを調査した。・・・うーん、元jpegにあるメタデータをコピーできるのに、メタデータの外部指定機能がなさそう? 次に、画像…

MozJpegGUIの更新: メタデータのコピー状況

MozJpegGUI 1.3は、メタデータのコピーについてMozJpeg任せにしている。そこで、GDI+を利用する簡単なメタデータ表示ソフトを作りメタデータのコピー状況を確認してみた。 まずはサンプルデータの収集。プロが撮った写真や、プロが公開している画像だとexif…

MozJpegGUIの更新

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 …

自転車用ウインカーの制作(17)

ここまでにかかった材料と費用のまとめ。 ■回路 5LED リアライト | 【公式】DAISO(ダイソー)ネットストア (100円)×5 AVRマイコン ATTINY202−SSNR: マイコン関連 秋月電子通商-電子部品・ネット通販 (70円)×5 SOP8(1.27mm)…

自転車用ウインカーの制作(16)

今日は、各部品を自転車に固定するパーツを作る。 まずはウインカー用スイッチから。 ブレーキを固定している部分に、ブレーキと共締めで固定したい。でも、ネジの向きとスイッチの向きがねじれの関係になるので、パーツを作る必要がある。 何かいいのが無い…

自転車用ウインカーの制作(15)

自転車用ウインカー続き。 前回バグを修正したあとの基板裏面写真。追加抵抗が目立つ。 基板裏面(バグ修正後) さて。これを容器に密封しなきゃならないんだけど。電池交換のことを考えるとフタつき密封容器が良さそうだ。 いいのがあった。 パッキン一体型…

自転車用ウインカーの制作(14)

回路にバグを見つけてしまった。以下、スイッチを左右とも切った状態でのLED状態。左右のスイッチを両方切るとMCUの電源が切れる構成なのに、なぜかうっすらと点灯している。 MCU電源を切ったのにLEDが光ってる 回路構成を眺めなおしてみる。 現在の回路構成…

自転車用ウインカーの制作(13)

AVRマイコンATtiny202でソフトがうまく起動しない件について、根本原因が分かった。 今回の回路は単三電池2本で、すなわち3V付近で動作する。今回のAVRマイコンは1.8Vから動作できるので問題ないはずだった。 ATtiny202マニュアル 31.3 General Operating Ra…

自転車用ウインカーの制作(12)

制御回路のはんだ付けが無事完了したので、さっそくプログラムを作る。 構造はシンプル。スイッチの状態に応じてLEDを点灯する。また、電源が入っている間はピッピッと音を出す。 構造はシンプルだし、エラー処理とかもいらないのでコードもシンプル。 void …

自転車用ウインカーの制作(11)

制御基板設計の続き。今日はレイアウトと配線の検討。 レイアウトはこんな感じにしてみた。45mm×45mm基板なら余裕かと思ったけど、きっつきつだった。 制御基板レイアウト 配線はこんなかんじ。スズメッキ線で配線するので、線間は2.54mm、角度はすべて直角…

自転車用ウインカーの制作(10)

今日は制御基板の設計。 こいつはスイッチからの信号をもとに表示器への電源供給を入り切りしたり、スイッチの状態に応じて手元LEDを光らせたり、音を鳴らしたりする役割となっている。これを実現するため、以下を実現するように設計した。 スイッチは表示器…

自転車用ウインカーの制作(9)

表示基板の量産も終えたので、それぞれケースに組み込む。 表示基板とLED基板の間には、念のためプラ板を挟んで絶縁した。また、中に入れるコネクタはリプロ用のもののみとし、電源は外に直接線出しした。 表示器として組み上げた 前2個、後ろ2個を組み上げ…

自転車用ウインカーの制作(8)

AVRマイコン ATtiny202を使って自転車用ウインカーを作るメモも、早くも8回目。ここに来て、わかりにくいトラブルが発生した。プログラミング直後はちゃんと動作するのに、安定化電源の出力を入り切りして電源を投入すると起動しない。調べても同様の症状の…

自転車用ウインカーの制作(7)

今日はLED基板を3枚作ったところで力尽きた。真ん中にあるICを覆ってる樹脂がとても硬くて、パターンカットが大変なのよね。 この基板の動作確認もできたので、今日はここまで。

自転車用ウインカーの制作(6)

さて、プログラミング環境も整ったのでまずはLチカから。Arduino IDEにて下記コードを作成してビルド、書き込み。 void setup() { pinMode(PIN_PA6, OUTPUT); } void loop() { digitalWrite(PIN_PA6, LOW); delay(1000); digitalWrite(PIN_PA6, HIGH); delay…