苦手と向き合うこと

先日社長と面談して、
自分の苦手なこと(人とのコミュニケーション)を克服するための対策を考えることになりました。

私は他人と一緒にいるよりは1人でいることが好きな性格であり、
人とコミュニケーションをとる、という自分の苦手と向き合うのは正直なかなか辛いものがあります。

しかし、これならやれる、三日坊主にならずに続けていける、という方法を自分で見つけてこなしていくしかないのかな、と思います。

 

PowerToysのスクリーンルーラー

PowerToys(マイクロソフト製のWindows便利ユーティリティ)を以前から使用しております。

最近、「スクリーンルーラー」という機能が追加されました。
これがなかなかGUIのデザイン作成時などに役立ちそう。

資格

こんにちはmtjです。

2023年に基本情報技術者試験が変更されます、結構変わるような話を見たので自分も受けてみたいなと思いました。
自分の記憶では今までの基本情報技術者試験はEXCELが追加されてから 午後は簡単すぎるぐらいだなと思っていたので仮想言語で記載する形になって
アルゴリズムとしての試験の意味合いが強くなるのかなと思いました。

どのように変わっているか楽しみにしています。

コロナに感染しました

題の通りで、先月末コロナに感染しました。
快復傾向に至るまで1週間ほどかかり社内メンバーにはご迷惑をおかけしてしまいました。

症状としては喉の痛みが少しあったのと、38-39℃ほどの発熱で、
発熱は連日続いたため大変しんどかったです。
発熱外来では解熱剤を貰えなかったのですが、
家にロキソニンが余っていたのでそれを呑んで耐え凌ぎました。
現在は快復はしたのですが、後遺症なのか痰が喉に絡み続けていて、
咳を出さざるを得ず若干過ごしにくいです。

社内メンバーにも家族にも感染を広げなかったのは不幸中の幸いでした。

開発担当の案件も遅れが出てしまったのですが、
社内メンバーに開発を手伝ってもらい、
本日無事納品することができて一安心しました。
(福岡さん、masugiさん、ありがとうございました。)

皆様お気を付けてお過ごしください。

2つのテキストファイルの差分を表示するプログラム作成

そういえば、業務外では全くプログラミングに触っていなかったな、と思ったので、最近コーディングの練習も兼ねて、業務外でも少しでもいいからプログラミングに触ろうと思いました。
最近DiffMatchPatchというライブラリを使用する機会があったので、Winmergeのように2つのテキストファイルの差分を表示するWindowsフォームコントロールを制作してみようと思いました。

現時点ではまだ形になるものはできていませんが、少しずつ機能を完成させていければ、と思います。

C#でCPUパフォーマンス解析

作成したアプリの各処理のCPU使用量を知りたい場合、VisualStudioがインストールされている環境ではパフォーマンスプロファイラを使用すれば良いのですが、本番環境の本番運用ではそうはいきません。

というわけで、C#でCPUパフォーマンス解析を行う機能を実装しました。

詳細は記載しませんがざっくり説明すると、ProcessThreadインスタンスのTotalProcessorTimeプロパティでプロセッサを使用した時間の合計値が取得できるので、各処理開始から終了までのTotalProcessorTimeの差を積算していき、
各処理ごとのCPU使用量を集計することで実現できます。

この集計結果を定期的にログファイルに出力しておけば、問題発生時や性能改善時の役立ちそうです。

技術の進歩

こんにちはmtjです。

色々な展示会にいきますが本当にデジタル関連の進歩は早いなと感じます。
一昔前ならARMで低発熱、低電力で小さいPCがという話だったのですが

現代はクラウド、無線技術の進歩でリモートで操作、もしくはリモート、クラウドに演算機能を配置し
小さい端末で現場に反映する等を行っています。
intelのRealSensもそうですが人のボーン検知も今では普通のスマホのカメラで可能になったり
一般の人でもそういった物が触りやすくなっています。

こういった技術が展示会等でも溢れているとソフトを扱う側、特に学生はいろんな技術を簡単に扱える時代なんじゃないかと感じます。
なんでも扱える反面 何も作らなくても技術が使える分どう扱うかの発想が大事になってきますね。

ソフトを作る側でも既存の技術をどう上手く使うかというのが課題な気がします。
0から作っていては予算、時間も足りません その時に既存の技術を使用して時間も予算も低く抑えるのがソフト技術者の腕になってきているのだと感じます。

WindowsFormにおけるコントロールの別ウィンドウ化

弊社で最も規模の大きなプロジェクトはWindowsFormにて開発が行われています。

先日、そのプロジェクトにてコントロールを別ウィンドウ化する処理を
既存の実装を参考にして実装したのですが、
予想以上に手軽に出来て驚きました。

以下のようにするだけでした。

// 別ウィンドウとなるフォームを作成
var window = new Form {
	Owner = this.ParentForm,
	Width = this.Width,
	Height = this.Height
};
// 別ウィンドウ化したい対象コントロールの親コンテナに新規ウィンドウをセット
// (別ウィンドウに移し替える)
targetControl.Parent = window;
// 別ウィンドウクローズ時に親コンテナを元に戻すように
window.FormClosed += (_, _) => {
	targetControl.Parent = this;
};
window.Show();

親コンテナのSetterは参照を移し替えるだけかと思い込んでいたのですが、
配置も移し替えるのですね。
便利に作られていてありがたいです。

仕事を依頼した人との認識違いを防ぐために

最近、先輩や上司から仕事を頼まれたとき、仕事に取り掛かる前に、説明してもらった作業内容・作業手順をエクセルにまとめ、それを依頼者に見せて自分のまとめた内容が合っているかどうか確認して頂く、ということを行っています。
また、そのエクセルは仕事を依頼した人と共有し、必要に応じて、作業中にも作業内容・手順の修正・加筆を行っています。

説明してもらった作業内容を自分が正しく理解しているかを見てもらい、
間違っている部分や足りない部分があれば指摘して頂くことで、
私と仕事を依頼した人との認識をすり合わせることができます。
このことで、作業中に私と仕事の依頼者の認識の違いによるミスや手戻りが発生するのが少なくなっていると感じているので、これからも続けていこうと思います。

Windows11の小さいタスクバー

Windows11では残念なことに「小さいタスクバー」表示が設定から出来なくなりました。
ノートPCなどでは限られたデスクトップ領域を広く使用したいので小さくしたいですよね。

レジストリを直接弄れば小さく出来るのですが、日時やアイコンがはみ出ていてブサイクです。

どうにか出来ないかと調べていると、フリーソフトのTClockを使用すると改善できることが分かりました。
助かりました。
※似たソフトにTTClockというものがありますが、これは全く別のソフト。