September 25, 2014

[勉強会]SQLWorld★大阪#27開催しますよ

SQLWorld★大阪#27
http://sqlworld.org/event/20141018/
 
2014/10/18(土)にSQLServerメインの勉強会を参加します!

今回はなんと、マイクロソフトのジニアス平井さんを大阪にお呼びしています!!

ジニアスといえば魔法のような熱いプレゼンを魅せてくれるお方です…!!

とても楽しみですねー
興味のある方はぜひお越しください〜(^^)/ 

haruka_sao at 23:48コメント(0)トラックバック(0)SQLServer勉強会 

September 24, 2014

[勉強会]Boost.勉強会#16大阪を開催しました

Boost.勉強会#16大阪 -2014/9/20(土)
https://sites.google.com/site/boostjp/study_meeting/study16
 
C++に関する大阪での大きなコミュニティイベントとしては
約1年ちょっとぶりの開催だったかなーと思います 

Boost.勉強会に初めての方、学生の方にも比較的多く参加してもらえたような気がします

C++のユーザは関西にも多くいると思うのですが、業務以外で、他の方のコードを見たり、意見を聞いたりすることは少ないのではないでしょうか?
というわけで、わたし自身も貴重な体験をした機会となりました


*「boostとstdとC#」 石川さん

VS++方言で for each がC++11以前にも使えたとは知りませんでした
 ※Boostはマクロだったのね。。

あと property もマクロで実現できるとは。。

個人的にはVC++の情報はあるような無い様な。。なので、とても面白かったです
C#との対比も石川さんならではのアプローチでGoodでした

石川さんは最後にLTでも Friendly というテスト自動化ツールの紹介をしてくださいました
このツール、他のWindowsアプリにテストコードを仕込めるので、すごいんですよ…!


*「便利!電動歯ブラシ」 Flastさん
 
タイトルからは想像が難しいのですが
Boostの歴史、今、Boostの開発に関わる方法などを丁寧に解説頂きました
歴代Boost.勉強会の中でも一番Boostっぽい内容だったかもー

気になったのはBoost.Predef でエンディアンが取れたりするのはすごいですねぇ。。
今、エンディアンが必要シーンは少ないとはおもいつつ。。

あと開発の方法を改めて日本語情報で聞けたのはとても良かったです
日本人的メールの返信である top post(引用返信ではなく、言いたいことだけ上に書く書き方) が嫌がられるのも、知らなかった。。 
勉強になりました


*「自由ゲーム運動決起集会」 UEMURAさん
 
ライセンス話含めた、ソフトウェアの自由に関するお話
GPLについては何となく知っていましたが、フリー=無料ではないという概念や
ソフトウェアのソースやバイナリの配布と、画像データ/音楽/シナリオの配布は別ライセンスであるという考えなどについては知らなかったので、面白かったです 

ソフトウェアに関する知識として、開発者であれば知っておいても損は無い内容だとは思いました


*「CasablancaによるHTTPプログラミング」 egtraさん

おおーこれはあのカサブランカじゃないですかー!
C++ REST API という正式名称がありますが、こちらはマイクロソフトが開発してる、コードネーム:カサブランカのことです
※そういえば昔わたしも、Room metro #17大阪で取り扱いました 
 当時は バージョンも1.3くらいだったような気がしますが
 2014/9/24 本日現在 2.2.0 になっています、活発!!

Boost.AsioとOpenSSLが内部的に使われているなど、言われてみれば
あぁ!なるほど!なのですが、よくお調べになられましたね。。
利用する側にとったらBoostは全く意識せずに利用できるので、良い感じにラップしてくれています

ところでegtraさんはとてもVC++にお詳しいので
Microsoft MVPに応募しては如何ですか?とおススメしておきました(*'▽')
東京からお越しくださってありがとうございました!


*「帰ってきたコンセプト」  江添さん

わーい、いつもブログ拝見してますーと
思わず司会の立場を私的利用してご挨拶してしまいました///
C++11に入る予定だったあの有名なConseptの話、そして時期規格に策定予定?である Consept Liteのお話を頂きました!

Consept …良いですよね。。この機能
テンプレートが実引数の型をチェック出来る
 →つまり、テンプレート解釈の上の方(最初の方)でコンパイル時に解釈できる
   →つまり、テンプレートの下の方(奥の方)まで潜らなくても解釈できる
    →テンプレートの意味不明なエラー表記を見なくても良い!

さっさと入れてくれても良いねんで!

江添さんも、東京からお越しくださってありがとうございました!


*「右と左の話」 Cryoliteさん

L value / R value の規格の話を、判りやすく解説したセッション

右辺値と左辺値の意味、左辺値から右辺値への変換はOK
右辺値から左辺値の変換はNG
など、普段なにげに書いているコードを参照しなからの説明でした

move semantics との絡みも聞けたら嬉しかったけど、それは次回リクエストしておこー

ちなみに 42 というマジックナンバーは良くC++系のサンプルや書籍で見かけます
なんで 42 なんでしょうね?? 


*「拡張可能でprintfっぽい書式指定ができて書式指定文字列と引数をコンパイル時に検証できる文字列フォーマット関数を作った」 decimalbloatさん

printf の拡張を作った(作っている!)お話
printf の出力位置を指定できる機能や、組み込み型以外のユーザ定義型でも出力可能など、とても発想が面白いです

わたしはこういうライブラリやフレームワークを作ったことが無いので
どういうモチベーションで作るのかなーと思ってお伺いすると
ヒマだったから。。とのことでした

実際には、こういうのを考えるのが得意とか好きとかなんだろうなー


*所感

去年Boost.勉強会 大阪を初めて開催した時には、正直言ってとーーーってもしんどかったので、もうやらん…!と思っていたのですが、今年もやってしまいました

自分が開催しないと、大阪では誰もしてくれない。。という事実もあり。。

とはいえ、わたしの開催に対するモチベーションは、、やっぱり知らないことを知りたいという好奇心なんだろうなーと今回改めて思いました

あとは、参加出来て楽しかった、大阪で開催したらまた参加したいなーという声もちらほらお伺いできたので、それも次回開催への動機につながりそうです

開催を決めたはいいけど、セッション時間を埋められるやろうか。。と不安でしたが
すぐに講師候補のあても見つかり、多くの方に参加して頂けて、本当に良かった〜

受付やスタッフ業務も、決してすんなり行ったわけでは無く、参加者にほぼ助けられた感じで、もたついてて申し訳なかったです

関わって下さったみなさま、本当にありがとうございました

懇親会、2次会とへて、最後は立ち話でうだうだと C++に関する疑問をあーだこーだ付き合ってくださった方々も、ほんまにありがとうございました

反省点も多く、精進すべきことも沢山見つけることができた貴重な勉強会でした


haruka_sao at 03:25コメント(1)トラックバック(0)C++勉強会 

September 23, 2014

[Paradox]Sillicon StudioのPARADOX1.0α公開

つい先日の 2014年8月29日にSillicon Studioが提供する PARADOX Game Engine が公開されました

PARADOX Game Engine
http://paradox3d.net/

ゲームに特化したパッケージシステムです

開発言語 : C# 5.0
プラットフォーム : Windows (Desktop)AndroidiOS
 ※Windowsストアアプリ、Windows Phone,
  MacとLinuxのデスクトップアプリは comming soon!
  どうやら PlayStation4 でもサポートされているらしい
  http://paradox3d.net/features-platforms

