プログラムを書く

こんにちはMTJです。

プログラムをする上で、何をどこまで知っていなければいけないのか
とは常々考える問題です。

例えば自分たちの仕事なら、プログラムの事より機械に詳しくないと仕事
自体が進みません。
只上記の事はプログラムミングの知識ではありません。
C#ではメモリの管理やポインタなども行う事が無いので
アドレスうんぬんなどはほとんど触ることが無い部分です
実際自分もプログラムをしてますが、ほとんどメモリ空間など
を意識したことはありません。

もちろんHTML5などのプログラマーもほとんど考えることは
ないでしょう。

しかし、C++やマイコンのプログラムなど機械に近いような
プログラムを行う人は意識しなければ完成もしないのではないのでしょうか。

結局、プログラムというと覚えることはかなり多岐にわたってしまい
近道をするためには先人達のしていることをとりあえず覚える、
覚えたうえでそちらについて詳しく調べるという行動が必要だと感じて
います。

只、その覚えるという行動が浅くなってしまうと、その先まで浅くなっていってしまう
泥沼感があるのが痛い点です。

違い

こんにちは MTJです。

作成するソフトで、制御に近いソフト、データベースなどネットワークに近い物など様々な物がありますが、
データベースなど複数のクライアントから1つのデータに対してアクセスするものに関しては意識する部分が
かなり異なっていると感じました。

普段装置とのソフトを作成しているのでいつもは気にしない部分、ファイルの排他処理などの部分で
様々な事に躓きました。
今回思ったことは1つのファイルに追記していく方式でなく、何時~何時という感じで
ファイルを区切り、1つ1つのファイルを結合することで1つの期間とするようなファイル
の持ち方にすることで、上書き中のファイルにアクセスすることで失敗などが発生しなかったのではないか
と思いました。

ここら辺は経験量によるものだと思います。

デスクトップPC

こんにちはmtjです。

昔からPCを使用していると何度もPCパーツの進化に振れることがあります。

例えばHDDなんかも今や1TBは当たり前、さらには高速のSSDまである状態です。
CPUも今は8コアは当たり前(自分はAMDCPUを主に使用します)

さらにはヒートシンクなども無しで運用可能な低TDPな物も多く出ています。
チップ内蔵グラフィックスも進化していて今やタブレットでもかなりのゲーム、
動画などが視聴可能です。

自分はタブレットよりはデスクトップPCをよく使用します、主に用途はゲームなのですが
動画処理ソフトも使用し、動画処理ソフトはCUDAに対応しているのでGPUにも左右されています。
最近はゲームの方の進化よりもパーツの進化が早いので、20万でも出せばしばらく運用できて
ストレス無く稼働可能な環境が手に入ります。
数年前なら20万でノートPCが手に入る状態です。

用途がゲーム、動画編集しかないので重要なのは基本的にGPUです、なのでCPUはAMDでも
何も問題ありません、処理スコアなどを測定しない限りは気にならない物だと思います。

以前も書いた通り、現在のパーツは低電力、高性能に向っているような気がします。
CPUのコアも倍々に増えているわけでなく落ち着いてきたような感じです。
デスクトップで低消費が進めば、タブレットも高性能になっていき、SSDも安くなれば
ますますタブレットが使いやすくなると思います。

Surface pro3の時も思いましたが、あの小ささでストレス無く動くのには驚きました
発熱量が多いので持っていると熱いですけど。

この先のデスクトップの販売戦略がどうなっていくのかは少し期待している所です。

装置依存のPGの危険度

こんにちはMTJです。

現在装置に依存しているソフトを作成しています。
装置のライブラリを使い装置のデータを取得するというものです、
タイトルにも書きましたがこれの危険なところは装置が本当にどういう動作をするかわからないところ

戻ってくるデータは仮想的に作れますが、装置の動きは予想して作れません、
こういう事もありました。
・装置がある動作をしたときに装置の状態を調べる関数をPCから送る。
上記の動作をさせた時に装置が操作不能になることがありました。

装置のメーカーに問い合わせたところその関数は装置内部に問い合わせを行っており
操作が被ることで操作不能になるかもしれないとのことでした。

この問題が何で発生しているか特定するのも大変でしたが、問題はどちらもエラーも発生せずに
動いていることでさらに特定が難しくなっていました。

装置依存のソフトを作成する場合は、この関数は装置の内部に何か操作を要求しそうか
など考えながら作成したほうが時間を取られずに済むのかと思いました。

entity frameworkについて2

道辻です。

現在EntityFrmeworkを使用していて問題にあたりました。
それは、旧バージョンから新バージョンDBにアクセスするとエラーが発生するのです
新バージョンで旧バージョンならmigrationで勝手にDBをアップデートしてくれますが
旧から新はDBのバージョンがうんぬんでまったくアクセスできなくなります。
普通に考えれば旧バージョンから新バージョンにアクセスするなんて変な話ではありますが
装置などで24/7動かすソフトではあり得る話でした。
はやりのWebアプリでは全く必要の無い機能だと思います。
Webアプリのアップデート時にはアクセス不可にしサーバー、クライアント両方のソフト
をアップデートし、クライアントアクセス時には必ず最新版にするので、この機能が無いのは
普通だと思いました。
逆にアクセスできないのでアップデートされていないので更新してくださいというエラーを出す
ようにもできると思います。

結局解決するために、LinqToSqlの方でDB操作を行う事にしました。
DBを更新する場合はDBとテーブルを合わせないといけないため保守は大変になりました。

Entity Framework コードファースト開発

こんにちは、mtjです。

現在DBの開発を行っており、今回はEntityFrameworkを使用して開発しております。
これで便利なのが、コードファーストなので接続先のDBさえあれば勝手にテーブル、
リレーションなども作成してくれます。

テーブル定義もコード上に記載するので確認も容易です。
通常ではテーブル定義を書いて、データベースを開いてなどコード上では面倒の多い事がありません。

データベース検索もSQLを発行することなくLinqでアクセスできます。
TestCont.TestEntity.Single(x=>x.Id == id);
のような感じで容易にアクセスできます。
テーブル定義の変更もコード上のクラスの定義を変更するだけでMigrationが変更を検知し
自動でDB書き換えのコードを作成してくれます。

ソフト開発者としてはSQLサーバーを気にせずアクセスできるのは大変便利な事です。
通常だと変更があったらDBの定義を変更するコードを書いたり、それに伴ってコード上のテーブル定義
などの修正も行う必要がありますが、このフレームワークの場合はコードを気にしているだけでいいという感じです。

またテスト環境を容易に構築できる利点もあるので今後DBはこのフレームワークを使っていくと思います。

kindle Voyage買いました。

mtjです。

自分は漫画でも文庫本でもよく読むのでkindleを買いました。
大体漫画でも全巻買えば段ボール1箱程度、文庫本2冊でも結構場所を取りますよね。
そのスペースを6インチタブレット1つにできるなら買おうと思って購入しました。

大抵文庫本というのは気が向いたらもう一回読みますが大抵文庫のスペースは
遅いので本棚を探すか、押し入れを探すかになってしまいますが
これはデータがAmazon上にあるので探す手間も保管しておく場所も必要ありません。

さらに、電池の持ちも良いので読んでいて充電がストレスになることはあまりありません。
自分の読む速度なら漫画6冊程度読んでも半分以上電池がある状態です。

欠点を言うならマイナー作家などの本がないこと、文庫のジャンル毎に分けられていないこと
できればホラーとか色々分かれていた方が本屋で歩いて探すような楽しさがあって良いのですが。
本屋で歩いて探して、kindleで買えばいいだけなんですけどね、あれば。

というわけで、概ね満足です。
タブレットで一番の欠点の電池の持ちを考えれば良い買い物したなと思います。

雪。

こんにちはmtjです。

今回の年末は予想以上に雪がすごい年でした。
昼に雪かきを行い夜に出かけるということになり外を見ると、雪かきした量と同じような量の雪が積もっている
という状態でした。

京都に帰るときも電車が雪下ろしで停車する程度でした。
毎年、ある程度は白い景色ですが、今年のように長い間真っ白は久しぶりに見た気がします。

家のベランダが雪の落下で一緒に抜けた時ほど降ってはいませんが、最近では珍しいほど
降りました、これぞ雪国という雰囲気でした。

また、名物の土産の水羊羹は案外賞味期限が短かったので注意しましょう。
いつも、買ってすぐ食べるものだったので気にしていませんでした。

PC換装

こんにちは MTJです。

デスクトップPCの中身を改造しました。

簡単な内訳は以下の通り

CPU 6コア3.5ghz = 8コア 4.0Ghz
GPU NV GTX460 = GTX970OC
メモリ 4GB = 12GB
ケースも変わったので、ファンが全面2、背面2、下部1の扇風機状態です。
近づくと風が抜けて結構寒い状態です。
と全体的にいい感じになりました、熱落ちも心配なくなりそうです。
使い勝手は前より色々ときびきび動きます。
これでまた4,5年は同じパーツでいけそうです。

さて、LINUXサーバーの方はいろいろいじっていたら起動しなくなりました。
いじっていたせいか侵入されて壊されたかはわかりませんが。
細かく言うと起動はするのですが、肝心のコマンドなどが使えない状態
YUMコマンドとか。

しかたがないのでセント君を7にして再インストールを行いました。
ネットワーク管理をさらに強化して再インストール、データも拾えなかったので
色々と最初からやり直しと悲しい状態です。

コンピューターの小型化

こんにちはmtjです。

サーフェイスを使っていて思うのですが本当PCの小型化はすごいと実感します。
この性能のPCを約700gで持ち運べるようになったというのは凄い事だと思います。
6年ぐらい前ではいいノートPCは2kg程度でした、それでもいろいろ厳しい事も多かったと思います
しかし、現在ではこの性能、かつ、重量も軽くという状態になってきました。

PC業界が売れないというのもわからないでもないですね
自分自身はデスクトップの自作なのでPCそのものは買ってませんが

色々な小型化、低発熱、低消費電力の技術でいろいろな作業をするにしても最近
ではハイエンドノートPCで十分なほどです、重量は5kg程度でなかなかに軽いです。
そう考えると出来合いのデスクトップは個人レベルでは本当打つ手なしな気がしてきます。

自分が買うならノートにします。中身を変更したいのでデスクトップにはしますが
結局のところパーツを交換するとかハイエンドなPCを求めない限りはもうデスクトップ
はすたれるだけのような気がします。

個人的には廃れて欲しくない部分ではありますが。