デザインについて

ソフト関連ではデザインという話をよく耳にする
1.各UIを綺麗にするデザイン(動きをつける等)
2.使いやすく配置するデザイン(ボタン、テキスト等をみばえよくするため)
3.プログラムを効率よくするためのデザイン(設計)

自分が得意というか、それしかできないのですが3番以外はからっきしです。
2番については経験だと思います。
1については流行りをしらないと難しいと思います。
現在ではWEBのデザインはスクロールするだけで機能を読んでいけるようなデザインが多いと思います。
スマートフォン、タブレットの普及により縦長の画面が多くなり、スクロールが容易になったからでしょうか。

ひと昔前のデザインではトップ画面にメニューを並べ、その中からクリックで進んでいくような1画面にすべての情報を表示させる手法が多かったように思います。

3については勉強でなんとかなりますが、1,2、については流行っているデバイス、デザインにより変化するので普段から気を付けているかが重要になるような気がします。
自分も世の中のソフトから勉強したいと思います

プログラミングの入門書から次へのステップ

初めてプログラミングを学ぶとき、
最初は書籍による体系立った学習が重要だと以前書きました。

読みやすい、バグの起こりにくい、修正しやすい、拡張しやすいなど目的の為、
現場では様々なテクニックを用いてプログラムを作成します。
それらの技術を用いて作られるプログラムは、実際にはその多くが、
初心者~中級者向けの一般の書籍の内容でカバーできるものですが、
慣れていないと非常に難しく感じ、
学習内容と実際の現場では、大きな乖離があるように思えてしまうと思います。
最初はコードが読めない、書けないといった事態が起こります。

例えば既存のプログラムを修正する場合、
どの部分を修正すればよいかを見つけるのが最初の難関です。
コードを読む場合、クラス、メソッド、プロパティ、オブジェクト、変数など、
キーとなる部分を把握する事から始まります。
私は最初、それがうまくできませんでした。

私の場合、打開のきっかけとなったのは、
コードに色を付ける拡張機能の導入でした。
たとえばメソッドは黄色、拡張メソッドは斜体、staticメソッドは太字、
プロパティは紫色、局所変数はオレンジ色、コメントは緑色など、
自分のルールを決めて、視覚的に分かりやすくすることで、
どこでどのように使われているのか、コードの把握ができるようになりました。

あとはとにかくプログラムを少しいじって変更してみる。
動作がどう変わるか調べるというのも、当たり前の事ですがとても重要な事です。

 

DataGridViewにグラフを描画

DataGridViewコントロールにグラフ表示を行う機能を追加しました。
現在対応しているグラフは、横棒グラフ・縦棒グラフ・積上横棒グラフ・線グラフ・面グラフ・点付き線グラフなど。

既存のグラフコントロールを使用して、セルのGraphicsオプジェクトに直接描画しているので、他のグラフに対応するのも簡単です。必要があれば円グラフや3Dグラフなども対応できます。

今回の実装により、DataGridViewで表現できる幅が広がりました。

技術レベルの向上

mgcです。

ご無沙汰しております。
今年に入ってから出張ばかりでなかなか社内に居る時間が無く
久しぶりに社内に帰ってきました。

PLCの技術レベルの向上は非常に難しい事なのではないかと
最近ふと思いました。
PLCは特定の機器を動かすためのツールであり
その特定の機器についての理解が不可欠だからです。
各シリンダ等の動き方であったりどういう使い方をするのかであったり
PLCに接続されている機器に対しての理解が無く
ただただ出力を出すだけでは動きとして成立しません。

そういったことから現場経験はもちろん
使用した機器の豊富さであったりということが
PLCの開発技術者としては技術力の向上なのではないかと思います。

折り畳みスマホ

最近折り畳みスマホが話題になっている。
つい最近ではとある折り畳みスマホの発売が延期になりました

中国も韓国も取り組みが早く期待の製品ではあると思います
折り畳みの耐久性、問題等すべて解決すれば文句なしのスマホになるとも思われます

折り畳み問題が解決すれば既存のテレビ等も折り畳みが考慮され面積を占めてしまう液晶も引き出し等に折りたたんで片づけておくことも可能になればいいなと思います
折り畳みスマホで止まらずその先の発展も楽しみです