ライセンス:
 現在配布されているバージョンは 1.0.0-alpha 08 
 9月23日現在、この 1.x 系については、今のところフリーとして利用できます

ダウンロード: http://paradox3d.net/download

開発環境 :
 Windows7 SP1以上、Windows8 以上
 グラフィックボードは DirectX10以上対応のもの
 

<インストール>

というわけで、ちょっとインストールしてみました

わたし自身の環境には、既にVisual Studio 2013, Xamarin, Android SDK などがインストールされているので
Paradox をダウンロード & インストールするだけですんなりと環境構築出来たのですが

素のWindows OSに入れるのは、多少手順があります

今回、新規Windows8.1 を用意して入れてみました

  1. Visual Studio 2013をインストールする
  2. Android SDKをインストールする (わたしはSDK Tools Only版を入れた)
  3. Android NDK を展開する (ファイルを設置するだけ)
  4. Xamarin をインストールする
  5. Paradox をインストールする
Windows で Xamarin つまり、Android を動作させない場合は、2〜4は抜いても大丈夫ですが、せっかくのクロスプラットフォームなので、インストールしておいても良いかなと思います

実は、Xamarin のインストール時に、Android SDK & NDK は一緒に入ってきます
ただ…Android SDK のインストールパスを選択することが出来ませんでした
 →2014年9月23日現在

※正確には、選択できるのですがフェイクで機能してなかった…
 実際には c:\Users\Sao\Appdata の下にどどんと入ってしまいました

なので、Android SDK のインストールパスを自由に変更したい人は
Xamarin を入れる前に入れておいた方が良いと思いました


<パッケージ構造>

Paradoxのパッケージ(≒ソリューションファイル)に含まれるコンテンツは3つ
※このパッケージの拡張子は .pdxpkg となっていて、Paradox Studioで開くことが出来ます

(1)Game assets
.pdxtex, .pdxsprite, .pdxfnt などなど

(2)Code libraries
C#プロジェクトを直接利用できる
クロスプラットフォームのためのエントリーポイントが登録されている

(3)a set of dependencies
パッケージの依存性解決など

利用するのは(1)のコンテンツ系のものを Paradox Studio で編集し
(2)のソースコードを Visual Studio で編集するというスタイルになります


<アーキテクチャ>

SilliconStudio.Paradox.Game
クラスがゲームシステムのメインになるようです
 
ここには
  • Audio
  • Effect
  • Log
  • Font
  • GraphicsDevice
  • Input
  • PhysicsSystem
  • Render
  • Script
  • Amination
  • UI
  • 初期化処理
  • データロード処理
などが入っている模様
色々とゲームで必須な機能が、完備されているイメージです


全体のアーキテクチャはこちら
http://doc.paradox3d.net/html/index.htm?page=Assemblies+diagrams


<プログラム&アセット>

プログラムコードは、作成時に 「ソリューション名.Game」というのが作成され
ここにゲームの処理と描画を書いていくことになります

 
 1 
// ゲーム開始時の初期化に呼ばれる
 2 protected override async Task LoadContent(){}
 3 
 4 // スプライトの作成
 5 spriteBatch = new 
SpriteBatch(GraphicsDevice) { VirtualResolution = VirtualResolution };
 6 blockData = await Asset.LoadAsync<Texture2D>("BLOCK_TEX");
 7  // ↑↑↑ こんな感じで Texture を読み込む
 8 
 9 // Add a custom script
10 Script.Add( RoutineGameMove );
11   // ↑↑↑ こんな感じでスプライトに対する動きを自作する
12   // ここはゲームループになっている
13 
14 // スプライトの描画登録
15 RenderSystem.Pipeline.Renderers.Add(new DelegateRenderer(Services) { Render = RoutineRender });
16   // ↑↑↑ こんな感じでスプライトに対する描画も自作する(RoutineRender)
17   // ここは描画ループになっている


とはいえ上記の様に、Unityに比べると随分と手作りするところが多いです

ただ、Paradox Studioが結構良さそうに見えまして、テクスチャの登録、アニメパターンの作成&グループ化など、細々とした部分を全てフレームワークが補ってくれています

例えば、以下のような感じでテクスチャを追加できます

paradox_install00

名前の管理、サイズ、アルファ設定、トリミング範囲など、色々なパターンを設定できる

paradox_install01


これはとても良いですね!

描画処理のつらみの部分をゆるやかに提供してくれているので
自由にゲームの作りこみの部分に集中出来るのが嬉しいです


しかし、これ、相当コンシューマーゲーム作成者向けです

