アーカイブ

Archive for 2011年11月

ドメイン変更したら、NuGetが使えなくなっちゃった

つい先日会社のドメインサーバーが逝ってしまわれ、急なドメイン変更を行ったんですが、Windows7ではプロファイルのコピーが行えず、更にWindows移行ツールもドメインが死んでいる状況ではうまく使えないので、諦めて手動でファイルをコピーして作業を続けています。

まぁ、いろいろ出てくるんですが、NuGet君もへそを曲げてしまいました。

Library Manager Consoleにこんなメッセージが出ます。多分権限なんだろうなぁと思いながら。

image

スクリプトの実行がシステムで無効になっているため、ファイル C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager\1.5.20902.9026\Modules\NuGet\profile.ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。

拡張機能マネージャーからは、NuGetはアンインストールできないので、Visual Studio GalleryからVSIXファイルを直に落としてインストールしてあげたら、機嫌を直してくれました。

http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

カテゴリー:ASP.NET タグ:

PC用のサイトからスマートフォン用のサイトを動的に再構築するサービスshutto

RSSを眺めていたらshuttoっという、PC用サイトからスマートフォン用サイトを動的に再構築するサービスが話題になっていました。ちょっとした静的なページだったらこういった選択肢もありなのかも。

たぶんそのまま使えるかどうかと言うよりは、サイトのイメージ作りにちょうどいいです。

PC用ホームページのHTMLをまるごと読み込んだあとに、スマートフォン向けにゴソゴソするようです。

http://shutto.com/

image

カテゴリー:モバイル タグ:

パフォーマンスカウンターでODP.NETのプーリング状態を確認しよう

2011年11月22日 2件のコメント

.NETからOracleデータベースに接続する場合は、ODP.NET(Oracle Data Provider for .NET)を使うことがほとんどだと思います。ODP.NETも他のADO.NETのプロバイダーと同様コネクションプーリングなどの機能は標準でサポートされています。では、実際にプーリングが効いているかを確認するにはどうしたらいいでしょうか。

ODP.NETのコネクション状態を確認するには、ODP.NETのインストール時に自動的に追加されるWindowsのパフォーマンスカウンターを参照するのが簡単です。パフォーマンスカウンターの参照方法は、ODP.NETのマニュアルに詳しい解説があります。→ 接続プール・パフォーマンス・カウンタ

前々から存在自体は知っていたのですが、なぜか表示されないので諦めていましたが、ODP.NETのマニュアルにしっかり書いてありますね。レジストリーの値と構成ファイル(web.config|app.config)を変更して、有効にしてあげましょう。

レジストリーの変更

パフォーマンス・カウンタの公開を個別に有効または無効にするには、タイプREG_SZのレジストリ値PerformanceCountersを使用します。このレジストリ値は次のようになります。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Version

うちのPC(Windows7 64bit)の場合は、コッチみたい

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\ODP.NET\Assembly_Version

構成ファイルの変更

<configuration>
  <oracle.dataaccess.client>
  <settings>
    <add name="PerformanceCounters" value="3"/>
  </settings>
  </oracle.dataaccess.client>
</configuration>

設定する値は、ODP.NETのマニュアルの表3-2に定義された値の合計です。マニュアルでは、HardConnectsPerSecond(1)およびHardDisconnectsPerSecond(2)の値を採りたいので3が設定されています。すべての値を採りたい場合は、4095を指定すればいいでしょう。

両方に設定が行われていると、収集可能なインスタンスが表示されます。インスタンスはAppDomain単位で表示されるようなので、確認したいインスタンスを選択して追加ボタンをクリックしてカウンターを追加してあげましょう。

image

こんな風に表示されます。動きが少なくてあんまり面白くないですね。

image

WindowsPhoneアプリをPhoneGapでつくろう

PhoneGap1.2ってWindowsPhoneに正式対応してたんですね。いつのまにやらGitHubからApatchSoftwareFoundationに組み込まれてるし。ちょっと離れるとびっくりすることがたくさんです。