発売されたとして買うかと問われれば買わないと思います。
現在のスマートフォン並みの耐久性があるかでいえば確実にない可能性が高く、1年も経てば問題が洗い出される改良されるのではないかと思っているからです

弊社のソフトウェア開発で主に使用しているC#には型があります。
型にはメンバー情報や許可される演算の種類など決めることで、
目的に必要な型を選んで使用する事ができます。
コンパイラによってタイプセーフ(型安全)が確認できることも、
大きなメリットですね。

一般的に型とは、何かをつくるもとになるもの、という意味です。
プログラムには開始処理があって、
データを取得する処理、解析する処理、結果を出力する処理、
終了する処理、どんなプログラムでも大きな処理の流れはだいたい同じです。

その処理一つ一つを大きな型として捉えることができるようになると、
プログラム全体を見渡せるようになり、
ステップアップに繋がったように思います。

画像処理ライブラリの機能追加

最近、画像処理案件が続いてあり、社内の画像処理ライブラリに色々と機能追加を行いました。

a) ライブラリの64bit対応
b) 画像処理の並列化
c) 欠陥素子補正
d) 色マッチング処理

まだまだ機能追加したいことがあるのですが、時間が足りないです。
無限に開発をしていたいのですが時間は有限なのでしかたないですね。

高性能マウスとプログラミング

こんにちはmtjです。

現在自分は社内でも高性能マウスを使用しています。
昔家で安物のマウスを使用していた時にすぐスイッチ関連がだめになるので家で使用しており、その流れで会社でも使用しています。

大体の高性能マウスにある特徴的な機能としてはマウス更新頻度の調整があることです。
マウスカーソルの更新頻度があがることにより早く動かしても滑らかな軌跡になります。

しかしこの更新頻度一部のマウスの移動、ドラッグ等に反応するアプリでは重たくなります。
マイクロソフトEXCELをウィンドウを持った時にもったり感がでたり、そもそも描画が満足にできなかったりします。

更新頻度が高ければその分マウス移動イベント、ウィンドウサイズ変更イベントが発生するためでそのために間引き処理等が入っていないアプリの場合には処理がもたつき操作不能になってしまいます。

時代が進めば今作っているよりも何倍も高速なデバイス等が現れ予想外のバグが発生したりする可能性もあるのではないかと感じました。

変換・無変換キー

梅の花も満開を過ぎて、
日中は暖かい日差しを感じる事も多くなってきました。
私も最近、桃の花の枝を買って帰りました。
つぼみが開くのが楽しみです。

キーボードの変換・無変換キーですが、
スペースキーの隣で非常にアクセスのいい好立地にあるのに、
機能としてはいまいちでもったいない感じがします。

私はソフトでキーマッピングを変更して使っています。
例えば無変換キーはこんな感じです。
無変換 + J : カーソルキー左 (連打で高速移動、長押しでHome)
無変換 + L : カーソルキー右 (連打で高速移動、長押しでEnd)
無変換 + I : カーソルキー上 (連打で高速移動、長押しで先頭へ)
無変換 + K : カーソルキー下 (連打で高速移動、長押しで最後尾へ)
無変換 + U : BackSpace
無変換 + O : Delete
無変換 + Space : Enter
などなど。

うまく利用するとマウスへの手の移動が減り、
楽に入力することができます。
道具が自分の手に馴染んでいく感じが心地良いです。

ログ + スクリーンキャプチャ

インフォテックで作成するソフトではログファイルを必ず出力するようにしています。

稼働している設備でなにか問題が発生した場合などにログファイルを調べれば、エラーメッセージ・例外スタックトレース・通信内容・シーケンス状態などが全てわかるようにしています。
これにより問題発生時の原因究明・問題改善が容易になります。

今回、ログ出力に機能追加を行い、エラーメッセージを表示する直前にスクリーンキャプチャ画像ファイルを保存する機能を追加しました。
これにより問題発生時の状況把握がさらに容易になります。

先日もこの機能のおかげで、装置問題発生時のA/D即値や波形が確認できたことで、問題が装置側にあることがすぐに分かり即解決できました。