ブログ
ホームページ制作、SEO対策、Google広告運用、Windows開発、既存資産活用、不具合調査について、実務で役立つ考え方を発信します。
ホームページ制作、SEO対策、Google広告運用、既存サイト改善、Windows開発、技術相談までまとめて相談できます。状況整理の段階でも問題ありません。
ホームページ制作・SEO・Google広告を相談する記事を検索
タイトル、要約、タグ、本文から記事を検索できます。
-
GS1 などのバーコード規格で、何が決まっていて、実運用で何に気をつけるべきか - GTIN・AI・GS1-128・GS1 DataMatrix の整理
バーコードの相談でよく起きるのは、JAN を付けたい、GS1-128 にしたい、QR にしたい が同じレイヤーの話として混ざることです。
-
COM コンポーネントや OCX / ActiveX 開発でハマりがちなこと - Visual Studio の 32bit / 64bit、登録、管理者権限の罠を整理
COM コンポーネントや OCX / ActiveX の案件は、コードそのものよりも 実行環境・登録・ホスト・権限 の境界でハマりやすいです。
-
どこで例外を `catch` してログを出し、エラーハンドリングするべきなのか - 呼び出し階層の境界と責務を実務向けに整理
目次
-
ClickOnce とは何か - 仕組み、更新、向いている場面・向いていない場面を実務目線で整理
Windows の .NET デスクトップアプリを配る話になると、MSI や MSIX の影で、地味に何度も名前が出てくるのが ClickOnce です。
-
Windows の効率モードとは何か - Windows 11 の緑の葉アイコンの意味と、オフにする方法
Windows のタスク マネージャーで、アプリ名の横に緑の葉アイコンが出て、状態列に 効率モード と表示されることがあります。
-
Windows サンドボックスで Windows アプリ開発の検証を速くする方法 - 管理者権限問題、クリーン環境、権限不足・リソース不足の再現を実務向けに整理
Windows アプリ開発で、検証が遅くなる理由はだいたい似ています。
-
Word マニュアル作成の応用編 - 画像・図・スクリーンショット配置のダメなパターンとベストプラクティス
前回の記事では、見出し、段落、目次、番号、相互参照といった Word の基本 を整理しました。 今回はその続きとして、マニュアルの品質を大きく左右する 画像・図・スクリーンショットの扱い を、ダメなパターンとベストプラクティスを並べながら整理します。
-
自動アップデート機能のセキュリティ基本 - ダメなパターンとベストプラクティス
目次
-
マニュアル作成で先に揃えるべき Word の基本 - ダメなパターンとベストプラクティスを並べて整理
操作マニュアル、作業手順書、保守手順、社内向け運用書。 こうした文書で後から効いてくるのは、文章力そのものよりも、Word を「見た目だけで整える道具」として使っていないかどうかです。
-
ハッシュ値の文字列表現からハッシュ方式を判定する方法 - 長さ・文字種・接頭辞で候補を絞る実務手順
ログや DB に残っている 5f4dcc3b5aa765d61d8327deb882cf99 や $2b$12$... のような文字列を見て、「これは何のハッシュか」を判定したい場面はかなりあります。既存システムの移行、認証方式の調査、ログ解析、他社システム連携では、ここで止まることが珍しくありません。
-
チャットボット作成におけるベストプラクティス - 何でも答える箱で終わらせず、業務で役立つ導線にする
チャットボット作成におけるベストプラクティス - 何でも答える箱で終わらせず、業務で役立つ導線にする
-
なぜメールセキュリティにおいて PPAP はダメなのか。正しいやり方は?
「パスワード付き ZIP を送り、そのあと別メールでパスワードを送る運用は本当に安全なのか」。 この疑問は今でもよく出ます。見た目には暗号化しているので安全そうに見えますが、実務ではそこが落とし穴です。
-
自作 logger を避けられないとき、本当に必要な最小要件は何か: 実務向け要件と結合テスト観点
既製の logging framework を使えるなら、そのほうが安全です。それでも、アプリケーション側の制約や運用上の事情で自作 logger を避けられない場面はあります。そこで最初に悩みやすいのが、どこまで実装すれば「雑すぎず、重すぎない」設計になるのか、という点です。
-
中小企業向けの一斉メール配信を、特定サービスに縛られず設計する方法
「専用のメルマガ配信サービスを新しく増やさずに、既存のドメインやサイトを使って数十〜数百件の案内メールを送りたい」。 この相談に対する現実的な答えは、Bcc 一発 ではなく、宛先ごとの個別送信、購読管理、配信停止、SPF / DKIM / DMARC を揃えた小さな配信基盤にすることです。
-
企業のホームページはなぜ作るべきなのか - 会社案内で終わらせず、利益につなげる考え方
この記事は、「企業のホームページは本当に必要なのか」「作っても利益につながるのか」という疑問を整理するものです。 先に結論を言うと、ホームページは単なる会社案内ではなく、見つけてもらう、何の会社かを伝える、相談につなげるための営業基盤です。
-
どこまでをユニットテストで検証し、どこからを結合テストで検証するべきなのか - 境界の引き方と実務の判断表
テスト設計の話で、毎回地味に難しいのが、どこまでをユニットテストに押し込み、どこからを結合テストへ上げるかです。
-
記事とサービスページをどうつなぐか - 内部リンク設計の基本
記事を増やしたのに問い合わせにつながらない。 その原因は、記事の内容よりも、記事からサービスページへ戻る道が弱いことにある場合が多いです。
-
サービスページをどう作るか - 技術系・B2B向けの整理手順
サービスページは、会社案内の延長ではありません。 誰向けの何の相談を受けるページなのかが、最初の数十秒で分かるように作る必要があります。
-
問い合わせが来ないサイトで、先に直すべき3つの場所
問い合わせが来ないサイトを見直すとき、広告や記事を増やす前に、先に直すべき場所があります。 多くの場合は、トップページ、サービスページ、問い合わせページの 3 つです。
-
技術系企業のホームページで「何をしている会社か」が伝わらない理由
この記事は、技術系・B2B 企業のホームページでよく起きる「見た目は整っているのに、何をしている会社かが伝わらない」という悩みを整理するものです。 先に結論を言うと、問題はデザイン単体ではなく、トップ、サービスページ、会社情報ページの役割が混ざっていることにあります。
-
Windows での DLL の名前解決の仕組み - 検索順序、Known DLLs、API set、SxS を実務向けに整理
Windows でネイティブ DLL を扱う話になると、かなりの頻度で次のような混乱が起きます。
-
UUID は衝突しないのか - 間違った運用と実装で重複を招くパターン
UUID を主キーにしていたのに、ある日 duplicate key が出る。 この瞬間、かなりの確率で「UUID って結局ぶつかるのでは」という話になります。
-
SEO対策とGoogle広告のベストプラクティス - 一般論でつかむ検索集客の設計図
この記事は特定のサイトや業種に寄せず、一般論として整理しています。 図は概念図です。Mermaid 対応の Markdown 環境では図として表示されます。
-
Windows の管理者特権が必要になるのはいつなのか - UAC、保護領域、設計上の見分け方
Windows まわりの相談で、かなりよく混ざる話があります。
-
VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン
VBA の相談では、次のような話がよく混ざります。
-
Windows の文字コードを整理する - なぜ文字化けが起きるのか、特に Linux と組み合わせたときに何がずれるのか
Windows の文字化けは、日本語が難しいから起きるわけではありません。ほとんどは、同じバイト列を別の文字コードとして読んだか、誤って読んだ結果を別の文字コードで保存したことが原因です。
-
外部機器の状態の確認と表示のベストプラクティス - 『接続中』だけで済ませない設計
産業用カメラ、バーコードリーダ、PLC、計測器、プリンタ、シリアル機器、USB 機器。 外部機器とつながる Windows アプリでは、実際の不具合そのもの より先に、画面の状態表示が現実とずれること で事故ることがかなり多いです。
-
Windows アプリで子プロセスを安全に扱うためのチェックリスト - Job Object、終了伝播、標準入出力、watchdog のベストプラクティス
日英シート付きの Excel チェックリストをダウンロード
-
Windows アプリの配布方式をどう選ぶか - MSI / MSIX / ClickOnce / xcopy / 独自 updater の判断表
日英シート付きの Excel 判断ブックをダウンロード
-
Windows において、どこまでシングルバイナリにできるのか - 1 EXE にできる範囲、Windows 依存が残る場所、配布前の判断表
この記事は、次の投稿から始まりました。
-
Windows 環境で Codex の文字化け事故を減らすベストプラクティス - 環境整備より『こう指示する』を先に決める
Windows で Codex に日本語を含むファイルを扱わせるとき、最初に効くのはエディタや shell の設定を全部そろえることよりも、Codex に「どう読んで、どう書いて、どこで止まるか」を明示することです。
-
シリアル通信アプリの落とし穴 - 1 byte 単位、タイムアウト、フロー制御、再接続、USB 変換、UI フリーズを先に整理
装置連携、計測器、PLC、バーコードリーダ、USB-シリアル変換。 シリアル通信は古い技術に見えて、Windows アプリの現場ではまだかなり普通に使われています。
-
Windows アプリがプログラムミスによる例外で落ちても確実にログを残すには - in-process に賭けない設計と WER / 最終ログ / 監視プロセスのベストプラクティス
Windows アプリの不具合調査で一番つらいのは、落ちたことだけは分かるのに、なぜ落ちたかが残っていない 状態です。
-
Windows アプリにおける UX 設計の考え方 - ToC / ToB / 監視 / 現場端末 / 常駐ツールで何を優先するかの判断表
Windows アプリの UX を考えるとき、最初に「モダンに見えるか」「余白がきれいか」から入ると、少し順番を間違えやすいです。
-
Windows Forms、WPF、WinUI のどれにするか - 新規開発、既存資産、配布、UI 表現の判断表
Windows のデスクトップアプリを C# / .NET で作るとき、 地味に毎回ややこしいのが WinForms、WPF、WinUI のどれを選ぶか です。
-
共有メモリを使うときの落とし穴とベストプラクティス - 同期、可視性、寿命、ABI、セキュリティを先に整理
画像フレーム、検査結果、時系列ログ、板情報、巨大バッファ。 同一マシン内で大きなデータを低レイテンシでやり取りしたいとき、共有メモリはかなり魅力的です。
-
あなたがいきなり COBOL のソースを読む羽目になった時に最低限知っておくべきこと - DIVISION / PIC / COMP-3 / COPY / PERFORM を先に整理
引き継ぎ、障害対応、ベンダー製パッケージの保守。そういう場面で、ある日いきなり COBOL のソースが飛んでくることがあります。
-
様々なプログラミング言語の速さを測定して比較するにはどうすれば良いのか - C# / C++ / Java / Go を同条件で比べる実践ガイド
「C++ は速いらしい」 「Go は実運用で軽い」 「Java は長時間回すとかなり速い」 「C# も .NET の JIT があるから意外と強い」
-
Reg-Free COM とは何か - 登録不要で COM を使う仕組みと、向いている場面・向いていない場面
COM / ActiveX / OCX の案件では、配布と更新のたびに同じ泥が出てきます。
-
Excel 帳票出力をどう作るか - COM 自動化 / Open XML / テンプレート方式の判断表
Excel 帳票出力の相談では、「Excel に出したい」という言葉の中に、実は別の要件が何個も混ざっていることがかなり多いです。
-
Media Foundation で MP4 動画の各フレームに画像と文字を焼き込む方法 - Source Reader / 描画 / 色変換 / Sink Writer の整理と .cpp にそのまま貼れる 1 ファイル完結版
ロゴ透かし、検査結果、装置番号、作業者名、タイムスタンプ。 こうした情報を MP4 動画の全フレームへ焼き込んだ新しい MP4 を作りたい、という要件は監視、検査、証跡、分析 UI ではかなり普通にあります。
-
Windows アプリのクラッシュダンプ収集入門 - まず WER / ProcDump / WinDbg をどう使い分けるか
Windows アプリで「たまにだけ落ちる」が始まると、ログだけでは追い切れない場面がかなりあります。
-
.NET 8 の DLL を型付きで VBA から使う方法 - COM 公開 + dscom で TLB を生成する
VBA から .NET 8 の処理を呼びたい場面はまだ普通にあります。特に、Excel や Access の既存資産はそのまま残しつつ、重い処理、文字列処理、HTTP、暗号、業務ロジックのような部分だけを C# に逃がしたいときです。
-
Windows でタイマー待機よりイベント待機を優先する理由 - 約15.6ms 粒度のポーリングを避ける
前回のWindows ソフトリアルタイムの実践ガイドでは、Sleep 任せの周期ループを避ける話を書きました。 今回はその中でも、なぜ 短い timer wait より event wait を優先したいのかを 1 点に絞って整理します。
-
想定していない例外が起きたときのチェックリスト - アプリを終了させるべきか継続すべきか、まず見る判断表
日英シート付きの Excel チェックリストをダウンロード
-
Windows の「プロセッサのスケジュール」を「バックグラウンド サービス」に変えると何が起きるのか - 量子時間、優先度ブースト、P コア / E コアまで整理
「アプリを前面から外すと音がプチプチする」 「プロセッサのスケジュール を バックグラウンド サービス にすると安定した」
-
Windowsで異なるバージョンのプログラムの実行速度をいかに比較するか。電源モード等の環境の揃え方から限界まで
Windows でプログラムのバージョン A と B を比較したい。 そのとき一番やってはいけないのは、同じマシンで 1 回ずつ実行して「B のほうが 8% 速いっぽい」と言ってしまうことです。
-
Windowsアプリで「管理者権限が必要な処理だけ」を分離する具体的な書き方
以前書いた「Windowsアプリ開発における最低限のセキュリティを守るためのチェックリスト」では、asInvoker を基本にし、管理者権限が必要な処理だけを分離する、という線を書きました。
-
Windowsアプリで設定ファイルに平文で機密情報を保存しないためのベストプラクティス
前回の「Windowsアプリ開発における最低限のセキュリティを守るためのチェックリスト」では、 「秘密情報をソースコードや平文設定に置かない」「Win32 / .NET なら DPAPI / ProtectedData を使う」という最低限の線を書きました。
-
.NET Framework を .NET に移行する前に確認するべきこと - 着手前で勝負が決まる実践チェックリスト
日英シート付きの Excel チェックリストをダウンロード
-
Media Foundation で YUV フレームを RGB に変換する方法 - Source Reader の自動変換と自前変換を原理から整理
動画からフレームを抜いて PNG に保存したい、WIC や GDI に渡したい、あるいは UI 上へ出したい。そういう場面では、アプリ側は RGB の画素列を欲しがります。
-
Windows における NIC の詳細設定をまとめて整理 - ジャンボパケット、RSS、LSO、RSC、フロー制御、EEE、Wake on LAN まで
Windows の NIC の [Advanced] タブ は、見慣れない単語がかなり並びます。 Jumbo Packet、Large Send Offload、Interrupt Moderation、Receive Side Scaling、Flow Control、Energy Efficient Ethe...
-
Media Foundation で MP4 動画の指定時刻から静止画を取り出す方法 - .cpp にそのまま貼れる 1 ファイル完結版
MP4 から「12.3 秒地点の 1 枚」を取りたい、という要件はかなり普通にあります。サムネイル生成、検査ログ、監視映像の代表フレーム、装置ログの証跡などです。
-
Windowsアプリ開発における最低限のセキュリティを守るためのチェックリスト
Excel 版チェックリストをダウンロード
-
.NET の Generic Host とは何か - DI、設定、ログ、BackgroundService を先に整理
.NET でコンソールアプリや worker を書き始めると、最初は Main に少し処理を書くだけで済みます。 ただ、少し育つと、だいたいこのへんが増えてきます。
-
.NET における Native AOT とは何か - JIT、ReadyToRun、trimming との違いを先に整理
前に C# を Native AOT でネイティブ DLL にする方法 - UnmanagedCallersOnly で C/C++ から呼び出す を書いたのですが、あれは少し順番が逆でした。 本当は、その前に「そもそも Native AOT って何なのか」を置くほうが自然でした。
-
COM / ActiveX / OCX とは何か - 違いと関係をまとめて解説
COM / ActiveX / OCX という 3 つの単語は、Windows のレガシー案件でだいたいセットで出てきます。
-
PeriodicTimer / System.Threading.Timer / DispatcherTimer の使い分け - .NET の定期実行をまず整理
前回の 普通のWindowsでソフトリアルタイムをできるだけ実現するための実践ガイド - まず見るチェックリスト では、Sleep 任せの周期ループを避け、イベント駆動や waitable timer を使う話を整理しました。
-
Generic Host / BackgroundService をデスクトップアプリに持ち込む理由 - 起動・寿命・graceful shutdown の整理がかなり楽になる
Windows ツールや常駐系アプリを少し育てると、UI の外側にある処理がじわじわ増えてきます。 定期ポーリング、ファイル監視、再接続、キュー処理、起動時初期化、終了時 flush。 最初は Form_Load や OnStartup や Task.Run でしのげますが、そのまま育つと、誰が開始して、誰が止め...
-
ActiveX / OCX を今どう扱うか - 残す・包む・置き換える判断表
ActiveX / OCX という言葉が出てくる案件は、だいたい空気が少し重いです。
-
C# を Native AOT でネイティブ DLL にする方法 - UnmanagedCallersOnly で C/C++ から呼び出す
前回の C# からネイティブ DLL を使うなら C++/CLI ラッパーが有力な理由 では、C# から C++ を呼ぶときの境界面を整理しました。今回は向きを逆にして、C/C++ から C# を呼ぶ話です。
-
WPF / WinForms の async/await と UI スレッドを一枚で整理 - await 後の戻り先、Dispatcher、ConfigureAwait、.Result / .Wait() の詰まりどころ
WPF / WinForms で async / await を使うときに一番迷いやすいのは、await のあとにどのスレッドへ戻るのか、そして いつ UI を触ってよいのか です。 特に Dispatcher、BeginInvoke、ConfigureAwait(false)、.Result / .Wait()...
-
産業用カメラ制御アプリが1か月後に突然落ちるとき(後編) - Application Verifier とは何かと異常系テスト基盤の作り方
Application Verifier は、Windows のネイティブコードや Win32 境界で起きる異常を前倒しで表面化させたいときに有力なツールです。 特に、ハンドル異常、ヒープ破壊、低リソース時の failure path をテストしたい場面では、通常系の試験だけでは見えない問題をかなり早く表に出せます。
-
産業用カメラ制御アプリが1か月後に突然落ちるとき(前編) - ハンドルリークの見つけ方と長期稼働向けログ設計
Windows アプリが長時間運転後に突然落ちるとき、最初にメモリリークを疑いたくなることはかなり多いです。 ただ、実際には ハンドルリーク が主犯で、数週間後にようやく二次障害として表面化している、というケースも少なくありません。
-
TCP 再送で産業用カメラ通信が数秒止まるとき - RFC1323 タイムスタンプと再送待ちの切り分け
産業用カメラや装置制御の通信では、平均では速いのに たまに数秒止まる という現象がいちばん厄介です。再現率が低く、普段は何も起きないので、UI、スレッド、GC、カメラ SDK、NIC、スイッチ、全部が少しずつ怪しく見えてきます。
-
FileSystemWatcher の使い方と注意点 - 取りこぼし、重複通知、完了判定の落とし穴
FileSystemWatcher は、Windows 上の .NET でファイル変更を監視するときにまず候補になる API です。 ただし、Created や Changed をそのまま完了通知だと思って使うと、取りこぼし、重複通知、途中ファイルの誤読でかなり普通に事故ります。
-
Media Foundation とは何か - COM と Windows メディア API の顔が見えてくる理由
Media Foundation を触り始めると、「Windows の動画や音声 API を使っているはずなのに、急に COM の話が増えた」と感じやすいです。 特に CoInitializeEx、HRESULT、IMFSourceReader、IMFTransform あたりがまとまって出てきて、Media F...
-
C# async/await のベストプラクティス - Task.Run と ConfigureAwait の判断表
C# の async / await は日常的に使いますが、実務で迷いやすいのは構文そのものより、どの場面でどの書き方を選ぶべきか です。 特に検索で多いのは、Task.Run をいつ使うか、ConfigureAwait(false) をどこに付けるか、fire-and-forget を許してよいか、といった判断...
-
Windows ソフトリアルタイムの実践ガイド - 遅延を減らすためのチェックリスト
この記事で扱うのは、特別なリアルタイム拡張を入れた Windows ではなく、普通の Windows 10 / 11 です。 対象は、一般的なデスクトップ PC やノート PC の上で動く user-mode の通常アプリ です。
-
ファイル連携の排他制御の基礎知識 - ファイルロックと原子的 claim のベストプラクティス
ファイル連携の排他制御は、共有フォルダや夜間バッチ、別プロセス連携でほぼ必ず問題になります。 特に検索で多いのは、ファイルロックだけで十分なのか、複数ワーカーが同じファイルを拾わない方法は何か、途中書き込みのファイルをどう避けるか、といった悩みです。
-
C# からネイティブ DLL を使うなら C++/CLI ラッパーが有力な理由 - P/Invoke と比較して整理
Windows の既存資産や既存 DLL を C# から使いたい、という要件はかなりよくあります。 相手が Win32 API のような素直な C インターフェースなら、P/Invoke で十分です。
-
HCPチャートとは何か - HCP-DSL を決定的 SVG に変換する MakingHCPChartSkill の使い方
HCPチャートとは何か - HCP-DSL を決定的 SVG に変換する MakingHCPChartSkill の使い方
-
COM STA/MTA の基礎知識 - スレッドモデルとハングを避ける考え方
COM STA/MTA の基礎知識 - スレッドモデルとハングを避ける考え方
-
32bit アプリから 64bit DLL を呼び出す方法 - COM ブリッジが役立つケーススタディ
32bit アプリから 64bit DLL を呼び出す方法 - COM ブリッジが役立つケーススタディ
-
COM とは何か - Windows COM の設計が今でも美しい理由
COM とは何か - Windows COM の設計が今でも美しい理由
-
技術ブログ開設のお知らせ - Windows / C# / COM 開発ブログを始めました
合同会社小村ソフト の技術ブログを開設しました。