まずはインストールしてみましょう。

PhoneGapってなに

PhoneGapを使うと、JavascriptとHTMLでWindowsPhone、Android、iOS用のハイブリットアプリ(HTMLアプリをブラウザーコントロール経由でネイティブアプリとして使う)を作成することができます。

Mono for AndroidなんかだとコアロジックはC#で書くけれど、プレゼンテーションレイヤーは各環境に応じて実装してねいうスタンスだったのに対し、各スマートフォン環境ではWebの標準技術であるHTML5+Javascriptを標準でサポートしているんだから、Webブラウザーコントロールを使ってパッケージに組み込んだローカルHTMLと+ネイティブ機能の拡張でどの環境でも動くようにしてしまおうという方針。

WindowsPhone 7.1

前述のとおり、他の環境への移植を考えると標準技術であるHTML5+jQueryMobileで実装してしておいたほうがいいでしょう。となると、ほとんどHTML5を理解出来ないIE8のWindowsPhone7だと無理があって、必然的にIE9以上が採用されているWindowsPhoneは7.1(Mango)以降が対象になります。

インストール

Windows Phone SDK 7.1のインストール

PhoneGapを利用する場合、各スマートフォンのSDKが必要になるのでWindowsPhone用アプリの開発に必要なWindows Phone SDK 7.1をダウンロードしてインストールしましょう。こいつを入れると無料のVisual Studioも一緒に入るのでお手軽です。

PhoneGap1.2のインストール

しばらく前までは、最新版はGitHubのWindowsPhone用のリポジトリからダウンロードできていたんだけれど、ASFに移動してからはどこに最新ソースがあるかいまいちわかりません。とりあえず最新版であるPhoneGap1.2はPhoneGapのホームページか、日本のファンサイトであるPhoneGapFunからダウンロードできます。

追記 GitHub上はココにあるようです。https://github.com/callback/callback-windows-phone

ダウンロードした「callback-phonegap-1.2.0-0」なZIPファイルを解凍すると、WindowsPhoneディレクトリーにPhoneGapのWindowsPhone用のフレームワークや、サンプルアプリ、Visual Studioのテンプレートが格納されています。Visual Studioで開発を行うには、「GapAppStarter.zip」をVisual Studioのユーザー別テンプレートフォルダーにコピーします。

Windows 7, Vistaの場合のコピー先

%UserProfile%\Documents\Visual Studio 2010\Templates\ProjectTemplate

プロジェクトの作成

Visual Studioの新しいプロジェクトダイアログでC#のプロジェクト一覧に、「GapAppStarter」というプロジェクトテンプレートが表示されます。下記はPhoneGapでフィルターした結果。

image

プロジェクトを作成すると、次のようなすぐに実行可能なPhoneGapのロジェクトが作成されます。

image

実行するとこんな感じの画面が起動します。エミュレーターの起動や動作が早いっていいですね。Andoriodエミュレーターはなんであんなに起動や動作が重いんだろう。。。(このエミュレーターの動作だけでもVisual Studioを採用する意味があるきがする。)

image

jQueryMobileの組み込み

せっかくのハイブリッドあぷりなのだから、複数のデバイスで動かせるようにHTMLを構成したいということで、PhoneGapでアプリを作成する場合はUI系のフレームワークを導入します。まぁいまだったらjQueryMobileを選ぶのが無難ですよね。Visual Studioを利用しているので、Package Manager Consoleから、jQuery.Mobileをインストールしましょう。もちろんCDNのスクリプトを参照してもいいけれど、出来ればオフラインで使いたいので。。。

PM> Install-Package jQuery.Mobile

ただこのままだとCSSとスクリプトがプロジェクトのルートフォルダーに展開されてしまうので、PhoneGapのしきたり(?)に則ってwwwフォルダー以下に移動させてあげましょう。(Update-Package時には結局再度コピーし直さないと行けないけれど、NuGetでインストールしたモジュールの配置先の変更を設定とかできないもんかな)

