.funprojを覗いてみて・・・メモ

Visual Studioで読み込まれるプロジェクトファイルはXML形式で、ビルドするために何らかのtargetsファイルを読み込んでいたり、プロジェクトに設定されたファイルを記述していたりするので、のぞいてみた。

今後変わる可能性は十分にあるので、完全に自己満足or趣味

なんと!
ファイルはどれも関連づいていない。
プロジェクトのディレクトリにあるものはすべて一部となる様子。

ビルドの定義は、Micorosoft.AzureFunctions.targetsファイルにあるようで。
Debug|Any CPU
Release|Any CPU

内部の初期値では、.NET Framework 「v4.5.1」ただ、ビルドのログを見てる限りコンパイラが動いてなさそうなので、ダミーに近い。

MSBuildとしてのメインは、Publishなのかなぁという感じがした。

Publish

その中で
\bin
\obj
*.funproj
*.pubxml
*.user
に該当するファイル、フォルダーは対象外としている様子

デプロイするためのリソースは一時的
obj\PublishTemp\
に格納される
現状これは、パターンに該当しないファイル以外をコピーしている。

 

ソース管理

pubxmlファイルはデプロイ先の情報を持っているため、GitHubなどの公開されるソース管理では対象外としたほうがよさそうだ。

Visual Studio 2017 RC で csx C#スクリプトを読み込む

インテリセンスどころか、色も何もつかないのでどうしてかなーとVS2015ではできていたのにということで調べてみたところ、拡張機能が用意されてました。

https://marketplace.visualstudio.com/items?itemName=IgalTabachnik.AnyScriptCS

上の拡張機能をVS2017RC上から入れて、VS2017RCを再起動したところ無事に動きました。

追記
上記ツールは、MS純正のものではありません。

Azure Functions ローカル Git リポジトリ

Azure Functionsのソースを、ローカルGit管理にしてしまう方法

少し試してポータルで編集している分には、それはそれでいいのですが
慣れた馴染んだエディタで編集したいとき、ローカルマシン上に持っていきたいというときにいいのかな?ということで。

1.ポータルから ローカル Git リポジトリ 設定

ポータルから対象のFunction Appを開き、
Function App の設定>継続的インテグレーションの構成

2016-11-26-4

 

デプロイのブレードが表示されるのでセットアップ

2016-11-26-5

 

ローカル Git リポジトリを選択

2016-11-26-6

