文字を入力するためのダイアログボックスを作成してみます。プロジェクトの作成cd (mkdir NoXAML12)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.csソースコードファイル...
XAMLを使わないWPF入門11「1行入力ダイアログボックス」
文字を入力するためのダイアログボックスを作成してみます。プロジェクトの作成cd (mkdir NoXAML12)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.csソースコードファイル...
PowerShellとfzfを使い、よく使うディレクトリを記憶して簡単に呼び出す
fzfを使った対話選択 + スクリプトによる保存/呼び出しで非常に快適です。一度登録してしまえばカレントディレクトリ移動でパス入力が不要になります。スクリプトファイル名:Favorite-Dirs.ps1<#.SYNOPSISよく使うディレ...
PowerShellとfzfを使い、よく使うディレクトリを記憶して簡単に呼び出す
fzfを使った対話選択 + スクリプトによる保存/呼び出しで非常に快適です。ファイル名:Favorite-Dirs.ps1<#.SYNOPSISよく使うディレクトリを管理しfzfで選択.DESCRIPTIONよく使うディレクトリを管理しfz...
C#でLZ4ライブラリ「K4os.Compression.LZ4」を試す。
キャッシュファイル用に可逆圧縮で圧縮展開が高速な圧縮方式を探したところ、LZ4が見つかったので試してみたいと思います。無圧縮のBMPファイルをLZ4で圧縮してみました。プロジェクトの作成cd (mkdir LZ4Sample01 -Forc...
PowerShellでSendKeysを使ってエクスプローラーにタブでフォルダを開き、GIMPを起動する方法
GIMPで画像を加工をする場合、エクスプローラーで画像ファイルが保存フォルダを開きます。また、固定された作業用のフォルダも開くので定型作業を自動化するスクリプトを作成しました。事前準備Launch-GIMP.ps1を保存するフォルダは環境変...
WPF標準のBitmapImage、Magic.NET(ImageMagic)、SkiaSharp、OpenCVSharpでPNGファイルのデコード速度を比べて見ましたプロジェクトの作成cd (mkdir SpeedLoader01)dot...
画像ファイルを読み込んでGUIに表示するまでの時間を計測してみました。結果同期SSDFile.Exists():1msFileSize.Get():0ms Size:26615436BMemoryStream.Open():0msFileS...
アプリ名の一部からexeファイルのパスを検索する方法。where.exeのPowerShell版
パスが切られたディレクトリから検索where.exeのPowerShell版コマンドGet-Command chrome結果CommandType Name Version Source----------- ---- ------- --...
C#でワーカースレッド+キューを使ってキャッシュファイルの保存を非同期処理する方法
以前、画像ファイルをキャッシュするプログラムを書きましたが、通常のファイルもキャッシュするプログラムを考えてみます。画像ファイルのキャッシュの記事ファイル名:FileCacheStore.csusing System.Collections...
BenchmarkDotNetはC#でベンチマークを行うライブラリです。プロジェクトを作成cd (mkdir BenchmarkDotNetSample01)dotnet new console -f net8.0dotnet add pa...
XAMLを使わないWPF入門11「プログラムによるテンプレート生成でサムネイル」
ListViewを使って画像の一覧を表示します。過去にXAMLで作った記事がありましたので、XAMLを使わないバージョンを作成して見まいた。XAML版同じ用に作って見ましたが、サムネイル画像とファイル名が重なる用になったので、StackPa...
Windows11(Windows10)で特別なソフトを使わずにPDFファイルを連結する方法
PDFを連結するために、一度紙に印刷して、コピー機のスキャン機能を使いPDFを連結している人を見かけることがありました。印刷やスキャンの手間や紙の消費も問題ですが、画質は劣化するしファイルサイズも大きくなりがちです。そのような問題を解決すべ...
画像をD&Dで画像表示、クリックすると次の画像が表示されます。プロジェクトの作成cd (mkdir NoXAML10)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.csソースコードフ...
PowerShellでテキストファイルを操作するコマンドレット
テキストファイルを扱うコマンドレットをまとめて見ました。ファイルの作成New-Item -ItemType File -Path "C:\path\to\file.txt" -Force Out-Null-Force を付けると、すでに...
以下のような添付プロパティのXAMLをC#でコーディングしてみます。XAML<DockPanel> <StackPanel DockPanel.Dock="Left"> <!-- コメント --> </StackPanel></DockPa...
XAMLを使わないWPF入門08「スライダーの値をラベルにバインド」
スライダーコントロールの値をラベルにバインドし表示します。XAMLを使った記事プロジェクトの作成cd (mkdir NoXAML08)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.c...
StackPanelはコントロールを垂直に縦積みするパネルです。オプションで水平に並べることもできます。プロジェクトの作成cd (mkdir NoXAML07)dotnet new wpf -f net8.0rm *.xamlソースコードフ...
画像ファイルを読み込んで表示するサンプルコードです。プロジェクトの作成cd (mkdir NoXAML06)dotnet new wpf -f net8.0rm *.xamlソースコードファイル名:NoXAML06.csproj<Proje...
PowerShellでタスクスケジューラーを操作するワンライナー集【日次・週次・月次・ログオン時】
タスクスケジューラーは日時などを条件にタスクを実行する機能ですが、GUIで操作画面までたどり着くのが困難です。良く使いそうな操作を抜粋してPowerShellのコンソールから実行するワンライナーを集めてみました。タスクの登録日次(例:毎日の...
WinFormsで画像ファイルを先読みしキャッシュファイルとして保存する。
画像ファイルをキャッシュする方法としてSQLiteのBlobを使う方法を試しましたが、マルチスレッドでlock処理をはさむと、メリットが薄い感じがしました。今回はシンプルにキャッシュをファイルとして保存しています。キャッシュの有無は、オリジ...
ファイルマネージャのファイルとディレクトリの一覧部分をリストビューで作成しました。ファイル名:FolderManager.cs// ファイスシステムアイテムusing Microsoft.VisualBasic;public class F...
ファイルマネージャのファイルとディレクトリの一覧部分をリストビューで作成しました。ファイル名:FolderManager.cs// ファイスシステムアイテムusing Microsoft.VisualBasic;public class F...
Windows11で不要ファイルの整理と軽量化設定を行った話。
視覚効果をOFFWindows + R⇒sysdm.cplシステムプロパティ⇒詳細⇒パフォーマンス⇒設定視覚効果⇒カスタム「スクリーンフォント滑らか...」と「アイコンの代わりに...」以外のチェックを外す。全部のチェックを外すと体感できる...
C#で画像ファイルをキャッシュするプログラム(SQLite)
画像ファイルを読み込んでキャッシュとしてSQLiteのデータベースにBlobとして保存するコードになります。プロジェクトを作成cd (mkdir ImageCacheStore01 -Force)dotnet new winforms -f...
C#でサムネイル用Bitmapオブジェクトを生成するメソッド
サムネイル用に所定サイズにBitimapオブジェクトを生成します。namespace Thumbnail01;using System.Drawing;using System.Drawing.Drawing2D;public static...
キャッシュ機能を実装する場合、メモリが無限に使える場合を除き、キャッシュとして保存する要素数を制限する必要があります。今回試した方式はLRU(Least Recently Used)と言いまして、直近に参照した要素が一番古いものを捨てること...
GIMPのPNGファイルのエクスポートの圧縮レベルとファイルサイズ及びOptiPNG
GIMPでPNGファイル形式で画像を書き出す場合、圧縮レベルによって書き込みにかかる時間とファイルサイズが異なります。ファイルサイズを確認してみました。対象ファイル幅:4512高さ:6400ビット:32bitWindows版Gimp2.10...
PowerShellでディレクトリを作成し移動するワンライナー
dotnet.exeを使いC#のプロジェクトを作成する際、まずプロジェクト用のディレクトリを作成⇢移動のながれになります。mkdir ディレクトリ名cd ディレクトリ名作成⇢移動の2手順ををワンライナーにしてみました。エイリアス版cd (m...
ImageMagickを使いPNGファイルに任意のコメントを埋め込む方法
PNGファイルにコメントを埋め込む方法を試しました。ImageMagickをインストールImagaMagickをscoopでインストールします。scoopのインストールは以下の記事を参照。scoop install imagemagickコ...
C# WinFormsで画像読み込みをバックグラウンド処理する(スレッド分離と非同期実装)
画像ファイルからBitmapオブジェクト取得するコードなのですが、ファイルの読み込みとデコードを別スレッドで行いたいと思い作りました。スレッドセーフなキューに画像ファイルのパスと、結果を処理するコールバックのコードを渡すと、処理されるような...
クラスで例外時ログを記録する機能を付与してみますプロジェクトの作成mkdir ILoggerSample01cd ILoggerSample01dotnet new console -f net8.0dotnet add package M...
C#だけでHTTPサーバーをGUIアプリ(WinForms)に組み込む方法
C#から比較的簡単にhttpサーバーを作ることが出来るとのことですので、WinFormで作るGUIアプリにhttpサーバーを組み込むサンプルを試しました。プロジェクトの作成mkdir WinFormsHttpServerSamplecd W...
WinFormのタブコントロール(TabControl)のサンプル
タブコントロールを使い方を確認してみました。プロジェクトの作成mkdir TabControlSample01cd TabControlSample01dotnet new winforms -f net8.0ソースコードファイル名:For...
PowerShellで履歴からスクリプト(.ps1)を作成する方法【再利用に便利】
PowerShellのシェルで実行した一連のコマンドを再度実行したい場合、履歴から.ps1を生成出来ると便利かと思い方法を調べてみました。まず履歴の蓄積する処理をする前に、履歴をクリアします。# ステップ 1: 履歴をクリアClear-Hi...
C#サイズの大きなクラスをPartial Classでcsファイルを分割する機能の使い道
C#ではpartial classを使うと、ひとつのクラスを複数のcsファイルに分割して保存することが出来ます。機能といしては知ってはいたのですが、使う場面を考えて見たいと思います。基本的に1クラス1ファイル(.cs)にすると、ファイルを選...
JavaScript非同期テキスト取得 – 外部テキスト読み込みサンプル
テキストを読み込む ここにテキストが表示されます。 <script> document.getElementById("loadBtn").addEventListener("click", function () { fetch("sam...
WinFormsで作るシンプルなアプリケーションランチャー2【.NET 9 / C#】
アプリケーションランチャーを使っていて登録したアプリケーションの数が増えるとスクロールするのが大変になってきました。対策として、Homeキーでで最初の行に移動する機能と、アプリケーションをダブルクリックするたびに1つ上の行に移動する機能を付...
LiteDBはSQLを書かずにC#のマネージドオブジェクトとして扱えるデータベースです。アプリケーションのバックエンドに良さそうなので試してみました。プロジェクトの作成mkidr LiteDBSamplecd LiteDBSampledot...
NMeCabを使うと日本語の文章を単語ごとに分割してくれるようなので試してみました。プロジェクトの作成 mkdir MeCabSample cd MeCabSample dotnet new console dotnet add packa...
C言語でmallocでint型の配列を確保するサンプルコード
mallocでメモリを確保する処理を確認したいと思います。ソースコード#include <stdio.h>#include <stdlib.h>int main() { int *arr; int size = 10; // メモリ確保 a...
WinFormsで作るシンプルなアプリケーションランチャー【.NET 9 / C#】
WinFormsでシンプルなアプリケーションランチャーを作成しました。プロジェクトの作成mkdir ApplicationLauncher01cd ApplicationLauncher01dotnet new winformsソースコード...
名前とファイルパスのコレクションを管理するサンプル プロジェクトの作成mkdir jsonsaveloadcd jsonsaveloadgo mod init example.com/jsonsaveloadソースコードファイル名:json...
文字入力ダイアログボックスのサンプルです。プロジェクトの作成mkdir dialogmemocd dialogmemoMake-GoWalk.ps1Make-GoWalk.ps1は次の記事を参照ソースコードファイル名:dialogmemo....
ウィンドウにファイルをドラックアンドロップするサンプルコードです。プロジェクトの作成mkdir dragdropdemocd dragdropdemoMake-GoWalk.ps1Make-GoWalk.ps1は次の記事を参照ソースコードフ...
PCを快適にするアップグレードパーツを一つ選ぶとしたら?【2025年版】
はじめに2025年現在、PCのパーツ選びにおいて「どれを交換すると快適になるのか?」は多くの人が一度は考えるテーマです。CPUやGPUのような高価なパーツもありますが、今回はあえて体感の快適性に直結するパーツとして、「SSD」、とくにNVM...
PowerShell ワンライナー集:便利なパイプライン活用例まとめ
PowerShellのパイプラインはコマンドレット間でオブジェクトを渡す仕組みで、各オブジェクトで処理を組み合わせることで、複雑な処理流れを1行で表現することが出来ます。エクスプローラなどでファイルを操作する場合など、手作業で行うことに比べ...
ウィンドウにボタンをレイアウトし、ボタンを押すことでボタンの文字が変化するサンプルプログラムを作成しました。ソースコードファイル名:datasource.h#ifndef DATASOURCE_H#define DATASOURCE_H#i...
書籍「MSX-BASICでゲームを作ろう」を電子書籍で購入しました。書籍は後でじっくり読むとして、MSX公式エミュレーターMSXPlayerのダウンロード用のリンクとパスワードがあるので試してみました。起動時MSXのタイトル、RAMは豪華に...
C++のスマートポインタの型推論付き初期化 とQPointer
C++のスマートポインタを学習したのですが、モダンな初期化方法があるとのことですので、試したいと思います。また、Qt6でGUIプログラミングを学習する予定あり、Qtにもスマートポインタがあり、其の中でQPointerを学習したいと思います。...
C++のスマートポインタの型推論付き初期化 とQPointer
C++のスマートポインタを学習したのですが、モダンな初期化方法があるとのことですので、試したいと思います。また、Qt6でGUIプログラミングを学習する予定あり、Qtにもスマートポインタがあり、其の中でQPointerを学習したいと思います。...
XAMLを使わないWPF入門05「ListViewとコレクションをバインドする方法」
XAMLを使わないWPFでListViewとコレクションのバインディングを試して見ます。サンプルコード・プロジェクトの作成dotnet new wpf -f net8.0 -n NoXAML05cd NoXAML05rm *.xamlrm ...
全てのコントーロルがコマンドを持つわけではないので、イベントからコマンドに変換してとバインドする方法を試してみます。サンプルコード・プロジェクトの作成dotnet new wpf -f net8.0 -n NoXAML04cd NoXAML...
全てのコントーロルがコマンドを持つわけではないので、イベントからコマンドに変換してとバインドする方法を試してみます。サンプルコード・プロジェクトの作成dotnet new wpf -f net8.0 -n NoXAML04cd NoXAML...
XAMLを使わないWPF入門03「ICommandによるコマンドバインディング」
XAMLを使わないWPFでプロパティとのバインドを前回試しました。今回はICommandのオブジェクトとのバインドを試してみたいと思います。サンプルコード・プロジェクトの作成dotnet new wpf -f net8.0 -n NoXAM...
XAMLを使わないWPF入門02「ICommandによるコマンドバインディング」
XAMLを使わないWPFでプロパティとのバインドを前回試しました。今回はICommandのオブジェクトとのバインドを試してみたいと思います。サンプルコード・プロジェクトの作成dotnet new wpf -f net8.0 -n NoXAM...
XAMLを使わないWPF入門02「ビューモデルのプロパティとバインド」
XAMLを使わない状態でデータバインディングはどのようにするか調べてみました。サンプルコードプロジェクトの作成dotnet new wpf -f net8.0 -n NoXAML02cd NoXAML02rm *.xamlrm MainWi...
VSCodeとdotnet.exeでWPFの開発をしていると、ビューであるXAMLはXMLファイルを直接編集することになります。ビューが独立したファイルになっている点は良いのでが、コントロールを多数レイアウトしていくと、ネストが深くなりすぎ...
WPFでコンテキストメニューの項目を動的に生成する方法を試して見ました。コンテキストメニューは親コントロールがあるわけでは無いので、DataContextを直接指定する必要があるとのこと。メニューのヘッダーは表示するのにコマンドが実行されな...
C#レコードクラスで作るファイルパス管理のサンプルコード3「メソッドチェーン」
LINQのように.でメソッドをつなげるスタイルを試してみました。ソースコードファイル名:FileSystemPath.cspublic sealed record class FileSystemPath{ public string Pa...
ファイルやフォルダに紐づくコメントを入力し記録する機能を実装しました。保存する先はSQLiteでテーブルを作成しました。以下のコードはテーブルの項目の定義になります。ファイル名:CommentTable.csnamespace FileMa...
レコードクラスでファイルパス管理クラスFielSystemPathのサンプルコードを書きました。更に機能を追加しようと思い、ファイルの有無などファイルシステムに依存するコードを別クラスFileSystemPathExにまとめました。また、F...
C#のレコードクラスを試してみました。サンプルコードファイル名:FileSystemPath.cspublic record class FileSystemPath{ public string Path { get; } private...
アプリケーション内で重複しない番号を生成するクラスを作ってみました。public class IdGenerator{ private int _currentId = 0; private readonly object _lock = ...
形が見え始めたファイルマネージャですが、毎回ここまでは辿りつくのですが、この後が中々難しい。前回の記事WPFの画像オブジェクトを扱うために、wpflibでプロジェクトを追加して、WPFAppプロジェクトから画像加工ルーチンを移動させました。...
WPFを使ったファイルマネージャを作成中です。何年も前から、挑戦し何度も挫折しています。今回も挫折するかもしれないので、せめて進捗だけでも残そうと記事を書きました。ファイルマネージャを作る目的は、ファイルやフォルダが増えてくると、ファイル名...
通常、HDMIをマザーボードのHDMIポートに接続することはおすすめされません。理由は、内蔵GPU(iGPU)が優先され、グラフィックボードの性能が無視されるからです。ゲームや動画編集など、GPU性能を活かす用途では、グラボ側のHDMIポー...
C#のConsoleでEntityFramework「fluent APIで1対多のリレーションシップ」
EntityFrameworkで1対多のリレーションシップを定義してみます。ソースコードusing Microsoft.EntityFrameworkCore;using System.Dynamic;using System.IO.Com...
C#のコンソールで入力した文字を表示する「順次処理キューによる非同期処理」
コンソールで入力した文字をそのまま出力します。Endと入力すると終了します。文字入力をメインスレッドで、文字出力をサブスレッドで実行しています。スレッド間で文字列をキューを介して送受信しています。using System;using Sys...
コンソールで入力した文字をそのまま出力します。Endと入力すると終了します。namespace console01;class Program{ static void Main() { while(true) { Console.Writ...
C#のConsoleでEntityFramework「fluent APIで主キーを定義」
覚えるのが面倒なのでfluent APIを避けてきましたが、エンティティクラスがPOCOなクラスだと何かと都合が良いことに気が付きましたので、fluent APIを試してみたいと思います。サンプルプログラムusing Microsoft.E...
DreamBoothを試すべくkohya_ssのリポジトリを導入してみましたが…
当サイトは、筆者が行った行動を、後日参考にするためのノートですので、基本的に成功事例を掲載するようにしています。ただ、失敗続きだと、記事の投稿頻度が減る傾向があり、見返した際、何も行っていない時期があるように見えるので、失敗談も記事にしたい...
以前WSL2とUbuntu環境でStyle-Bert-VITS2音声学習を試しモデルが作成出来ることは確認しています。それで、面白くて色々試していたところうっかり学習用データとモデルデータで、Cドライブをパンクさせてしまいました。今回は専用...
インターフェイスはメソッド及びプロパティを定義し、クラスで実装して使う機能です。インターフェイスは自体でインスタンスを生成することは出来ませんが、インターフェイスを実装したクラスのオブジェクトを受け入れる変数を定義することが出来ます。機能的...
C#で要素数が最大1個のコレクション「OnlyOneCollection」を作りNull許容型変数を置き換えてみる。
IEnumerableの実装に挑戦してみたいと思います。こちらのクラスはOnlyOneCollectionとコレクションを銘打ってはいますが、実際は要素数が0または1つのみ格納できるコンテナクラスとなっております。使い道としてはNull許容...
WPFアプリケーションの初期化処理でアプリケーションでSQLiteを使うとして、データベースファイルを設定ファイルから読み込むようにしたい。データベースファイルのパスは基本的に変更されることは無いので定数(const)で定義したいところです...
基本的KVMコマンドの使い方【Ubuntu24.04,GPUパススルー,RTX3060】
幾度かの失敗を経て、KVMでホストOSをUbuntu24.04、ゲストOSをUbuntu22.04でGPUをパススルーでRTX3060のドライバーをインストールするところまでこぎ着けました。今後KVMのコマンドを使うことが増えそうなので記事...
dotnet.exeでC#の単体テスト(MSTest)プロジェクトの作り方
個人でプログラミングを楽しむ分にはどのような方法で開発しても構わないと思いますが、すこし規模が大きくなると、クラス単位に機能や役割を分割することになり、それらを単体テストする必要性を感じることがあります。今回は、テストプロジェクトの作成~単...
C#でファイル一覧を取得してデータベースのテーブルから情報を取得する。
指定のディレクトリのファイルの一覧を取得し、ファイルのパスをキーとしてデータベースのテーブルからコメント項目の文字列を取得するコードに成ります。// ファイル・ディレクトリの一覧を取得する。using System.IO;using Mic...
肥大化しがちなWPFのXAMLとViewModelをユーザーコントロールを使って分割する方法
WPFでシングルウィンドウアプリケーション(一つのウィンドウだけで完結するアプリ)を作っていると、Viewにコントロールを沢山配置することになり、Viewを構成するXAMLファイルと、データソースとして紐づくViewModelのソースファイ...
1つしか存在しないものや、複数あると都合の悪いものを、インスタンス化する仕組み。・基本的に一つしか存在しないもの:システムの設定情報ロギングサービスプリンタスプーラー・複数存在すると都合の悪いもの:データベース接続プールキャッシュマネージャ...
C#ではList<T>などIEnumerable<T>インターフェースを実装したコレクションと、それをループ処理するforeachがあるので、Iteratorパターンを実装する機会は少ないと思われます。サンプルコードusing System...
MVVMで使うICommandというインターフェイスがあり、これを実装することでViewからViewModelのCommandを呼び出すことが出来ます。ウィキペディアの「Commandパターン」のページサンプルコードusing System...
オブジェクトの構築プロセスを段階的に行い、複雑なオブジェクトを柔軟に生成するためのデザインパターンです。ウィキペディアの「Builderパターン」のページサンプルコード/// <summary>/// BUilderパターンのサンプルコード...
Adapterパターンを使うと、既存のクラスを直接加工することなく、新たなインターフェイスを作ることが出来る。ウィキペディアの「Adapterパターン」のページサンプルコード/// <summary>/// Adapterパターンのサンプル...
Bridgeパターンを使うと、複数の要素の組み合わせの数分クラスを生成する必要があるケースで、要素をクラス化することで少ないクラス数で組み合わせを表現出来るように出来る。ウィキペディアの「Bridgeパターン」のページサンプルコード/// ...
オブジェクトを動的に装飾するパターンウィキペディアの「Decoratorパターン」のページサンプルコード/// <summary>/// Decoratorパターンのサンプルコード/// </summary>interface IProdu...
オブジェクトへのアクセスを制御し、必要に応じて追加の処理を提供する中間オブジェクトを用いるパターンとのこと。現実のProxyサーバーはHTTPリクエストを中継し代わりにアクセスすることで、本来アクセスできないネットワークからのWebブラウジ...
オブジェクトの状態を外部に公開せずに保存し、後でその状態に復元するためのパターンみたいです。ウィキペディアの「Mementoパターン」のページサンプルコードusing System.ComponentModel;using System.D...
オブジェクトの内部状態に応じて振る舞いを変更し、状態遷移をクラスとして表現するパターンです。ウィキペディアの「Stateパターン」のページサンプルコード/// <summary>/// Stateパターンのサンプルコード/// </summ...
Strategyパターンは処理のアルゴリズムをカプセル化し、実行時に切り替えることを目的としたパターンです。ウィキペディアの「Strategyパターン」のページサンプルコード/// <summary>/// Strategyパターンのサンプ...
C#でデザインパターン「TemplateMethodパターン」
クラスが提供する機能(TemplateMethod)を実現するため、その実装の一部をサブクラスに任せることで、コードの柔軟性と再利用性を高めるパターンウィキペディアのTemplateMethodパターンのページサンプルコード/// <sum...
C#でデザインパターン「TemplateMethodパターン」
クラスが提供する機能(TemplateMethod)を実現するため、その実装の一部をサブクラスに任せることで、コードの柔軟性と再利用性を高めるパターンウィキペディアのTemplateMethodパターンのページサンプルコード/// <sum...
Visitorパターンは、既存のクラスの構造を変更することなく、それらのクラスに対する新しい操作(メソッド)を外部から追加することを目的としたデザインパターンみたいです。Wikipediaの「Visitorパターン」サンプルコード/// <...
Compositeパターンと言ったらファイルシステムでしょう。ということでサンプルコードを作成してみました。using System.ComponentModel;using System.Runtime.CompilerServices;...
メインPCのHDDからSSDへの置き換えが完了して大分時間が経過しました。ファイルのバックアップ用に3.5インチHDDを接続していたのですが、そちらを動画作成用のプロジェクトフォルダとして使ってみました。極端に遅くなってしまい、SSDの速度...
C#でデザインパターン「AbstractFactoryパターン」
GUIのアプリケーションを作成する場合、ButtonやLabelなどのコントロールを配置すると思いますが、OSなどプラットフォームごとに生成するオブジェクトが異なる場合でも、生成する過程を抽象化することで同じ生成コードが適用できるようにする...
C#ででデザインパターン「FactoryMethodパターン」
オブジェクトの生成工程と生成するクラスを分離したパターン。クラスを差し替えたりすることで、開発と本番環境の切り替えなどがスムーズに出来るようです。サンプルコード/// <summary>/// FactoryMethodパターンのサンプルコ...
複数のオブジェクトのメソッドを決まった手順で実行する処理がある場合、Facadeオブジェクトで手順を実行するメソッドとすることで、シンプルなインターフェイスを提供する目的。プログラミングで関数(メソッド)やサブルーチンを作る目的と同じ感じで...
オブジェクト同士で通信する場合、Mediatorというオブジェクトを介して通信を行うパターン。/// <summary>/// Mediatorパターンのサンプルコード/// </summary>class MyMediator{ Dict...
文章を作成する際、過去に似たいような文章を流用し、異なる部分だけを修正することがあります。これをオブジェクト指向プログラミングを表現するのが「Prototypeパターン」のようです。生成済みのオブジェクトをコピーし、新しいオブジェクトを作る...
「ブログリーダー」を活用して、84さんをフォローしませんか?
文字を入力するためのダイアログボックスを作成してみます。プロジェクトの作成cd (mkdir NoXAML12)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.csソースコードファイル...
fzfを使った対話選択 + スクリプトによる保存/呼び出しで非常に快適です。一度登録してしまえばカレントディレクトリ移動でパス入力が不要になります。スクリプトファイル名:Favorite-Dirs.ps1<#.SYNOPSISよく使うディレ...
fzfを使った対話選択 + スクリプトによる保存/呼び出しで非常に快適です。ファイル名:Favorite-Dirs.ps1<#.SYNOPSISよく使うディレクトリを管理しfzfで選択.DESCRIPTIONよく使うディレクトリを管理しfz...
キャッシュファイル用に可逆圧縮で圧縮展開が高速な圧縮方式を探したところ、LZ4が見つかったので試してみたいと思います。無圧縮のBMPファイルをLZ4で圧縮してみました。プロジェクトの作成cd (mkdir LZ4Sample01 -Forc...
GIMPで画像を加工をする場合、エクスプローラーで画像ファイルが保存フォルダを開きます。また、固定された作業用のフォルダも開くので定型作業を自動化するスクリプトを作成しました。事前準備Launch-GIMP.ps1を保存するフォルダは環境変...
WPF標準のBitmapImage、Magic.NET(ImageMagic)、SkiaSharp、OpenCVSharpでPNGファイルのデコード速度を比べて見ましたプロジェクトの作成cd (mkdir SpeedLoader01)dot...
画像ファイルを読み込んでGUIに表示するまでの時間を計測してみました。結果同期SSDFile.Exists():1msFileSize.Get():0ms Size:26615436BMemoryStream.Open():0msFileS...
パスが切られたディレクトリから検索where.exeのPowerShell版コマンドGet-Command chrome結果CommandType Name Version Source----------- ---- ------- --...
以前、画像ファイルをキャッシュするプログラムを書きましたが、通常のファイルもキャッシュするプログラムを考えてみます。画像ファイルのキャッシュの記事ファイル名:FileCacheStore.csusing System.Collections...
BenchmarkDotNetはC#でベンチマークを行うライブラリです。プロジェクトを作成cd (mkdir BenchmarkDotNetSample01)dotnet new console -f net8.0dotnet add pa...
ListViewを使って画像の一覧を表示します。過去にXAMLで作った記事がありましたので、XAMLを使わないバージョンを作成して見まいた。XAML版同じ用に作って見ましたが、サムネイル画像とファイル名が重なる用になったので、StackPa...
PDFを連結するために、一度紙に印刷して、コピー機のスキャン機能を使いPDFを連結している人を見かけることがありました。印刷やスキャンの手間や紙の消費も問題ですが、画質は劣化するしファイルサイズも大きくなりがちです。そのような問題を解決すべ...
画像をD&Dで画像表示、クリックすると次の画像が表示されます。プロジェクトの作成cd (mkdir NoXAML10)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.csソースコードフ...
テキストファイルを扱うコマンドレットをまとめて見ました。ファイルの作成New-Item -ItemType File -Path "C:\path\to\file.txt" -Force Out-Null-Force を付けると、すでに...
以下のような添付プロパティのXAMLをC#でコーディングしてみます。XAML<DockPanel> <StackPanel DockPanel.Dock="Left"> <!-- コメント --> </StackPanel></DockPa...
スライダーコントロールの値をラベルにバインドし表示します。XAMLを使った記事プロジェクトの作成cd (mkdir NoXAML08)dotnet new wpf -f net8.0rm *.xamlrm MainWindow.xaml.c...
StackPanelはコントロールを垂直に縦積みするパネルです。オプションで水平に並べることもできます。プロジェクトの作成cd (mkdir NoXAML07)dotnet new wpf -f net8.0rm *.xamlソースコードフ...
画像ファイルを読み込んで表示するサンプルコードです。プロジェクトの作成cd (mkdir NoXAML06)dotnet new wpf -f net8.0rm *.xamlソースコードファイル名:NoXAML06.csproj<Proje...
タスクスケジューラーは日時などを条件にタスクを実行する機能ですが、GUIで操作画面までたどり着くのが困難です。良く使いそうな操作を抜粋してPowerShellのコンソールから実行するワンライナーを集めてみました。タスクの登録日次(例:毎日の...
画像ファイルをキャッシュする方法としてSQLiteのBlobを使う方法を試しましたが、マルチスレッドでlock処理をはさむと、メリットが薄い感じがしました。今回はシンプルにキャッシュをファイルとして保存しています。キャッシュの有無は、オリジ...
リストビューのクリアを試してみます。 // listview03.cs // リストビューのクリア using System; using System.IO; using System.Drawing; using System.Wind
液晶ディスプレイの解像度が3840x2160で32インチのサイズだとスケーリング100%だと筆者の目には文字が小さすぎます。 解像度を1920x1080に落とすと文字サイズはちょうど良い感じになりますが全体がぼやけた感じなります。 スケーリ
リストビューの項目を削除してみます。 // listview02.cs // アイテムの削除 using System; using System.Drawing; using System.Windows.Forms; /* ビルド mc
リストビューで項目を選択した際実行されるイベントを確認してみる。 // listview01.cs using System; using System.Drawing; using System.Windows.Forms; /* ビルド
筆者のubuntu環境でメッセージボックスを表示するとボタンの文字が半分見切れてしまいます。 OSのフォントのスケーリングを200%に設定しており、100%にするときちんと表示されるので、スケーリングに追随していないことが原因と思われます。
メニューの「色」→「カラーマッピング」→「色交換」 1.色を置き換えたい部分を範囲選択する 2.メニューから色交換を呼び出す。 From Colorで置き換え元の色を指定。(右側のスポイトのアイコンをクリックすると画像から色を取得することが
UbuntuでAnimeEffectsというソフトを使っていて、こちらのソフトは静止画から動画を作成するソフトなのですが、動画の書き出しで失敗しアプリケーションが強制終了することがありました。再現性があるので原因を調べてみることにしました。
住宅事情により、ワイヤレスヘッドフォン(ヘッドセット)を使っていましたが、バッテリーが持たなくなってきたので、ネックスピーカーを試してみました。 よくない点 少し重い。肩がこるほどでは無いので許容範囲。 たまに振動する。鎖骨のあたりがムズム
システムドライブ(C:)の空き容量が少なくなってきた場合、ストレージを増設しドキュメントフォルダなどの場所を移動させると、容量不足を解消することが出来ます。 手順 ドキュメントフォルダ上で右クリック⇒「プロパティ」⇒「場所」のタブ 「移動」
コマンドラインからGoogle翻訳を実行することが出来るようなので試してみました。 インストール sudo apt install translate-shell aptパッケージで楽々インストール 実行例 echo Jacket tr
IOPaintをインストールしたのでその作業ログを残しておきます。 IOPaintは画像の一部をいい感じに消去してくれるソフトでLama Cleanerの後継ソフトになります。 pythonの仮想環境を作成 cd ~/git mkdir i
IOPaintをインストールしたのでその作業ログを残しておきます。 IOPaintは画像の一部をいい感じに消去してくれるソフトでLama Cleanerの後継ソフトになります。 pythonの仮想環境を作成 cd ~/git mkdir i
ASP.NETが稼働しているサーバーの特定のディレクトリ下にあるファイルの一覧をJSON形式で返すサンプルプログラム。 プロジェクトの作成 mkdir AspMvcFileList cd AspMvcFileList dotnet new
ソースコード using System; using System.Windows.Forms; using System.Drawing; /* **************************************** リストビュ
monoは.NET Frameworkの互換ですのでDirectory.GetLogicalDrives()でドライブの一覧が取得できるはずです。 ただ、ドライブはWindowsの概念でUbuntuには存在しません。実行するとどのような結果
たまたまUbuntuのデスクトップ環境があるのでPowerShellをインストールしてみたいと思います。 サポート情報 インストールしようとしているUbuntu22.04はサポートされているようです。 Ubuntu 22.04 (Jammy
Ryzen7 5700XでWindows11なメインPCとRyzen5 7600でUbuntu22.04のサブPCで常設するデスクトップPCが2台となりました。 PCケースは手製のPCデスクの足元にミニタワーケースが2台設置出来るようにして
ディレクトリ:/usr/lib/mono/4.7.1-api/ Accessibility.dll Commons.Xml.Relaxng.dll CustomMarshalers.dll Facades I18N.CJK.dll I18N
ファイルアイコンをパスを使って描画してみます。 ソースコード ファイル名:Form1.cs using System.Drawing.Drawing2D; namespace FileIcon; public partial class F
フォルダーアイコンをパスを使って描画してみます。 ソースコード ファイル名:Form1.cs using System.Drawing.Drawing2D; namespace FolderIcon; public partial clas