TF255050 TFS and Reports setup

Recently, whilst helping a customer upgrade to TFS 2013 we hit an issue configuring SQL Server Reports within the TFS Admin console.   In this particular dual tier configuration, SQL Reports was setup on a different server to the TFS databases.  Here the solution was to ensure that the account that TFS was running under was a local admin on the SSRS machine whilst TFS Reports was configured.  This can be removed once it's be setup.  

Posted by on 23 July 2014 | 4:04 am

What events and columns are analyzed by SQL Server Upgrade Advisor from a SQL Trace .trc file?

  Went to a customer this week to assist them with the risk assessment and work planning to accomplish the upgrade of several business applications’ databases. Question was, what events and what columns should a .trc trace file include that will be analyzed by the Upgrade Advisor? Couldn't find the answer to that question documented, so went to see the source code of Upgrade Advisor to find the authoritative answer I was aiming for, and this is what I found in there. The interesting events to collect are SQL:StmtStarting, SQL:BatchCompleted, SQL:BatchStarting, SP:Starting, RPC:Starting, RPC:Completed, and SP:StmtStarting, and the only columns which are relevant to UA are DatabaseName, SPID, and TextData. Thought it could be worth documenting so that others in search of this piece of information could benefit from it as well.

Posted by on 23 July 2014 | 3:40 am

XAML とは何か?

