プログラムを短く書くこと

こんにちはMTJです。

プログラムを書く上で何度も行う同じ処理はメソッドにしてたりして書いたり
何度も同じ処理を繰り返し行う場合にはForEach、Forなどを使って書くことができる。
さらにそれを短く記述するためにLinq、delegateがあります。

これらを使えばほとんどの動作をメソッドを作らずに書くことができる。
階層が深いループ処理もこれを使えば1行にできたりする。

便利な機能ですが、反面使いすぎると読みにくいソースが出来上がったりもします。

自分もこの機能に慣れていき、読みやすく、短いコードで書いていきたいと思います。

ギガビット

社内ネットワークが1Gbpsになりました。
実測した所、今までは約90Mbps。新しくなって約400Mbps。

たぶんジャンボ・フレームにするともっと速くなると思いますが、ネットワーク上に100Mbpsの機器も繋がっているので当分はこのままです。

CALL命令

CALL命令でハマりました。
毎スキャン呼び出しているサブルーチンにOUT命令があります。
CALL命令を止めればOUT命令もオフになると思い込んでいましたが
実はオンしたままになるのです。
ところが、XCALL命令というものが別に用意されていてXCALLでオン
になったOUT命令はXCALLを止めるとオフになるのです。
そもそも、サブルーチンでOUT命令はいかがなものかと思いますが・・・。
やはり、セット&リセットでしょう。そう思いませんか?

デスクトップPCケースの大事さ

こんにちは、mtjです。

最近暑くなってきました、そこで気になるのがPC内部温度。

自分のケースは安いケースで背面ファンしかありません。
現在のケースはTwoTOPの自作PCキットと一緒にきたケースなので
内部も狭く、吸気ファンなどもありません。

GPUを苛酷に使用するソフトを使うとPCが落ちてしまう現象が発生しております。
GPUの温度がケース内で留まりサウナ状態です。
HDDが熱々になっております。

わかりきったことですが、熱でどこかの部分が動作不良を起こし
ブルースクリーンというわけです(Win8で青画面の表示が変わった?)

ケースを触っても暖かいぐらい内部は熱々になってしまい
これでは夏を乗り切るのが本当に怖い。

高額な部品が壊れたら元も子もないのでさすがにPCケース
を少し大きめにしたいと思います。

というわけで、PCで動画編集、ゲーム開発など酷使するような事に使う人は
ケースはよく考えた方がいいのではないかと思います。

内部の掃除をしていないのでホコリで熱が溜まっているだけかもしれませんが。

モバイルwifi

モバイルwifiを購入しました。

前から欲しかったのですが2万円近く、高すぎるので買っていませんでしたが、AWR-100TKが6000円台で購入できることをネットで知り、すぐに購入しました。

これに合わせて楽天のLTEsimカードを購入。
月900円で 1GBまでの通信が行えます。

これで、外出先でも安くインターネットが使用できるようになりました。
(電話会社に毎月毎月高い金を払うのはイヤ)

設定はとても簡単ですぐに繋がります。

1ヶ月使った結果、800MBくらいの使用料でしたので、今後仕事での使用量が増えることも考え、どこかのタイミングで3GB(1677円)に変更しようと思ってます。

GPのDスクリプト

今回の案件で使用したデジタルのGPにDスクリプトという機能があります。

お客様からお預かりしたプロジェクトファイルを解析すると、画面上のスイッチを押すと4面のパラメータ設定画面をSDカードにキャプチャするという内容でした。
たしかに、パラメータ画面を書き写すのは面倒臭いし写し間違う可能性もありますから画面をキャプチャすれば便利です!
なかなか奥深いスクリプトなのでもっと勉強します。

パソコンの今後。

こんにちはmtjです。

現在パソコンはタブレット、スマートフォンに押されてほとんど一般ユーザーには売れていない状態です。

タブレットと普通のデスクトップパソコンの違いは拡張性の高さ、性能の高さで正直ノートで十分な
ユーザーにはタブレットで十分なのです。

そして、性能、拡張性の高さが必要なユーザーは動画編集者、高度な計算をさせる研究者などです。

Windowsの売り上げが落ちる理由もわかります、そもそもWindows自体デスクトップで独占状態
だったのでApple,Microsoft,Googleで売上が正常になった程度ではないのでしょうか。

そして今後はノートPCが縮小すると思います、現状ノートPCを選ぶ理由はあまりありません
デスクトップはコアユーザー向けに高性能化していくと思われます。

家庭ではデスクトップ、外ではタブレットという形体がどんどん発展していくか、タブレットよりも
便利な物がでていくかだと思います。

メソッドに機能を追加するメソッド

今日は.net用の自社ライブラリのお話。

メソッドのデリゲートにログ出力やリトライなどの機能を追加するメソッドを色々と作って使っていました。
以下は使用例。

//ログ出力を追加
Skin.Log(“test”, () => {
Hoge();
});

//リトライを追加
Skin.Retry(5, () => {
Hoge();
});

//メッセージBOX表示を追加
Skin.Msg(“msg”, () => {
Hoge();
});

上記のように1つだけ追加する場合は問題無いが、複数の追加を行う場合以下のようになり非常に分かりにくくなってしまいます。

//メッセージBOXを表示し、リトライを行い、ログ出力をしてから、Hoge()を実行
Skin.Msg(“msg”, () => Skin.Retry(5, () => Skin.Log(“test”, () => {
Hoge();
})));

汚い。特に最後の行の括弧が沢山並ぶのがきもい。
なんとか綺麗に書く方法がないか検討した結果、以下のようにメソッドチェインできるようにしてみました。

//メッセージBOXを表示し、リトライを行い、ログ出力をしてから、Hoge()を実行
new Action(() => {
Hoge();
}).Log(“test”).Retry(5).Msg(“msg”).Invoke();

すっきりしました。けど、追加する順番が逆になり、シーケンスがちょっと分かりにくい。
もう少し良い方法は無いか、今も考えています。

 

プッシュプル出力信号

懐かしい単語を目にしました。
外国製品のエンコーダ入力信号にDC24Vプッシュプル出力信号を接続する仕様でした。
ところが、エンコーダはDC5Vオープンコレクタ出力です。
「こんなん、ないんかなぁ」というときにいつも助けていただいているのがエムシステム技研さんの信号変換器シリーズです。
DC5Vオープンコレクタ信号をDC24V電圧信号に変換するタイプがありました。
毎日1万人くらいの人が私のような悩みを抱えているはずです。
エムシステム技研さん、今後ともよろしくお願いします。

暑くなってきました。

こんにちは、mkwです。

5月の終わりごろから急に暑くなって来ましたね。

この時期になると例年通り熱中症のことがたくさん報道されていますね。

暑くてやる気が失せる季節ですが、水分補給をこまめにして熱中症にも気をつけながら乗り切っていきたいと思います。