逆に言うと、コンシューマーゲームを作ったことのない人は、全くピンと来ないかも…
((つまり、辛さしかない印象になると思います


<ライセンス>

Paradoxそのものはオープンソースなので、利用自体は無料です

なのですが、AndroidとiOSに共通してデプロイしようとすると、Xamarin のライセンスが必要になります

こういう辺りも、一般ユーザ向けではなく、企業向け(コンシューマー向け)の香りがします

ちなみに、Xamarinの知識は一切不要です

Siliconstudioの内部フレームワークの中で利用しており
Xamarinはあくまでライセンスとして必要なだけ

MVVMCrossなど、Xamarinそのものが提供する機能を
ゲーム開発者が利用する&学習する必要は無い様です


<感想>

私的にはC#でさくっとかけるし、作りやすいんじゃないかなーと思います

…が、個人向けではなさそうなので(特にライセンス!)
どんな感じで今後広まるのかどうなのか!?
楽しみな技術ではあります

あと私事ですが、先日、Room metro #27 でParadox を用いてハンズオンを実施しました

http://metrostyledev.net/index.php/event/20140917/
 
テトリスにチャレンジしたわけですが、ブロックを落としただけだと、みなさん、不満だったようで

えーテトリミノ回らないのー?
さおさん、これ押したらバグってるよー
画像変えたら動かないー

などなど厳しいご意見を頂きましたので
続きを絶賛作成中でございます…

出来たらまた公開します(^^)/


haruka_sao at 04:21コメント(0)トラックバック(0)Paradoxゲーム 

August 31, 2014

[勉強会]Introducing Windows Runtime:Hokuriku.NETvol.15の資料公開しました

北陸にお邪魔しました!

Hokuriku.NET vol.15

その際にお話させて頂いた資料を公開します


* Introducing Windows Runtime

自分が調べてきたWindows Runtimeについての導入セッションとしては
これが最後になるかなー

さてさて、福井に行ったわけですが、お蕎麦がとても美味しかったです(~o~)

hokurikunet1500
 
去年もお邪魔させて頂きましたが、今年もみなさま暖かく迎えて下さって
とても楽しかったです


haruka_sao at 12:35コメント(0)トラックバック(0)勉強会WinRT 

August 21, 2014

[勉強会]Hokuriku.NET vol.15に参加します

北陸にお邪魔します!

Hokuriku.NET vol.15
http://hokurikunet.doorkeeper.jp/events/13746
 
2014/8/30(土) 13:00から、福井県で開催する
okuriku.NET に参加します(~o~) 

光栄なことに、セッションを持たせて頂けるのです

Introducing Windows Runtime

WinRTのアーキテクチャ、WinRTのコア機能、Windowsストアアプリテンプレート、ユニバーサルアプリ、Windowsストア配布などをキーワードにして、
Windows Runtimeの仕組みを解き明かします。

これを聞けば今日からあなたもWindows Runtimeのファンに!

セッション内容については、WinRTの特徴を押さえて、WinRTってこんなに面白くってすごい技術なんだよー
をお伝え出来たらいいなかーと思っています

えへー楽しみですねー
わたし自身も本当に楽しみです

お近くの方も、そうで無い方も、お気軽に参加下さい

(あ、とある方から頂いている書籍のお土産を持っていきますー当日のお楽しみに!)


haruka_sao at 19:58コメント(2)トラックバック(0)勉強会WinRT 

August 11, 2014

[読書]30歳で400億円の負債を抱えた僕が、もう一度、起業を決意した理由

ちまたで増版大人気という半生自伝

30歳で400億円の負債を抱えた僕が、もう一度、起業を決意した理由
 杉本宏之

を購入してみました
これ、2014年7月17日に第1刷出てますが
なんと! 8月8日にすでに第3刷です!!すごい勢いですね



以下、すべて私見ですので、あしからず…

これは、自己啓発本とかの類ではなく、著者の杉本さんが体験された

会社経営に関する事象とその当時の気持ちを

淡々と書き連ねている本です

成功→転落→民事再生の過程は、壮絶ですね…
会社経営者の話なんて、リーマンの自分には関係ないよ〜
などと思わずに、是非一度読んでみてください

ただ、ケータイ小説っぽい、淡々感があるので
文章力という意味では、あまり期待しない方が良いかもしれません
 ※杉本さん、この本のファンのみなさん、偉そうでごめんなさいね 

とはいえ、民事再生するまでの転落話を読んでいるときは、泣いてしまいました…

文章力うんぬんではなく、体験されたことが強烈すぎて…涙と鼻水が…


後半の再起の起業を決意した理由は、まぁ判らなくはないですが
かなり「ぼかした」書き方をしているので、前半ほどの迫力は無いです

たぶん…現在進行形だから、外野からの雑音を受けたくないのかもしれませんね

とはいえ、今日も自分が気になったところメモをしておきます


*「業績」という名の魔力が経営者の正気を奪う
 
これは、会社経営でなくても、個人に落とした話でも言えることだなぁと思います

自分は何がしたかったのか?何をすべきなのか?自分にとっての本質は何なのか?
見落としたらだめ!だめ!だめ!!!といつもわたしも考えています

…でも見落とすんだよねぇ。。。。。。


*「人間、上り調子の時にはたくさんの人が寄ってくる。

でも、苦しい時に支えてくれる人は多くは無い。人の真価は、苦しい時にこそ露わになるものである。」

これ読んで、昔、父親が言ってた言葉を思い出しました

調子が良い、仲が良い時は、どうでもいいんや
ほっといても、良い状態なんやから
調子が悪くなった、仲が悪くなった、喧嘩した、そんな時にどういう対応が出来るか?そこが大事やで


*「会社は決して外的要因で潰れるんじゃないということだ。

会社が潰れる理由は内側にある。
つまり、経営陣がしっかりと本質を理解していれば、たいていの問題は解決されると言ってもいいだろう。」 

これも個人に落とすことが出来ますね…

そういえば、映画(漫画)で「俺はまだ本気出してないだけ」ってありましたね(笑)
あ、例えがちょっと違いますね…///

つまり、全ては自分次第、人や環境のせいじゃないってことね

しかし、このセリフが書ける人というのは、かっこいいよ…


*感想

記憶に新しい、時の人達のお話も満載で、まぁ…すごい世界です

全体的には、淡々話だけではなく、もうちょっと厚みが欲しいかなーとは思いました

厚みというのは、、、

つまり、この杉本さんにとっての、「肝心な何か?」は書かれていないのです
そこが残念ポイントかなぁ…

ただ、人と同じ目線に立って書いてくれているので、スーパーマンの自伝じゃないです
それに親しみも持つし、好感があるし、読みやすさも出てくるのかもしれません

あと、使われている用語は、勉強になりました

金融用語も勉強になりましたが、
恥ずかしながら、単純に難しい漢字とか言い回しとか、判らない用語がたまに出てきたので、ネット辞書で調べながら読みました…///
 →鬼籍、レバレッジ、パリバ、最後通牒…などなど
  知らなかったとか、読めなかったなど、本気で(/ω\) です…良い大人なのにほんまあかんわ…

というわけで、私的には好感の持てる本でした

おススメです

haruka_sao at 00:13コメント(0)トラックバック(0)読書ヒューマンスキル 

July 26, 2014

[勉強会]RAD勉強会でappmethodについてお話させて頂きました〜

第1回 RAD Studio勉強会@Osaka にお邪魔させて頂きました!!

http://rad-studio-osaka.doorkeeper.jp/events/12713

appmethod とは!?
簡単に言うと、C++ or Object Pascal でモバイル開発出来るプラットフォームです

*appmethod HP
 

たいしたことはしてないのですけど、まだ appmethod は2014年の4月下旬に公開されたところです
日本語の情報もそれほど多くないので、初めて触る人の参考になればと思い、作りました
 
発表資料 pptx版
 → http://jyurimaru.info/data/20140726appmethod/20140726_appmethod.pptx

発表資料 PDF版
 → http://jyurimaru.info/data/20140726appmethod/20140726_appmethod.pdf

デモで利用したプロジェクトファイル
 →http://jyurimaru.info/data/20140726appmethod/20140725appmethod_demo00.zip
 →http://jyurimaru.info/data/20140726appmethod/20140725appmethod_demo01.zip
 

LiveBinding良いですよ!
ちょっとまだこれだけでは機能が足りてない感じは否めませんが

appmethod20140725_00

グラフィカルなのは、相当新鮮(~o~)

例えば、VisualStudio系の機能を全てこのような図で表現するのは難しいと思いますが
関連性が判るだけでも良いよねぇと思いました

たまには他のテクノロジーを見るのも良いなぁを実感です 

haruka_sao at 16:51コメント(0)トラックバック(0)C++appmethod 

July 22, 2014

[VMWare]VMwareClientでゲストOSとコピペする方法

VMWareで接続しているゲストOSと、自分の作業端末との間で
コピペしたいとき!

1. 仮想マシン落とす
2. VMware vSphere Clientの設定編集
3. オプションタブ>詳細>全般>構成パラメータ

下記を追加
isolation.tools.copy.disable   →   false
isolation.tools.paste.disable   →   false

これでいちお、こぴぺできます
でもコピペできるサイズが限られてるので、数メガあるテキストファイルなどは
コピペ出来ませんでした

そんなときは、分割しましょう(苦肉の策…)
[PowerShell]ファイル分割スクリプト

参考リンク
*VMware vSphere Clientでコピペ
http://kulog.org/pc/software/k5676/



haruka_sao at 12:57コメント(0)トラックバック(0)VMWareTips 

July 17, 2014

[PowerShell]ファイル分割スクリプト

大きなファイルを分割する必要があって
めっちゃ困りましたけど、また PowerShell で解決しました
なかばやけくそ

<sep.ps1>

$my_path_name = "c:\tmp\"
$my_file_name = "abc"
$my_file_kind = ".log"
$cut_num      = 2000    # 切り取る行数

$my_file = $my_path_name + $my_file_name + $my_file_kind

$count = 0;
Get-Content $my_file -ReadCount $cut_num -Encoding UTF8 | 
    ForEach-Object { 
        $count ++
        $cfs = "{0:D3}" -f $count;
        $_ > ($my_path_name+$my_file_name+'_'+$cfs+$my_file_kind)
    }


結果

ps_sep00

あまり何も考えず、元ネタはこの方のブログですー
*参考サイト:powershellが超便利 - fivegangstersのブログ

haruka_sao at 21:57コメント(0)トラックバック(0)PowerShellTips 

July 16, 2014

[勉強会]Room metro#26開催しました

勉強会を開催しました

*Room metro #26 大阪
http://metrostyledev.net/index.php/event/20140712/
 
今回のテーマは、「あなたの気になるフレームワーク特集」ということで、いろんな技術をごった煮してみました

 
 metro26

これは何かというと、サンプルプログラムで cocos2d-x を動かした図です

ベースはWindows Phone 8 :)

初めて cocos2d-x を触ったのですが
実際には自分の知らないことばかりで、仕組みを理解するのにずいぶんと時間がかかってしまいました…

というわけで、画像を出しただけで終わってしまってますが
このままでは悔しいので、続きはどこかで必ず…

さて、当日のセッションの様子をまとめてみます
数が多かったので、何となく密度が濃かった…!!

  • JavsScript MVVM
JavaScript最近触って無かったので、とっても簡単にMVVMが実現できるとは知らなかったです
新しい情報は常に集めないとダメですね〜を自戒
@fuku518さん、発表がとても上手…さすがや〜

  • Xamarin - MvvmCross
この頃、Microsoft界隈では大賑わいのXamarin
安定のいせさんセッション
MvvmCross or Xamarin.Formsだと、まだ Xamarin.Forms を本気利用するのはちょっと待った方が良いみたいです
(iOS8などの兼ね合いか?)
各プラットフォームによって、ちゃんと命名規則があったり、バインディングの方法が違ったりするので、そこんとこ要注意

  • EdgeJS
Room metro大阪でJavaScriptといえば丸山さん
一言で言うと、面白かったし、気持ち悪かった
JavaScript のコメントの中に C# のコードを書くと、その部分の C# がちゃんとコンパイルされるというモノです
これはすごい
さらに SQLServer へアクセスする SQL文も、コメント中に書ける!
Python, F#, PowerShell も書ける!(コメント中に!)
こんなことを考える人もいるんですねぇ

  • Reactive Extensions
こちらも yone64 さんの安定セッション(~o~)
こちらも、Microsoft系の開発者が大好きなReactive Extensions、略してRx
非常に基本的なところから解説頂いて、判りやすかったです
道化師さんがブログで書かれてましたけど、C++版のRxもあるみたいで…
今度使ってみよう。。
https://github.com/Reactive-Extensions/RxCpp
ちょっと見たけど、うわ、こんな書き方になるの。。

  • Javaごった煮
お ださんが、そろそろJavaも8になったから見直してもええねんで!の一言で始まったセッション
非常に多彩なフレームワークを次々と紹介してくださり、こんなに色々揃ってるのか…を実感しました
Javaやってる人なら、セッション資料はぜひともみとくべしっ!

  • 一人ガラパゴス開発
これは壮大なプロジェクトです…!!
正直、これを作ったのかと思うと、びびりました
Boland C++ユーザだったのでイタシカタナシだったようです
道化師さん お疲れさまです(~o~)
ちょっと勇気をもらえました(笑)

  • Roslyn
再び、丸山さんにお願いしたセッション
1回に2つも頼んでしまってごめんなさい
最近のRoslynは、C# pad 作れる機能 - つまりC#を自分でコンパイル出来るエディタアプリを作れた機能が削られているとな…
もうちょっと待ってって言われているらしい
あとは、年に1回くらいは、Roslyn が必要になることがあるかもしれないwwという事でした

  • Dart
なんとなんと、この2014年7月9日に ECMA-408 通ったみたいですね!!
全然知らなかったのですが、規格になるくらい注目されているってことかな?
IT業界に身を置いているなら、知識として知っておくべきものなんでしょうね
あーフレームワーク特集やってよかったですよ…
かわかわさん、ありがとうございましたー

  • C# vNext 新機能紹介
vNextが、vNextが…って、いったいなんやねん!?と思ってましたが
C# MVP のxin9le さんがC#の新機能を華麗に紹介してくれました
よく見ると、すごいっ!こんなサイトまで用意されているなんて…!!

Try! C# vNext
http://xin9le.net/csharp-vnext

機能の紹介だけならふーん、、で終わるのですが
使い方の紹介も一緒にして下さったので、めっちゃ判りやすかったです

  • Unityを遠隔操作しよう
みつばたんに紹介してもらったUnity遠隔操作方法
OSCを使って、別の媒体から Unity の3Dモデルをぐるぐるするというもの
Windows8 のタブレットに表示されている Unity ゲームを、Andlroid から遠隔操作するという…
まさに今っぽい需要のセッションでした(~o~)

  • Unity
 いつもお世話になっている moririring さんのセッション
Unity を使って、イチからコインプッシュのゲームを作ってくださいました
時間にしてわずか20分程度…これもすごい
Unity 操作さえ覚えたらめちゃ簡単ですね!


こんな感じで、みなさま終わりごろには、少しのぐったり感が…
非常に盛りだくさんでした

そして、とてもとても勉強になりました 
講師のみなさん、そして参加して下さったみなさん、本当にありがとうございました
 


haruka_sao at 22:55コメント(0)トラックバック(0)勉強会WinRT 

July 04, 2014

[PowerShell]ODP.NETを用いてOracleDBを操作する(IPアドレスでアクセス!)

PowerShellを用いてオラクルにアクセスする方法は2つあります

(1) System.Data.OracleClient を使う(2009年6月に非推奨になったよ)


[void][System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")
 
  • マイクロソフト社が提供しているオラクルDBへの接続モジュール
  • デフォルトのPowerShellで利用できる
  • DBAアクセスは出来ない(ノーマルユーザのみ)
  • このモジュールでふつーにDBアクセスすると、32bit のOracleClient に接続しようとする → もっともダメポイント
簡単に言うと、最近のサーバは 64bit なので
32bit 前提の OracleClient と、超絶相性が悪いです

過去の自分の記事に書きました↓↓↓

*[PowerShell]32bitと64bitの使い分け
http://blog.livedoor.jp/haruka_sao/archives/52067968.html


また、MSDNブログにも、非推奨になったよ。の記事が上がってます

*System.Data.OracleClient Update - ADO.NET Blog(英語)

デフォで使えるのは嬉しいですが、はっきり言って過去の遺物
捨てコード以外では、使わない方が良いと思います

(2) Oracle.DataAccess.dll を使う


[Reflection.Assembly]::LoadFile("C:\Oracle\ODAC\odp.net\bin\2.x\Oracle.DataAccess.dll")
  ※インストール時にインストール先は指定できます
 
  • オラクル社が提供しているオラクルDBへの接続モジュール
  • インストールが必要
  • DBAアクセスも可能!
C#のサンプルコードなども豊富に提供されているので、利用方法には困らないですね


<インストール>

ダウンロードはここからできます
*Oracle Data Access Components (ODAC) for Windows ダウンロード
 →64-bit ODACダウンロードをクリック

odac00

XCopy版でわたしは試しました

odac01
 
このODACは ORACLE_HOME に入れてはいけないっていう注意書きがありました

解凍すると、install.bat があるので、実行してみると使い方が載っています

あ、インストール作業は管理者権限が必要なので
コマンドプロンプトは 「管理者として実行」 を選択してください!!

odac02


全部使ってもいいんですけど
わたしはWindows Server 2008 R2 に入れたので
インストール対象は「ODP.NET20 - Oracle Data Provider for .NET 2」のみにしました

解凍フォルダに入っている readme.html によると、インストールコマンドは、これで良いみたいです

> install.bat odp.net2 [インストールパス] odac 

odac03

インストールが正常に完了したら、無反応に終わりますので、ご心配なく。。

(管理者権限で実行していないコマンドプロンプロトの場合は、エラーが表示されます) 

こんな感じで、インストール完了します

odac04
 

<DBアクセスのサンプル>

せっかくインストールしたので、サンプル的にアクセスする方法を載せておきますね
以下のわたしのサンプルは
Oracle DBで取得しているStatspackの情報を取りたかったので
stats$snapshot にアクセスしています

各自、自分のアクセスしたいSIDやテーブル名に置き換えてください

このソースの私的ポイントは、IPアドレスでアクセスしている所かなー

PowerShell と Oracle の組み合わせで、IPアドレスアクセスをしているサンプルが、ネット上でなかなか見つけられなかったので…
参考になればと思います



# PowerShell で Oracleアクセス

# =========================================
# =========================================
# =========================================
#
#   設定読み込み
#
# =========================================
# =========================================
# =========================================
# Load the ODAC assembly
[Reflection.Assembly]::LoadFile("C:\Oracle\ODAC\odp.net\bin\2.x\Oracle.DataAccess.dll")

$d_url = '192.168.0.1'
$d_port= '25'
$d_sid = 'orcl'
$d_usr = 'perfstat'
$d_pw  = 'password'
$d_ck_hours = '1'   # Statspackの過去1時間分をチェックする

# -----------------------------------------
#
# SQL実行
#
# -----------------------------------------
function sql_query( $sql ){

    $command = New-Object Oracle.DataAccess.Client.OracleCommand( $sql, $conn )
    return ,$command.ExecuteReader()                        # SQL実行
}

# =========================================
# =========================================
# =========================================
# -----------------------------------------
#
# メイン処理開始
#
# -----------------------------------------
# -------------------------------
# connect to Oracle 
# -------------------------------
$constr = 'Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=' `
    + $d_url + ')(PORT=' + $d_port  `
    + ')))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=' `
    + $d_sid + ')));User Id=' + $d_usr + ';Password=' + $d_pw + ';'

$conn= New-Object Oracle.DataAccess.Client.OracleConnection( $constr )
$conn.Open()

# -----------------------------------------
# 動作している時間のStatspackの SNAP_ID, SNAP_TIME を取得する
# SQL作成
# -----------------------------------------
$my_sql = New-Object System.Text.StringBuilder
[void]$my_sql.append( 'select t.SNAP_ID, t.SNAP_TIME from stats$snapshot t' )
[void]$my_sql.append( ' where t.SNAP_TIME >= trunc( sysdate - ' )
[void]$my_sql.append( $d_ck_hours )
[void]$my_sql.append( "/24, 'HH' )" )
# [void]$my_sql.append( ' order by t.SNAP_ID' ) 後でソートするので不要

$snap_ids = sql_query $my_sql.toString()

# ---------------------------------------------------
# SQL実行
# ---------------------------------------------------
$hash = @{}
Try{
    while( $snap_ids.Read() ){
        
# SNAP_ID 取得、値は 51 など
        $tmp_id = [System.Convert]::ToInt32( $snap_ids["SNAP_ID"] )

        # 2014年7月4日 15:00:02 などが入っているので、整形する
        $tmp_tm = $snap_ids["SNAP_TIME"].ToString( "yyyyMMddHHmmss")

        $hash[ $tmp_id ] = $tmp_tm
    }
}finally{
    $snap_ids.Close()
}
$conn.Close()

# $hash に必要な値が入っているので、以下、お好きに整形して使う


# =========================================
# End of File



良い感じにデータは取れたと思います

あくまで、ODP.NET はオラクルDBのデータを取得するためのもの…

backup 〜〜;
などのオラクルコマンドなどは実行できないので、気を付けましょう
( ええ、わたし………)


haruka_sao at 22:40コメント(0)トラックバック(0)PowerShellOracle 

July 03, 2014

[WinRT]Windowsストアアプリ一覧ツール:Wintellect's Package Explorerが良かった

Windowsストアアプリを開発していると
開発途中の古いストアアプリ情報が
自分の開発PCにどんどん登録されていきます

もちろん、そのアプリは
まだ、プロジェクトディレクトリが残っていれば、そのまま起動できますし
既にプロジェクトディレクトリを削除したり、移動したりしていれば、もう起動は出来ません

wintellect00

上記のように、右下に × マークがついたアプリアイコン、開発者の方はよく見ているのでは??

wintellect01

アプリ一覧では、起動できないものは「エラー」と表示されていますね…

ちょっと前に作成した時代のアプリケーションは、目に見える形でどうやら残ってしまっていました

右クリックすると、アンインストールできるので、まぁ良いと言えば良いのですけどね…

しかし最近は、

さすがに開発中のアプリごときが、
開発するたびに、アプリアイコンを画面に作るのは、
よくないのではないか?

と、マイクロソフトさんがようやく気が付いたようでして

ここ最近の開発では、このようなエラーアイコンは表示されなくなりました
 ※いつからかは、覚えてないので、すみません…

で、今日の本題です

「ローカルPCに登録されているストアアプリ一覧が見たい」

モチベーションはこれですが、その前に、Windowsストアアプリが動く方法について記載します

<Windowsストアアプリの配布>

WindowsストアアプリがローカルPCで動くには、アプリケーションをインストールする必要があります(もちろんですが)

Windowsストアアプリが動く、つまり、インストールする、つまり、配布する(MSさんはこう呼んでいる)には、4パターンあるようです(さお的まとめ)

(1) Visual Studioで開発し、Visual Studioから実行する
  • 実態は、開発者ライセンスを使って実行
  • 開発者ライセンスとは、無料ライセンスなのですが、30日くらいで更新しないといけないやつです
  • (90日くらい使える時もあるので、どれくらいの更新頻度なのかは、ちょっとよく判んない
  • もちろん、VS持ってないとダメ
(2) Add-AppxDevPackage.ps1 を用いて配布する
  • これも実態は、開発者ライセンスを使っている
  • パッケージの証明書入れたり、アプリが作られた時に出来るPowerShellスクリプトで、そのアプリをインストールできるらしい
(3) 企業内でサイドローディングして配布する
  • ActiveDirectory参加必須!
  • なので無印WindowsRTはインストール出来ない、企業向けだからね…
  • エンタープライズサイドローディングキーを別途購入する必要がある
(4) Windowsストアに出す!
  • マイクロソフトさんがアプリを事前にチェックして、合格したものだけをストアに出展してくれる
  • ストアに出すためには、アプリ開発契約者(有料)になる必要がある
  • 出展さえできれば、確実にインストール出来る!

<Windowsストアアプリ登録一覧>

こんな感じで、いろんな方法でWindowsストアアプリは、各自のPCに入り込むわけですが

最初に紹介した通り、

登録されてるけど、動かないんじゃね?

みたいなアプリが実は溜まっていくわけです
特に開発者は…

そこでおすすめなのが、Wintellect's Package Explorer というデスクトップのツール

*Windows Runtime via C#
http://wintellect.com/Resource-winrt-via-csharp
(2014/8/28 追記)
URLが変わっている様です
このURLの「Windows Runtime via C#, by Jeffrey Richter and Maarten van de Bospoort」の項の「Source Code」 からダウンロード出来ます
7月にバージョンアップ入ってます! 
http://wintellect.com/Resources

"Windows Runtime via C#" は日本語訳もされており

邦題は「プログラミングWindows Runtime」という名前で出ている書籍になります

     

"Windows Runtime via C#" のサンプルコードが結構良いんですよね
URLの 「Source Code」 をダウンロードしてみてください
 
wintellect02

展開後に Wintellect Package Explorer.exe を実行させると、あらまぁ!これはすごいです
今、Windowsストアアプリとして登録されている情報一覧が見えます!!

wintellect03

 今、登録されてるけど、パスとか見失ってもうどこにあるかわかんないよーというストアアプリを、一括アンインストールする機能などあります!

wintellect04

思い切って、「No path package(s)」 を選択してみました

wintellect05

なんと
デスクトップアプリのくせに、トースト通知でパッケージ削除のお知らせがぁ
ニクイ演出ですね


ほら、すっきりしましたよ!!

wintellect06

このツール、いろんなことが出来るみたいで

ローカル設定、ローミングデータも丸見えです

この、Wintellect Package Explorer.exe  は、.exeだけで動く様です
Windowsストアアプリを開発される方は、持っておいて損はないかもしれません

気持ち的には二次配布したいところなんですけど、
さすがに申し訳ないので、本家からダウンロードしてください〜
 
プログラミングWindows Runtime」 は今年 2014年6月9日に出たところの書籍です!
興味ある方はぜひとも〜 


haruka_sao at 21:59コメント(0)トラックバック(0)WinRTTips 

July 02, 2014

[PowerShell]連想配列をソートしてforeachで一個づつ取り出す

PowerShell で連想配列を用いた時のソート&foreach のサンプルがなかなか探せなかったのでメモします

とある連想配列


$tbl = @{
      k00 = "orange";
      k01 = "peach";
      k02 = "apple"
 }


出力は簡単


$tbl


pssort00

ソートの出力も簡単


$tbl.GetEnumerator() | Sort-Object Value

# もしくは

$tbl.GetEnumerator() | sort Value


pssort01


これを一つづつ取り出して処理したい

*単に foreach で取り出すとき


> foreach
( $k in $tbl.Keys ){
    Write-Output $k
    Write-Output $tbl[ $k ]
  }


pssort02

*さらにソートして foreach で取り出すとき


> $tbl.GetEnumerator
() | sort Value |
  ForEach-Object{ 
      Write-Output $_.Name  
      Write-Output $_.Value
  }



pssort03

ForEach-Object を使いました
ただの foreach() でも出来ると思うんですけど、私的用途が満たせたので、これ以上は調べてないです


検索で、「powershell foreach ソート -perl」 などで検索しても、日本語の情報があまり出てこなかったので、参考になれば幸いです


haruka_sao at 17:46コメント(0)トラックバック(0)PowerShellプログラミング 

May 16, 2014

[C++/CX]非同期勉強会でセッションをしました

非同期勉強会にて、C++/CXのセッションをさせて頂きました

非同期勉強会
http://vshtc.doorkeeper.jp/events/10442

当日利用した資料はこちら!
 pptx版はこちら  ←セッション時の私的メモが欄外に載っています
 PDF版はこちら

当日利用した、非同期でのソートプログラムのVSプロジェクトはこちらです!
(VS2013/Windows8.1プロジェクト)
 http://jyurimaru.info/data/20150510AsyncVshtc/20140510C++CXasync.zip 

これは、C++/CX と XAML のプロジェクトになります
※元ネタはこちら(Windows8)
  →Windows 8 Asynchronous Operations in C++ with PPL

読み返すと、なんてことない資料でしたね…

豪華講師陣に囲まれて、本当に豪華な勉強会でした

もっともっと良い情報発信が出来るようにがんばらんとなーを実感しました


haruka_sao at 03:01コメント(0)トラックバック(0)C++/CX勉強会 

May 06, 2014

WindowsでiThunesを入れずにiPhoneのUSBテザリングを使う

タイトル通り

あいつん入れたくない人向けです
たんたんと書きますけど、ご了承を

入れた環境は Windows8.1 x64 です


(1) まずは、iThunesをダウンロードする

URLも書きたくな…、画像だけは張っておきます

ithunesUsb00

チェックも不要、メアドも不要です
「今すぐダウンロード」を押しましょう

(2) iTunes64Setup.exe を解凍します

解凍すると、こんな感じに↓↓↓

ithunesUsb01
 
わたしは、WinRAR を使って解凍しました

*WinRARのダウンロード
http://www.diana.dti.ne.jp/winrar/download.html
 
現時点で、40日間は、試用期間みたいですよ 

(3) 部分的にインストールする

AppleApplicationSupport.msi
AppleMobileDeviceSupport64.msi



(4) あいぽんをUSBで接続し、インターネット共有をオンにする

USBテザリングが出来るようになりました、ぱちぱち

しおんぐさん、ありがとー↓↓↓

(参考)satoweb_log
http://satoweb.net/archive/3240



haruka_sao at 21:40コメント(0)トラックバック(0)Tips 

[勉強会告知]C++テンプレート完全ガイド読書会vol.8大阪やりますよ

2014/5/12(月) C++テンプレート完全ガイド読書会vol.8 
http://partake.in/events/cc57a708-e125-48a9-8eb2-4ce5d595ef26

読書会の告知です!

毎回、ブログに書くわけでは無いけれど
こういう活動をしています!というのを、たまにはお知らせしておこうかと。。

C++に関する情報について、興味のある人たちで集まっています
隔週の月曜日開催です

年間予定はこんな感じです↓↓↓

C++テンプレート完全ガイド年間予定
https://sites.google.com/site/efcpp01/home/template_guide_all_plan


今は特に、C++のテンプレートに関する話で盛り上がっています

ぜひとも、お近くの方は気軽に参加してみてくださいね(~o~)

haruka_sao at 21:09コメント(0)トラックバック(0)C++勉強会 

May 05, 2014

[Hyper-V]VMWare:VMDKをHyper-V:VHDに変換する最強ツールはXenConverterでした

快適な仮想OSライフを満喫していますか〜?

最近でこそHyper-Vが良い感じに動いてくれますけど
やはり ESXi で構築しちゃった仮想環境とか、あるじゃないですかー

Windows Server 2012 も R2 ですし
ここいらで Hyper-V Server などに入れかいよっかなと考える人も多いですよね?

VMWare to Hyper-V の移行がうまく動いたので、メモっておきます



<環境>

わたしの場合は、ESXi 5.0 で稼働している以下の 2つのOS を
Windows Serve 2012 R2 Datacenter Hyper-V に移行させました
  • Windows Server 2008 R2
  • Ubuntu 13
<変換フォーマット>

何はともあれ、OVF 形式よりは、VMDK ファイルまんまが便利です
というわけで、VMDK ファイルでエクスポートしておきます

わたしの環境の場合、Win2008R2 は設定容量80G ですが、エクスポートすると、実質17G の VMDKファイルになりました
Ubuntu はもっと少なくて、2G程度でした

このあたり、VMWareさん、賢いです

<逆変換事情は?変換ソフト VHD to VMDK>

さてさて、Hyper-V で動作させるには、何はともあれ VHD もしくは VHDX の形式に変換しないといけません

これね、、VMDK→VHD 変換ソフトが…あんまりないのですよ…

逆はあります

VHD→VMDK の場合、私的おススメは NHC です

*NHC - 仮想マシンハードディスクイメージ変換(convert)ツール
http://euee.web.fc2.com/tool/nhc.html

thinイメージのトリミング(要はハードディスクシュリンク)が出来るのも良い所ですね


<変換ソフト VMDK to VHD - いちおうWinは変換出来た編>

本題に戻りますが、正攻法で行くと、マイクロソフトさん提供の製品があったよね?ということで、一応ありました

*Microsoft Virtual Machine Converter Solution Accelerator

「Microsoft Virtual Machine Converter Solution Accelerator.msi」 をダウンロードして、インストールします

インストールディレクトリはこんな感じ

vmdk2vhd00


Mvmc.GUI.exe なる、便利そうなツールがあると思って、立ち上げて見るのですが…

vmdk2vhd01

Oh... 既にESX系で動いているサーバが必要みたいです
単純にファイルを変換したいだけなので、このGUIツールにはご退場頂きますね…

実は、もう一つ、コマンドラインで変換できるツールが用意されていました
MVDC.exe です
c:\utils\Microsoft Virtual Machine Converter Solution Accelerator>mvdc
Microsoft Virtual Disk Converter
TODO: add description

MVDC SrcDisk  DstDisk  [/?]  [/Dyn]

SrcDisk  Specifies the source VMDK disk path to be converted.
DstDisk  Specifies the path for the converted disk.
[/?]     Show Help
[/Dyn]   Indicates the destination disk should be dynamic rather than fixed.

c:\utils\Microsoft Virtual Machine Converter Solution Accelerator>

> mdvc 変換元.vmdk 変換先.vhd

この mdvc コマンドで、変換できました!(拡張子まで入れること)

※長時間応答がありませんが、内部ではちゃんと動いているようなので、我慢して見守って下さい!

ただし注意点があり、変換元のWin2008R2 の VMDKファイルは 17Gでしたが
変換後の VHDファイルは 設定容量である 80G になっていました……!


それでもまぁ、変換出来たので、良しとします 
そして、Hyper-Vでも元気に動きました 

もう一つのゲストOSである、Ubuntuの方は、無理でした
mdvc の変換対象では無い様です


<変換ソフト VMDK to VHD - 本命編>

うんうん唸っても案が途切れたので、
Facebookで、VMDK→VHDで誰か変換した人いませんかー?となりふり構わず聞いてみたら、なにか氏より

XenConvert Free とかどうよ?」

と、教えて頂きました

なるほど…Xenのフォーマットは VHD (゚o゚)!
その手があったか…!!

というわけで、早速試してみます

Citrix の Xen Converter はフリーの変換ツールです
2014/5/5 現在、最新版は 2.5 となっており、ダウンロード先はこちら↓↓

http://www.citrix.com/downloads/xenserver/tools/conversion.html

でもちょっとまって!!
この 2.5 では、VMDK のファイルを VHD に変換することは出来ません

ほら、こんな感じで…ファイルが選択出来ない↓↓↓

vmdk2vhd02


だめじゃん。。

バージョンを 2.4 に落としてみる
先のリンクもあるが、ここからも落とせます↓↓↓
http://www.citrix.com/go/products/xenserver/xenserver-xenconvert-free.html

vmdk2vhd03

これもあかんね。。
ファイル選択出来ない

もう一つ、バージョンを落としてみます、2.3でチャレンジ!

vmdk2vhd06

でたでた!
VMDKファイルが選択出来るようになっています(~o~)

これで、VMDK→VHD が変換できます

vmdk2vhd07

やったね!

わたしの場合、2種類のゲストOSのサイズは
変換後、以下の様になりました

Win2008R2 VMDK(17GB) → VHD(40GB)
Ubuntu 13   VMDK(2GB)   → VHD(4GB)


ちょっと増えてるけど、まぁ許容範囲でしょう

特に、Win2008については
MDVCコマンドの場合は、正規サイズの 80GB まで膨れ上がってしまいましたが、
Xen Converter2.3 では、40GBに収まりました


もちろん、Hyper-V で認識して、2つとも動いています!!
特に Ubuntu がそのまま動いているのは、本当にうれしいです(~o~)


以下、今回の Tips的なものもまとめて書いておきます
ちょびっとだけ、いばらの道でした…


<番外編:XenConverterで「サポートされていない操作を実行しようとしました」が出る場合>

vmdk2vhd04

初回起動時、こんなウィンドウが2回出て、一応起動画面が出るが、その後「次へ」ボタンを押下すると、再び同じメッセージが出て、先に進まない…

どうやら、日本語ローカライズの問題みたいで
インストールしたディレクトリの下にある「ja」ファイルを別の名前にリネームしたら、上記エラーは出なくなりました


vmdk2vhd05

おぃおぃ…そこでしたか…いらぬお世話を…( ̄。 ̄;)


<番外編:変換後のWindows系ゲストOSでログインに失敗する時>

これ、本当に困りました…
VMDKからVHDに変換成功し、起動も成功するのですが、ログイン出来ないのです 

結論から言うと、キーボードの認識が最初は英語配列で認知されていたのでした

VMWareで動いていた時には、VMWare Tools などが良い感じにしてくれていたみたいですが
Hyper-Vに移行した初回起動時に、何やらキーボード配列が
日本配列から英語配列になってしまう現象が、わたしの環境では必ず起きました

パスワードに @や " などの記号文字を含ませていたために、(英語配列になってしまったから)ログイン出来なかったんですね〜

いやはや、変換元のVMDKでパスワードなしユーザを設定→VHDに変換して起動確認、
でようやく気が付きました(めっちゃ時間かかった)

Windows統合モードが入ると、解消されますが
Hyper-V初回ログインするまでは、有効にならないみたいです

もし、ゲストOSにログインできない!というのを発見した場合は、キーボード配列を疑ってみてください

ちなみに、MSのサポートサイトに、英語キーボードと日本語キーボードを切り替えるレジストリの登録方法が乗っています、参考までに!

*コンピューターに USB キーボードを接続したときに Windows で正しいキーボード レイアウトが使用されないことがある
http://support.microsoft.com/kb/927824/ja?wa=wsignin1.0
<日本語キーボード配列にする場合>
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
LayerDriver JPN         REG_SZ  kbd106.dll
OverrideKeyboardIdentifier  REG_SZ PCAT_106KEY
OverrideKeyboardSubtype  DWORD 2
OverrideKeyboardType    DWORD 7

<番外編:もっと以前のXen Converterはどこ?>
 
ちょっと古いやつも、ダウンロードできます

*CITRIXの掲示板 - XenConvert 2.1のダウンロードどこー?
http://discussions.citrix.com/topic/276905-xenconvert-211-download/

これによると、以下のリンクから XenConvert 2.1.2 がダウンロードできました
(2014/5/5 現在)

http://downloadns.citrix.com.edgesuite.net/4810/XenConvert_Install.exe (32bit版)

2.1 でも、ファイル to ファイルは出来ました!
2.4 以降から、機能を削ってしまったみたいですね…


<結論>
  • VMWare を Hyper-Vに変換するには、Xen Converter 2.3 を使う
  • Xen Converter の日本語ローカライズは、使わない
  • ログイン出来ないときは、英語配列でパスワードを打つ
みなさま、快適な仮想環境ライフを!!


haruka_sao at 23:30コメント(0)トラックバック(0)Hyper-VVMWare 

April 19, 2014

[PowerShell]32bitと64bitの使い分け

PowerShellにはちゃんと 32bit版と 64bit版が備わっています

Windows2008 R2
Windows2012 R2
共に同じ場所にあります(~o~)

64bit版
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

32bit版
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

デフォルトの64bitマシンであれば、コンソールで

> powershell

とすると、64bitモードが立ち上がります

これはどういうことかというと、64bitのアプリから使うライブラリなどは、64bitでないとダメってことです


何にはまったかというと、PowerShell から System.Data.OracleClient に接続するとき

たとえDBサーバが 64bit Oracle だったとしても
Oracle Client はデフォルトでは 32bit になっているようです

powershell から oracle に接続しようとしたときこんな感じになります
(参考)powerShellからOracleを使う(接続・切断)
# アセンブリのロード
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")

# 接続
$conn_str = "Data Source=saoDB;User ID=sao;Password=password;Integrated Security=false;"
$ora_conn = New-Object System.Data.OracleClient.OracleConnection($conn_str)

# インスタンス
$ora_cmd = New-Object System.Data.OracleClient.OracleCommand
$ora_cmd.Connection = $ora_conn

# データベースに接続
$ora_conn.Open()

このDB接続直後に、64bit のPowerShell だと
こんなエラーが出ます
"0" 個の引数を指定して "Open" を呼び出し中に例外が発生しました: "Oracle クライアント ライブラリを読み込もうとしましたが、BadImageFormatException が発行されました。この問題は、32 ビットの Oracle クライアント コンポーネントが
インストールされている環境で 64 ビット モードを実行すると発生します。"
発生場所 行:1 文字:22
+ $ora_conn.Open <<<< ()
    + CategoryInfo          : NotSpecified: (:) []、MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
問題解決方法は2つ
  • Oracle Client を 64bit版をインストールする(たとえDBサーバ上であっても…
  • 呼び出す側のPowerShellを 32bit版にする
既存の稼働環境に影響を与えない様にするという意味では
不毛ですが後者を選択すると波風立てずにコトを済ませられます


haruka_sao at 21:46コメント(0)トラックバック(0)PowerShellTips 

April 10, 2014

[Oracle]テーブル・カラム名が不明でもDBに入っている値を検索したい

見知らぬデータベースを渡され、中を解析したい時…

ありますよね?ありますよね!?

全テーブルの全列に入っている値を横断検索したいという要求、あるんじゃないでしょうか?

探したら同じことを考えている人が居ました

*全テーブルの全列の値の検索方法について - Oracle Community
https://community.oracle.com/thread/2334738?tstart=0
 
方法は2種類
一つは dmp 出力して、テキスト検索をするというもの
だいぶ力技ですけど、確かに、確実に検索できますね…

もう一つの方法は、PL/SQL で全データを総検索するというもの

この方法、
やってみると、良い感じに動きます
お勧めです
テーブル名やカラム名が判らなくても、動きますしね!

めっちゃ感激したので、この記事にも SQL を載せておきます

このサンプルでは、全ての値に 「あ」 が入っているデータを検索します
どのテーブルの、どのカラムに、何件入っているかが判ります

う、嬉しい〜


declare
 sSQL VARCHAR2(128);
 sDATA VARCHAR2(500);
 type cursor_type is ref cursor;
 cur_search cursor_type;
 vCount INTEGER;
 ERR_CODE NUMBER := 0;
 ERR_MSG VARCHAR(255);
begin
 for vRec in (select COLUMN_NAME,TABLE_NAME from USER_TAB_COLS where DATA_TYPE like '%CHAR%')
 loop
  begin
    open cur_search for 'select count(*) as cnt from ' || vRec.TABLE_NAME || ' where ' || vRec.COLUMN_NAME || ' like ''%あ%''';
        fetch cur_search into vCount;
        if vCount > 0 then
          dbms_output.put_line(vRec.TABLE_NAME || '.' || vRec.COLUMN_NAME || ':' || vCount || '件あり');
        end if;
        close cur_search;
  exception
   WHEN OTHERS THEN
    ERR_CODE := SQLCODE;
    ERR_MSG  := SUBSTRB(SQLERRM,1,255);
    dbms_output.put_line('error:' || ERR_CODE || ' ' || ERR_MSG || ' ' || vRec.TABLE_NAME || '.' || vRec.COLUMN_NAME);
  end;
 end loop;
end;




DBの構造を解析するツールは結構探せばあるのですが、データの中身となると、調べるのは手間ですよね…
このSQLには助けられました〜


話は変わりますが、
DB系のクライアントツールで、わたしがよく使っているのは  A5:SQL Mk-2 (フリーソフト)です
 
*A5:SQL Mk-2 : SQL Development Studio
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/
 
Oracle, SQLServer, MySQL など多くのDBに対応しています
一番うれしいのは、Oracle への接続に、Oracle Client が無くても接続できる所ですね

OCI経由か、直接 IPアドレスなどを指定して接続するかを選択できる!!
 
ER図も自動生成してくれるし、
めっちゃ、現場で役立ってます


haruka_sao at 18:00コメント(0)トラックバック(0)OracleSQL 

March 23, 2014

[C++/CX]MVP Community Camp 2014大阪で「VC++まわりの非同期処理」セッションしました

MVP Community Camp 2014大阪にて、VC++系のセッションをさせて頂きました

MVP Community Camp 2014大阪会場
http://atnd.org/event/E0024087

当日利用した資料はこちら!
 pptx版はこちら  ←セッション時の私的メモが欄外に載っています
 PDF版はこちら

序盤はわたしの追体験発表みたいになってしまいました
同じような疑問を持っている人や、その人なりの解釈の手助けになる様であればと思って記載しています

後半部分は、VC++での非同期処理の触りだけになっていますが
非同期での例外や中断など、C++/CXのWIndowsストアアプリでは興味深い仕組みが色々あるので
この続きになる情報も、もっと自分なりに勉強して発信していきたいなー


haruka_sao at 00:25コメント(0)トラックバック(0)C++/CX勉強会 
Sao's Tech Memo
mvp_logo_140

Microsoft MVP for Client App Dev [Jan,2010-Dec,2013]
Microsoft MVP for
Client Development
[Jan,2014-Dec,2014]
Silverlight アニメーション
Recent Comments
訪問者数
  • 今日:
  • 昨日:
  • 累計:

記事検索