今更ですが、XAMLとな何なのかということを私なりに解説したいと思います。このような考えに至ったのは、色々な状況があるにせよ Windows Froms などの UI 技術が広く使われているのと、XAML を初めて学ぼうとしたときに書籍を含めて、新しい情報が少ないと感じたからです。 XAML が登場した背景 XAML(eXtensible Application Markup Language)は、.NET Framework 3.0 によって提供された技術になります。 .NET Framework 3.0 は、Windows Vista と同時に提供されたフレームワークになります。この時に、UI を作るための技術として WPF(Windows Presentation Foundation) とワークフローを実現する技術として WF(Windows Workflow Foundation) も提供されました。WPF は、UI を定義するために XAML を採用しており、XAML が UI 技術と考えがちですが、名前にアプリケーションが含まれていることから WF でもワークフロー定義として XAML を採用していました(この採用は、限定的であり、XAMLでなくともワークフローを定義できました)。XAMLが、広範なアプリケーションで利用可能になるには、.NET Framework 4.0(System.XAML 名前空間が提供されました)になります。 Windows Vista では、新しいエアロ テーマなどに代表されるように美しいグラフィックスを提供した OS となります。商業的に成功したと言えませんが、技術的には Windows XP と大きな違いが何か所もあります。代表的なものを以下に示します。 新しいディスプレイ ドライバー モデル(WDDM-Windows Display Driver Model-) デスクトップ ウィンドウ マネージャー(dwm) ユーザー アカウント制御(UAC) 64 ビット OS Windows XP までのディスプレイ ドライバーは XPDM(Windows XP display Driver Model)と呼ばれており、Windows Vista 以降の WDDM との互換性はありません。新しディスプレイ ドライバーになったことで、ディスプレイ ドライバー レベルでの Direct 3D に対する新しいプログラミング モデルを提供できるようになりました。つまり、OS レベルで GPU の恩恵を受けられるようになったことを意味しますし、このためにデスクトップ ウィンドウ マネージャーにより コンポジションなどが意味を持ってきます。 Windows XP までは、GPU を活用するにはDirectX などを採用したアプリケーションのみに限定されており、広範なアプリケーションへ GPU を活用できる道を開いたのが Windows Vista から採用された WDDM になります。しかし、新しいドライバー モデルへの移行には、様々な障害がつきものです。その大きな一つが、ディスプレイ ドライバーの性能が向上しないというものです。この理由から、Windows Vista ではダブル バッファリングという技術を採用しました(これが、Windows Vistaは遅いと呼ばれた原因です)。ダブル バッファリングは、描画内容をメモリ上に展開してから、GPU などを使って一気に描画する技術ですから、スムーズな描画をするには大量のメモリがあった方が良いのは自明のことになります。しかし、Windows Vistaリリース当時のハードウェアでは、メモリ1GというPCがローエンドで販売されていましたし、メモリ4Gとなると高価格帯であるハイエンド機種のみとなっていたことも、商業的に成功しなかった理由であろうと私は考えています。しかし、Windows Vista によって64 ビット対応のドライバーの拡充であったり、UACへの対応であったりと、次の OS である Windows 7 に対するドライバーなどの整備が順調に進んだと言えるでしょう。当時のMacOS X は、32ビット カーネルのLeopardであり、限定的な 64 ビット対応をしていたと記憶しています。MacOS X と比べると、Windows OS は、64 ビット化へ道をビッグバンで進めてきたとも言えるでしょう。 Windows 7 になった時点で、WDDM は1.1 となり、ダブルバッファリングを廃止しました。もちろん、これだけではありませんが、様々な改良を経て、多くの方に使っていただける OS となりました。ここまでの説明で明らかなことは、Windows OSの描画機能が、OS レベルで Direct X をサポートするようになったのが Windows Vista 以降だということなのです。 一方で、Windows OS のグラフィカル ユーザー インターフェースはウィンドウが主体となっています。古くは、16 ビット時代の Windows 1.0 に始まった GDI(Graphics Design Interface)によるものであり、Windows 9x までは多くのコントロールなどを多用したアプリではリソース不足に悩まされたことが何度もありました。リソース不足は、Windows XP に代表される 32 ビット OS の時代では、お目にかかる機会も少なくなりましたが、一部のアプリケーションではテクニックによってリソース不足を解消していたと私は聞いています。つまり、GDI を採用した技術である Windows Forms などは、16ビット Windows 時代から慣れ親しんだ ウィンドウ ハンドル(hWnd)を使用する Win32 API との親和性が高いのです(ベースになっている技術が一緒だからです)。それでは、WPFのに代表される XAML を使った UI 技術はどうでしょうか? Windows Forms などの GDI とは、全くの別物と呼ぶことができます。私が別物と呼ぶ理由は、後で説明しますが、GPU を有効活用して GDI とは異なる新しい ユーザー体験を作るための技術が WPF だということになります。 今度は、アクセシビリティというか、表示の見易さという観点から 最新 OSである Windows 8.1 を考えてみます。Windows 8 では、ピクセル密度という考え方がデザイン ガイドとして導入されました。画面表示におけるスケーリングを、100%、140%、180%を自動的に行うというものです。たとえば、Surface Pro は10.6インチで1920x1080(フルHD)という解像度になります。このサイズだと、スケーリングが100%だと文字が小さ過ぎて、読み難い人もでてきます。このため、出荷時設定として文字サイズが150%になっていたりします(DPI)。Surface Proから理解できることは、解像度を向上させてもモニター サイズによっては、可読性を損なうことから、DPI設定を調整する必要があるということです。DPI 設定は、Windows 8.1 よりモニターごとに設定できるようになりました。Windows XP時代のDPI設定は再起動が必要でしたが、Windows 8.1ではサインオフだけで済みようになっています。DPI設定の改良は、Windows Vista でも実施されており、Windows 7 で更なる改良が実施され、Windows 8/8.1 で地道で改良がされているものの 1つになります。 アプリを高 DPI に対応しようとすると、それなりに工数がかかります。この点を、Windows Forms と WPF で解説した記事が、田中達彦さんのブログにありますので、読むことをお勧めします。 今年(2014年)に入って、4Kモニターの販売が始まりました。様々な記事で、4Kモニターの使用記事を読むことができますが、量販店などで販売されるいる PCやタブレットの解像度はフルHD サポートが一般化していると思います。解像度が向上すれば、表現できる領域が増えるので、アプリを作ったりする開発者にとっては良いことなのかも知れません(昔に、仕事でアプリの仕様を決めるのに、1024x768を前提としていたのが嘘のようです)。でも、5年後を想像してみてください。4Kモニターは、現在のところ安いもので10万円を切っていますが、5年後には価格はどうなっているでしょうか。また、ノートPCやタブレットPCの解像度もどうなっているでしょうか? アップルさんのRetainaに代表される高解像度がもたらしたものの一つに、スケーリングへの柔軟な対応というものがあります。これは、iPad Retaina やAndroid タブレットなどで顕著になってきています。これと同じことが、きっと PC というフォームファクターでも起きると私は考えています。皆さんは、どのように考えるでしょうか?先に紹介した田中達彦さんのブログを読めば、高DPI への対応が、以下のようになることが理解できます。 Windows Forms などの GDI 系のアプリは、アプリ側での対応が必要になる。 対応しないと、文字が切れたりなどの表示上の不具合などが起きる可能性が高くなります。 WPF は、対応済みである(モニターごとの DPI 設定には、アプリ側の対応が必要)。 Windows ストア アプリは、スケーリングにはフル対応している。 ここまでの内容をまとめると、WPF は GPU を活用することを視野に入れて開発された UI 技術であること。そして、高 DPI への対応に迫られる可能性が高いということが言えます(解像度の向上などから避けられなくなっていくことでしょう)。 WPF という UI 技術とは WPF と Windows Form では、考え方自体が異なります。顕著な例としては、ウィンドウ ハンドル(hWnd)の取り扱いにあると言えます。 WPF の場合は、Window、もしくは NavigationWindows のみが ウィンドウ ハンドルを持ちます。言い換えると、GDI との接点を持ち、ウィンドウ内のコントロールはウィンドウ ハンドルを持ちません。一方で Windows Formsでは、Form だけでなく全てのコントロールがウィンドウ ハンドルを持ちます。つまり、WPF は、ウィンドウ ハンドルを使用しない方が良いとも言えます。ウィンドウの中に配置されるコントロールも、Windows Forms と同じ名前もものもありますが、異なる名前になっているものもあります。コントロールの対比としては、Windows フォーム コントロールおよび同等の WPF コントロールというドキュメントがあります。また、WPF はトップ レベルのウィンドウ以外のレンダリングには、GPU(DirectX 9以降)を使用します。この関係で、GPU を使用しないソフトウェア レンダリングもサポートしています。ソフトウェア レンダリングは、Windows XP では有効になっています(これは、最初に説明した通りディスプレイ ドライバーがWDDMではないからです)。ソフトウェア レンダリングか GPU レンダリングかは、WPFのランタイムが自動的に決定します。レンダリングを意識的に設定するには、レジストリを変更する必要があります。 Windows Vista 以降の WDDM 対応のドライバーでは、WPF は GPU レンダリングが行われることから、すべてのケースではないにしろ拘束にレンダリングされる可能性が高くなります。これらの描画の違いから、良く言われるのが GDI と違い過ぎるという話です。 GDI 系では、同期的に描画される。 WPFでは、コンストラクター、Loaded の順に呼び出される。 Loaded は、自分自身のみで内部のコントロールが描画されているとは限らない。 たとえば、Window_Loadedイベントで、Window内部に配置したコントロールが描画されているとは限らない。 これは、WPF の特徴的なもので、コンストラクターが呼び出されたことでクラスのインスタンスは作成されますが、実際の描画がされたことを意味しません。また、内部に配置したコントロールが描画されたことも意味しません。一方で、Windows FormsなどのForm_Loadedイベントであれば全てのコントロールが描画されたと考えても問題はありません。これは、WPFがオブジェクト インスタンスを作成してから、描画をエンジンへ依頼してエンジンが実際のレンダリングを行うまでの差と考えても良いものになります。このことから、描画を含めるとタイミングを取るのが難しいので、どうしたら良いでしょうかという質問を昔から頂きます。この答えは、Loadedイベントを待ってから、処理を続けるようにして下さいというものになります(たとえば、Silverlightではこの理由からJS側でLoadedを処理してから、フォーカスを移動するなどをしていました)。 ここまでの説明を読むと、WPF って何か面臭そうという認識を持った人もいらっしゃることでしょう。面倒臭さを乗り越えてまで、利用する価値があるのかなという疑問です。多分、使用する人によって感じるメリットは違うと思いますが、私が考えるメリットは以下のようなものになります。 柔軟なレイアウト システム。 UI 定義とコードを完全に分離できる。 柔軟なコントロールのコンテンツ モデル UI オブジェクトの永続化。 アニメーションのサポート。 などなど。 柔軟なレイアウト システム Windows Formsに代表される GDI 技術は、良くも悪くも座標位置を固定します。つまり、ウィンドウ サイズが変化したときに表示位置を調整しようとすれば、何らかのコードが必要になります。このことは、DPI設定が変更されると表示位置が崩れる原因になります。このため、WPFではフレキシブル レイアウトと固定レイアウトという概念が導入されています。フレキシブル レイアウトでは、利用するパネル コントロールによって、表示位置を柔軟に調整するようになっています。この顕著な例として、Width とHeight プロパティに「Auto」という値を設定できることを示します。Autoは何かと言えば、コントロールに設定した内容に応じてWidthやHeightを自動的に調整するというものです。これが意味することは、Width や Height プロパティに設定した値は、描画後に変化しないことを意味します。この理由から、ドキュメントで Width や Height を推奨値という表現をしており、コントロールの実際の大きさを取得するには ActualWidth と ActualHeight プロパティを使用します。一方で、Windows Formsでは、Size.Width や Size.Height プロパティは常に固定となります。また、コントロールの表示位置を表す左上の座標は、Windows Forms では Location.X や Location.Y プロパティとなりますが、WPF では利用する パネル コントロールによって異なることになります。たとえば、Windows Forms のように固定座標にするために Canvas コントロールを利用すると、Canvas.Top と Canvas.Left 添付プロパティになり、Grid コントロールを利用する場合は、Margin プロパティになります。このような違いは、フレキシブル レイアウトか固定レイアウトのどちらを採用するかによって変化します。それでも、解像度が向上すればするほど、フレキシブル レイアウトを採用した方がユーザーにとって便利だと私は考えます。なぜなら、ユーザーにとって使い易いサイズとは、ユーザーごとに違うものだからです。 UI 定義とコードを完全に分離できる パーシャル クラスが提供されるまで、Windows Formsでは UI 定義とイベント コードなどを分離することはできませんでした。WPF では、UI 定義を XAML という XML で定義し、イベント コードはコード ファイルに記述することで、完全に分離されています。このことは、UI 定義用の XAML のみをデータ ファイルとして提供できることも意味します。つまり、プログラムを再ビルドすることなく、XAMLというデータ ファイルを変更することで UI レイアウトを変更できるようばプログラムを容易に実現することになります。また、UI 定義を XAML という XML 形式で記述できるということは、WPF のオブジェクトは XAML との間で容易にシリアライズできることを意味しています。Windows Forms のコントロールは、シリアライズが容易にできないので、シリアライズしようと考えるのであれば、独自に作りこむ必要があります。一方で、XAML が記述するのが面倒という話を良く聞きます。これは、XAML を使ったデザイナー サポートが Visual Studio が貧弱だったことにが一因です。 XAML のデザイナー サポートは、Visual Studio 2008 から始まりました(ベータという意味では、Visual Studio 2005からです)。この当時は、XAMLによるデザイン ツールとして Expression Blendというデザイナー向け製品がありました。そして、Visual Studio 2010のデザイナーが向上したと言っても、Expression Blend を使った方が柔軟なデザインができることには変更はありませんでした。これが、Visual Studio 2012になると、Expression Blend との統合が行われて、Visual Studio 2012 にExpression Blend が同梱されるようになりました(WPF で Blendが使用できるには、Visual Studio Update を待つ必要がありましたが)。つまり、Visual Studio 2012からは、XAML を編集するのに Expression Blend という製品を購入する必要がなくなったのです。Visual Studio 2012 への Expression Blend の統合によって、柔軟な XAML デザインをできるようになっていますし、XAML を使ったユーザー コントロールの作成などは Expression Blend を使うことで GUI のみでできるようになりました。 柔軟なコントロールのコンテンツ モデル Windows Forms のコントロールが持つプロパティとの大きな違いとして、WPF コントロールが持つコンテンツ モデルがあります。たとえば、Windows Forms の Form コントロールでは疑似的にコントロール 配列を扱うために Controls プロパティを持っています。これが、WPF では Window オブジェクトでは Content プロパティであり、Canvas や Grid コントロールでは Children プロパティになっています。Content プロパティは、1つの子要素(コントロール)を意味しており、Children プロパティがコントロール コレクションを意味します。これらを総称して、コンテンツ モデルと呼んでいます。XAML で Content と言った場合に設定できるものは、Object 型のオブジェクトになります。つまり、パネル コントロールでも良いし、Image オブジェクトでも良いし、要はどんなオブジェクトでも設定できることを意味します。たとえば、Windows Forms の Button コントロールは Image プロパティを使ってイメージを設定できますが、WPF の Button コントロールは Content プロパティしかありませんから、Content に Image オブジェクトを設定すれば同じことができますし、パネル コントロールを使えば Imageだけでなく、様々なコントロールをボタンの中に設定することも可能になります。 また、XAMLには強力なスタイル機能があり、スタイルを切り替えるだけでコントロールの見え方を変更することが可能になっています。Windows Forms でユーザー コントロールを使ってオーナー ドローを使ってオリジナルの外観を持つコントロールを作る必要性は、WPFにはありません。 UI オブジェクトの永続化 既に説明したように WPF では、UI 定義を XAML という XML 形式で記述します。この XML 形式が、WPF オブジェクトのシリアライズを行う形式ともなっています。ユーザー コントロールやカスタム コントロールを容易に作成できるようにするために、WPF では依存関係プロパティ(Dependency Property)システムが用意されています。これは、.NET Framework のリフレクションだと、高価な実行コストがかかりますが、WPF に最適化した形でリフレクションを実現する仕組みと考えれば良いでしょう。独自に作成したプロパティを依存関係プロパティとすることで、容易に XAML という XML 形式に表現できるようになっています。この依存関係プロパティを使って、添付プロパティも作成されており、添付プロパティを使ってビヘイビアという使い方(コーディング レスで振る舞いを定義します)もできるようになっています。 アニメーションのサポート 提供するアプリが複雑になればなるほど、アプリの使い方をユーザーが気付くようにすることは重要です。このような用途で、アニメーションを利用することができます。WPF で用意されているアニメーションは、アニメーションを実現するためだけのメカニズムであって、組み込みで用意されている アニメーション ライブラリは非常に限定的となっています。この理由は、WPF が提供された当時では、ユーザー エクスペリエンスにおける統一的なアニメーションの解釈方法が決まっていなかったからです。 他にも XAML ならではの機能として、データ バインディングがあります。XAML のデータ バインディングには、次の3種類があります。 一回限り バインディングしてから、データの変更は起きない場合 一方向 データからコントロールへの一方向 双方向 データとコントロールの双方向であり、コントロールがフォーカスを失うとデータが変更される このような強力なデータ バインディングが用意されており、データ バインディングをより有効に活用するためのデザイン パターンとしてMVVM(Model View ViewModel) などの使用が推奨されています。MVVMの使用は必須というわけではありませんが、利用できるのであればデータバインディングを有効活用するためにも利用するようにした方が良いでしょう。 サード パーティ製のコントロール WPF が提供された当時は、サード パーティ製のコントロールも貧弱でした。でも、現在はサード パーティ製のコントロールも充実しています。 グレープ シティさん インフラジスティックさん WPF コントロールのコンテンツ モデルは、とても強力です。ですから、自分でカスタム コントロールを作成することもできます。独自にコントロールを作成する場合の学習には、WPF Toolkit が役立つことでしょう。WPF Toolkit は、マイクロソフトが提供している オープン ソースのソフトウェアで、WPF が提供された当時のコントロール不足を補う目的とカスタム コントロールを作り方のヒントを提供するためのものです。説明した市販のコントロールは、日本で代表的なものだけとなります。海外で販売されているものも含めれば、Windows Forms と遜色がないサード パーティ製のコントロールが市販されています。サード パーティ製のコントロールを使用するかどうかは、カスタム コントロールを作成する労力とコストを比較して考えれば良いでしょう。   GDI 技術とは全くことなる技術である WPF を今から学習するには、どうしたら良いでしょうか。私の場合は、.NET Framework 3.0 の頃から使用していますし、もう覚えてしまっているので、これから学習する人にどのように説明したら良いのかを考えてみたいと思います。私が、最初にお勧めしたいのは「プログラミング Windows 第6版」という書籍です。 この書籍は、俗に言うペゾルド本であり、Windows プログラミングを学ぶ時の王道のような書籍です。私も、Windows 3.1の頃に読んで GDI を使った Windows プログラミングを勉強しました。昨年に発売した第6版は、Windows ストア アプリ、つまり Windows Runtime と XAML になっています。Windows Runtime XAML(以下、WinRT XAML と略します)は、WPF の XAML とは微妙に異なる箇所がありますが、XAML としての文法などを学習するには、きっと役立つことでしょう。 最後に、XAML による Presentation 技術で私が良く聞かれる質問として、「なぜ、同じ XAML なのに挙動が違うのですか?」というものがあります。この答えは、マイクロソフトは複数の XAML 用のレンダリング エンジンを持っているからですというものになります。具体的には、WPF、Silverlight、Windows Phone、Windows ストア アプリという4種類のレンダリング エンジンがあり、フル機能は WPF ですが、Silverlight の発展形として Windows Phone と Windows ストア アプリがあり、様々なフィードバックから一部の機能は Silverlight、Windows Phone、Windows ストア アプリの方が WPF よりも使い易くなっていることから、構文を含めて微妙な違いを生んでいます。どの XAML レンダリング 技術を使ったとしても、完璧ということはなく、用途によっては GDI の方がパフォーマンスが良くなる場合もあることでしょう。WPF に代表される XAML という Presentation 技術は、2D を含めてビデオやドキュメントなどの様々なメディアを統合してユーザー体験を向上させることを目的にしています。3D を使ったパフォーマンスが良いアプリを作成するのであれば、DirectX を使用した方が良いのは自明のことです。あくまでも、ユーザー体験を実現するための技術が、XAML という Presentation 技術の本質となります。