PhoneGapで最初に読み込まれるHTMLはwww/index.htmlなので、インストールしたjQueryMobileを読み込みます。

<head>   <title>WindowsPhone7.5 PhoneGapSample</title>   <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />   <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>   <link rel="stylesheet" href="Content/jquery.mobile-1.0rc2.min.css" />   <script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script>   <script type="text/javascript" src="Scripts/jquery.mobile-1.0rc2.min.js"></script>
</head>

あとはjQueryMobileなので、こんなHTMLをbodyに書いてあげれば

<body>
<section data-role="page">   <header data-role="header"><h1>PhoneGapSample</h1></header>   <section data-role="content">     最近読んだ本     <ol data-role="listview">       <li>スティーブ・ジョブスⅠ、Ⅱ</li>       <li>GATE7 2巻</li>       <li>リアル9巻</li>       <li>魔法科高校の劣等生3巻</li>     </ol>   </section>   <footer data-role="footer">wordpress.karuakun.com</footer>
</section>
</body>

こんなかんじで表示されます。見た目はブラウザーアプリなんですが、WindowsPhoneにちゃんとインストールされてオフラインでも動きます。

image

あれ?PhoneGapのライブラリーでエラー?

って、ここまでは良かったんだけれど、PhoneGapのJS側でエラーが出るみたいで、phonegap-1.2.0.jsをリンクするとページが真っ白になっちゃう。どうもJavascript側でエラーになっているようなんだけれど、Visual Studio側でエラーが起きても止まってくれない。。。

WindowsPone版のPhoneGapって、実際はWebBrowserコントロールのラッパーになっているので、こいつがJavascriptのエラーをちゃんとVisual Studioに通知してくれればいいんだけれど。。。うーん。悩んでもわからなかったので今日はここで終わり。

jQuery Mobileのテーマを簡単に作成できるサイト

CSSを追加してjQuery Mobileのデザインをカスタマイズ!の記事で、jQueryMobile版のThemeRollerがあるのを初めて知りました。

http://jquerymobile.com/themeroller/

image

画面上部のカラーピッカーで色を作って、適用したい部品にドロップすると対象のスタイルが変更されます。スタイルの変更が終わったら、サイドバーのDownload ThemeからCSSをダウンロードできますし、Shareリンクから他人に公開することも出来ます。

CSSはなんとなくしか触れないので、IEの開発者ツールなんかを見ながらちまちま変えているんですが、GUIで操作してダウンロードできるサイトがあると助かります。

jQueryUI版はこっち

http://jqueryui.com/themeroller/

カテゴリー:ASP.NET, プログラミング タグ:

安定供給って大事だよね

なんとなくおもったこと、普段と違う感じで書いてみよう。

いま行っている会社の近くにあるホテルでは、今年の初め頃からお昼に格安でお弁当を売り出しています。最初は利用者も少なく値段(400~550)の割に量や味などがそれなりなので重宝していたのですが、どうもこのごろ売り切れだったりやけに余っていたりするんですよね。

確認したわけではないのですが、前日に残った材料を元にお弁当を作っているようで、毎日売り出す量が安定していないので、12:30をすぎるのにやけにたくさんのお弁当が残っていたり、12:00ジャストにいったのに既に売り切れだったりといった状況になるようです。

最初に立ち寄った弁当屋さんでほとんど選択肢がなかったり、そもそもお弁当が無いという状態になると、それだけで重要なお昼休みが少なくなってしまいます。そのために会社の近くのホテルはあまり利用しなくなってしまいました。

まぁホテルの副業なのでそれほど、売上は期待していないのでしょうが、ロスが出たら損だし、買いにきたお客さん逃しちゃっても損だよね。安定して消費者に商品を届けるのって重要だよね。

ITのサービスでもクラウドなんかでインフラはそれなりに整うようになって負荷対策という面では楽になったけれど、そのピークをどうやって見極めるかって管理は、副業でやっているとおろそかになりそうだなーなんて、つらつらと書いている中で思いました。

カテゴリー:雑記 タグ: