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勉強会 

March 17, 2014

[Jekyll]タグのソート

Jekyll が生成するタグページが、ソートされてないために見難いです

調べると、同じことを考えていた人が居てます

*Jekyllプロジェクトへpull requestを行う手順(したとは言っていない) - kk_Atakaの日記
http://d.hatena.ne.jp/kk_Ataka/20140128/1390919513

ありがとうございます!ほら、こんな感じにソート出来ましたよ(~o~)

jekyll-sort00
 →これは絶賛移行中の SilverlightSquare の履歴サイトです…

今回は修正箇所の Jekyll モジュールに手を直接手を入れてしまいましたが
このソート機能、ぜひとも、本家Jekyllにマージしてもらいたいところですね

ちなみに修正箇所はこちらです

Ubuntu の場合のパス:
 /usr/local/lib/ruby/gems/2.1.0/gems/jekyll-1.4.3/lib/jekyll

Windows の場合のパス:
 C:\_d\Library\Ruby200-x64\lib\ruby\gems\2.0.0\gems\jekyll-1.4.2\lib\jekyll

細かいバージョンが異なっているのは、わたしの環境が単にそうなっているだけです
インストールディレクトリも同じく
修正コード:site.rb
    def post_attr_hash(post_attr) の最後にある hash を hash.sort に変更

これだけでOK

※ソートしたくない例の方が、思いつかないなー
 だってこれ、明らかにプログラムの処理順やし

ちなみにこの kk_Atakaさんは、Jekyllの有志翻訳用のGitHubを立ち上げたとのことです

*Jekyllドキュメント ( http://jekyllrb.com ) の日本語訳ページ
 
頑張ってほしいので、とりあえずわたしも何かしら貢献できたらいいかなーということで
fork させて頂きました( *´艸`) 


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

March 13, 2014

[C#/VB.NET]VisualStudio2013-CodeLens

この機能を使いこなすのは、ちょっと大変そうなので、ひとまず紹介のみ

ここのところVisual StudioでC++プロジェクトしか開いていなかったので
久しぶりにC#プロジェクトを作ったら、変な文字が…!?
// あんた、どんだけ、C#プロジェクトを作ってないねん…
// VS2013出てからもう、ずいぶん経ちますが…

codelens00

「0 個の参照」って、なんですかね??

気になったので、VB.NETも立ち上げてみたら、同じような文字が…

codelens01
 
これは CodeLens という Visual Studio 2013 の新しい機能のようです

ツール > オプション の
テキストエディター
 > すべての言語
  > CodeLens
   > CodeLens を有効にする 

 
で、表示の切り替えが出来るようです

codelens02


*CodeLens を使用したエディターからのコード情報の検索
http://msdn.microsoft.com/library/dn269218.aspx

C++プロジェクトには、こんなのなかったですねぇ

具体的な機能としては、ここに表示されているような参照の個数の他にも
参照の検索
参照の可視化
など

TFSで管理していれば、そのコードを作った人にメールを送れたりするみたいです……
 // 豪華ですね…


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

February 28, 2014

[勉強会]3/1(土)Room metro#23大阪開催しますよ〜

明日、3/1(土)はRoom metro #23 大阪の日です!

Room metro #23 大阪
〜めとべやスペシャルサンクスDay〜
http://metrostyledev.net/index.php/event/20131026/
 
最新のASP.NET, SignalR, C# のお話に加え
Xamarin MvvmCross, インタラクションデザインなど、モバイル系のお話も聞けます!

お気軽にお越しください〜

どうぞ、よろしくお願いします(~o~) 

haruka_sao at 15:30コメント(0)トラックバック(0)勉強会 
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
訪問者数
  • 今日:
  • 昨日:
  • 累計:

記事検索