Posted by on 23 July 2014 | 2:26 am

SQL Server in Azure VM High Availability and Disaster Recovery

This is the most commonly asked question on SQL Server in Azure Virtual Machine. How to maintain SQL Server up and running all the time. Options are High Availability (Azure) 1. AlwaysOn Availability Groups (http://msdn.microsoft.com/en-us/library/azure/dn249504.aspx) 2. Database Mirroring (http://msdn.microsoft.com/en-us/library/azure/jj870961.aspx) Disaster Recovery (Azure) 1. AlwaysOn Availability Groups (http://msdn.microsoft.com/en-us/library/azure/dn690122.aspx) 2. Database Mirroring (http://msdn.microsoft.com/en-us/library/azure/jj870960.aspx) 3. Backup and Restore with Azure Blob Storage Service (http://msdn.microsoft.com/en-us/library/azure/dn133143.aspx) Hybrid IT : Disaster Recovery In this case we can use our on-premises SQL Server and have the HADR setup. Now to do that you have some options as well available. 1. AlwaysOn Availability Groups 2. Database Mirroring (http://msdn.microsoft.com/en-us/library/azure/jj870964.aspx) 3. Log Shipping (http://msdn.microsoft.com/en-us/library/azure/jj889442.aspx) 4. Backup and Restore with Azure Blob Storage Service (http://msdn.microsoft.com/en-us/library/azure/dn133143.aspx ) Consideration for Azure HADR It is important to understand some important things of Azure. You need to keep the VMs in Availability Set. To keep the VMs in Availability Set you must keep them in same Cloud Service. Also it is mandatory that one should know How to Configure Windows Failover Cluster in Azure for AlwaysOn Availability Groups Namoskar!!!

Posted by on 23 July 2014 | 1:24 am

Bluetooth, Arduino и Windows 8.1

Грэг Дункан Сегодняшнее сообщение продолжает коммуникационную серию по Windows 8.1, на этот раз используя Bluetooth c Arduino, благодарность Михаэлу Остеже (Michael Osthege)… Связь по Bluetooth между Arduino и Windows 8.1 В этом примере вы сможете научиться, как установить последовательный канал связи через Bluetooth между Arduino и приложением Windows 8.1. Сборка образца Чтобы проверить это вам понадобятся Arduino с Bluetooth (например, Arduino Uno R3 и модуль JY-MCU Bluetooth) и устройство Windows 8.1 с возможностями Bluetooth. (Также подойдет Bluetooth-устройство, вставляемое в разъем.) Пример предоставляет решение Visual Studio 2013, включающее код приложения для Windows Store и код для Arduino. Код для Arduino можно открыть и с помощью другой IDE, но рекомендуется Visual Studio 2013 с бесплатными расширениями VisualMicro. Этот пример навеян (и основан) сообщениием Маркоса Перейры (Marcos Pereira) «Реализация в Windows Phone 8 связи с Bluetooth/Arduino». Обсуждение на конференции Build Эллика Сунга (Ellick Sung) и относящееся к нему приложение-пример также оказались полезны при переносе кода на WinRT. Описание Оснастите Arduino модулем Bluetooth, двумя светодиодами и потенциометром, как показано на диаграмме: Связь с модулем Bluetooth выполняется с помощью библиотеки SoftwareSerial.h. Приложение Windows 8.1 должно описать возможности последовательной связи по Bluetooth в файле Package.appxmanifest: Чтобы развернуть код Arduino с помощью VisualMicro, щелкните правой клавишей на Project в Solution Explorer и выберите пункт Debug\Start new instance. Когда приложение для Windows 8.1 стартует, можно установить соединение и проконтролировать светодиоды, или подписаться на аналоговые входы, как показано в следующем видео: Связь по Bluetooth между Arduino и Windows 8.1 Введение Недавно, после просмотра этого видео Маркоса Перейры, посвященного связи между Arduino и Windows Phone 8 по Bluetooth, я приобрел следующие новые устройства: · Arduino Uno R3 в начальном наборе (ссылка) · Модуль JY-MCU Bluetooth (ссылка) · И несколько дополнительных кабелей Проблема: У меня еще не было Windows Phone 8 и Windows Phone 7.8 API не поддерживали этот тип связи по Bluetooth. Но: У меня был Surface RT и с помощью Windows 8.1 the RFCOMM API можно попробовать установить последовательный канал с Arduino. Arduino и Visual Studio Так случилось, что мое искусство программирования ограничено С#, и когда я должен разработать некоторое ПО для Kinect с помощью языка Processing, я чуть не сошел с ума. Код для Arduino написан на С++ и стандартная Arduino IDE получена из Processing IDE. К счастью, есть расширение для Visual Studio под названием VisualMicro, которая обеспечивает интуитивно понятную поддержку Arduino для VS2010-VS2013. (Отсутствует для версии Express). Можно получить VisualMicro бесплатно по адресу http://visualmicro.codeplex.com/. Также есть платная версия (>$20) с поддержкой точек останова и отладки. Также должна быть установлена Arduino IDE и вы должны указать расширению VisualMicro, где она находится. ... Подготовка к кодированию В Arduino необходимо загрузить определенный код, чтобы он мог посылать и получать сообщения через Bluetooth. Я создал решение Visual Studio с пустым приложением для Windows 8.1 и новым скетчем Arduino и добавил новый файл заголовка SoftwareSerial.h (рис.2). Код SoftwareSerial.h можно найти здесь. ...

Posted by on 23 July 2014 | 12:48 am

I have been fighting spam for 10 years

A week and a half ago, I “celebrated” my 10th year fighting spam. I originally joined Frontbridge in July 2004, and 10 years later I am still with Frontbridge after it was acquired by Microsoft. Since that time, it has been known as: Frontbridge (how almost everyone in the email filtering community still knows us) Exchange Hosted Services (EHF) Exchange Hosted Filtering (EHS) Forefront Online Security for Exchange (FOSE) Forefront Online Protection for Exchange (FOPE) Exchange Online (ExO) and Exchange Online Protection (EOP) Office 365 (used interchangeably by me along with the previous bullet point) I was going to discuss all the changes I’ve seen in spam filtering during the past 10 years. But that would be a really long post and I don’t have the patience to write those anymore. Instead, I will discuss the three biggest innovations that I have seen in the past three years specifically with regards to anti-phishing (something I have been working on lately): DMARC DMARC is a major revolution in spam filtering because it combines both authentication and a feedback loop to help senders improve their authentication practices.  But it also was a major step forward in terms of the amount of cross-organization collaboration to come up with a common protocol, and then have everyone implement it. I’ll have more to say about DMARC in a future post. DMARC is not the silver bullet for phishing, but what it does, it does very well. Advanced Threat Detection I – Attachment Detonation If you’re not familiar with attachment detonation, it’s because it is relatively new on the scene and it is more for enterprise consumers of spam filters. We’re all familiar with traditional Antivirus defenses – they match a file in an attachment against a known corpus of malware using signature-based analysis and also apply some heuristics. This is a reactive technology with a little bit of prediction. Attachment detonation takes the attached file and actually opens it up and executes it during the filtering stage. It does not rely upon signatures. Instead, it uses a series of algorithms to look for suspicious behavior commonly found in malware. Did it change the registry? Does it access the memory? Does it install a rootkit? If so, the attachment is malware. It does this by emulating multiple versions of software where the vulnerability or exploit may exist (e.g., Windows XP, Windows XP SP 1, Windows 7 RTM, Windows 7 RTM fully patched, etc). This is substantially different than traditional A/V. While A/V vendors use this technology internally to identify malware, Attachment Detonation is turning that internal technology into an actual product. Advanced Threat Detection II – Time-of-Click Protection When I get spam in my inbox or even my junk mail folder, sometimes I click on the link to see where it goes (for research purposes). This goes through our corporate router and proxy and if the URL is bad, I get a message saying “This website is not allowed because it is malicious!” displayed on my screen. But what if I clicked on that message on my phone while reading the email at the airport? Time-of-click protection is a technology that is designed to proxy a user’s clicks through a service that inspects the contents of the URL and if it is bad, display a message indicating it is malicious. In other words, it does the work of your web browser which has safe browsing built in. But not every browser does, especially on a mobile device. Time-of-click protection has multiple uses, but mobile devices that are unprotected, or URLs that turn bad after delivery, are two uses of time-of-click. This is a departure from time-of-scan protection wherein most filters compare any URL within a message against a reputation list. Time-of-click is basically time-travelling where you can update a decision. Those are the three biggest changes I have seen in the past two years. Who knows what I’ll see in the next two?

Posted by on 22 July 2014 | 11:53 pm

Microsoft.com now publishes an SPF Hard Fail in its SPF record

This past Monday evening, Microsoft corporation for the domain microsoft.com changed its SPF record from soft fail to hard fail. There are many ways that receivers can use SPF hard fail – some mark it as spam outright, some use it as a heavy weight in their spam filter, some use it as a light weight, and some even do nothing with it. However any other receiver uses it, publishing a hard fail allows some receivers to discard unauthenticated-SPF mail from Microsoft. I personally led the effort to update the SPF record. Because Microsoft is such a large company with so many teams sending email in so many different ways, it took a long time to inventory everyone and get it under control. But, we finally get it done. It’s something I will be talking about at the upcoming Virus Bulletin conference in Seattle this September. DMARC - how to use it to improve your email reputation.

Posted by on 22 July 2014 | 11:34 pm

TypeScript の新しいコンパイラーと GitHub への移行

TypeScript のオフィシャル ブログで、新しいコンパイラーの開発スタートと共に、GitHub へのリポジトリ移行がアナウンスされました。 TypeScript : New Compiler and Moving to GitHub 今までは CodePlex が使われていましたが、正式に GitHub でのリポジトリ運用が開始した形になります。 Microsoft / TypeScript : on GitHub また、現在のコンパイラーのバージョンは 1.0.1 ですが、ロードマップによると 1.1 として新コンパイラーがリリースされるようです。 TypeScript : Roadmap 1.1 Compiler re-write that focuses on a lightweight, faster implementation Reach parity with 1.1, so that it is drop-in replaceable 2.0 Incorporate ECMAScript 6 features that can be polyfilled Investigate...(read more)

Posted by on 22 July 2014 | 10:30 pm

カスタム スクリプト拡張 (Custom Script Extension) を使用した SQL Server VM の構成の自動化

このポストは、7 月 15 日に投稿した Automating SQL Server VM Configuration using Custom Script Extension の翻訳です。 Azure VM のカスタム スクリプト拡張 (Custom Script Extension) を使用すると、PowerShell スクリプト (および関連ファイル) を Storage アカウントからダウンロードして実行できます。一見シンプルな機能のようですが、PowerShell のパワーを利用して VM の構成を柔軟に自動化できるため、さまざまな VM のカスタマイズに利用できます。この記事では、カスタム スクリプト拡張を使用して Azure VM イメージ ギャラリーから作成した SQL Server 2014 VM をカスタマイズする方法を手順を追って説明します。SQL PowerShell スクリプトを使用して Azure への SQL Server マネージ バックアップを行います。これにより、SQL Server 2014 データベースを Azure Blob ストレージ サービス (英語) にバック��ップすることが可能になります。 SQL Server 構成スクリプト 下に示すように、構成スクリプトの内容は単純です。[your Azure storage account] と [your Azure storage account key] は自分の Azure Storage 資格情報で置き換えてください。このスクリプトを CustomScriptSQLPS.ps1 という名前で保存します。 #SQL Server PowerShell モジュールをインポートします。 import-module  sqlps -DisableNameChecking   #グローバル変数 - 使用する Storage アカウント名とキーに置き換えてください。 $credentialName = "AzureStorageCredential_"+(RANDOM) $storageAccountName = "[your Azure storage account]" $storageAccountKey = "[your Azure storage account key]"   # SQL エージェント サービスを開始します。                                                                write-host "Starting SQL Server Agent service ..." Start-Service  sqlserveragent -verbose   CD SQLSERVER:SQL\$env:COMPUTERNAME\DEFAULT   write-host "Creating SQL credential ..." $secureString = convertto-securestring $storageAccountKey  -asplaintext -force   # 資格情報を作成します。 New-SqlCredential –name $credentialName –Identity $storageAccountName –secret $secureString   $encryptionOption = New-SqlBackupEncryptionOption -NoEncryption   write-host "Enabling Managed SQL Server Backup..."   get-sqlsmartadmin | set-sqlsmartadmin -BackupEnabled $True -BackupRetentionPeriodInDays 7 -SqlCredential $credentialName -EncryptionOption $encryptionOption   write-host "Managed SQL Server backup current configuration:" get-sqlsmartadmin | fl このスクリプトはそのままではカスタム スクリプト拡張に渡すことはできません。カスタム スクリプト拡張は NTAUTHORITY\SYSTEM アカウントを使ってスクリプトを実行しますが、このアカウントには SQL 構成コマンドを実行するのに十分な権限がありません。これを解決するために、別途ブートストラップ スクリプトを作成し、管理者アカウントの権限を借用してからスクリプトを呼び出します。 別の資格情報でスクリプトを呼び出す start.ps1 という名前の次のようなスクリプトを作成します。説明しやすいように、ここでは行番号を振っています。 1: $password =  ConvertTo-SecureString "[your admin account user password]" -AsPlainText -Force 2: $credential = New-Object System.Management.Automation.PSCredential("$env:COMPUTERNAME\[your admin account]", $password) 3: $command = $file = $PSScriptRoot + "\CustomScriptSQLPS.ps1" 4: Enable-PSRemoting –force 5: Invoke-Command -FilePath $command -Credential $credential -ComputerName $env:COMPUTERNAME 6: Disable-PSRemoting -Force 1 行目では、権限を借用する管理者のパスワードをプレーン テキストから安全な文字列に変換しています。パスワードをプレーン テキストのままスクリプトで使用することは推奨されません。これについては後ほど説明します。2 行目ではメイン スクリプトの実行に使用する資格情報を作成しています。VM のプロビジョニングの際に選択したアカウントを使用できます。3 行目では、メイン スクリプトの絶対パスを取得しています。借用した資格情報でメイン スクリプトを実行するには、Windows Remote Management (WinRM) (英語) を使用します。4 行目では WinRM を有効にし、6 行目では使用が終了したので WinRM を無効にしています。最後に 5 行目では、Invoke-Command コマンドレットを使用してメイン スクリプトを呼び出し、Credential パラメーターで資格情報を指定しています。 カスタム スクリプト拡張を使用する これで、2 つのスクリプトをカスタム スクリプト拡張に渡す準備が整いました。Storage アカウントで両方のスクリプトを scripts コンテナーにアップロードします。カスタム スクリプト拡張のしくみの詳細や、既定の Storage アカウントではなく別のアカウントや scripts 以外のコンテナーを使用したい場合の情報については、最初に紹介したこちらのブログ記事を参照してください。次に、自分のワークステーションから下のようなスクリプトを実行します (行番号を振っています)。 1: $servicename = "[cloud service that hosts the VM]" 2: $vmname = "[name of the VM]" 3: $vm = Get-AzureVM -ServiceName $servicename -Name $vmname 4: Set-AzureVMCustomScriptExtension -ContainerName scripts -StorageAccountName '[your storage account name]' -VM $vm -FileName 'start.ps1', 'CustomScriptSQLPS.ps1' -Run 'start.ps1' | Update-AzureVM -Verbose 5: $status = Get-AzureVM -ServiceName $servicename -Name $vmname 6: $result = $status.ResourceExtensionStatusList.ExtensionSettingStatus.SubStatusList | Select Name, @{"Label"="Message";Expression = {$_.FormattedMessage.Message }} 7: $result |fl このスクリプトで重要なのは 4 行目です。カスタム スクリプト拡張が VM にインストールされていることを確認した後、start.ps1 と CustomScriptSQLPS.ps1 の両方をダウンロードして start.ps1 を実行するよう指示しています。 外部ファイルからパスワードを読み込む スクリプトを作成する際は、プレーン テキストのパスワードをそのまま埋め込まないように注意してください。ここでは、パスワードの暗号化/復号化の証明書を使用します。IT 管理者が既に証明書と秘密キーを対象の Virtual Machines にデプロイし、この証明書の公開キーを使用してパスワードを Base64 形式の password.txt ファイルに暗号化していると仮定します。 $cert = Get-ChildItem Cert:\LocalMachine\My\[certificate thumbprint] $bytes = [Text.Encoding]::UTF8.GetBytes("abcdefg") $encrypted = $cert.PublicKey.Key.Encrypt($bytes, $true) $base64 = [Convert]::ToBase64String($encrypted) Set-Content .\password.txt $base64 makecert を使用した管理証明書の新規作成方法については、こちらの記事を参考にしてください。証明書を Azure VM でデプロイする方法については、こちらのブログ記事 (英語) を参照してください。 start.ps1 の最初の行を次の行に置き換えます。 $cert = Get-ChildItem Cert:\LocalMachine\My\[certificate thumbprint] $base64 = Get-Content .\password.txt $encrypted = [Convert]::FromBase64String($base64) $bytes = $cert.PrivateKey.Decrypt($encrypted,$true) $password = [Text.Encoding]::UTF8.GetString($bytes) 最後に、カスタム スクリプト拡張に渡すファイルのリストに password.txt を追加します。 Set-AzureVMCustomScriptExtension -ContainerName scripts -StorageAccountName '[your storage account name]' -VM $vm -FileName 'start.ps1', 'CustomScriptSQLPS.ps1', 'password.txt' -Run 'start.ps1' | Update-AzureVM -Verbose まとめ この記事では、カスタム スクリプト拡張を使用して SQL Server 2014 VM をカスタマイズする手順を説明しました。また、カスタム スクリプト拡張の実践的な使用方法を紹介し、権限の借用やパスワードの暗号化といったスクリプトでよく使用する処理について取り上げました。 謝辞 このブログ記事の執筆にご協力いただいた Madhan Arumugam と Sethu Srinivasan に心から感謝します。

Posted by on 22 July 2014 | 9:30 pm

Announcement: SharePoint Dev blog has moved

This is the final SharePoint Dev blog post. We’ve moved to the Office Developer blog, in this new location: http://blogs.office.com/dev Please join us in this new location to keep reading all the latest news about SharePoint development. Don’t worry, we won’t delete any of these MSDN blog posts – they’ll stay here so you can continue to refer to them for the information you need. Here are all the places where you can join the Office Developer conversation: Twitter @OfficeDev Facebook Office Developer Yammer Office 365 Technical Network MSDN forums Stackoverflow [MS-Office] [Office365] [OneNote] Office Developer Center

Posted by on 22 July 2014 | 9:18 pm

Announcement: Apps for Office and SharePoint blog has moved

This is the final Apps for Office and SharePoint blog post. We've moved to the Office Developer blog, in this new location: http://blogs.office.com/dev Please join us in this new location to keep reading all the latest news about developing Apps for Office and SharePoint. Don’t worry, we won’t delete any of these MSDN blog posts – they’ll stay here so you can continue to refer to them for the information you need. Here are all the places where you can join the Office Developer conversation: Twitter @OfficeDev Facebook Office Developer Yammer - Office 365 Technical Network MSDN forums Stackoverflow [MS-Office] [Office365] [OneNote] Office Developer Center

Posted by on 22 July 2014 | 8:54 pm

New Channel 9 Series: Explain that to me

I have started a new Channel 9 series called Explain that to me. The idea is to explain often difficult concepts in the easiest possible way. To start, we have a video talking about how Identity plays a role putting up Office 365 and Azure together. Let's call it Identity 101. Enjoy: http://channel9.msdn.com/Series/Explain/Identity101...(read more)

Posted by on 22 July 2014 | 8:31 pm

Microsoft Australia Education Partner Summits 2014

In the first week of August we are running half-day partner training events for Microsoft Education partners in Sydney, Brisbane, Melbourne and Perth. This year’s education ICT buying season is almost underway, and it promises to be like no buying season in history. There are significant changes in the market including a shift to BYOD, a growing move away from institutional purchase towards students buying devices from retailers, and the devolution of the decision making from systems to schools and parents. All of these provide unprecedented opportunities and challenges for the existing business model of many of our education partners. We’d like to invite you to attend a half day event in Sydney, Brisbane, Melbourne or Perth to learn how your business model can evolve, and how Microsoft can help you to grow your education sales. The Education Partner Summit is an opportunity to get deep insight into the changing dynamics of the schools sectors from the Microsoft Education team. Education is one of the biggest IT markets in the country, and increasingly a competitive and critical market for Microsoft and our partners, with key organisations seeing the long term value of winning the institution and seeding their brand through these schools to reach teachers, students and parents. The combination of the consumerisation of IT, technology adoption at younger ages, the accelerating desire for 1:1 computing, and BYOD are requiring schools to continue to take more innovative approaches to learning in the classroom. The agenda is specifically focused on meeting the needs of sales and marketing personnel in Microsoft partners who want the most effective messages and strategies to grow in a transformed marketplace. With traditional revenue streams being disrupted by increasingly fragmented decision making, the Education Partner Summit will focus on ensuring that you walk away with the information you need to develop an effective and profitable strategy to serve your customers and grow your business, with practical sales resources, and understanding how you can leverage your Microsoft relationship and the resources of the Microsoft Education business to sell alongside you. The day will benefit sales and marketing teams dealing with schools, TAFEs and Universities. Additionally, the seminar will provide valuable insight to product marketing and development teams who are looking to identify new product and service opportunities within the education sector. Venues and dates For each half-day event the agenda will include: Overview of the education market and changes happening today Deep dive into the Office 365 Education suite, and how partners can use it to deliver educational solutions for schools How to position Windows devices for education customers, and the supporting programmes available for partners and customers to support improved educational outcomes from their investments, including the new “Microsoft in the Classroom” and “Expert Educator” programme Updates on the Microsoft Academic Licensing programmes We will be hosting the summits in the following Microsoft offices next month: Sydney - 4th August 2014 - 12:30PM to 5:30PM Brisbane – 5th August 2014 - 8AM to 12:30PM Melbourne – 6th August 2014 - 8AM to 12:30PM Perth – 8th August 2014 - 8AM to 12:30PM Registration We’ll shortly publish a registration link for the Microsoft Partner Network, but click the link below to register your interest, and to receive a registration link and a placeholder request for your calendar by email. Register now for your local Education Partner Summit event

Posted by on 22 July 2014 | 8:16 pm

SQL Server Profiler showing 9003 Exception when CDC is configured

While troubleshooting a customers environment I encountered the following 9003 Exception error message captured in SQL Server Profiler. “The log scan number (42:358:1) passed to log scan in database '<db name>' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.”   This had me concerned as I thought SQL Server Change Data Capture (CDC) was working correctly.  Exploring further, I used SQL Server function  fn_dblog to retrieve the transaction “42:358:1” being reported in SQL Profiler error text.  Running fn_dblog multiple times, each time increasing the “end” I was able to quickly spot the entire transaction wrapped in LOP_BEGIN_XACT and LOP_COMMIT_XACT. -- Retrieve TLOG entries for CDC Log Scan select [Current LSN], Operation, [Transaction ID], [Savepoint Name] from ::fn_dblog('42:358:1', '42:358:3') Current LSN             Operation                       Transaction ID Savepoint Name ----------------------- ------------------------------- -------------- --------------------------------- 0000002a:00000166:0001  LOP_BEGIN_XACT                  0000:000004b4  NULL 0000002a:00000166:0002  LOP_MARK_SAVEPOINT              0000:000004b4  tr_sp_cdc_scan 0000002a:00000166:0003  LOP_COMMIT_XACT                 0000:000004b4  NULL (3 row(s) affected) Tracking back the “tr_sp_cdc_scan” “Savepoint Name”, I learned the entire transaction consisted of a “dummy update” CDC makes to periodically update cdc.lsn_time_mapping table and can be ignored. --Chris Skorlinski, Microsoft SQL Server Escalation Services

Posted by on 22 July 2014 | 6:30 pm

Australia Partner Conference 2014 – Create Incredible – this year’s host revealed

As this year's Australia Partner Conference continues to take shape, we’ll be revealing more and more details over the coming weeks. We’re delighted to announce that Adam Spencer will be our host for APC 2014.  Blending a sharp mind, quick wit and an intense passion for science and technology, Australia's favourite geek is the perfect choice as host. Sitting at the heart of this year's APC is The Hub – a space that offers you the chance to explore the latest devices, visit sponsor booths and meet with experts and peers. With an agenda reflecting the big trends shaping our industry – Cloud Platform, Enterprise Social & Productivity, Big Data & Analytics, Mobility & Devices, plus a Leadership track – APC is the must-attend Microsoft event for Partners looking to capitalise on the growth opportunities here in Australia. Hundreds of Partners have already registered and spaces are filling fast. So if you've yet to register, do so today.

Posted by on 22 July 2014 | 6:21 pm

Log shipping fails to update metadata tables in monitoring and secondary servers

    Recently I was working with a Customer and came across a situation where log shipping does not update the system meta data table log_shipping_monitor_secondary in monitor server and secondary server in msdb. there is a known issue when SQL agent account does not have permissions to update tables in msdb in monitoring server. we need to grant full permissions in msdb however it does not help in our scenario. Log shipping configuration is  primary server ,two secondary server  and monitoring server . Restore and Copy job completes successfully however it wont update the meta data table log_shipping_monitor_secondary. We captured profiler to understand what is happening and we see the below errors in profiler OLE DB provider "SQLNCLI10" for linked server "LOGSHIPLINK_Test\Test-1499715552" returned message "Login timeout expired". OLE DB provider "SQLNCLI10" for linked server "LOGSHIPLINK_Test\Test_-1499715552" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". OLE DB provider "SQLNCLI10" for linked server "LOGSHIPLINK_Test\Test_-1499715552" returned message "Login timeout expired". OLE DB provider "SQLNCLI10" for linked server "LOGSHIPLINK_Test\Test_-1499715552" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". OLE DB provider "SQLNCLI10" for linked server "LOGSHIPLINK_Test\Test_-1499715552" returned message "Login timeout expired". So when restore job runs it try to connect monitor server and it fails with login time out expired. Then we need to understand why it does not update the data in secondary server itself. Restore job executes the stored procedure sp_processlogshippingmonitorhistory which triggers sp_MSprocesslogshippingmonitorsecondary and this is responsible to update the meta data tables with the last restored file name and date. however since it failed to execute the below command it did not update the metadata tables select @linkcmd = quotename(sys.fn_MSgetlogshippingmoniterlinkname(upper(@monitor_server))) + N'.msdb.sys.sp_processlogshippingmonitorhistory' Now it is no more log shipping issue instead it is a connectivity issue , we need to troubleshoot why we were getting login time out. then I understand that the two servers are in different domain and monitoring server is configured with NetBIOS name \instance name. if we try connecting using NetBIOS name it fails however it works fine if we connect with FQDN\instance name The best option is to reconfigure the Monitoring server with FQDN or troubleshoot why NetBIOS name is not working. The possible cause for  NETBIOS name doesn't work possibly because it is not defined in the DNS search order. It is possible to use fully-qualified domain names, or even raw IP addresses. The Domain Name System is hierarchical and the DNS server cannot uniquely resolve a NETBIOS name. Before sending a host name to the server, DNS client will try to guess its fully-qualified domain name (FQDN) based on the list of known DNS suffixes it has access to through various configuration settings. It will keep asking the configured DNS servers to resolve the potential names until it finds a match. The order of DNS servers and domain suffixes is important because the DNS client will use the first one it can resolve. If it happens to be a wrong guess, you will not be able to connect to the desired target host. we can also make it work by creating an alias in configuration manager which eliminates the login time out error and allow log shipping jobs to update meta data tables. So if you encounter this issue , the things that needs to be validated are 1. SQL Server agent account permissions in monitoring server and secondary servers 2. connectivity issues between monitoring server and secondary server 3. any permissions issues at the object level in msdb once you rule out all these settings then best place to start is to capture SQL profiler with statement level and errors &warning events. Happy reading

Posted by on 22 July 2014 | 6:14 pm

eBook deal of the week: Microsoft Excel 2013 Data Analysis and Business Modeling

List price: $39.99   Sale price: $20.00 You save 50% Buy Master business modeling and analysis techniques with Microsoft Excel 2013, and transform data into bottom-line results. Written by award-winning educator Wayne Winston, this hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables--and how to effectively build a relational data source inside an Excel workbook. Learn more Terms & conditions Each week, on Sunday at 12:01 AM PST / 7:01 AM GMT, a new eBook is offered for a one-week period. Check back each week for a new deal. The products offered as our eBook Deal of the Week are not eligible for any other discounts. The Deal of the Week promotional price cannot be combined with other offers.

Posted by on 22 July 2014 | 5:30 pm

Skal du løbe DHL Stafetten og mangler dit hold en sponsor?

Om en lille måned er der igen DHL stafet i Aarhus og København, og du bruger sikkert hvert et ledigt øjeblik på at forbedre din 5 km tid…. Men hvorfor ikke sørge for at du og dit hold er klædt intelligent på? Vi har sammen med Microsoft Virtual Academy købt en kasse lækre løbetrøjer som vi giver væk til løbehold eller personer, der står og mangler en sponsor til hold trøjen…. Eneste krav er at du kvittere med et billede af dig (Selfie) eller dit hold (Groupie.. eller det er vist noget andet?) med trøjerne på. Vi giver et halvt hundrede trøjer væk, så skynd dig at tilmelde dig eller dit hold til konkurrencen   Sådan gør du: Skriv en mail til Anders hvor følgende info fremgår Emne: MVAHold størrelse (1 til 5 løbere)Trøje størrelser (M, L, XL eller 2XL)Sted for deltagelse (København, Odensen, Aarhus eller Aalborg)Dato for deltagelse i DHLPostadresse hvor trøjerne skal sendes til hvis du vinder Vi skal ha modtaget din mail senest den 10. august 2014. Vi trækker vinderne mandag den 11. august hvor vi også giver dem direkte besked. Vi håber du vil være med og glæder os til at se de mange sjove billeder. De bedste hilsner og forsat god sommer Tina, Anders & Rasmus

Posted by on 22 July 2014 | 5:24 pm

Big Data in Japan....(and other countries)

Well - with a title like that I am dating myself. But perhaps if you are humming 'Big In Japan' by Alphaville in your head, I am in good company! But I digress... I recently returned from a business trip to China and Japan where I had the privilege of meeting several major banks to discuss Big Data and business insights in financial services. I was keen to understand the key business opportunities they believed that investments in big data would support, and also the challenges they faced with implementation. The key areas of focus resonated well with the business priorities I hear in the US and Europe: Customer and Product Analytics - to understand sentiments and usage to build a stronger lifetime view of a customer. Risk Analytics - to move toward real-time risk analysis and become more interpretive of risk rather than reactive to past events. Financial Performance - to predict impact on the business through a better analysis of costs/revenues and building simulations for the impact of cost cuts. These core scenarios were equally pervasive in China and Japan, although I did notice an interesting cultural difference. The banks in China were much more open to discussing ideas and concepts with their peers (competitors) than the Japanese banks. Those in Japan viewed the promise of big data as something to be fiercely protected and a means to gain competitive advantage. Although the analysis and insights gained can and should lead to competitive advantage, banks also share some common challenges. The impact of big data - whether the massive amounts of structured data in systems, the explosive growth in new forms of unstructured data, or harnessing data streams from the cloud and social feeds is a huge challenge. What I saw in China was a mutual agreement of the areas that big data would provide value. Breaking that down a little further, where they shared information was in how to move beyond the 'what' and understand the 'how' to solve the problem. It is hard to overstate the volume of data in question in China - even by US banking standards. With a population of 1.35 billion, and a middle class as large as the entire population of the US, China has a massive banking population. One bank I talked to is based in southern China and is considered a tier 2 bank, yet has 50 million credit card customers. With such large volumes it is almost impossible to start a big data project from the data upwards. One of the new practices I am seeing emerge is to start thinking about the questions banks want to answer, and then look at the data required to answer or interpret those questions. As an example, banks in all countries can learn from the approach taken by RBS Group in the UK. By working with Microsoft's Analytics Platform System the bank is mapping business customers' transactions across the globe to build a correlative view on GDP trends; and therefore a more qualitative view of risk which can be leveraged in multiple ways. Whether dealing with big data in Japan or any other country, banks that start to ask innovative questions of data will be first to gain the benefits of a data and analytics program.

Posted by on 22 July 2014 | 5:19 pm

SharePoint Error Updating Custom Application in Apps Catalog

  Let's say your company SharePoint environment is running a number of custom applications provided by an outside development company. Whenever the development company makes an update available for one of the customer apps you will see an update hyperlink next to the application in your SharePoint apps catalog. Typically you would click this hyperlink and it would begin downloading the update from the development company's site and allow you to update the application live in your own SharePoint farm. Now what happens if, one day, you apply an update to one of your customized applications and sometime shortly after discover that updates to any customized apps begin to fail? You're native, let's say oob apps, continue to update properly but the apps from your custom app provider no longer update without an error like: Sorry, there was a problem with <Custom Application> Accessing reference file <long internal url referencing your custom masterpage>.master from <another long internal url> SPHostUrl=SPAppWebUrl=….is not allowed because the reference is outside of the App Web." This problem does not affect a SharePoint app that doesn't need an app web, such as cloud hosted apps. This will only affect apps which need an appweb such as SharePoint hosted apps. So where is this alert coming from? There are several potential causes but these come to mind: First, you may have checked off the box in your master page administration page to [reset all subsites to inherit this site master page setting… ChangeSiteMasterPage.aspx] and applied this to a publishing enabled site collection which applies the master page to all sub sites. Second possibility would be that you deployed a design package. Third, you've implemented code that applies a custom master page to your site and it propagates through all of your web apps and updates the master reference. Keep in mind that even though app webs use a different url than your main site collection they are still handled like any sub site/web. Therefore this changes the masterpage reference of your app webb and it will error as it attempts to access restricted resources outside of the allowed App Web. Since editing/modifying an app web you may have downloaded from the SharePoint app store or one you may have purchased from an outside developer through SharePoint Designer you will have to rely on PowerShell to get the job done. This is just an example of how this could be done through powershell: #Fix MasterPage Reference $url = 'https://app-8a207b73427346.mydomain.com/' try     {         $site = Get-SPSite $url         $web = $site.OpenWeb('ApplicationNameApp');         $web.CustomMasterUrl = "/ApplicationNameApp/_catalogs/masterpage/app.master"         $web.MasterUrl = "/ApplicationNameApp/_catalogs/masterpage/app.master" $web.Update()     } catch     {         Write-Host 'Error fixing app master url on ' $url, ':' $Error[0].ToString();     }  

Posted by on 22 July 2014 | 4:55 pm

Issues with VSO Services - 7/22 - Mitigated

Update :Tue, Jul 22 2014 10:55 PM UTC This issue is now mitigated and customers should not experience issues while using VSO services. Our DevOps teams are continuing  to investigate the root cause of the issue. We apologize for the inconvenience and appreciate your patience while working on resolving this issue. ------------------------------------- Initial Update :Tue, Jul 22 2014 9:47 PM UTC We are currently investigating issues with Visual Studio Online. Customers may experience intermittent login issues and timeouts while accessing their accounts. Our DevOps teams are engaged and actively investigating the issues. We will provide an update in 60 minutes. We apologize for the inconvenience and appreciate your patience while working on resolving this issue

Posted by on 22 July 2014 | 4:47 pm

SSRS Error: The DefaultValue expression for the report parameter ‘UserTokenSIDs’ contains an error: There are currently no logon servers available to service the logon request. (rsRuntimeErrorInExpression)

You may see the following error when trying to run a SQL Server Reporting Services report for Configuration Manager: "The DefaultValue expression for the report parameter ‘UserTokenSIDs’ contains an error: There are currently no logon servers available to service the logon request. (rsRuntimeErrorInExpression)" This issue can be caused if your reporting services point is unable to communicate with a domain controller. This happened in my lab where there is only a single DC. The DC...(read more)

Posted by on 22 July 2014 | 4:20 pm

Question: Can Azure Active Directory run directory access queries on LDAP/Secure LDAP?

Quick answer - kind of Long answer - read below WE ALL AGREE THAT WE HAVE TWO VERSIONS OF AD HERE Azure AD Windows Server AD IN THE STRICT SENSE, AZURE AD DOES NOT RUN LDAP/SECURE LDAP Instead, the programmatic directory service interface for Azure AD is the REST-based Graph API . Read more here: http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx Instead of developing a separate identity store and authentication process for each discrete cloud application, Windows Azure AD provides a single identity service that can be leveraged by all of your cloud applications. This is a key point regarding Azure AD - that a single identity service that can be leveraged by all or groups of your cloud applications . Azure AD can also be integrated with an on-premises Windows Server Active Directory infrastructure via Directory Synchronization and Active Directory Federation Services (ADFS) to provide single sign-on to Enterprise users for both on-premise applications as well as applications developed for the cloud. My colleague Keith explains here: http://blogs.technet.com/b/keithmayer/archive/2013/01/06/options-for-building-active-directory-in-the-cloud-with-windows-azure.asp SPECIAL CONSIDERATIONS WHEN RUNNING WINDOWS SERVER ACTIVE DIRECTORY IN VIRTUALIZED DOMAIN CONTROLLERS The assumption is that your VM in Azure is on VMs with Hyper-V DNS The built in Azure DNS doesn?t have all the features needed by Active Directory, such as Dynamic DNS Here are some links that might help http://technet.microsoft.com/en-us/library/cc725925.aspx http://msdn.microsoft.com/en-US/library/azure/jj156088.aspx http://www.ytechie.com/2013/06/setting-up-a-dns-server-in-azure-iaasvms/ http://social.msdn.microsoft.com/Forums/windowsazure/en-US/565ef33c-0a97-4721-8239-a6d5efecb487/dns-for-azure-vm?forum=WAVirtualMachinesforWindows IP ADDRESSING Azure VMs using dynamic IP that are constant for the lifetime of the VM When a VM is shutdown (deallocated) mode that the virtual network IP is lost http://adventuresinsidethemessagebox.wordpress.com/2013/08/15/windows-azure-vm-ip-addressing-behavior-change-shutdown-in-azure-portal-now-releases-dynamic-ip-address/ To overcome this issue, you will need to provision a Windows Azure Virtual Network prior to attempting to provision the first domain controller VM A Virtual Network in Microsoft Azure provides you the ability to predict which IP address your virtual machine will have at boot time and as long as the virtual machine is not re-provisioned that IP address will remain the same http://michaelwasham.com/windows-azure-powershell-reference-guide/setting-static-ip-addresses-in-a-virtual-network/ DISK For disk access speed, Azure uses Read-write host caching. But there is a slight chance of data loss. To overcome this, attach a second empty disk to our VM that we format and use for the NTDS DIT and SYSVOL folder locations Summary For step by step instructions, see this post: http://blogs.technet.com/b/keithmayer/archive/2013/01/17/step-by-step-building-a-windows-server-2012-active-directory-forest-in-the-cloud-with-windows-azure.aspx

Posted by on 22 July 2014 | 3:18 pm

Friday Five - July 18, 2014

1. Getting Started with xUnit for Xamarin By Windows Platform Development MVP Oron Novotny 2. Windows boot time, explored in Powershell  By PowerShell MVP Carlo Mancini  3. Day 25: Personalizing Notifications By ASP.NET MVP James Chambers 4. Visual Studio/TFS 2013 Update 3–Release Candidate By Visual Studio ALM MVP Jeff Bramwell  5. OneNote as a Workshop Planning Tool  By One Note MVP Ben Schorr 

Posted by on 22 July 2014 | 12:43 pm

Why one plus one equals ten for physicians and information technologists

An article in Becker’s Hospital Review caught my attention this morning, not specifically because of the topic but rather because of what it portends for the careers of physicians and health IT workers. The article, 10 Concerns and Trends Facing Hospitals Right Now , is a terrific synopsis of everything a hospital CEO should be focused on these days if he or she wants his or her hospital to survive. The concerns range from the growth of high-deductible insurance plans and accountable care organizations...(read more)

Posted by on 22 July 2014 | 12:14 pm