ODP.NET が NuGet に対応してた!

「何をいまさら...」と言われてしまいそうだけど、最近Oracleから少し離れていたら、
ODP.NET 12c Release3(12.1.0.2.1)から、NuGetに対応してたんですね。
発行日は2015/01/16と表示されているので、もう2ヶ月以上も前に...

今回はWindowsFormでの使用を前提に、早速試してみました。

NuGetのパッケージ管理から、Oracleで検索すると現れる赤い12cのアイコンがそれです。
2つあります。ひとつはEntity Framework6対応のドライバ。そしてもうひとつがODP.NETです。
2つ目のODP.NETをインストールすると、依存関係にある、Entity Framework6とEntity Framework6対応のドライバとともにODP.NETがインストールされます。
おお、なんと楽チンなんでしょう(笑)。
App.config が自動で生成されるので、とりあえず下記の箇所を動作させる環境に合わせて書き換えます。

  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="dsn" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hoge)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/>
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>
  <connectionStrings>
    <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client"
      connectionString="User Id=foo;Password=bar;Data Source=dsn"/>
  </connectionStrings>
</configuration>

とりあえず、簡単なテストを...
とあるテーブルから、全件をSelectし、textBoxに書き出す。

private void button1_Click(object sender, EventArgs e)
{
    this.textBox1.Text = "";
    using (var Conn = new OracleConnection())
    {
        Conn.ConnectionString = ConfigurationManager.ConnectionStrings["OracleDbContext"].ConnectionString;
        Conn.Open();
        string strSQL = "select CODE,NAME1 from TABLE1 order by CODE";
        OracleCommand Cmd = new OracleCommand(strSQL, Conn);
        OracleDataReader Reader = Cmd.ExecuteReader();
        while (Reader.Read())
        {
            this.textBox1.Text += Reader.GetString(0) + ":" + Reader.GetString(1) + "\r\n";
        }
        Reader.Dispose();
        Cmd.Dispose();
    }
}

たしか、すでに Code firstにも対応していたと思うので、近いうちにそちらも試してみようと思います。

Nexus5(5.0.1)でLTE/3Gが使えなくなった!

1年ほど前に Nexus5をGoogle Playで購入して MVNO(BIGLOBE)のSIM入れて使ってます(妻がw)。

電波は拾っているようなのですが、アンテナのアイコンに「!」が表示されて、モバイルネットワークが使えません。APNを再設定などしてみたけどダメ...

どんどん深みにハマって
system recoveryのメニューから
wipe cache partition を実行して再起動したら、
ロドイド君がお腹を上にして「!」を出しちゃう始末...
きゃぁ〜〜〜やっちまったかぁ?
気を取り直して再度 wipe cache をかけるとリカバリーしたようで
(ボリュームの大や小ボタンで動作が変わるので注意が必要
 ちょっと焦ってたので画像取り忘れた orz )
とりあえず元にもどった。が、そもそもの問題は解決せず...

振り出しに戻ったところで、最初から考えて見ることに。

端末の状態を確認すると、
「モバイルデータ通信」が「切断」
と表示されているということは、
単純に「使わない設定」になっているのではないかと。
で、ふと思う。
以前のバージョンで「モバイルデータ通信を有効にする」というメニューは何処へいった?

どうやら
[設定]-[データ使用量]-[モバイルデータ] の オン/オフ 
これに変わったらしい。
なんか変じゃないか?このメニュー。
なんで[データ使用量]の中に オン/オフ があるんだよ。

確認すると、なんとここが「オフ」になっているじゃないか!
「オン」に変えると、何事も無かったかのようにアンテナアイコンに「LTE」の表示が...

うーん、やっぱりあまり好きになれないな...Android
(個人的な感想ですw)

OS X/LinuxによるASP.NET 5アプリ開発ガイド

気がつくの、遅れたましたが、
こんな記事が連載されてました。
第1回 ASP.NET 5をOS X/Linuxで使うための準備 (1/5):連載:OS X/LinuxによるASP.NET 5アプリ開発ガイド - @IT
時間作って試したいのであります!(←日本語が変w)

こちらも、要チェック!
2015年に到来する大変革「次期.NET/ASP.NET/Visual Studio、Windows 10」に備えよう ―第7回 業開中心会議 (1/2):連載:業開中心会議議事録 - @IT

「はじめよう!要件定義」を読みました。

業務系のシステムに携わっている技術者で、プログラマとしては優秀なのに、上流工程は苦手だったりする人がいます。特に汎用機全盛以降にその傾向が見られるように思います。
ソフトウエア(プログラム)の作り方や技術が多様化し習得も大変なのですが、業務系では業務に役立ってなんぼなもんなので、ソフトウエア的な技術に偏った知識ばかりでも居られません。
システムを設計するエンジニアと、実装するエンジニアが分業されている場合、その間を埋める工夫も必要です。

それが、なかなか難しいんですよね。
もうこの業界の、ウン十年の課題だったりもします。

そして、一番重要なのは「要件定義」。
システム作りは「要件定義に始まって要件定義に終わる」と言っても過言ではないと思います。

UMLを使いましょう!」なんてアプローチもありますが、
そんなもの、システム屋どうしなら使えますが、一般のお客との打ち合わせでは(普通は)使えませんし、私個人的には、UMLが良いと思えたこともありませんでしたので、独自の図や絵を活用する事が多いです。

そんなこんなで(笑)、みなさん(システムの発注側も受注側も)すっきりしない中で、要件をなんとかまとめ(たつもりで)システム開発をスタートして、てんやわんやして、(運良く)なんとかカットオーバー...ということも少なくないと思います。

そんな状態から少しでも抜け出したい人向けの良書です。
発注側、受注側両方の立場それぞれの立場で有効だと思います。

そして、著者も本書のあとがきで書かれていますが、

本書の肝は「画面遷移図を書こう」

激しく同意です(笑)。

平易な言い回しと、かわいらしいイラストで、すらすらと読むことができます。

はじめよう! 要件定義 ~ビギナーからベテランまで

はじめよう! 要件定義 ~ビギナーからベテランまで

WiFiその後

NTT西日本光回線を、Bフレッツからネクスト「隼」に替えたので、
それにあわせてWiFiの親機も取り替えました。
新しい親機はNEC Aterm WG1800HP2。
2.4GHz帯に加え5GHz帯も使え、IEEE802.11acにも対応してます。
親機変更後、iOSWiFiの不調は解消しました。
それは良いのですが...
「隼」は遅い!というか時間帯で速度がかなりバラつく感じです。
収容回線数が多いのでしょうね。
以前のBフレッツの方が安定してました。
もう少し、Bフレッツで粘ればよかった。はやまったかも...

iOS 8.1.3でWiFiが不調になった...

先日、iPod touch(5th)とiPad2iOS 8.1.3 にUpdate しました。
直後は気がつかなかったのですが、数日してWiFiが切断されるような現象が
発生するようになりました。
特に YouTube などの動画を再生している最中に発生する事が多いのですが、
動画に限らず、容量が大きなページにアクセスしても同様な現象が発生します。

一旦現象が発生すると、iOS側でWiFiに接続し直せば復帰出来る時と、出来ない
時があります。
出来ない場合は、WiFiの親機に接続することも出来なくなってしまいます。

同じWiFi親機に接続している WindowsのNote PC と MacBook Pro では問題が
発生しません。

現象からすると iOS か、WiFi親機と iOS との相性に問題がありそうです。

使用しているWiFi親機は、バッファローの「WZR-HP-G301NH」。
11n/g/bに対応していますが、2010年の発売で、もう販売終了している製品です。

まず、ファームウエアのバージョンを確認してみましたが、最新(最終?)版でした。

で、この機種には本体前面に「ムービーエンジン・スイッチ」という物がある
のですがこれが「off」になっていたのでこれを「on」に変更したところ、
安定して動作するようになりました。

この「ムービー・エンジン」をonにすることで、具体的に設定がどう変わるのか
わかりませんが明らかに安定するようになりました。
iOS8.1.3にUpdateする前は「off」でも特に問題は無かったのですが...
それにしても、WiFi親機に接続できなくなるのは明らかに変です。

とりあえず、これでストレスはなくなりましたが、
近いうちにいまどきの11ac対応の親機に変更した方がよさそうです。



※2/9 追記
前よりは安定したけど、やっぱり変...

Coinのご紹介

工事情報管理システム(Coin)を何回かに分けてご紹介していきます。

このシステムは、建設業(サブコン)向けに開発した業務システムです。
工事案件の見積から受注、予算、実行、完工、請求までの主な機能から、
社員の出退勤や予定管理、作業日報。
上司や同僚とのコミュケーションを円滑にする為の伝言板機能も備えています。

基本的には、システム内部で「伝票」を起票し、伝票種別毎に、あらかじめ
設定された承認ルートにの従って、Web画面で承認されます。

「基幹業務と、グループウエアがシームレスに融合している」

と表現すればお分かりいただけるでしょうか?

ログイン後に表示されるメニュー画面です。

表示されるメニューは、担当者毎に割り付けられた権限で
利用可能な機能だけが表示されます。

メニュー右横の「!(数字)」は、ログインしたユーザーに対して
何らかのアクションが必要な状態である事を示しています。
例えば...

                                                                                                              • -

・自分が承認者の場合、自分宛の未承認の承認伺がある。
・承認伺を出した伝票が「否認」された。
・なんらかのアラームが発生している。

                                                                                                              • -

などがあります。

工事案件の[見積]から始まり、
成約した工事は[工事台帳]で管理されます。
[台帳管理]では、
[受注]-[予算]-[発注]-[支払]-[請求]-[入金]-[完工]
の一覧の流れを、工事毎に管理していきます。

伝票の承認もすべてこのシステムの画面で行います。
大口工事などで現場事務所を構えた場合でも、
インターネットが利用出来る環境さえあればシステムを利用出来るので(*1)
現場事務所でもタイムラグなく業務が遂行出来ます。

勿論、モバイルPC、タブレットスマホ(操作性は落ちます)などからも
利用出来ますので、承認者が出張や外出先、自宅などからも承認も可能です。
意志決定と各自行動のスピードアップが図られます。

*1:インターネットVPNの利用を推奨します。


お問い合わせ先:http://www.katsu-sd.com/