ユーザー名パスワードを求められたら、
入力して忘れないようにしておきます。
(2回目以降入力が省略された!

2.ローカルマシンでclone

gitが入っている前提で

[FunctionAppName]には、作成時に入力したFunctionAppの名前を入れます

>git clone https://[FunctionAppName].scm.azurewebsites.net/

2016-11-26-7

忘れないようにしていたユーザー名とパスワードを入力

Cloning into '[FunctionAppName].scm.azurewebsites.net'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.

 

[FunctionAppName].scm.azurewebsites.net
というディレクトリが作成されていたらできあがり!

vscodeで開いた状態
ちゃんとコミットできる状態になってた

2016-11-26-8

注意点

ローカルGitリポジトリを設定すると、ポータルから編集できなくなります。

その場合、新しい関数を追加したいとき地道にファイルを追加するか。
一度ローカルGitリポジトリを無効にするか。
Azure-Functions-Cliを使う必要がありそうです。

※ローカルGitの切断・セットアップを繰り返しているうちに何かおかしくなった
※Visual Studio拡張機能が待ち遠しい

 

2016 MVP Global Summit に参加して その2

その前(2016 MVP Global Summit に参加して)

一日と半分遅れて到着から、歓迎会のような(Welcome Reception)ところへ・・・
刺激的です。とても。。。
ただ、飛行機の時間が長かったのもあって、早めに撤収して、
ホテルについて、他国のMVPに話しかけてもらえ交流。
熱い人だった・・・。あの情熱は凄い。
眠りについて・・・・

day 3

時差ぼけのせいか朝3時とかに目が覚める。
夜中に喫煙ということで、お外に出る。曇りがちなせいかあまり寒くない。
ただ、やっと合流できたんだということと、これからどんなことが待ってるんだろうという期待にあふれていた。前日の中で、日本国内の方とも交流させてもらう機会をいただいて、ありがたい限り。

いろいろしているうちに・・・朝ごはん。
基本的にセルフサービス。主食をシリアルで決めた。
やはり時間の感覚があっていないので、胃腸が目覚めていない感があった。(徹夜してるような感じ)

~~セッション~~

すんげー!・・・それ以上言えることなさそう。

夜、国でローカルな交流の場へ。
ドリンクチケットを2枚もらったはずが、なぜか2枚とられてしまったため
2杯目飲めず、そんな話をしたら、プレゼントしてくれるという心優しい方がいたり。

ホテルに戻り、就寝。。。

day 4

やっぱり時差ぼけで4時に目が覚める。
ツアー参加のため、泣いても笑っても最終日。
もっと、ここに居たいと思い始めたのもこの時からだった。
私のカテゴリ(Microsoft Azure)は5日間あるようで(公式サイトより)
翌日移動のため、二日間はもともと出れない予定でしたが、行のトラブルで1日は消えていたというのが悲しい・・・。

~~~セッション~~~

振り返ってみれば、トラブルがあったけれども、
バスに一人で乗って、無事に目的地に到達できたりと
来年もし行くならば・・・に選択肢を与えてもらえたと感じています。
ただ、私が来年どうなっているかはわからないので、
計画ではなく気持ちとして。

day 5

ごはんを食べて帰るだけです。
飛行機は無事に飛びました!
(同じ飛行機に乗ることを嫌がられたのは秘密だよ!)

非常に短い期間でしたが、ものすごく充実していました。
優れた人たちから、多くの刺激をもらいました。
また、同時に人の優しさを感じました。
日常においてこれは、絶対に味わえなかったでしょう・・・。

そして、自分に足りてないもの、至らないものというのも感じました。

これを楽しいと感じた私は、技術が好きでいる人に
何かしたいなぁという気持ちが強くなりました。

さて・・・何を言っているかわからなくなりそうなので、この辺で。

Thanks Microsoft.
Thanks All MVP.
Thanks Japanese MVP.
Thanks Japanese Microsoft Azure MVP.

Thanks All.
See you again !

2016 MVP Global Summit に参加して

初参加!

公式サイト
一言でいうとすごかった・・・
そもそも、アメリカは初めてで英会話のできない私がどうなるのか?
に対しては、ツアー参加すれば安心だろう!ということで気兼ねなく挑んだことでした。
参加費用は、会社から一定額出してくれる(ツアー費用ほぼ全額)
ということで、準備にかかった費用はあるもののそれも
恵まれまして、無事に参加申し込みまでいけました。
開催期間前日~帰宅までの、2016-11-06から2016-11- 11を振り返ります。

day 1

~飛行機で、北海道から東京成田へ~
この日は、札幌ものすごい雪でした。渋滞でなかなか進めず。
とはいえ、チェックインまでは間に合いました。
空港は午前の大雪による遅延で、混雑してました。
ANAのカウンターで手荷物を預けるときに、乗り継ぎありますか?と聞かれて
成田から国際線に乗り換えがありますと、チケットを見せた
しばらくして、違う窓口で申請してもらえれば、繋ぐこともできますが
と言われましたが、時間があんまりなかったので、成田まででと。
ここから、私の物語が大きく変化したところでもあったのですが。

手荷物を預け、保安検査を受け、搭乗口へ
飛行機が30分遅延していることを確認。
さらに待っているものの飛行機が搭乗口前に現れず・・・
あれれ・・・というところ。不安通りに50分遅れの予定変更。

そこで、ツアーとしての参加だった私は
ツアー会社さんに連絡してみたところ
「デルタ航空は既に乗り継ぎをあきらめている。」
「私(ツアーの担当者)と一緒にデルタの窓口で交渉となります」
とのこと。
「わかりました。まずは成田に向かいます」で飛行機搭乗!
・・・到着・・・
ツアー担当者と合流するとDelta航空の窓口に行きましょうと
そこで、Delta航空の担当者が遅れた理由を聞いてきたときに
首を傾げそうになった一言は印象的です。
「寝坊したんですか?」
「あー・・・違います。新千歳からの飛行機が遅れて・・・」
なかなか、挑戦的ですね!それか、意外と北海道とかの事情を知らないのか。
とはいえ、これがお米の国か・・・とか洗礼と感じつつ。
「新千歳からの乗り継ぎとして設定されたチケットではないので、対応できません。」
「ただし、いくらかで振替は可能です。」
で、航空券を手配してくれたツアー担当者さんが、
「請求払いができないので、ひとまず個人のカードで決済してください。」
と。次の便は翌日までないらしく。急きょホテルをとることに、
そこから、Delta航空の窓口からちょっと偉い人?のところになって
航空券の振替と、ホテル予約をしてもらいました。
天候も商売になるんですね・・・風が吹けば桶屋が儲かる

というわけで、ツアー担当者の方と少し話して別れ
ホテル行のバス乗り場に移動。
チェックインして、時間を持て余しつつおなかがすいたところで
ホテル内のコンビニ?らしきところで弁当買って食べて、
心労のせいか頭痛がひどかったので、少し暖かい湯船につかり
軽くストレッチして、就寝。
ホテルのチェックアウトは11時までと聞いてたので、
これでもか!ってくらい寝ることを決意した。
というのも、翌日の夕方まで何もすることはなかったうえ
どこか出かけるというほど時間があるわけでもないので。
ふてくされて、疲れ果てて寝たともいえます。

day 2

6時起床!が暇すぎるので、体力を温存しておかねばということで二度寝。
9時起床!何かものすごく恐ろしい夢を見ていた気がします。
おかげで目覚めたときに安堵についたことだけ覚えています。
人間ちゃんと精神にも防衛本能があるのですね。
きっとたぶんこんな感じwikipedia:悪夢

ゆっくりしながら、チェックアウト。
ホテルがやっている無料送迎バスで成田空港へ!
少しターミナルビルをうろうろ・・・
お昼が近くなりフードコートにて、
日本食らしいものは、しばらくお預けだろうということでうどんを食べる。

搭乗手続きへ。
搭乗は、前日に自動チェックインは利用できないかもしれない、多分無理だから
直接係りの者にいってもらっていいよとのことだったけれども、
いざいって、その話をしても、まぁまず自動チェックインしてみてよとのことで
やってみたところ、だめで係りの人へ案内。

それで、既に振替分のお金払ってますか?と聞かれた。
こいつ寝坊したんだなぁーくらいの目で見られながら
どういう状況でしたか?みたいなことを聞かれて
いくらか払えば振り替えてやるよーみたいなことでしたと
伝えたら、
(既に1日を無駄にした+ホテル代で、やる気が失せてたのもあって、割とラフな言葉遣いで答えた)
なんかおとなしくなってた。
察するに彼らはあんまり連携とかしないようだ。
日本の航空会社とは違うところかなと思った。
なるほど。と納得して、手荷物預かり、搭乗完了!
(今になって思う。最大限にその担当してくれた人がくみ取ろうとして挑んだんだと、もう少し柔らかく返してあげればよかったかなーと)

いざ、出国へ!
ここからは普通に。自動化ゲートっていうのが今はあるんですね。
指紋の事前登録が必要らしく、特にしていなかったので
普通に出国手続きをしました。

そこから4時間ほど暇があったので、成田の免税店を全て見てきました!
税金かからないということで、お酒・たばこは個別の税がない分ものすごく安く買えますね。

いろいろなエリアを見て回って、航空会社ごとに違ってアジアエリア、アメリカエリアみたいな。それぞれ待ってる人もエリアの壁を含む雰囲気の違いがあって面白い。
特に明るさが違うのが印象的だった。

いざ、搭乗!となるのですが、やはり英語が聞きなれていない私にはここも大変で、
実は搭乗する順序がZone1~3と別れていて、Zone2に並ばなければならなかったのですが間違ってZone3に並んでしまう。窓際にもかかわらず、遅れて搭乗で隣の金髪イケメンタトゥー兄さんに迷惑かける。
通路側の方は、モバイルに集中してたようなので・・・えーとえーと。
こういうときは、excuse meだったなと。
か弱くも英語で発言!
で、通じて譲ってくれた。(そのあと、thank you をいうべきだったことは反省点)

荷物を座席下に放り込んで、着席。

離陸!となるはずが・・・どうも様子がおかしくて
後から来る飛行機が追い越していくのが窓から見えました。
機内アナウンスで「現在、燃料ポンプのエラーランプが点いているため本部のあるアトランタと離陸に関して交渉中」とのこと。
待機から1時間して一旦搭乗ゲートまで戻り、整備の人が確認。
燃料ポンプに不具合があり2つの燃料タンクが使えないとのこと。
そのままでは、SeaTacまで飛べないので再び交渉中モード。
1時間ほどして、行先がアンカレッジに変更となった。
燃料タンク2つが使えない状態でも向かえるということらしい。
燃料を入れなおして、出発!実に3時間ほど離陸までにかかっていた。
アンカレッジまでは10時間弱・・・。
到着後、搭乗スタッフはチェンジ。燃料補給で1時間程度待機。
離陸して、3時間ほどでシアトルに到着。
着いたときは既に、15時を過ぎてました・・・。
17時間くらい乗っていたのかな・・・。
その後入国審査で、Are you Microsoft ? と聞かれyes。
滞在期間を答えて。無事に入国。
預けた荷物を受け取ろうとするが、かなり早くに搭乗手続きをしてたため
本当に最後に出てくるw

税関の書類を出して、抜けたところまでは良いのですが。
空港の作りが少し複雑で、地下の自動運転する列車が運行してるんですね。
何となく周りの人にくっついて地上まで。

ひとまず、眠るためにアルコールをとっており喉乾いたので水を購入。
$2.99-となかなか。

さぁ・・・どうしようか!
ツアー参加でここは何とかなくまたは誰かについていくができたのですが、
一人でございます。
まずは、煙草を吸う!くらくらする!(20時間近く吸ってなかった)
そして、GoogleMapの力を借りて、ホテルの場所へ向けたバスの移動手段を発見!
560bellvueを見つけて、17時過ぎに乗車。

片言の英語で、お値段聞いて
行先はどこだ?と聞かれて、Bellevue Transit Centerと答えて
乗車!1時間ほどで目的地に到着。

既にあたりは暗かった。
スマホを見ても東西南北がわからず。(方角がなぜか少しずれてた)
歩けば座標変わるので、適当に歩く!
少し迷いつつも、高速道路を超えて徒歩20分ほど目的地到着!!

17時過ぎだったと思いますが、
待ち合わせてくれていたルームメイトと合流できました!
ありがとう!@stknohg さん

その後、参加登録をして「Welcome Reception」の夜会から参加!
長かったー・・・。これからなのに、安堵につきました。
かなり必死でした。
今となっては、自分のどこかでバスに乗ったりしてみたいなと思ってたとこもあったので、それはそれで良かったと思ってます。

道中、SNSやメッセージを通じてDynamicなMVPさん(@navisionaxapta)
@jsakamotoさん、 多くの人に助けていただきました。
本当にありがとうございます。
また現地の人も、片言にも関わらず親切に答えてくれました。

 

長くなりすぎた・・・ので、続く
2016 MVP Global Summit に参加して その2

SignalR Hubを使ったときOnDisconnected、OnConnectedが動かない

ちょっとしたメモ書き

Hubを使ってサーバーサイド、クライアントサイドと実装をしていったのですが、どうしてもサーバーサイドの、接続状態を検出する「OnConnected」「OnDisconnected」は呼び出されず。

調べてみたところ・・・(実際には見つけてもらったもの!

ASP.NET SignalR Hubs API Guide – JavaScript Client

Note: Normally you register event handlers before calling the start method to establish the connection. If you want to register some event handlers after establishing the connection, you can do that, but you must register at least one of your event handler(s) before calling the start method. One reason for this is that there can be many Hubs in an application, but you wouldn’t want to trigger the OnConnected event on every Hub if you are only going to use to one of them. When the connection is established, the presence of a client method on a Hub’s proxy is what tells SignalR to trigger the OnConnected event. If you don’t register any event handlers before calling the start method, you will be able to invoke methods on the Hub, but the Hub’s OnConnected method won’t be called and no client methods will be invoked from the server.

で、要約してみると
通常、クライアント側でstartメソッドを呼び出す前に、クライアント側でイベントハンドラを登録して使いますと(onメソッドでサーバーからの呼び出しに備える)

それをしない場合、「OnConnected」は呼び出されないぞ!と
で、どうしても後から追加するようなものがある場合は、最低限一つは(onメソッドで)ハンドラを追加しておく必要がありますと。

なので、通常使い方としては、Proxyなど設定、ハンドラの登録をした後にクライアント側のstartメソッドを呼び出すということのようですね。

で、そのようにしたところ無事に動く!というところで落ち着きました。

ただこれだけでは、OnConnectedはうまくいっても、OnDisconnectedは不確実な呼び出しになりますので、私が使いたかった用途にはもう少し工夫が必要でした。

後日!

Windows Server 2016を・・・インストールしたかった・・・

インストールしたかった・・・が

Windows Server 2012 R2をインストール、アップデートして、いざアップグレード!といってみたものの、エラーとなりロールバックされてしまうと、何度かチャレンジしても同じエラーでOSの起動で失敗となる。まだちょっとタイミングが早かったかなということで、しばらくは 2012 R2で我慢することにしました。

 

まずはWindows Server 2012 R 2

昨日に続いて

Windows Server 2012 R2のISOからDVDを作成
DVDドライブを使ってインストールとスムーズにいくつもりだったのですが

ふと最新のものをMSDNサブスクリプションからダウンロードして、サーバーOSのISOのサイズを見てると、5GBを超えてるんですね。これだとDVD-Rに入らないなんてのがたくさんで、DVD-RDLのディスクを買っとけばよかったと思った。
とりあえず、古いものは4.7GBにぎりぎり入るサイズだったのでそれで凌ぎます。。。

入れてみると今度は更新のアップデートが500件以上!とおおマイクロソフトがんばるなーとか思いつつ、一晩放置!
今日はここから、ドライバ入れて・・・Windows Server 2016のディスクからインストールを試してみよー

そういえば、最新のドライバがちょうど出てたみたいですが、Windows Server 2016の表記はなかった・・・
インテル®ラピッド・ストレージ・テクノロジー RAID ・ドライバー バージョン: 15.2.0.1020 (最新) 日付: 2016/10/20

昨日の雪は一日してみると、ほとんど溶けてました

Windows Server 2016 をインストールしたくて・・・

ひさしぶりにBlog。
とある記事を見たことから、
日常的なものを書いてみようかと改めて思った次第です。

で、本題です。

X58+ICH10Rなマザーボードに、CentOS7を入れて仮想環境を作っていたのですが
突然、HDDがやられてきて起動しなくなったりというアクシデントが増えてきました。

直接の原因はわかっていませんが、ファンが壊れており、
HDDがとてもあっちっちーになっていたわけです。

で、かなり安いHDDを1TB2台購入して入れ替えていたのですが
Windows Server 2016が出たところで、、、、

インストールしてみたい・・・!

という衝動に駆られまして、入れようと思いました。

が、しかし・・・RAIDコントローラ認識せず・・・・・?!

で、ドライバ探したんですが、Windows10のものくらいしかなく・・・
USBめもりにドライバ突っ込んで読み込ませても、
互換性ナイヨー
と言われてしまう始末。

で、落胆してたのですが・・・
そういえば、

Upgrade and conversion options for Windows Server 2016

こんなのがあるじゃないのってことで、
Windows Server 2012 R2 を入れている今でした。

 

話は変わって、北海道は雪が降ってきました。
どうしても車を使いたいという話があって、
急ぎタイヤ交換をしました。たぶん溶けるけど。。。

Code 2016 in 定山渓温泉 に参加!

今年で3回目の参加になりました。
8/6~8/7の一泊二日の間、定山渓温泉のホテルでコード漬けになろうというイベントです。今年は直接運営にかかわる機会もなく参加者としてです!

http://codejp.connpass.com/event/34473/

今年は、参加費が高くなってしまったのもあってか参加者は少なかったのですが、とても面白い内容ばかりでした!

キーノート (基調講演)

@DrewRobbins さんによる英語です。大丈夫です。
日本語に意訳してくれる人がいます。

ということで、愛から始まる3つのテーマ。
といっても技術、コミュニティといったものに対してです。
継続するに当たってとても重要な要素だと思いました。

Business Cards AR Tutorial

@DrewRobbins 先生による・・・
VR、ARを使って、名刺の上で戦っちゃうやつです。
UnityやそのAssetsを使って実現ということで1時間ちょっとできるお手軽さに感動!
途中、私の環境は何かおかしくカメラの画像がなく3Dオブジェクトだけの空間になってしまったため、SSなし。落ち着いたら、再チャレンジしたいですね。

きんぎょばち(1) BGMとSE鳴らすモバイルアプリを、各々自分ができるやりかたでクローンしてみる

他人のコーディングを拝める!っていう貴重な場面でした。きんぎょばちとは、そのコーディングしている人を囲んでみるところに由来してるそうな。
JavaScript、Swift、さらにはこっそりUWPでWindowsPhone向けに作っていて、
閉会の一人一言で発表する人も!

きんぎょばち(2) いろんな言語でズンドコキヨシ

これ今も延長戦が続いているようです。

ルールは明確に把握してませんが・・・
https://jsfiddle.net/jsakamoto/sa6uw528/
たぶんこれが参考になるかなと。
元々、去年までやっていたコードゴルフというひたすら文字数を減らすコーディング
の要素を混ざりながらものすごいことになってるようです。

宴会!

これこそ、このイベントのちょっと高めのお金を払う要素の一つかと思いますが、

Webpack入門

@albatrosary   先生のWebpackとは何か?
から始まり、実際に使ってみるという濃厚セッション。
Webの発展はすごいなぁと感じます。
コンパイルなどを含めたツールですね。
npmで追加すると、使えるという感じで
開発しているマシンのOSにも依存しないのもいいですし。

Web MIDI API入門

@chack411   先生のWeb MIDIの世界
実際にMIDI入力デバイスなどを持ってきてくださいましたー。
MIDIとは?からはじまり
SignalRを用いて、全ブラウザのMIDIノートをブロードキャストという
アプリとそのソースを披露。このとき私はネットワークが不通になり
げんなりしてたわけですが、

帰路でしっかり見させていただきました。
JavaScriptでMIDIメッセージをごりごりしてるのは
とても衝撃的でした・・・

昼食

ひたすら、ネットワークを回復させようと試行錯誤・・・な私。
何とかつながったりしたのですが、不安定は変わらず。
座席に移動によって、電波干渉のような何かが起きたような感じでした。

二日目午後

https://scratch.mit.edu/
の紹介とDemo。これとてもいいと思う。

ちなみに私は・・・
wikipedia:カルネージハート
で似たようなことはしてました。
これはイベントドリブンじゃなくて、
はじまりと終わりがあるので、1秒間に何回も動くルーチンなのでいたってシンプル。目的も強くなること、と明確です。

が、目的が決まっていることより、
自由な発想で挑むっていうのはさらに大切なことだと思います。

 

最後に

今年も参加できてよかった。の一言で尽きてしまいます。
私の主観で見た世界では、このようなものでしたが、
参加した人によって様々なものが見えていたのだと感じました。
この刺激を受けて、また明日への一歩を踏み出そう!
// というか、延長戦したい